嵌入式系统实习报告1.docx

上传人:b****5 文档编号:4212579 上传时间:2022-11-28 格式:DOCX 页数:14 大小:105.97KB
下载 相关 举报
嵌入式系统实习报告1.docx_第1页
第1页 / 共14页
嵌入式系统实习报告1.docx_第2页
第2页 / 共14页
嵌入式系统实习报告1.docx_第3页
第3页 / 共14页
嵌入式系统实习报告1.docx_第4页
第4页 / 共14页
嵌入式系统实习报告1.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

嵌入式系统实习报告1.docx

《嵌入式系统实习报告1.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实习报告1.docx(14页珍藏版)》请在冰豆网上搜索。

嵌入式系统实习报告1.docx

嵌入式系统实习报告1

 

嵌入式系统实习报告

 

课程名称:

嵌入式系统设计

学院:

电气信息工程学院

班级:

通信工程07-2班

姓名:

陈俊如

学号:

2号

指导教师:

山传文

 

1.嵌入式系统开发与应用概述…………………3

2.实习设备………………………………………3

3.实习目的………………………………………4

4.实习要求………………………………………4

5.实习步骤………………………………………5

6.实习体会………………………………………12

7.参考文献………………………………………12

 

一、嵌入式系统开发与应用概述

在今日,嵌入式ARM技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM的影子。

如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。

本章节就是将你领入ARM的学习大门,开始嵌入式开发之旅。

以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。

由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。

嵌入式的广泛应用可以说是无所不在。

嵌入式微处理器技术的基础是通用计算机技术。

现在许多嵌入式处理器也是从早期的PC机的应用发展演化过来的,如早期PC诸如TRS-80、AppleII和所用的Z80和6502处理器,至今仍为低端的嵌入式应用。

在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。

嵌入式处理器目前主要有Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM等系列。

在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的ROM/EPROM/Flash/EEPROM、SRAM、接口总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A等各种必要的功能和外设。

二、实习设备

硬件:

EmbestEduKit-IV实验平台、ULINK2仿真器套件、PC机

软件:

μVisionIDEforARM集成开发环境、Windows98/2000/NT/XP

 

三、实习目的

1.初步掌握液晶屏的使用及其电路设计方法;掌握S3C2410X处理器的LCD控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中;通过实验掌握液晶显示文本及图形的方法与程序设计。

2.了解S3C2410X处理器UART相关控制寄存器的使用;熟悉ARM处理器系统硬件电路中UART接口的设计方法:

掌握ARM处理器串行通信的软件编程方法。

3.掌握有关音频处理的基础知识;通过实验了解IIS音频接口的工作原理;通过实验掌握对处理器S3C2410X中IIS模块电路的控制方法;通过实验掌握对常用IIS接口音频芯片的控制方法。

4.了解μC/OS-II移植条件和内核基本结构;掌握将μC/OS-II内核移植到ARM9处理器上的方法和步骤。

四、实习要求

通过对μC/OS-II移植实验、μC/OS-IILCD显示实验、串口通信实验、IIS音频实验、液晶显示实验的学习,并将各部分内容合并,最终得出实习结果,实习要求在键盘上输入学号,在液晶显示屏上显示相应的学生信息。

学生信息包括显示每个人的照片和姓名系别等,并用键控设置学生输出的顺序,输入学号就显示那个学生的信息,然后过一段时间就顺序循环播放。

移植μC/OS-II内核到ARM处理器S3C2410,在IDE中观察其运行状况编写S3C2410X处理器的串口通信程序;监视串行口UART1动作;将从UART1接收到的字符串回送显示。

将从UART1接收到的字符串回送显示。

通过使用EmbestEduKit-IV实验板的彩色液晶屏(800*480)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写任务函数在uC/OS-II系统中实现位图显示。

在uC/OS-II中建立五个任务Tast1和Tast2,其中Tast1顺序熄灭四个LED,延迟一会在顺序点亮四个LED。

Tast2在LCD屏幕上循环显示三幅图片,并打印一些文字信息和背景音乐。

过使用EmbestEduKit-III实验板的256色彩色液晶屏(320x240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现:

画出多个矩形框;显示ASCII字符;显示汉字字符;显示彩色位图。

五、实习步骤

1.准备实验环境

使用ULINK2仿真器连接EmbestEduKit-IV实验平台的主板JTAG接口;使用EmbestEduKit-IV实验平台附带的交叉串口线,连接实验平台主板上的COM2和PC机的串口(一般PC只有一个串口,如果有多个请自行选择,笔记本没有串口设备的可购买USB转串口适配器扩充);使用EmbestEduKit-IV实验平台附带的电源适配器,连接实验平台主板上的电源接口。

2.串口接收设置

在PC机上运行windows自带的超级终端串口通信程序,或者使用实验平台附带光盘内设置好了的超级终端,设置超级终端:

波特率115200、1位停止位、无校验位、无硬件流控制,或者使用其它串口通信程序。

(注:

超级终端串口的选择根据用户的PC串口硬件不同,请自行选择,如果PC机只有一个串口,一般是COM1)

3.打开实验例程

1)打开实验程序

