版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成绩 学 生 实 习 报 告实 习 名 称 院 部 名 称 专 业 班 级 学 生 姓 名 学 号 实 习 地 点 指 导 教 师 实习起止时间:2011年 7月 4日至2011年 7月29日 实习报告前言中软国际有限公司(中软国际)是根植中国、服务全球的IT服务提供商,致力于为遍及全球的客户提供全面的服务,打造中国智造综合平台。中软国际总部位于北京,在美国、日本、香港以及中国大陆25个主要城市设有35家分子公司或办事处,员工突破10000人。年营业额逾10亿元人民币(2007财年)。2007年和2008年中软国际对欧美软件外包业务位列全国第一(IDC统计数据)。集团业务涵盖以咨询为驱动的解决
2、方案、以专业化为准则的ITO和BPO外包服务和以人才供链为导向的培训服务,包括咨询服务、软件开发、系统集成、软件测试、软件本地化、企业应用平台建设与维护、IT服务外包以及业务流程外包。凭借集团的全球分布,中软国际能够充分运用全球资源和自身领先的技术实力帮助客户应对不断快速变化的商业挑战。凭借中软国际在中国市场所拥有的独特领导地位和全球提交能力,除能为客户提供“传统”外包服务及信息解决方案外,还能以其国内、海外市场的互动能力帮助客户在中国或海外开拓新的业务机会。一、 实习目的1、掌握嵌入式微处理器的结构与原理2、熟悉并掌握嵌入式Linux操作系统的操作3、熟悉嵌入式软件开发流程并至少做一个嵌入式
3、软件项目。二、 实习时间2010年07月04号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号江苏软件外包产业园处子
4、座B座四、实习单位和部门 实习单位:无锡中软国际信息技术培训有限公司实习部门:无锡中软国际信息技术培训有限公司五、 实习内容来到中软国际,主要实习方向为嵌入式开发,细化为LCD驱动开发。所谓嵌入式系统是一台特殊用途的计算机,该计算机由它控制的设备完全封装。驱动这些系统的软件称为嵌入式软件。通用个人计算机可以执行多个任务,接受新的任务,并可由用户编程;而嵌入式系统有特定的需求,只能执行有限数量的预定义任务,嵌入式系统的优势在于,它们可以进行优化来进一步改善性能,并可以减小规模和成本。由于存在这些优势,嵌入式系统的使用越来越普及,因而使日常生活的各个方面(包括通讯、娱乐和工业控制系统)得到充分的改
5、善。为了成功的进行嵌入式开发,我们做了如下准备:C语言的强化,linux系统下的操作。linux常用命令:cd【目录】: 切换到指定的目录,可以是相对路径或者是绝对路径。绝对路径是以“ / ”开头,从目录的最顶层开始列出目录路径。相对路径不用“ / ”开头,只列出当前工作目录以下的目录路径。ls【选项】【文件目录列表】:显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。mkdir【选项】 路径: “路径”可以是一系列,此时若路径中的目录不存在,则系统自动创建那些不存在的目录。Pwd:显示的是当前工作目录的绝对路径。cp【选项】源文件 目标文件或目标
6、目录mv【选项】 文件列表 目录rm【选项】 文件列表:可从文件系统中删除文件及整个目录。cat【选项】文件列表:用来将几个文件的内容相连接,并显示到终端上。Clear:清除屏幕上的信息。 kill进程号:删除执行中的进程。tar 选项 文件或者目录:文件打包解包。ifconfig网络接口【选项】【地址】:配置网络接口的地址、网络掩码等。gcc选项要编译的文件 选项 目标文件:编译可执行文件。(2)在VMware中安装Linux,New>Virtual Machine->选择“custom”下一步->下一步,出现的界面中选择安装路径,必须注意待安装盘有足够的空间。因为后面安装
7、的RedHat系统是桌面版本,它对内存还是有一定的要求,在机器内存较大的情况下,尽可能给RedHat多分配一些内存,此处分配的内存是256MB。下面可以选择默认选择,最后单击”Close”,此时虚拟机已经建立起来了。接下来光盘配置使用我们下载的RedHat是iso文件,单击OK按钮。下面就可以启动安装RedHat系统了。首先进行语言的选择,选择中文,并单击前进按钮。接下来选择时区,此处选择上海时区,单击前进按钮。在进行用户帐户和主机命名设置时,我用“zxy”作为登录名且同时作为这台计算机的名称。安装向导的最后一步将用户安装过程中所做过的配置信息再次反馈给用户,确认信息。最后点击“安装”即可。准
8、备工作做好之后,开始进行嵌入式开发,以下是开发过程中所做的练习。作业一(大小端)#include<stdio.h>typedef union tag_MYUNIONchar 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
9、 <sys/types.h>#include <unistd.h>#include <stdio.h>int main()pid_t 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);message=&quo
10、t;parent:"n =100;break;for(n=1;n<100;n+=2) printf("%s",message);printf("%d,%dn",n,n+1);sleep(1);exit(0);作业三(大小字母输出及ASC码)#include <sys/types.h>#include <unistd.h>#include <stdio.h>int main()pid_t pid;char *message;int n;printf("fork program startingn
11、");pid = fork();switch(pid) case -1:perror("fork failed");exit(1);case 0:message="child:"n =100;break;default:sleep(1);message="parent:"n =100;break;for(n=1;n<100;n+=2) printf("%s",message);printf("%d,%dn",n,n+1);sleep(1);exit(0);作业四(字母排序)#in
12、clude<stdio.h>#include<string.h>int main()int j=65;int i;char a27;char *b;char readbuf27=0;char readbuf127=0;for(i=0;i<26;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");
13、return 0;fwrite(buf,strlen(buf),1,fp);fclose(fp);fp=fopen("zmpx.txt","r");if(fp=NULL)printf("file 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.
14、txt","r");if(fp=NULL)printf("file open failed.n");return 0;fread(readbuf,strlen(buf),1,fp);for(i=0;i<26;i+) fseek(fp,(-i-1),SEEK_END);fread(b,1,1,fp);readbuf1i=*b;fp2=fopen("daoxu.txt","w");fwrite(readbuf1,strlen(buf),1,fp2);fclose(fp2);当然,嵌入式开发仅仅学习C语言
15、是远远不够的。于是在我们已有的单片机基础之上,又深入学习了汇编语言。从而,嵌入式开发的准备工作,我们已基本完成。在接下来的两周里,我们开始接触TQ2440开发板。刚接触开发板,我们自己对照使用手册开始接线。然后安装USB驱动,虚拟光驱,还有像Source Insight 3.5;CodeWarrior for ARM;SecureCRT Developer Suite;TFTP Server以及DNW这些软件。首先我们做的有:1.SecureCRT的设置。2.设置DNW软件。3.安装USB下载驱动安装完毕USB下载驱动后,打开DNW软件,就可以在DNW软件的顶上看到USB连接OK的字样同时可以
16、在“设备管理器”看到刚刚安装的USB驱动此时就可以使用USB下载u-boot、操作系统和文件系统了。4.安装GIVEIO驱动,Step 1:首先打开PC的“控制面板”界面,双击“添加硬件”图标,进入到添加硬件的界面。Step 2:然后点击“下一步”继续。系统会自动搜索硬件的。Step 3:过一会会完成搜索,进入到下面第二图的界面,选择“是,我已 经连接了此硬件”。Step 4:然后点击“下一步”继续出现“安装向导”,这里选择“安装我手动从列表选择的硬件(高级)”选项。Step 5:然后点击“下一步”继续。在硬件列表中找到“端口(COM和LPT)”选项,然后点击“下一步”继续。Step 6:点击
17、“从磁盘安装”选项后继续。Step 7:从“磁盘安装”界面中选择“浏览”选项。Step 8:然后定位到刚才的GIVEIO目录下面,找到“GIVEIO.inf”文件,点击“打开”继续。Step 9:然后回到“从磁盘安装”界面,点击“确定”继续回到驱动设备安装的界面,选择“giveio”设备后,点击“下一步”继续出现“向导准备安装您的硬件”界面中:。Step 10:点击“下一步”继续然后出现驱动未经过微软认证的界面,点击“仍然继续”选项继续Step 11:点击“完成”选项后就完成驱动安装了。Step 12:在“设备管理器”中您可以看到新安装的驱动。5.TFTP代理软件设置至此,软件安装,设置基本完
18、成。接下来就是烧写驱动代码和图片代码。由于代码过于庞大,仅截图一段,仅供参考。/*在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 = x0 ; x < h ; x+ )c = bmpp+1 | (bmpp<<8) ;if ( ( (x0+x) < SCR_XSIZE_TFT) && ( (y0+y) < SCR_Y
19、SIZE_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( (0x00<<11) | (0x00<<5) | (0x00) ); #define LCD_BLANK12#define C_UP( LCD_XSIZE_TFT - LCD_BLANK*2 )#define C_RIGHT( LCD_XSIZE_TFT - LCD_BLA
20、NK*2 )#define V_BLACK( ( LCD_YSIZE_TFT - LCD_BLANK*4 ) / 6 )Glib_FilledRectangle( LCD_BLANK, LCD_BLANK, ( LCD_XSIZE_TFT - LCD_BLANK ), ( LCD_YSIZE_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_BL
21、ACK*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*2 + V_BLACK*2), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*3),0xf800);/
22、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), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*5),0xf81f);/fill a Rectangle
23、 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-LCD_BLANK), 0x0000 ) ;Glib_Line( LCD_BLANK,(LCD_YSIZE_TFT-LCD_BLANK)
24、, (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( (0x00<<11) | (0x00<<5) | (0x00) ) ;/clear scr
25、eenUart_Printf( "nDisplay Black! Press any key to continue!n" );Uart_Getch() ;/wait uart inputLcd_ClearScr( (0x1f<<11) | (0x3f<<5) | (0x1f) ) ;/clear screenUart_Printf( "Display White! Press any key to continue!n" );Uart_Getch() ;/wait uart inputLcd_ClearScr( (0x00<
26、;<11) | (0x00<<5) | (0x1f) ) ;/clear screenUart_Printf( "Display Blue! Press any key to continue!n" );Uart_Getch() ;/wait uart inputLcd_ClearScr( (0x00<<11) | (0x3f<<5) | (0x00) ) ;/clear screenUart_Printf( "Display Green! Press any key to continue!n" );Uart_
27、Getch() ;/wait uart inputLcd_ClearScr( (0x1f<<11) | (0x00<<5) | (0x00) ) ;/clear screenUart_Printf( "Display Red! Press any key to continue!n" );Uart_Getch() ;/wait uart input/*Lcd_ClearScr( (0x00<<11) | (0x3f<<5) | (0x1f) ) ;/clear screenUart_Printf( "LCD clea
28、r screen is finished! press any key to continue!n" );Uart_Getch() ;/wait uart inputLcd_ClearScr( (0x1f<<11) | (0x00<<5) | (0x1f) ) ;/clear screenUart_Printf( "LCD clear screen is finished! press any key to continue!n" );Uart_Getch() ;/wait uart inputLcd_ClearScr( (0x1f<
29、<11) | (0x3f<<5) | (0x00) ) ;/clear screenUart_Printf( "LCD clear screen is finished! press any key to continue!n" );Uart_Getch() ;/wait uart input*/Lcd_ClearScr(0xffff);/fill all screen with some color#define LCD_BLANK12#define C_UP( LCD_XSIZE_TFT - LCD_BLANK*2 )#define C_RIGHT(
30、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_YSIZE_TFT - LCD_BLANK ),0x0000);/fill a Rectangle with some colorGlib_FilledRectangle( (LCD_BLANK*2), (LCD_BLANK*2 + V_BLACK*0), (C_RIGH
31、T), (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*2 + V_BLACK*2), (C_RIGHT), (LCD_BLANK*2
32、 + 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), (C_RIGHT), (LCD_BLANK*2 + V_BLACK*5),0x
33、f81f);/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-LCD_BLANK), 0x0000 ) ;Glib_Line( LCD_BLANK,(L
34、CD_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 ) ;#if(LCD_Type = LCDW43)Uart_Printf( "Press any key to continue!n" );Uart_Getch() ;/Any Key To NextPaint_Bm
35、p(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);#endifUart_Printf("LCD Test Complete!n");Uart_Printf("Press any key to quit!n");Uart_Getch();/*插入组
36、号“3”的代码。Lcd_ClearScr( (0x00<<11) | (0x00<<5) | (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,310,226,0xf800);Glib_FilledRectangle(170,206,310,226,0xf800);由于插入图片的代码过于庞大在此就补贴出了。插入图片的具体方法是:1.将已有图片用PS等软件转换成像素为480*272大小的BMP文件。2.用BMP图片转换软件将BMP图文件转换成.c文件。3.讲图文件代码插入图片显示代码段中。4.保存,编译,测试,运行成功。至此项目开发内容基本完成,接下来是完成项目的文档,包括:项目计划概要设计说明需求规格说明详细设计说明测试问题跟踪在项目验收过后,一个月的实习内容,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 武汉校外合同范例
- 出售电脑分切机合同范例
- 天津滨海汽车工程职业学院《有机合成化学》2023-2024学年第一学期期末试卷
- 新型叉车采购合同范例
- 天府新区信息职业学院《体育-拓展训练》2023-2024学年第一学期期末试卷
- 合作拿提成合同范例
- 用车劳动合同范例
- 分期订购房车合同范例
- 书出版合同范例 单位
- 园区总承包施工合同范例
- 2024版:离婚法律诉讼文书范例3篇
- 一专科一特色护理汇报
- 小学体育新课标培训
- 2024年国考申论真题(行政执法卷)及参考答案
- 江苏省南通市2024-2025学年高一上学期11月期中英语试题(无答案)
- 2024年应急预案知识考试题库及答案(共60题)
- 2024年11月绍兴市2025届高三选考科目诊断性考试(一模) 技术试卷(含答案详解)
- 技术回转窑液压挡轮常见问题及修复方案
- 胃穿孔疑难病例讨论
- 【数学】小学四年级口算题大全(10000道)
- 《监理单位工作质量考评手册》装订版
评论
0/150
提交评论