实习报告_嵌入式

上传人:mar****e5 文档编号:124277545 上传时间:2022-07-24 格式:DOCX 页数:17 大小:33.15KB
收藏 版权申诉 举报 下载
实习报告_嵌入式_第1页
第1页 / 共17页
实习报告_嵌入式_第2页
第2页 / 共17页
实习报告_嵌入式_第3页
第3页 / 共17页
资源描述:

《实习报告_嵌入式》由会员分享,可在线阅读,更多相关《实习报告_嵌入式(17页珍藏版)》请在装配图网上搜索。

1、成绩念阪科坟卑尻学生实习报告实习名称院部名称专业班级学生姓名学号实习地点指导教师实习起止时间:2011年7月4日至2011年7月29日实习报告刖言中软国际有限公司(中软国际)是根植中国、服务全球的IT服务提供商, 致力于为遍及全球的客户提供全面的服务,打造中国智造综合平台。中软国际总 部位于北京,在美国、日本、香港以及中国大陆25个主要城市设有35家分子公 司或办事处,员工突破10000人。年营业额逾10亿元人民币(2007财年)。2007 年和2008年中软国际对欧美软件外包业务位列全国第一(IDC统计数据)。集团业务涵盖以咨询为驱动的解决方案、以专业化为准则的ITO和BPO外 包服务和以人

2、才供链为导向的培训服务,包括咨询服务、软件开发、系统集成、 软件测试、软件本地化、企业应用平台建设与维护、IT服务外包以及业务流程 外包。凭借集团的全球分布,中软国际能够充分运用全球资源和自身领先的技术实 力帮助客户应对不断快速变化的商业挑战。凭借中软国际在中国市场所拥有的独 特领导地位和全球提交能力,除能为客户提供“传统”外包服务及信息解决方案 外,还能以其国内、海外市场的互动能力帮助客户在中国或海外开拓新的业务机 会。一、实习目的1、掌握嵌入式微处理器的结构与原理2、熟悉并掌握嵌入式Linux操作系统的操作3、熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。二、实习时间2010年07月0

3、4号07月29号,具体安排如下表:第一周1、嵌入式技术发展现在及未来。2、实习任务布置。3、实习嵌入式硬件平台环境熟悉。4、C语言基础强化。第二周1、Linux程序设计。2、多进程和多线程模式下的程序设计。3、系统资源控制程序设计。第三周1、ARM的体系结构与汇编语言。2、ARM的GNU交叉编译工具和ADS应用与调试。3、LCD驱动原理的讲解。4、PWM驱动原理的讲解。第四周1、嵌入式Linux 下驱动开发。2、TFT LCD驱动开发。动手实验:驱动程序的编写与调试。三、实习地点江苏省无锡市无锡新区新安镇震泽路5号江苏软件外包产业园处子座B座、实习单位和部门实习单位:无锡中软国际信息技术培训有

4、限公司实习部门:无锡中软国际信息技术培训有限公司五、实习内容来到中软国际,主要实习方向为嵌入式开发,细化为LCD驱动开发。所谓嵌入式系统是一台特殊用途的计算机,该计算机由它控制的设备完全封装。 驱动这些系统的软件称为嵌入式软件。通用个人计算机可以执行多个任务,接受 新的任务,并可由用户编程;而嵌入式系统有特定的需求,只能执行有限数量的 预定义任务,嵌入式系统的优势在于,它们可以进行优化来进一步改善性能,并 可以减小规模和成本。由于存在这些优势,嵌入式系统的使用越来越普及,因而 使日常生活的各个方面(包括通讯、娱乐和工业控制系统)得到充分的改善。为了成功的进行嵌入式开发,我们做了如下准备:C语言

5、的强化,linux系 统下的操作。linux常用命令:cd【目录】:切换到指定的目录,可以是相对路径或者是绝对路径。绝对路 径是以“/”开头,从目录的最顶层开始列出目录路径。相对路径不用“ / ” 开头,只列出当前工作目录以下的目录路径。ls【选项】【文件目录列表】:显示指定工作目录中所包含的内容的指令是 ls,要说明的是ls命令列出文件的名字,而不是文件的内容。mkdir【选项】路径:“路径”可以是一系列,此时若路径中的目录不存在, 则系统自动创建那些不存在的目录。Pwd:显示的是当前工作目录的绝对路径。cp【选项】源文件 目标文件或目标目录mv【选项】文件列表 目录rm【选项】文件列表:可