2)运行μVisionIDEforARM软件

3)默认打开的工程在源码编辑窗口会显示实验例程的说明文件readme.txt,详细阅读并理解实验内容。

4)工程提供了两种运行方式:

一是下载到SDRAM中调试运行,二是固化到NorFlash中运行。

用户可以在工具栏SelectTarget下拉框中选择在RAM中调试运行还是固化Flash中运行。

下面实验将介绍下载到SDRAM中调试运行,所以我们在SelectTarget下拉框中选择UART_TestINRAM。

5)接下来开始编译链接工程,在菜单栏“Projiet”选择“Buildtarget”或者“Rebuildalltargetfiles”编译整个工程。

6编译完成后,在输出窗口可以看到编译提示信息,比如“".\SDRAM\UART_Test.axf"-0Error(s),1Warning(s).”,如果显示“0Error(s)”即表示编译成功。

7)拨动实验平台电源开关,给实验平台上电,单击菜单栏Debug->Start/StopDebugSession项将编译出来的映像文件下载到SDRAM中,或者单击工具栏“”按钮来下载。

8)下载完成后,单击菜单栏Debug->Run项运行程序,或者单击工具栏“”按钮来全速运行程序。

用户也可以使用进行单步调试程序。

9)全速运行后,用户可以在超级终端看到程序运行的信息。

10)用户可以Stop程序运行,使用μVisionIDEforARM的一些调试窗口跟踪查看程序运行的信息。

注:

如果在第4)步用户选择在Flash中运行,则编译链接成功后,单击菜单栏Flash->Download项将程序固化到NorFlash中,从实验平台的主板拔出JTAG线,给实验平台重新上电,程序将自动运行。

程序如下:

/********************************************************************************************************

*文件:

Main.C

*描述:

applicationroute

*编写:

*********************************************************************************************************/

#include"Includes.h"

#include"2410lib.h"

#include

OS_EVENT*UART_sem;

OS_EVENT*InterruptSem;

unsignedcharerr;

/*allocatememoryfortasks'stacks*/

#defineSTACKSIZE4*1024

/*GlobalVariable*/

OS_STKStack1[STACKSIZE];

OS_STKStack2[STACKSIZE];

constcharId1='1';

constcharId2='2';

OS_EVENT*sem1;

unsignedcharerr;

/************************************************************************************************

*函数:

voidTask1(void*Id).

*描述:

任务1函数.

************************************************************************************************/

voidTask1(void*Id)

{

while

(1)

{

led_off();

OSTimeDly(100);

led_on();

OSTimeDly(100);

}

}

/**********************************************************************************************

*函数:

voidTask2(void*Id).

*描述:

任务2函数.

***********************************************************************************************/

voidTask2(void*Id)

