太原科技大学
实习报告
专 业:电子信息工程
班 级:电子071501
学 号:200715020116
姓 名:
完成日期:2011-5-8
目 录
一.实习目的??????????????????????????2
二.公司简介??????????????????????????2
三.实习任务??????????????????????????3
四.实习内容??????????????????????????3
五.实习总结??????????????????????????7
六.参考文献??????????????????????????8
七.附录????????????????????????????8
指导教师:乔建华 徐登伟 邓修海
实习单位:北京凌阳爱普科技有限公司
1
一、实习目的
通过学习C语言基础与高级编程,熟练掌握指针、结构体、文件、链表的综合应用,精通C语言数组、函数、宏定义编程技巧,熟悉常用代码书写规范。并学习和了解嵌入式在生活中的重要作用和发展过程,熟练掌握s3c2440开发板的硬件体系结构,熟悉linux下的嵌入式编程流程,积累自己的软件编写经验,能够参与并实现一个真实和完整的嵌入式项目,为今后的学习和将从事的技术工作打下坚实的基础。
二、公司简介
(1)凌阳教育
凌阳教育是凌阳科技大学计划旗下品牌,从20xx年开始和全国高校开展校企合作,并专注于IT技术的培训和教育。20xx年底被评为“2008中国教育盛典”十大品牌IT教育机构。
凌阳教育是全国唯一原厂培训机构,学员全程以公司新人身份参加培训,遵守公司规章制度,实践企业项目开发流程,体验公司企业文化,让学员具备专业化的职业素质。
凌阳教育母公司凌阳科技是世界知名IC设计公司,有非常庞大的客户群,凌阳教育嵌入式学员就业以此为主线设立三级就业体系:
第一级:凌阳教育嵌入式培训学员首先满足凌阳科技北京、上海、深圳、成都等各地子公司的嵌入式人才需求;
第二级:凌阳科技是芯片设计公司,庞大的客户群和代理商构成凌阳教育的第二级就业体系;
第三级:凌阳科技子公司和客户群为基础,由此辐射的北京、长三角和珠三角的用人单位构成凌阳教育的第三级就业体系。
(2)凌阳爱普
20xx年,为回馈教育事业,改善大专院校嵌入式教学条件,凌阳科技推出了具有长期战略意义的校企合作计划-凌阳科技大学计划。随着经营范围、服务项目不断发展壮大,凌阳大学计划壮大成为北京凌阳爱普科技有限公司。公司目前业务范围分别是:“校企合作中心”负责向高校提供全面的单片机、嵌入式教学创新方案;“应用中心”负责向企业提供凌阳芯片和应用方案;“培训中心”负责面向电子爱好者提供专业的电子工程师培训课程;“61job人才网”负责电子人才与电子相关企业建立绿色通道。
(3)凌阳科技
凌阳科技创立于19xx年,总公司位于台湾新竹科学园区,是全球最大消费 2
性芯片设计公司。产品涵盖了微控器芯片、多媒体芯片、液晶驱动和控制芯片及存储器芯片等。
近几年,凌阳科技陆续开发出μ'nSP系列(16位)、S+Core系列(32位)自主知识产权微处理器内核,并建立完整的嵌入式产业链,在同在同在同类产品中已达到世界领先水平。
三、实习任务
凌阳教育嵌入式培训通过对嵌入式Linux系统全面的学习,能够独立胜任嵌入式Linux应用开发、系统开发、驱动开发等多方面工作。
第一阶段:嵌入式C语言编程
培训时间:1周
本期目标:嵌入式C语言在整个过程中起着至关重要的作用。C语言有功能强、使用方便灵活等特点,更重要的是可移植性比较强。一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、C编程语法基础,以及C语言高级编程,为将来的编程工作打下结实的基础。
第二阶段:Linux应用及系统编程
培训时间:2周
本期目标:嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本期学习的主要目标是精通嵌入式Linux下的程序设计,熟练掌握嵌入式Linux的开发环境、系统编程以及网络编程,熟悉C++、QT编程并且深刻体会整个嵌入式Linux项目开发流程,强化学员对Linux应用开发的能力。
四、实习内容
(1)linux下的C语言基础与高级编程
嵌入式C语言在整个实习过程中起着至关重要的作用。C语言有功能强、使用方便灵活等特点,更重要的是可移植性比较强。通过本阶段的学习,基本掌握了C语言基本知识、C编程语法基础,以及C语言高级编程,为将来的编程工作打下结实的基础。最后完成了MP3歌词解析项目。实现了解析lre格式的MP3歌词文件,并在屏幕上打印输出。
完成MP3歌词解析器项目的大概过程:
1.)程序运行的环境:
需安装千千静听到默认路径下,同时安装vc6.0环境
2.)程序实现的功能:
完成lrc格式歌词的文件读取、解析、链表创建等,同时在屏幕上将解析出 3
的歌词进行实时显示并实现与千千静听同步播放。
3.)项目完成的步骤:
1. 将歌词文件内容通过fread()函数全部读到一个数组中,并在屏幕上打印 出来,验证试验结果。
2. 判断歌曲的歌名与演唱者,并打印出来。
3. 将一个歌词、时间一一对的歌词读到一个结构体数组或链表中,并将时 间标签转换为以s为单位。
4. 调用time或sleep函数,制作一个模拟时钟。
5. 时钟与歌词同步显示
6. 改造解析函数,完成多个时间标签对应同一句歌词的情况。
4.)项目最终的效果:
4
5.)心得体会:
通过一周的C语言基础学习,从起初编写最简单的在屏幕上显示“hello world”开始,到后来完成较复杂的项目。我深刻体会到程序是编出来的而不是看出来的,要想学好C语言实践很重要,在实践中发现问题并寻求解问题的方法,如果只是片面的去看课本而不去编程的话,始终不能发现自己的不足。在这一周的时间里我学到了很多我在学校没有掌握或者是掌握得不够牢固的知识,我感觉这一周C语言的学习,就是把我本身的一个破破烂烂的桶,给打上了一个个的补丁,让里面能真正的保存知识,而不是漏掉。把程序成功调试出来对于我来说一直是件很有成就感的事,也会不断的增加我的自信。
(2)Linux应用与系统编程
嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本阶段学习了Linux的安装过程、Linux发展历程、Linux常用命令等,通过上述课程的学习不仅熟悉了Linux操作系统的概念和安装方法,而且学会了使用Linux的常用命令。通过vi文本编译器、gcc编译器和gdb调试器的使用与练习掌握了vi的基本使用,熟悉了程序的编译过程,学会了使用gcc编译程序,了解了gdb调试器和Make项目管理工具等知识。最后完成了shell命令解释器项目和Mplayer项目,实现了图形界面初始化,播放列表功能,并且能够实现歌词同步,快进、 快退歌词同步,切换歌词的时候自动加载歌词等功能。
完成shell命令解释器项目部分功能的大致流程:
(1)程序实现的功能:
写一个shell命令解释器,使能处理带参数的命令。
(2)项目完成的步骤:
1.命令解释器首先是一个死循环。
2.打印一个命令提示符,包含当前路径信息。取得命令行输入,本程序是把命令行输入保存在一个字符指针指向的地址中。
3.分析命令行,把以空格分开的命令和参数分别取出来放在字符指针数组arg[]中。这里取得的命令行字符串保存在input指向的地址。为了把这一行字符串中的命令和参数分开,需要一个临时数组tmp(本程序是重用前面使用的buf数组),把input指向命令行中的命令和参数分别保存在arg[0]、arg[1]等等。
4.创建一个子进程,调用exec执行命令。
5.父进程(即shell命令解释器)调用waitpid()。然后进入下一次循环。
5
(3)项目的流程图:
(4)shell命令解析器项目的源代码见附录中。
(5)将MP3歌词解析器的源程序移植到linux下的运行效果见下图:
6
五、实习总结
三周的实习时间一晃就过去了,首先感谢老师给我提供了这次特别好的实习机会,在这短短的三周时间里我学到了很多知识,也感悟了不少人生。以下是我对这次实习的一点总结:
众所周之搞软件开发C语言是一个很好的工具,虽然这次C语言的实习时间只有短短的一周时间,但是感觉收获甚多,从开始的在屏幕上显示“hello world”到最后完成的MP3歌词解析器项目,每天敲打键盘十几个小时,付出了很多同时收获了更多。这次实习不仅使我熟练掌握并应用TC程序设计的各个知识点,掌握结构体和指针的联合应用,学会了链表的结构和常用操作方法。而且通过各种途径查找所需资料,扩宽了视野,培养了自己的编程能力。虽然之前学习过C语言,但是刚开始实习的的时候,还是感觉到有点迷茫,以前只是看看课本,自己编写程序的时间少之又少,导致开始编写程序时感觉无从下手,开始时照着老师给的程序自己在敲打一遍,然后将它慢慢消化,最后转变成自己的东西。所以我认为学习C语言上机实践很重要,一定要自己动手编写程序,只看不做,眼高手低是不行的。 还有在自己编写并执行程序时,不要害怕出错,其实,我觉得出错并不一定是坏事,它使我们知道了自己所学知识的不足,并根据提示改正程序中发生的错误,一种成就感油然而生,觉得自己的付出都是值得的。
再者就是良好的编程习惯是学好C语言的重要因素,只有勤动手,多动脑才能学好C语言,光说不练是不行的。接下来的两周linux学习,更是从不知到了解再到熟悉,最后到基本的操作,并成功将MP3歌词解析器的源程序移植到linux下运行。总之通过这次实习不仅只是学到了有关嵌入式的基本知识,更重要的是思想上的转变,不仅学会了如何解决在实习中遇到的各种问题,为以后使用该软件进行编程打下了坚实的基础,也培养了自己对该软件的兴趣,对于即将毕业的我正面临着找工作的压力,通过这次实习积累了不少经验,对以后找工作也起到了一定的辅助作用,希望今后能够有机会对该软件进行进一步的学习研究。 计算机和网络已经全面渗透到日常生活的每一个角落,对于我们每个人来说,需要的已经不再仅仅是放在桌面上处理文档,进行工业管理和生产控制的计算机“机器”。任何一个普通的人都可能拥有从小到大的各种嵌入式技术的电子产品,小到MP3等微型数字化产品,大到网络家电,智能家电等,各种各样的新型嵌入式系统设备在应用数量上已经远远超过了通用计算机,在工业和服务领域,使用嵌入式技术的数字机床、智能工具、工业机器人、服务机器人、正在逐渐的改变着传统的工业生产和服务方式。最后特别感谢指导老师对我的精心指导和同学们的细心帮助。
7
六、参考文献:
1.C语言完全手册 杨峰 编著 科学出版社
2. C程序设计 谭浩强 北京大学出版社
3.Linux高级程序设计(第2版) 杨宗德 邓玉春 编著 人民邮电出版社
七、附录
Shell命令解释器的部分功能的源代码。
源代码:
/******************************************************************** * Filename: shell_item.c
* Description:
* Version: 1.0
* Created: 20xx年02月11日 15时54分18秒
* Revision: none
* Compiler: gcc
* Author: YOUR NAME (),
* Company:
********************************************************************/ #include <sys/wait.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
int main(void)
{
char buf[100]; char *argv[10]={}; int t,i=0; char *str=" "; int status; pid_t pid; while(1) { printf("Please intput:\n");
8
fflush(stdout);
fgets(buf,sizeof(buf),stdin); buf[strlen(buf)-1]='\0'; i=0;
argv[i]=strtok(buf,str); while(argv[i]!=NULL) {
// printf("%s\n",argv[i]);
argv[++i]=strtok(NULL,str); }
pid=fork(); if(pid<0)
{
perror("fork error\n"); }
else if(pid==0) {
for(t=0;t<i;t++)
printf("%s\n",argv[t]); execvp(argv[0],argv); exit(6);
}
else {
wait(&status);
if(WIFEXITED(status)!=0) printf("over\n"); }
}
// return 0;
}
// 创建子进程 // 子进程 // 父进程 //判断子进程是否正常结束 9
外出写生实习报告
我们广告两个班于大二第一学期十三周进行了一个周的外出写生,我们此行的目的地是位于北川羌族自治县的吉娜羌寨。那是一个美丽的具有民族特色的一个寨子。吉娜羌寨是汶川地震过后重建的一个寨子,民风很淳朴,人民也很热情。
在20xx年x月x日早晨我们乘坐客车去了吉娜羌寨,那是我们脸上都难掩兴奋的神情、怀着期盼、怀着外出写生的愉悦心情。终于在两个小时的车程后抵达了目的地。刚下车,眼前的景象挺让我们满意的,很漂亮。我们看见的吉娜是一个坐落于大山脚下的一个寨子,这让许多从来没有见过那么高的山的同学们着实兴奋了一把。班长给我们大家分配了宿舍、我住的是一个两人间,是住在一个非常朴实的人家、他们家还有一个非常可爱的的小男孩,从我们过去后,他每天放学都会去找我们耍,我们都很喜欢他。因为我们出去写生是分成几个小组的、我们小组有5个人,刚去的那一天我们5个人就享受了一顿地道的羌族午饭、、、第一天我们都是在兴奋与好奇中度过的,总的来说,还不错。第二天、我们起了个大早、为的是完成我们此行的目的-写生,我们抱着速写本去了外面写生、不过吉娜的天气不是盖的、毕竟是在山上、真心的好冷哦。没有画多久、我们的手就被冻的通红、没有办法、我们实在是赖不住冷、最后的结果就是我们照了照片回去寝室画。傍晚、吉娜的风大的吓人、那时候一般就不会出去了、不过幸好寝室还是挺暖和的。
28号我们怀着沉重的心情去了老北川,也就是地震遗址,我们去的时候是邓老实带我们去的,我们一共有7个人。当我们真正的看到地震留下来的废墟的时候,我不知道我当时是什么样的心情。在我的脑海中甚至还可以清晰的显现出地震还没有来的时候老北川街道上的一幕幕场景:那些骑着自行车走在街上向朋友打招呼的青年;那些教室里传出的郎朗读书声;那些在操场上追逐打闹的年轻男女们、、、、、、那时候、说真的我再也不想看到地震了、我再也不想看到我们的世界经受地震的摧残了,当一个繁荣的城市在一瞬间变得死寂,那该是一种怎么样的心情、、、、、、
在吉娜呆了几天后,那里寒冷的空气让我们忍不住想回学校的心情了,不过我们也到了要回去的时候了,说实话、我们那个时候的心情的却要比来的时候要激动的多。但似乎从心底里还是有一些的不舍得、毕竟那也是我们呆了几天的地方,其实我们最舍不得的还是我们的小房东-那个可爱的小男孩。接着我们还以小组为单位自己坐车去了下一个目的地-禹王桥,这是一个位于新北川的一个风情小镇,还是以羌族文化为主建造的一个小镇。下了车我们就去逛了很多卖具有当地特色东西的小店、也买了很多东西、结果就是自己身上的钱用的光光的,不过能买到自己喜欢的东西还是挺让人高兴的一件事。我们照了很多的照片,主要还是为了我们回学校以后的创作做准备。两点半的时候车子来接我们回学校了,那一刻我们又再次兴奋了,心里就想着赶快回学校。虽然很高兴,但是也标志着我们一个星期的写生圆满的结束了。
总的来说,这次的外出写生我们的收获还是很多的,最后也是很圆满的,不过、让我觉得最重要的还是以后买房子千万不要买一楼的、、、、、
校外实习报告一见习目的我们大学已走过的人生旅途大都是在学校中度过的目前对社会的了解太少为了今后工作的需要为了接触广阔的社会丰富我们…
科信学院毕业实习报告20xx20xx学年第二学期实习名称毕业实习实习地点河北钢铁集团九江线材有限公司专业班级自动化5班学生姓名学号…
学生校外实习报告二级学院班级姓名成绩企业导师专业导师职业导师年月日学生校外实习报告实习单位名称实习单位联系方式实习时间起讫摘要地址…
附表3西安科技大学高新学院实实习单位实习时间若参与多次实习请按时间顺序依次罗列实习单位部门与单位指导教师并在实习单位旁注明实习起止…
西安科技大学高新学院实习报告实习单位实习时间若参与多次实习请按时间顺序依次罗列实习单位部门与单位指导教师并在实习单位旁注明实习起止…
民族图案考察实习报告学院:班级:学号:姓名:金学敏指导老师:王丽霞时间:20xx.7.1——20xx.7.12内容要求:包括考察的…
姓名:付军军班级:11工业设计1班学号:20xx105130109考察路线:华东一线考察地点:浙江江苏上海考察时间:20xx-10…
幸福迷徒------欢乐伴我们外出学习的十几天----转眼间那幸福的外出采风学习已经过去了近一个月,那些美好却时时萦绕耳边,穿越脑…
外出培训学习汇报材料——汝州市三中教师:崔杰各位老师:大家好!20xx年x月x日——16日,河南省高校课堂教学观摩交流培训暨第16…
外出学习报告——解戳品李金庆首先,听取了蒙阴四中孔璐老师的一节《一次函数》复习课,临沂实验中学教师刘洁讲的《全等三角形》复习课,临…
校外实习报告实习名称:姓名:院(系):食品与生物工程专业班级:食品科学与工程10-02班学号:指导教师:主要实习单位:郑州三全食品…