实习报告苏嵌.docx
- 文档编号:30138422
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:14
- 大小:42.15KB
实习报告苏嵌.docx
《实习报告苏嵌.docx》由会员分享,可在线阅读,更多相关《实习报告苏嵌.docx(14页珍藏版)》请在冰豆网上搜索。
实习报告苏嵌
成绩
学生实习报告
实习名称专业生产实习
嵌入式平台开发
院部名称电子信息工程学院
专业电子信息工程
班级
学生姓名
学号
实习地点
指导教师
实习起止时间:
年月日至年月日
金陵科技学院教务处制
前言
嵌入式作为现今的热门领域,涵盖了微电子技术,信息电子信息技术计算机软件和硬件等多项技术领域的应用计算机软件和硬件等多项技术领域的应用计算机软件和硬件等多项技术领域的应用计算机软件和硬件等多项技术领域的应用。
大到航空航天石油化工能源控制核电站以及机器人系统核电站以及机器人系统核电站,小到日常使用的智能手机数字电视掌上电脑,嵌入式技术正在我们的生活中占据着越来越重要的地位中.
业内人士认为,目前嵌入式行业至少存在30-50万的人才缺口,仅北京市场嵌入式软件开发人员的需求就已经超过了5万人,而且还在持续增加,这主要有两方面的原因:
一是与目前我们高校的专业设置有关,我国高校的计算机教育普遍以应用软件为主,很少涉及嵌入式软件的课程,因此企业很难招聘到马上可以投入嵌入式软件开发的实战型人才;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要一定的实验环境(开发板和工具软件)和有经验的人进行指导。
江苏嵌入式软件公共技术中心(简称苏嵌),是面向全社会开展嵌入式技术系列培训课程的专业服务机构,座落于南京工业大学国家科技园,由国内外知名IT 企业机构、江苏省软件行业协会、南京工业大学等知名院校负责协助实施。
得到了江苏省电子协会、江苏省高等学校教育技术研究会等大力支持。
目前已经成长为华东地区规模最大,最具专业的嵌入式教育培训机构
苏嵌拥有核心技术人员博士以上学历12人,硕士学历近20人,同时汇聚了30多名来自于南大、东大、中兴等科研院校的一线研发主力作为专家师资团队,聘请了龙芯、Redhat、中兴、华为、电信、ARM等各大公司的技术负责人和项目经理作为中心的技术顾问。
嵌入式技术凝聚了计算机和信息技术的精华,嵌入式技术人才是具备透视计算机和信息技术奥秘的高级专业人才。
作为江苏较早开展嵌入式技术教育的研究机构,苏嵌将嵌入式技术人才的培养做为自己的终身事业,把最新的技术发展和行业需求结合起来,为广大学员提供最完善、最有效的技术咨询和培训服务。
凭着多年的技术积累和教学经验,凭着雄厚的师资、优越的课程体系和严格的教学管理,苏嵌正成为江苏嵌入式技术高级专业人才的摇篮。
一、实习目的
1、巩固在书本上学到的理论知识,生产实习是作为本学科的一门实践性的课程,将理论知识与实践生产相结合,加深对理论知识的理解。
2、获得在书本上不易了解和不易学到的生产现场的实际知识,培养发现问题解决问题的能力,使之在实践中得到提高和锻炼。
二、实习时间
四周,共计二十六天
时间
实习内容
7月2日
嵌入式开发概述及开发工具的使用
嵌入式开发脚本-shell编程
7月3日
实验:
开发工具使用,shell编程实验
7月4日
嵌入式C语言高级开发讲解
7月5日
实验:
嵌入式C语言开发实训编程
7月6日
嵌入式C语言高级开发讲解
7月7日
作业:
完成train1、train2
7月8日
作业:
完成train4、train5
7月9日
考试:
第一阶段考试
7月10日
嵌入式Linux文件编程
嵌入式Linux进程控制编程
7月11日
实验:
嵌入式Linux文件编程与进程控制实训编程
7月12日
嵌入式Linux多线程编程
嵌入式Linux网络编程
7月13日
实验:
嵌入式Linux多线程编程与网络实训编程
7月14日
作业:
编程实现服务器-客户端通信
7月15日
作业:
编程实现客户端-服务器-客户端聊天室
7月16日
嵌入式GUI-QT
7月17日
实验:
嵌入式GUI-QT实训开发
7月18日
嵌入式ARM编程
7月19日
实验:
嵌入式ARM裸机实训开发
7月20日
嵌入式ARM编程
7月23日
实验:
嵌入式ARM裸机实训开发
7月24日
嵌入式开发平台的搭建及测试
7月25日
实验:
嵌入式ARM裸机实训开发
7月26日
嵌入式Linux驱动开发
嵌入式项目开发流程介绍
7月27日
考试:
最后阶段考试
三、实习地点
金陵科技学院江宁校区工科楼C510
四、实习单位
江苏嵌入式软件公共技术中心
五、实习内容
1、安装Linux:
在PC机中安装Vmware6.0,再装入Linux镜像并安装。
2、练习Linux相关命令:
gedit、vim打开文本编译器,文件不存在时新建文件
tar–xvzf解压压缩文件
tar–cvzf压缩文件
cp复制文件
mv剪切文件,可重命名,可隐藏文件
mkdir创建文件夹
touch创建不打开文件文件
cat查看文件内容
ls查看当前目录下内容
chmod加减文件属性,w/4,r/2,x/1
VI三种模式:
命令行模式:
ESC键
插入模式:
A或I键
底行模式:
shift+:
w保存q退出yy复制p粘贴delete删除语句./文件名执行gcc编译
rm删除文件rm–f强制删除文件
3、编译器gcc
源程序-预处理-编译-汇编-链接-可执行文件
预处理:
头文件展开、宏替换
编译:
将.C文件编译成.O文件
gcc-o编译中链接成可执行文件,默认a.out
gcc-c编译中预处理、编译、汇编,生成.o目标文件
gcc–e编译中预处理,生成.i文件
gcc–wall编译后生成所有的警告信息
gcc–static连接时装载静态链接库文件,生成.a文件
gcc–O对程序优化编译、链接,整个源代码会在这过程中进行优化处理
gcc–g产生调试工具gdb
4、静态库与动态库
动态库只有在使用其程序执行时才被链接使用,而不是将需要的部分直接编译进可执行文件中,并且一个动态库可以被多个程序使用,可称为共享库;
静态库将会整合到程序中,在程序执行时不用加载静态库。
从而可知,连接到静态库会使得程序臃肿,并难以升级,但可能会比较容易部署。
而链接到动态库会使得程序轻便易于升级,但难以部署。
5、创建静态库并使用静态库
gcc–c源文件.c
arrcs目标文件1目标文件2
gcc–Ofilefile.c–L.-lname
6、调试器gdb
gdb是GNU发布的一款功能强大的程序调试工具
gdb主要完成下面三个方面的功能:
1)、启动被调试程序
2)、让被调试的程序在指定的位置停住
3)、当程序被停住时,可以检查程序状态-变量值
run(r)开始运行程序
next(n)单步运行程序(不进入子程序)
step(s)单步运行程序(进入子程序)
conutinue(c)继续运行程序
print(p)变量名查看指定变量值
finish运行程序直到当前函数结束
watch变量名对指定变量进行监控
quit(q)退出gdb
7、工程管理器make
工程管理器顾名思义,是指管理较多的文件make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动妨碍西安更新过的文件而减少编译的工作量,同时,它通过读入makefile文件的内容来执行大量的编译工作。
makefile是make读入的唯一配置文件。
一个makefile中常包含如下内容:
A,需有make工具创建的目标体(target),通常是目标文件或可执行文件;
B,要创建的目标体所依赖的文件。
makefile格式:
target:
depend_files
运行command命令创建目标体target,target依赖于文件:
depend_files
在makefile中,规则的顺序是很重要的,因为,makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。
一般来说,定义在makefie中的目标可能会有很多,但是第一条规则重点目标将被确立为最终的目标。
makefile中把那些没有任何依赖只有执行冬菇总的目标称为“伪目标”
例:
.PHONY:
clean
clean:
rm–fhellomain.ofunc1.ofunc2.o
“.PHONY”将“clean”目标声明为伪目标
8、C基础
1)基本数据类型
类型标识符名字取值范围
char字符型ASCII字符代码
unsignedchar无符号字符型0至255
signedchar有符号字符型-27~27-1
int整型-231~231-1
unsignedint无符号整型0~2^16-1
signedint有符号整型同int
float浮点10^-38~10^38
double双精度型10^-38~10^38
2)移植性
在嵌入式开发中,考虑到代码的移植性,对于有符号(signed)与无符号(unsigned)一定要留心系统默认的是无符号还是有符号;
为了解决此问题,通常使用typedef来重新指定声明无符号还是有符号;
typedefintsig_int;
typedefunsignedintun_int;
3)声明与定义
定义:
创建一个变量,为其分配内存空间,并为它取名字(变量名),一个变量只能定义一次;
声明:
告知编译器,这个名字(变量名)已经匹配在一块内存上了,但是并未为其分配内存;
4)关键字
register:
请求编译器尽可能地将变量存在CPU内部寄存器中;
使用注意:
register修饰变量的类型必须是CPU所接受的;
register变量可能不是在内存中存储,所以不能使用&来获取变量的地址
static:
全局静态变量:
作用范围局限于它的源文件,即只有本文件内的代码才可以访问它,变量名在其他文件内不可见
局部静态变量:
局限于特定函数,但出作用域并不释放,在函数体内的静态变量的值也能够维持
静态函数:
作用范围仅限于它的源文件,即只有本文件内才能够调用,函数名在其他文件不可见
存放位置:
程序开始时,存放在全局数据区,结束时释放空间,默认初始化值是0,使用时可改变其值;
const:
const给读代码的人传达非常有用的信息。
比如一个函数的参数是constchar*,你在调用这个函数时就可以放心地传给它char*或constchar*指针,而不必担心指针所指的内存单元被改写。
尽可能多地使用const限定符,把不该变的都声明成只读,这样可以依靠编译器检查程序中的Bug,防止意外改写数据。
const对编译器优化是一个有用的提示,编译器也许会把const变量优化成常量
volatile的作用:
①不会在两个操作之间把volatile变量缓存存在寄存器中。
②不做常量合并、常量传播等优化
③对volatile变量的读写不会被优化掉
使用volatile的情况:
①中断服务程序中修改的供其它程序检测变量
②多任务环境下各任务间共享的标志
③对存储器映射寄存器的读写
extern:
表明变量或函数的定义在别的文件中,下面用到的这些变量或是函数是外来的,不是本文件定义的,提编译器遇到此变量或函数时,在其他模块中寻找定义。
struct:
在网络协议、通信控制、嵌入式系统的C/C++编程中,我们经常要传送的不是简单的字节流(char型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。
union:
当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;
当多种类型,多个对象,多个事物只取其一时,我们也可以使用联合体来发挥其长处。
5)内存管理:
内存分配方式有三种:
①从静态存储区域分配。
内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。
例如全局变量,static变量。
②在栈上创建。
在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。
栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
③从堆上分配,亦称动态内存分配。
程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。
动态内存的生存期由我们决定,使用非常灵活,但问题也最多。
9、系统调用
在Linux中,程序的运行空间分为内核空间和用户空间,逻辑上相互隔离。
用户进程在通常情况下不允许访问内核数据,也无法使用内核函数。
所谓系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得造作系统内核提供的服务。
10、用户编程接口(API)
系统调用并不是直接与程序员进行交互的,它仅仅是一个通过软件中断机制向内核提交请求,以获得内核服务的接口。
在实际使用中程序员调用的通常是用户编程接口——API。
系统命令相对API更高的一层,它实际上一个可执行程序,它的内部引用了用户编程接口(API)来实现相应的功能。
11、库函数
C库函数的文件操作是独立具体的操作系统平台的,不管是DOS、Windows、Linux还是在VxWorks中都是这些函数。
六、实习总结
我很羡慕能够在嵌入式方面独档一面的高手,希望有一天我也能像他们那样自信并自如的在嵌入式这片热土上挥洒着自己的青春热血。
怀着缤纷的梦踩着无比豪迈的步伐,开始了嵌入式的征程。
在短暂的一个月学习中,我们从LINUX基础入手,强化了C语言编程,学习了LINUX系统编程和应用编程。
得益于老师的教育模式:
理论和实践相结合,实践验证理论,理论推动实践,使得我学习得更加透彻。
对知识的掌握更加牢固,毕竟每个知识点自己都亲手实践过。
学到东西才是对这段时间最好的交代。
在这段学习过程中,重要的并不仅仅只有学到东西而已。
学习过程与同学的点点滴滴都将是我记忆力明媚的风景。
与同学讨论问题,哪怕争得面红耳赤,转眼又可以嬉笑打闹,这就是同学。
不提时间还好,转眼大三下,分别在即。
这也许是最后一次在一起上课了。
。
。
。
。
当然不能忘记,梁老师生动的授课以及热心尽职的实验演示让我在轻松获取知识的同时,也能学到他们做人的一些价值取向。
纵观世界,有知识的人多不胜数,但若没有良好的思想道德,最后也不过是为祸人间。
所以我们以后无论是否会有惊天成就,莫要为损人不利己的事情,亦是有利于国家的,亦是无愧于此生。
老生常谈了,不过谢谢老师!
其次,我想谈一下实习的意义,这不是我想到的,但我觉得很对:
实习是一种对用人单位和实习生都有益的人力资源制度安排。
对接受实习生的单位而言,是发展储备人力资源的措施,可以让其低成本、大范围的选择人才,培养和发现真正符合用人单位要求的人才,亦可以作为用人单位的公关手段,让更多的社会成员(如实习生)了解用人单位的文化和理念,从而增强社会对该组织的认同感并赢得声誉。
对学生而言,实习可以使每一个学生有更多的机会尝试不同的工作,扮演不同的社会角色,逐步完成职业化角色的转化,发现自己真实的潜力和兴趣,以奠定良好的事业基础,也为自我成长丰富了阅历,促进整个社会人才资源的优化配置。
作为一名学生,我想当然的认为学习的目的是为了通过结业考试,可是,通过本次学习,我想学习可能为了更多,比如为了获取知识,或者获取工作技能,再或者是为了解决心里的疑问。
学习为了获取工作技能,貌似更符合语境。
毕业在即,想想如何安身立命吧!
一个月的时间在人的生命长河中也许微不足道,但这个月的时间却有可能改变生命长河的流向。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实习 报告