实习报告苏嵌

上传人:博****1 文档编号:456363358 上传时间:2023-02-04 格式:DOCX 页数:12 大小:21.49KB
返回 下载 相关 举报
实习报告苏嵌_第1页
第1页 / 共12页
实习报告苏嵌_第2页
第2页 / 共12页
实习报告苏嵌_第3页
第3页 / 共12页
实习报告苏嵌_第4页
第4页 / 共12页
实习报告苏嵌_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《实习报告苏嵌》由会员分享,可在线阅读,更多相关《实习报告苏嵌(12页珍藏版)》请在金锄头文库上搜索。

1、成绩会队科技号院学生实习报告实习名称专业生产实习嵌入式平台开发院部名称电子信息工程学院专业电子信息工程班级学生姓名学号实习地点指导教师实习起止时间:年月日至年月日金陵科技学院教务处制刖言嵌入式作为现今的热门领域,涵盖了微电子技术信息电子信息技术计算机 软件和硬件等多项技术领域的应用计算机软件和硬件等多项技术领域的应用计 算机软件和硬件等多项技术领域的应用计算机软件和硬件等多项技术领域的应 用。大到航空航天石油化工能源控制核电站以及机器人系统核电站以及机器人 系统核电站,小到日常使用的智能手机数字电视掌上电脑,嵌入式技术正在我们 的生活中占据着越来越重要的地位中.业内人士认为,目前嵌入式行业至少

2、存在30-50万的人才缺口,仅北京市 场嵌入式软件开发人员的需求就已经超过了5万人,而且还在持续增加,这主 要有两方面的原因:一是与目前我们高校的专业设置有关,我国高校的计算机 教育普遍以应用软件为主,很少涉及嵌入式软件的课程,因此企业很难招聘到 马上可以投入嵌入式软件开发的实战型人才;二是嵌入式领域门槛相对较高, 知识要求比较全面,而且需要一定的实验环境(开发板和工具软件)和有经验 的人进行指导。江苏嵌入式软件公共技术中心(简称苏嵌),是面向全社会开展嵌入式技术 系列培训课程的专业服务机构,座落于南京工业大学国家科技园,由国内外知 名IT企业机构、江苏省软件行业协会、南京工业大学等知名院校负

3、责协助实 施。得到了江苏省电子协会、江苏省高等学校教育技术研究会等大力支持。目 前已经成长为华东地区规模最大,最具专业的嵌入式教育培训机构苏嵌拥有核心技术人员博士以上学历12人,硕士学历近20人,同时汇聚 了 30多名来自于南大、东大、中兴等科研院校的一线研发主力作为专家师资团 队,聘请了龙芯、Redhat、中兴、华为、电信、ARM等各大公司的技术负责人 和项目经理作为中心的技术顾问。嵌入式技术凝聚了计算机和信息技术的精华,嵌入式技术人才是具备透视 计算机和信息技术奥秘的高级专业人才。作为江苏较早开展嵌入式技术教育的 研究机构,苏嵌将嵌入式技术人才的培养做为自己的终身事业,把最新的技术 发展和

4、行业需求结合起来,为广大学员提供最完善、最有效的技术咨询和培训 服务。凭着多年的技术积累和教学经验,凭着雄厚的师资、优越的课程体系和 严格的教学管理,苏嵌正成为江苏嵌入式技术高级专业人才的摇篮。一、实习目的1、巩固在书本上学到的理论知识,生产实习是作为本学科的一门实践 性的课程,将理论知识与实践生产相结合,加深对理论知识的理解。2、获得在书本上不易了解和不易学到的生产现场的实际知识,培养发 现问题解决问题的能力,使之在实践中得到提高和锻炼。二、实习时间四周,共计二十六天时间实习内容嵌入式开发概述及开发工具的使用7月2日嵌入式开发脚本-shell编程7月3日 实验:开发工具使用,shell编程实

5、验7月4日 嵌入式C语言高级开发讲解7月5日 实验:嵌入式C语言开发实训编程7月6日 嵌入式C语言高级开发讲解7月7日 作业:完成train1、train27月8日 作业:完成train4、train57月9日 考试:第一阶段考试嵌入式Linux文件编程7月10日嵌入式Linux进程控制编程7月11日 实验:嵌入式Linux文件编程与进程控制实训编程嵌入式Linux多线程编程7月12日嵌入式Linux网络编程7月13日 实验:嵌入式Linux多线程编程与网络实训编程7月14日作业:编程实现服务器-客户端通信7月15日 作业:编程实现客户端-服务器-客户端聊天室7月16日嵌入式GUI-QT7月1

6、7日 实验:嵌入式GUI-QT实训开发7月18日嵌入式ARM编程7月19日 实验:嵌入式ARM裸机实训开发7月20日嵌入式ARM编程7月23日 实验:嵌入式ARM裸机实训开发7月24日 嵌入式开发平台的搭建及测试7月25日 实验:嵌入式ARM裸机实训开发嵌入式Linux驱动开发7月26日嵌入式项目开发流程介绍7月27日 考试:最后阶段考试三、实习地点金陵科技学院江宁校区工科楼C510四、实习单位江苏嵌入式软件公共技术中心五、实习内容1、安装 Linux:在PC机中安装Vmware 6.0,再装入Linux镜像并安装。2、练习Linux相关命令:gedit、vim打开文本编译器,文件不存在时新建