{

Lcd_DspHz24(460,440,0,"电气信息工程学院");

Lcd_DspHz24(460,400,0x10,"北华大学");

while

(1)

{//uart_printf("PleaseinputIDnumber...");

inting;

int*p=&ing;

//InitialInterrupt,PortandUART

uart_printf("inputnumber...\n");

ing=uart_getintnum();

if(ing==2)

{

BitmapViewTft16Bit_128160((unsignedchar*)gImage_picture1);

Lcd_DspHz24(300,190,0xf800,"通信二班");

Lcd_DspHz24(300,150,0xf800,"陈俊如");

Lcd_DspAscII8x16(300,250,0,"2");Lcd_DspHz24(310,250,0xf800,"号");

iis_Num(p);

//play_Name(XueHao);

OSTimeDly(100);

lcd_clr_rect(300,150,580,380,0xffff);break;}

elseif(ing==8)

{

BitmapViewTft16Bit_128160((unsignedchar*)gImage_picture2);

Lcd_DspHz24(300,190,0xf800,"通信二班");

Lcd_DspHz24(300,150,0xf800,"高岩");

Lcd_DspAscII8x16(300,250,0,"7");Lcd_DspHz24(310,250,0xf800,"号");

iis_Num(p);

//play_Name(XueHao);

OSTimeDly(100);

lcd_clr_rect(300,150,580,380,0xffff);break;}

elseif(ing==12)

{

BitmapViewTft16Bit_128160((unsignedchar*)gImage_picture3);

Lcd_DspHz24(300,190,0xf800,"通信二班");

Lcd_DspHz24(300,150,0xf800,"李璇");

Lcd_DspAscII8x16(300,250,0,"12");Lcd_DspHz24(310,290,0xf800,"号");

iis_Num(p);

//play_Name(XueHao);

OSTimeDly(100);

lcd_clr_rect(300,150,580,380,0xffff);break;}

else

{

BitmapViewTft16Bit_128160((unsignedchar*)gImage_picture1);

Lcd_DspHz24(300,190,0xf800,"通信二班");

Lcd_DspHz24(300,150,0xf800,"陈俊如");

Lcd_DspAscII8x16(300,250,0,"2");Lcd_DspHz24(310,250,0xf800,"号");

iis_Num(p);

//play_Name(XueHao);

OSTimeDly(100);

lcd_clr_rect(300,150,580,380,0xffff);

BitmapViewTft16Bit_128160((unsignedchar*)gImage_picture2);

Lcd_DspHz24(300,190,0xf800,"通信二班");

Lcd_DspHz24(300,150,0xf800,"高岩");

Lcd_DspAscII8x16(300,250,0,"7");Lcd_DspHz24(310,250,0xf800,"号");

iis_Num(p);

//play_Name(XueHao);

OSTimeDly(100);

lcd_clr_rect(300,150,580,380,0xffff);

BitmapViewTft16Bit_128160((unsignedchar*)gImage_picture3);

Lcd_DspHz24(300,190,0x10,"通信二班");

Lcd_DspHz24(300,150,0x10,"李璇");

Lcd_DspAscII8x16(300,250,0,"12");Lcd_DspHz24(310,250,0x10,"号");

iis_Num(p);

//play_Name(XueHao);

OSTimeDly(100);

lcd_clr_rect(300,150,580,380,0xffff);

}

}

}

/**********************************************************************************************

*函数:

intmain(void).

*描述:

主程序函数.

***********************************************************************************************/

voidMain(void)

{

OSInit();

OSTimeSet(0);

Init_Timer4();

port_init();

uart_init(PCLK,115200,UART1);

uart_select(UART1);

uart_printf("\r\nEmbestEduKit-IVbootsuccess!

\r\n");

uart_printf("uCOS-IIRunning...\r\n");

lcd_init_app();

iis_init();

sem1=OSSemCreate

(1);

/*createthestarttask*/

OSTaskCreate(Task2,(void*)&Id2,&Stack2[STACKSIZE-1],1);

OSTaskCreate(Task1,(void*)&Id1,&Stack1[STACKSIZE-1],2);

/*starttheoperatingsystem*/

OSStart();

}

/****************************************************************************************************

*End.

******************************************************************************************************/

/*********************************************************************************************

*File:

iis_test.c

*Author:

embest

*Desc:

IIS_Test

*History:

*

*********************************************************************************************/

/*------------------------------------------------------------------------------------------*/

/*includefiles*/

/*------------------------------------------------------------------------------------------*/

#include"2410lib.h"

#include"iis_test.h"

#include

/*------------------------------------------------------------------------------------------*/

/*constantdefine*/

/*------------------------------------------------------------------------------------------*/

#definePLAY0

#defineRECORD1

#defineREC_LEN0xf0000

#ifdefBOARDTEST_EXH

#undefBOARDTEST

#endif

/*------------------------------------------------------------------------------------------*/

/*externvariables*/

/*------------------------------------------------------------------------------------------*/

externconstUINT8Tru_ucWave[255760];

externconstUINT8Tyan_ucWave[255760];

externconstUINT8Txuan_ucWave[255760];

/*------------------------------------------------------------------------------------------*/

/*globalvariables*/

/*------------------------------------------------------------------------------------------*/

intf_nDMA2Done;

intf_nDMA1Done;

externvoid__irqdma1_done(void);

/*********************************************************************************************

*name:

iis_test

*func:

*para:

none

*ret:

none

*modify:

*comment:

*********************************************************************************************/

voidiis_test(void)

{

UINT8TucInput=0;

intnSoundLen=255760;

uart_printf("\nIIStestexample\n");

pISR_DMA1=(UINT32T)dma1_done;

while((ucInput!

='3'))

{

iis_init();//initializeIIS

rSRCPND=(BIT_DMA1|BIT_DMA2);

rINTPND=rINTPND;

rINTMSK=~(BIT_DMA1|BIT_DMA2);

rDMASKTRIG2=(1<<2)|(0<<1);//Dma2StopDma2channaloff

rDMASKTRIG1=(1<<2)|(0<<1);//Dma1StopDma1channaloff

uart_printf("Menu(pressdigitaltoselect):

\n");

uart

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1