6、从文件系统中删除文件及整个目录。cat【选项】文件列表:用来将几个文件的内容相连接,并显示到终端上。Clear:清除屏幕上的信息。kill进程号:删除执行中的进程。tar 选项文件或者目录:文件打包解包。ifconfig网络接口【选项】【地址】:配置网络接口的地址、网络掩码等。gcc选项要编译的文件选项目标文件:编译可执行文件。(2)在 VMware 中安装 Linux,NewVirtual Machine选择“custom” 下一步-下一步,出现的界面中选择安装路径,必须注意待安装盘有足够的空间。 因为后面安装的RedHat系统是桌面版本,它对内存还是有一定的要求,在机器 内存较大的情况下,

7、尽可能给RedHat多分配一些内存,此处分配的内存是256MB。 下面可以选择默认选择,最后单击”Close”,此时虚拟机已经建立起来了。接下来光盘配置使用我们下载的RedHat是iso文件,单击OK按钮。下面就可以 启动安装RedHat系统了。首先进行语言的选择,选择中文,并单击前进按钮。接 下来选择时区,此处选择上海时区,单击前进按钮。在进行用户帐户和主机命名 设置时,我用“ zxy ”作为登录名且同时作为这台计算机的名称。安装向导的最 后一步将用户安装过程中所做过的配置信息再次反馈给用户,确认信息。最后点 击“安装”即可。准备工作做好之后,开始进行嵌入式开发,以下是开发过程中所做的练习。

8、作业一(大小端)#includetypedef union tag_MYUNION(char ch4;int value;MYUNION;int main()(MYUNION myunion;myunion.value=0x12345678;if(myunion.ch0=0x12)printf(big endiann);else myunion.ch0=0x78;printf(little endiann);return 0;作业二(多线程)#include #include #include int main()(pid_t pid;char *message;int n;printf(fo