7、文件tar - xvzf解压压缩文件tar - cvzf压缩文件cp复制文件mv剪切文件,可重命名,可隐藏文件mkdir创建文件夹touch创建不打开文件文件cat查看文件内容ls查看当前目录下内容chmod加减文件属性,w/4,r/2,x/1VI三种模式:命令行模式:ESC键插入模式:A或I键底行模式:shift + :w保存q退出yy复制p粘贴delete删除语句./文件名执行gcc编 译rm删除文件rm -f强制删除文件3、编译器gcc源程序-预处理-编译-汇编-链接-可执行文件预处理:头文件展开、宏替换编译:将.C文件编译成.0文件gcc -o编译中链接成可执行文件,默认a.outgc

8、c -c编译中预处理、编译、汇编,生成.o目标文件gcc -e编译中预处理,生成.i文件gcc - wall编译后生成所有的警告信息gcc - static连接时装载静态链接库文件,生成.a文件gcc -0对程序优化编译、链接,整个源代码会在这过程中进行优化处理gcc - g产生调试工具gdb4、静态库与动态库动态库只有在使用其程序执行时才被链接使用,而不是将需要的部分直接编译进可执行文件中,并且一个动态库可以被多个程序使用,可称为共享库;静态库将会整合到程序中,在程序执行时不用加载静态库。从而可知, 连接到静态库会使得程序臃肿,并难以升级,但可能会比较容易部署。而链接到动态库会使得程序轻便易

9、于升级,但难以部署。5、创建静态库并使用静态库gcc - c源文件.car rcs目标文件1目标文件2gcc - O file file.c - L. -Iname6、调试器gdbgdb是GNU发布的一款功能强大的程序调试工具gdb主要完成下面三个方面的功能:1) 、启动被调试程序2) 、让被调试的程序在指定的位置停住3) 、当程序被停住时,可以检查程序状态变量值run(r)开始运行程序next(n)单步运行程序(不进入子程序)step(s)单步运行程序(进入子程序)conutinue(c)继续运行程序print(p)变量名查看指定变量值finish运行程序直到当前函数结束watch变量名对指

10、定变量进行监控quit(q)退出 gdb7、工程管理器make工程管理器 顾名思义,是指管理较多的文件makeX程管理器也就 是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自 动妨碍西安更新过的文件而减少编译的工作量,同时,它通过读入 makefile文件的内容来执行大量的编译工作。makefile是make读入的唯一配置文件。一个makefile中常包含如下内容:A,需有make工具创建的目标体(target),通常是目标文件或可执行文件;B,要创建的目标体所依赖的文件。makefile 格式:target:depend_filescommand运行command命令创建目标

11、体target, target依赖于文件:depend_files在makefile中,规则的顺序是很重要的,因为,makefile中只应该 有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要 让make知道你的最终目标是什么。一般来说,定义在makefie中的目标 可能会有很多,但是第一条规则重点目标将被确立为最终的目标。makefile中把那些没有任何依赖只有执行冬菇总的目标称为“伪目标” 例:.PHONY:cleanclean:rm -f hello main.o funcl.o func2.o.PHONY”将“clean”目标声明为伪目标8、C基础1) 基本数据类型类型标

12、识符名字取值范围char字符型ASCII字符代码unsigned char无符号字符型0 至 255signed char有符号字符型-27 27-1int整型-231 231-1unsigned int无符号整型0 216Tsigned int有符号整型同intfloat浮点10381038double双精度型103810382)移植性在嵌入式开发中,考虑到代码的移植性,对于有符号(signed)与无符号(unsigned) 一定要留心系统默认的是无符号还是有符号;为了解决此问题,通常使用typedef来重新指定声明无符号还是有符号;typedef int sig_int;typedef u

13、nsigned int un_int;3)声明与定义定义:创建一个变量,为其分配内存空间,并为它取名字(变量名)一个变量只能定义一次;声明:告知编译器,这个名字(变量名)已经匹配在一块内存上了,但是 并未为其分配内存;4)关键字register:请求编译器尽可能地将变量存在CPU内部寄存器中;使用注意:register修饰变量的类型必须是CPU所接受的;register变量可能不是在内存中存储,所以不能使用&来获取变量的地址static:全局静态变量:作用范围局限于它的源文件,即只有本文件内的代码才可 以访问它,变量名在其他文件内不可见局部静态变量:局限于特定函数,但出作用域并不释放,在函数体

14、内的静 态变量的值也能够维持静态函数:作用范围仅限于它的源文件,即只有本文件内才能够调用,函 数名在其他文件不可见存放位置:程序开始时,存放在全局数据区,结束时释放空间,默认初始 化值是0,使用时可改变其值;const:const给读代码的人传达非常有用的信息。比如一个函数的参数是const char *,你在调用这个函数时就可以放心地传给它char *或const char *指针,而不必担心指针所指的内存单元被改写。尽可能多地使用const限定符,把不该变的都声明成只读,这样可以依靠 编译器检查程序中的Bug,防止意外改写数据。const对编译器优化是一个有用的提示,编译器也许会把cons

15、t变量优化 成常量volatile的作用: 不会在两个操作之间把volatile变量缓存存在寄存器中。 不做常量合并、常量传播等优化 对volatile变量的读写不会被优化掉使用volatile的情况: 中断服务程序中修改的供其它程序检测变量 多任务环境下各任务间共享的标志 对存储器映射寄存器的读写extern :表明变量或函数的定义在别的文件中,下面用到的这些变量或是 函数是外来的,不是本文件定义的,提编译器遇到此变量或函数时,在其 他模块中寻找定义。struct:在网络协议、通信控制、嵌入式系统的C/C+编程中,我们经常要传送的 不是简单的字节流(char型数组),而是多种数据组合起来的一个整体, 其表现形式是一个结构体。union:当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联 合体;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号