学 生 实 习 报 告
实 习 名 称 院 部 名 称 专 业 班 级 学 生 姓 名 学 号 实 习 地 点 指 导 教 师
实习起止时间:2011年 7月 4日至2011年 7月29日
成绩
实习报告 前言 中软国际有限公司(中软国际)是根植中国、服务全球的IT服务提供商,致力于为遍及全球的客户提供全面的服务,打造中国智造综合平台。中软国际总部位于北京,在美国、日本、香港以及中国大陆25个主要城市设有35家分子公司或办事处,员工突破10000人。年营业额逾10亿元人民币(2007财年)。2007年和2008年中软国际对欧美软件外包业务位列全国第一(IDC统计数据)。 集团业务涵盖以咨询为驱动的解决方案、以专业化为准则的ITO和BPO外包服务和以人才供链为导向的培训服务,包括咨询服务、软件开发、系统集成、软件测试、软件本地化、企业应用平台建设与维护、IT服务外包以及业务流程外包。 凭借集团的全球分布,中软国际能够充分运用全球资源和自身领先的技术实力帮助客户应对不断快速变化的商业挑战。凭借中软国际在中国市场所拥有的独特领导地位和全球提交能力,除能为客户提供“传统”外包服务及信息解决方案外,还能以其国内、海外市场的互动能力帮助客户在中国或海外开拓新的业务机会。 一、 实习目的
1、掌握嵌入式微处理器的结构与原理 2、熟悉并掌握嵌入式Linux操作系统的操作 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号江苏软件外包产业园处子座B座 四、实习单位和部门
实习单位:无锡中软国际信息技术培训有限公司 实习部门:无锡中软国际信息技术培训有限公司 五、 实习内容
来到中软国际,主要实习方向为嵌入式开发,细化为LCD驱动开发。 所谓嵌入式系统是一台特殊用途的计算机,该计算机由它控制的设备完全封装。驱动这些系统的软件称为嵌入式软件。通用个人计算机可以执行多个任务,接受新的任务,并可由用户编程;而嵌入式系统有特定的需求,只能执行有限数量的预定义任务,嵌入式系统的优势在于,它们可以进行优化来进一步改善性能,并可以减小规模和成本。由于存在这些优势,嵌入式系统的使用越来越普及,因而使日常生活的各个方面(包括通讯、娱乐和工业控制系统)得到充分的改善。 为了成功的进行嵌入式开发,我们做了如下准备:C语言的强化,linux系统下的操作。 linux常用命令: cd【目录】: 切换到指定的目录,可以是相对路径或者是绝对路径。绝对路径是以“ / ”开头,从目录的最顶层开始列出目录路径。相对路径不用“ / ”开头,只列出当前工作目录以下的目录路径。 ls【选项】【文件目录列表】:显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。 mkdir【选项】 路径: “路径”可以是一系列,此时若路径中的目录不存在,则系统自动创建那些不存在的目录。 Pwd:显示的是当前工作目录的绝对路径。 cp【选项】源文件 目标文件或目标目录 mv【选项】 文件列表 目录 rm【选项】 文件列表:可从文件系统中删除文件及整个目录。 cat【选项】文件列表:用来将几个文件的内容相连接,并显示到终端上。 Clear:清除屏幕上的信息。 kill进程号:删除执行中的进程。 tar [选项] 文件或者目录:文件打包解包。 ifconfig网络接口【选项】【地址】:配置网络接口的地址、网络掩码等。 gcc[选项]要编译的文件 [选项] [目标文件]:编译可执行文件。 (2)在VMware中安装Linux,New—>Virtual Machine…->选择“custom”下一步->下一步,出现的界面中选择安装路径,必须注意待安装盘有足够的空间。因为后面安装的RedHat系统是桌面版本,它对内存还是有一定的要求,在机器内存较大的情况下,尽可能给RedHat多分配一些内存,此处分配的内存是256MB。下面可以选择默认选择,最后单击”Close”,此时虚拟机已经建立起来了。 接下来光盘配置使用我们下载的RedHat是iso文件,单击OK按钮。下面就可以启动安装RedHat系统了。首先进行语言的选择,选择中文,并单击前进按钮。接下来选择时区,此处选择上海时区,单击前进按钮。在进行用户帐户和主机命名设置时,我用“zxy”作为登录名且同时作为这台计算机的名称。安装向导的最后一步将用户安装过程中所做过的配置信息再次反馈给用户,确认信息。最后点击“安装”即可。 准备工作做好之后,开始进行嵌入式开发,以下是开发过程中所做的练习。 作业一(大小端) #include typedef union tag_MYUNION {char ch[4]; int value; }MYUNION; int main() {MYUNION myunion; myunion.value=0x12345678; if(myunion.ch[0]==0x12) printf("big endian\n"); else myunion.ch[0]==0x78; printf("little endian\n"); return 0;} 作业二(多线程) #include #include #include
int main() { pid_t pid; char *message; int n;
printf("fork program starting\n"); 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,%d\n",n,n+1); sleep(1); } exit(0); } 作业三(大小字母输出及ASC码) #include #include #include
int main() { pid_t pid; char *message; int n;
printf("fork program starting\n"); 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,%d\n",n,n+1); sleep(1); } exit(0); } 作业四(字母排序) #include #include int main() { int j=65; int i; char a[27]; char *b; char readbuf[27]={0}; char readbuf1[27]={0}; for(i=0;i<26;i++) { a[i]=j; j++; } a[i]='\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; }