北华大学嵌入式系统实习报告.docx
《北华大学嵌入式系统实习报告.docx》由会员分享,可在线阅读,更多相关《北华大学嵌入式系统实习报告.docx(10页珍藏版)》请在冰点文库上搜索。
北华大学嵌入式系统实习报告
北华大学
嵌入式系统实习报告
姓名:
XXX
班级:
测控XXXX
学号:
XXXXXXXXX
院系:
电气信息工程学院
指导教师:
武海巍
目录
一、嵌入式系统开发与应用概述2
二、实习设备3
三、实习目的3
四、实习要求3
五、实习过程4
六、实习体会11
七、参考文献12
一、嵌入式系统开发与应用概述
在今日,嵌入式ARM技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM的影子。
如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。
以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。
由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。
嵌入式的广泛应用可以说是无所不在。
嵌入式微处理器技术的基础是通用计算机技术。
现在许多嵌入式处理器也是从早期的PC机的应用发展演化过来的。
在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。
二、实习设备
硬件:
EmbestEduKit-IV实验平台、ULINK2仿真器套件、PC机
软件:
μVisionIDEforARM集成开发环境、Windows98/2000/NT/XP
三、实习目的
1.初步掌握液晶屏的使用;掌握S3C2410X处理器的LCD控制器的使用;
掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中;
通过实验掌握液晶显示文本及图形的方法与程序设计。
2.掌握有关音频处理的基础知识;通过实验了解IIS音频接口工作理。
3.了解μC/OS-II移植条件和内核基本结构;
掌握将μC/OS-II内核移植到ARM9处理器上的方法和步骤。
四、实习要求
通过对μC/OS-II移植实验、μC/OS-IILCD显示实验、IIS音频实验的学习,逐步将各部分内容合并,最终得出实习结果。
实习要求在液晶显示屏上循环显示学生的信息。
学生信息包括显示每个人的照片、姓名、系别、学号及声音。
能力允许的情况下要求能够用通过键盘选择,显示相应学生的信息。
移植μC/OS-II内核到ARM处理器S3C2410,在IDE中观察其运行状况编写S3C2410X处理器的串口通信程序;监视串行口UART1动作;将从UART1接收到的字符串回送显示。
将从UART1接收到的字符串回送显示。
五、实习过程
1.实习准备
实习任务下达之后,首先是对各个单独的功能程序的分析和初步了解。
在初步分析后,小组决定使用3.7_uCOS_all_test实验程序作为整个实验任务的主题框架,并逐步将其他的功能函数融合进来。
在确定了整体的方向后,下一步便是对学生信息的采集,主要是图像和声音。
通过手机和PC机顺利的完成了信息采集。
但采集来的信息并不能直接使用,需将其转换成相应的机器能够识别的数字信息。
在老师提供的软件和同学提供的帮助下,实习所需的信息整体已准备完毕。
2.功能函数植入
因为使用了3.7_uCOS_all_test实验程序,所以在实现图片及学生信息显示时并未遇到太多问题。
主要的难点就在声音的实现程序7.3_IIS_Test的植入上。
首先需将其最主要的文件iis_test.c文件加入工程中,其次就是各种头文件。
但因为其本身带来的文件与工程中已有文件重名,故而一些文件添加不了,导致函数无法构建。
之后只得将一些语句单独粘贴到对应的文件中,这个过程非常繁复和枯燥,且中间不停的出现各种变量未定义的情况。
所幸的是后来都意义解决了,也最终能够在软件中构建成功了。
3.函数分析
主程序部分:
intmain()
{
sys_init();
//Initials3c2410'sClock,Interrupt,PortandUART
//iis_test();
//iis_play_wave(intnTimes,UINT8T*pWavFile,intnSoundLen);
while
(1)
{
color_lcd_test();
}
}
图片图片更新部分:
全屏刷新:
voidBitmapViewTft16Bit_800480(UINT8T*pBuffer)
{
UINT32Ti,j;
UINT32T*pView=(UINT32T*)frameBuffer16BitTft800480;
for(i=0;i{
for(j=0;j{
pView[j]=((*(pBuffer+1))<<24)+((*(pBuffer))<<16)+((*(pBuffer+3))<<8)+(*(pBuffer+2));
pBuffer+=4
}
pView+=LCD_XSIZE_TFT_800480;
}
}
小图片局部刷新:
voidliuyuelin(UINT8T*pBuffer,UINT8Tx,UINT8Ty)
{
UINT32Ti,j;
UINT32T*pView=(UINT32T*)frameBuffer16BitTft800480
pView+=800*y+x;
pBuffer+=6;
for(i=0;i<320;i++)
{
for(j=0;j<240/2;j++)
{
pView[j]=((*(pBuffer+1))<<24)+((*(pBuffer))<<16)+((*(pBuffer+3))<<8)+(*(pBuffer+2));
pBuffer+=4;
}
pView+=LCD_XSIZE_TFT_800480;
}
}
这段程序是在原有程序的基础上改写的,重点改写的是Task2和Task3。
将Task2中的图片显示换成采集到的学生信息,又通过调用Lcd_DspHz24()和Lcd_DspAscII8x16()函数来实现在液晶屏上显示汉字和数字。
这两个函数的调用比较容易只需要给出列坐标、行坐标、颜色、内容即可在液晶屏上实现理想结果。
lcd_clr_rect()函数主要实现的是将给定区域填充为一种颜色,当然本任务中将其填充为白色,则实现了清屏的功能。
因为其刷新缓慢,故弃之不用。
通过使用EmbestEduKit-IV实验板的彩色液晶屏(800*480)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写任务函数在uC/OS-II系统中实现位图显示。
在uC/OS-II中建立五个任务Tast1和Tast2,其中Tast1顺序熄灭四个LED,延迟一会在顺序点亮四个LED。
Tast2在LCD屏幕上循环显示三幅图片,并打印一些文字信息和背景音乐。
过使用EmbestEduKit-III实验板的256色彩色液晶屏(320x240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现:
画出多个矩形框;显示ASCII字符;显示汉字字符;显示彩色位图。
使用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线,给实验平台重新上电,程序将自动运行。
部分程序图:
工程文件总揽
串口通信实验:
六、实习体会
通过一周的嵌入式实习,使我对嵌入式这门课有了更深的了解,也学到了很多,也提高了我的动手能力。
也让我们对这学科有了更一步的了解,以前我们学习的只是课本知识,没有动手的机会,我喜欢编程软件,喜欢专研,喜欢在错误中寻找对的道路。
及时在实习中会涉及到一个很现实的问题,如我们怎么把LCD图片文件或者IIS声音文件转换成.C文件,这也是我们实习的中心问题,之后通过Image2LcdV1.1软件和转换IIS声音文件的工具ProcBmp.exe来解决这个问题,我在转码过程中遇到很多问题,比如图片大小不合适,造成转码不成功,图片显示不对,声音文件过大,声音输出不成功等,经过一次次的失败,一次次的尝试,在慢慢的摸索中一点点向目的靠近,最终在老师和同学们的帮助下与组员合作完成实习。
我很享受失败后成功的那份喜悦,我很珍惜。
感谢这次实习,让我明白专业知识的同时选择了自己未来的道路。
七、参考文献
《ARM9嵌入式系统设计与开发应用》熊茂华、杨震伦编著清华大学出版社
《ARM9嵌入式系统设计与开发教程》于明编著电子工业出版社
《Linux嵌入式系统教程》马忠梅北京航空航天大学出版社