9、rk program startingn);pid = fork();switch(pid)(case -1:perror(fork failed);exit(1);case 0:message=child:;n =100;break;default:sleep(1); _ messageparent:;n =100;break;for(n=1;n100;n+=2)(printf(%s,message);printf(d,%dn,n,n+1);sleep(1);exit(0);作业三(大小字母输出及ASC码)#include #include #include int main()(pid_t

10、 pid;char *message;int n;printf(fork program startingn);pid = fork();switch(pid)(case -1:perror(fork failed);exit(1);case 0:message=child:;n =100;break;default:sleep(1); _ messageparent:;n =100;break;for(n=1;n100;n+=2)(printf(%s,message);printf(d,%dn,n,n+1);sleep(1);exit(0);作业四(字母排序)#include#include

11、int main()(int j=65;int i;char a27;char *b;char readbuf27=0;char readbuf127=0;for(i=0;i26;i+)(ai=j;j+;ai=0;FILE *fp;FILE *fp1;FILE *fp2;fp二fopen(zmpx.txt,w);char *buf=a;if(fp=NULL)( printf(file open failed.n); return 0;fwrite(buf,strlen(buf),1,fp);fclose(fp);fp二fopen(zmpx.txt,r);if(fp=NULL)(printf(f

12、ile open failed.n);return 0;fread(readbuf,strlen(buf),1,fp);fp1=fopen(zhengxu.txt,w);fwrite(readbuf,strlen(buf),1,fp1);fclose(fp1);fp二fopen(zmpx.txt,r);if(fp=NULL)(printf(file open failed.n);return 0;fread(readbuf,strlen(buf),1,fp);for(i=0;i26;i+)( fseek(fp,(-i-1),SEEK_END);fread(b,1,1,fp);readbuf1i

13、=*b;fp2=fopen(daoxu.txt,w);fwrite(readbuf1,strlen(buf),1,fp2);fclose(fp2);当然,嵌入式开发仅仅学习C语言是远远不够的。于是在我们已有的单片机基础 之上,又深入学习了汇编语言。从而,嵌入式开发的准备工作,我们已基本完成。在接下来的两周里,我们开始接触TQ2440开发板。刚接触开发板,我们自 己对照使用手册开始接线。然后安装USB驱动,虚拟光驱,还有像Source Insight 3.5; CodeWarrior for ARM; SecureCRT Developer Suite; TFTP Server 以及 DNW这些

14、软件。首先我们做的有:l.SecureCRT 的设置。2. 设置DNW软件。3. 安装USB下载驱动安装完毕USB下载驱动后,打开DNW软件,就可以在DNW 软件的顶上看到USB连接OK的字样同时可以在“设备管理器”看到刚刚安装的 USB驱动此时就可以使用USB下载u-boot、操作系统和文件系统了。4. 安装GIVEIO驱动,Step 1:首先打开PC的“控制面板”界面,双击“添加硬件”图标,进入到添 加硬件的界面。Step 2:然后点击“下一步”继续。系统会自动搜索硬件的。Step 3:过一会会完成搜索,进入到下面第二图的界面,选择“是,我已经连接 了此硬件”。Step 4:然后点击“下一

15、步”继续出现“安装向导”,这里选择“安装我手动从 列表选择的硬件(高级)”选项。Step 5:然后点击“下一步”继续。在硬件列表中找到“端口(COM和LPT)”选 项,然后点击“下一步”继续。Step 6:点击“从磁盘安装”选项后继续。Step 7:从“磁盘安装”界面中选择“浏览”选项。Step 8:然后定位到刚才的GIVEIO目录下面,找到“GIVEIO.inf ”文件,点击 “打开”继续。Step 9:然后回到“从磁盘安装”界面,点击“确定”继续回到驱动设备安装的 界面,选择“ giveio ”设备后,点击“下一步”继续出现“向导准备安装您的硬 件”界面中:。Step 10:点击“下一步”

16、继续然后出现驱动未经过微软认证的界面,点击“仍 然继续”选项继续Step 11:点击“完成”选项后就完成驱动安装了。Step 12 :在“设备管理器”中您可以看到新安装的驱动。5. TFTP代理软件设置至此,软件安装,设置基本完成。接下来就是烧写驱动代码和图片代码。由于代码过于庞大,仅截图一段,仅供参 考。* 在LCD屏幕上指定坐标点画一个指定大小的图片*/ void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp)(int x,y;U32 c;int p = 0;for( y = y0 ; y l ; y+ )(for( x = x

17、0 ; x h ; x+ )(c = bmpp+1 | (bmpp8);if ( ( (x0+x) SCR_XSIZE_TFT) & ( (y0+y) SCR_YSIZE_TFT) LCD_BUFFERy0+yx0+x = c ;p = p + 2 ;*/void Lcd_TFT_Init(void)(Lcd_Init();Lcd_PowerEnable(0, 1);Lcd_EnvidOnOff(1); /turn on vedioLcd_ClearScr( (0x0011) | (0x005) | (0x00);#define LCD_BLANK 12#define C_UP ( LCD_X

18、SIZE_TFT - LCD_BLANK*2 )#define C_RIGHT( LCD_XSIZE_TFT - LCD_BLANK*2 )#define V_BLACK( ( LCD_YSIZE_TFT - LCD_BLANK*4 ) / 6 )Glib_FilledRectangle( LCD_BLANK, LCD_BLANK, ( LCD_XSIZE_TFT -/fillLCD_BLANK ), ( LCD_YSIZE_TFT - LCD_BLANK ),0x0000);Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2

19、), (LCD_BLANK*2 + V_BLACK*0), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*1),0x001f); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*1), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*2),0x07e0); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*

20、2 + V_BLACK*2), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*3),0xf800); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*3), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*4),0xffe0); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*4)

21、, (C_RIGHT), (LCD_BLANK*2 + V_BLACK*5),0xf81f); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*5), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*6),0x07ff); /fill a Rectangle with some colorGlib_Line( LCD_BLANK,LCD_BLANK, (LCD_XSIZE_TFT-LCD_BLANK), (LCD_YSIZE_TFT-LC

22、D_BLANK), 0x0000 ) ;Glib_Line(LCD_BLANK,(LCD_YSIZE_TFT-LCD_BLANK),(LCD_XSIZE_TFT-LCD_BLANK), LCD_BLANK, 0x0000 );Glib_Line( (LCD_XSIZE_TFT/2),(LCD_BLANK*2 + V_BLACK*0), (LCD_XSIZE_TFT/2), (LCD_BLANK*2 + V_BLACK*6), 0x0000 ); void Lcd_TFT_Test( void )(Uart_Printf(nTest TFT LCD!n);Lcd_ClearScr( (0x001

23、1) | (0x005) | (0x00) ); /clearscreenUart_Printf( nDisplay Black! Press any key to continue!n); Uart_Getch() ; /wait uart inputLcd_ClearScr( (0x1f11) | (0x3f5) | (0x1f) ); /clearscreenUart_Printf( Display White! Press any key to continue!n); Uart_Getch() ; /wait uart inputLcd_ClearScr( (0x0011) | (0

24、x005) | (0x1f) ); /clearscreenUart_Printf( Display Blue! Press any key to continue!n); Uart_Getch() ; /wait uart inputLcd_ClearScr( (0x0011) | (0x3f5) | (0x00) ); /clearscreenUart_Printf( Display Green! Press any key to continue!n ); Uart_Getch() ; /wait uart inputLcd_ClearScr( (0x1f11) | (0x005) |

25、(0x00) ); /clearscreenUart_Printf( Display Red! Press any key to continue!n);Uart_Getch() ; /wait uart input/* Lcd_ClearScr( (0x0011) | (0x3f5) | (0x1f) ); /clearscreenUart_Printf( LCD clear screen is finished! press any key to continue!n );Uart_Getch() ; /wait uart inputLcd_ClearScr( (0x1f11) | (0x

26、005) | (0x1f) ); /clear screen Uart_Printf( LCD clear screen is finished! press any key to continue!n);Uart_Getch() ; /wait uart inputLcd_ClearScr( (0x1f11) | (0x3f5) | (0x00) ); /clearscreenUart_Printf( LCD clear screen is finished! press any key to continue!n );Uart_Getch() ; /wait uart input*/Lcd

27、_ClearScr(0xffff); /fill all screen with some color#define LCD_BLANK 12#define C_UP ( LCD_XSIZE_TFT - LCD_BLANK*2 )#define C_RIGHT( LCD_XSIZE_TFT - LCD_BLANK*2 )#define V_BLACK( ( LCD_YSIZE_TFT - LCD_BLANK*4 ) / 6 )Glib_FilledRectangle( LCD_BLANK, LCD_BLANK, ( LCD_XSIZE_TFT - LCD_BLANK ), ( LCD_YSIZ

28、E_TFT - LCD_BLANK ),0x0000); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*0), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*1),0x001f); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*1), (C_RIGHT), (LCD_BLANK*2 + V_BLA

29、CK*2),0x07e0); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*2), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*3),0xf800); /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*3), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*4),0xffe0);

30、 /fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*4), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*5),0xf81f); /fill a Rectangle with some color Glib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*5), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*6),0x07ff); /fill a Rect

31、angle with some colorGlib_Line( LCD_BLANK,LCD_BLANK, (LCD_XSIZE_TFT-LCD_BLANK), (LCD_YSIZE_TFT-LCD_BLANK), 0x0000 );Glib_Line(LCD_BLANK,(LCD_YSIZE_TFT-LCD_BLANK),(LCD_XSIZE_TFT-LCD_BLANK), LCD_BLANK, 0x0000 );Glib_Line( (LCD_XSIZE_TFT/2),(LCD_BLANK*2 + V_BLACK*0), (LCD_XSIZE_TFT/2), (LCD_BLANK*2 + V

32、_BLACK*6), 0x0000 );#if(LCD_Type = LCDW43)Uart_Printf( Press any key to continue!n);Uart_Getch() ; /Any Key To NextPaint_Bmp(0, 0, 480, 272, TQ_LOGO_480272);#elif(LCD_Type = VGA)Uart_Printf( Press any key to continue!n);Uart_Getch() ; /Any Key To NextPaint_Bmp(0, 0, 640, 480, TQ_LOGO_640480);#endifU

33、art_Printf(LCD Test Complete!n);Uart_Printf(Press any key to quit!n);Uart_Getch();/*插入组号“3”的代码。Lcd_ClearScr( (0x0011) | (0x005) | (0x1f);Glib_FilledRectangle(170,46,310,66,0xf800);Glib_FilledRectangle(290,46,310,146,0xf800);Glib_FilledRectangle(170,126,310,146,0xf800);Glib_FilledRectangle(290,146,31

34、0,226,0xf800);Glib_FilledRectangle(170,206,310,226,0xf800);由于插入图片的代码过于庞大在此就补贴出了。插入图片的具体方法是:1.将已有图片用PS等软件转换成像素为480*272大小 的BMP文件。2. 用BMP图片转换软件将BMP图文件转换成.c文件。3. 讲图文件代码插入图片显示代码段中。4. 保存,编译,测试,运行成功。至此项目开发内容基本完成,接下来是完成项目的文档,包括: 项目计划 概要设计说明 需求规格说明 详细设计说明 测试问题跟踪在项目验收过后,一个月的实习内容,圆满结束。六、实习总结为期一个月的实习就要结束了,我在这一个

35、月的实习中学到了很多在课堂上 根本就学不到的知识,真是受益非浅。有一名话叫做:不经过风雨,怎么见彩虹?我想改一下:不真正进入社会, 怎能了解社会呢?中软国际位于江苏省无锡市国家软件园,该公司是国内大型综合性软件与 信息服务企业,具有极高的市场感召力和客户忠诚度,以领先的技术、丰富的经 验、精湛的服务在中国IT行业享有极高的声誉。这样的公司给我们学校电子信 息类的学生提供了难得的实习条件,在那里,公司的各种管理方法、流程和管理 者之间的上下层关系可以说是我们现实社会中一个缩影的充分体现,她为我们在 校的学生踏进社会提供了一个抢先一步踏进社会体验生活的可贵机会。刚开始在中软国际里实习第一个体会到的

36、就是一个字“累”,但后来慢 慢的习惯下来,因为刚从校园里走出来,没有经历过很大风吹雨打,可以说一直 以来在保护伞下走过,这次学校组织的实习生活可以给我真正体会到现实生活中 的酸、甜、苦、辣;但是我很高兴,因为在实习中到困难时,并没有后退,而是 勇敢地面对现实,向困难中挑战。实习磨炼了我的意志,使我现在的意志比实习 前坚强多,我真正体会到“苦尽甘来”的味道。在实习过程中还学会了很多东西:首先,第一个是懂得了什么叫做团队精神,一个班组要团结,不然的话 就有可能导致事情的失败。其次,我学会了沟通,学会处理好身边的人际关系,学会在苦中作乐的 技巧,我的工作是比较枯燥的,每天都反复的做哪份工作,如果没有

37、同身边的同 事沟通,处理好身边的人际关系,一个人是很孤独,同时在一个工位上工作时间 长了,前后工位之间将免不了有磨擦出现,处理不好,将影响我们的工作质量。 这就让我懂得了人际关系的重要性,一个好的人缘将会给我们的工作带来了无限 的方便和欢乐。其三在工作中学会了研究。在工作中,方法中的正确和方便性非常重要, 直接影响到代码实现的正确与否,在自己的岗位上做熟了,对自己所做的工作也 仔细研究起来,细心分析其方法,代码的缺点,自己优化出一个更加便捷简单的 代码来提高自己,真正充分体现出大学生的不同之处,体现了大学生的风采。其四,这次中软国际之旅给同学增进了不少友谊,加深了同学之间的感 情。在这陌生的地

38、方实习,意识到同学之间的帮助非常重要,大家紧密的团结在 一起、生活、工作有遇到什么问题都互相的关顾,加深了同学之间的友谊。通 过这次实习,让我成熟了很多。回想自己在这期间的工作学习情况,不尽如意。对此我思考过,学习经验自 然是一个因素,然而更重要的是心态的转变没有做到位。现在发现了这个不足之 处,应该还算是及时吧,因为我明白了何谓工作。在接下来的日子里,我会朝这 个方向努力,我相信自己能够把那些不该再存在的“特点”抹掉。对于我来说,这是我第一次走进公司,也是我第一次真正体验一份工作和感 受企业文化。感谢学校,给了我这次体验人生的机会。感谢中软国际,让我在这 次实习中学到了很多东西。向尊敬的老师、敬爱的校领导致敬!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!