实习总结嵌入式

2024-11-11 版权声明 我要投稿

实习总结嵌入式(通用6篇)

实习总结嵌入式 篇1

就在昨天3月9日,学校规定实习时间已经到期了。从上个月的13日到现在已经近一个月,虽然与公司的实习时间还没有结束,但是为了完成学校交待的任务,在此对这段时间的实习做一个总结。首先,我先来简单介绍下实习单位。我实习的单位全称——上海宝信软件股份有限公司厦门分公司。其作为上海宝信软件中的重要一员,是宝信软件在全国多网点支持服务的延伸,具备与宝信软件上海总部相同的技术服务能力,并可无限制调用总部专家资源,秉承宝信软件“IT服务,提升信息价值”的经营理念,致力于IT服务,主营业务包括网络安全产品销售、系统集成、运维服务、软件工程等。其次,向大家介绍是我的实习内容。这里要先介绍我的实习岗位——嵌入式软件开发工程师。实习内容大致分为两块,一是软件测试,二是编码。在我们刚来的前两周,我的实习内容就是软件测试。软件测试的主要内容是UnitTest也就是单元测试。但是,在实习刚开始的阶段,我并没有就马上做测试。而是有前辈给我发了一份我们要做的产品的功能书给我看。功能书文档是日文版的,我要把它看懂,才知道我们这里到底是做什么。后面的测试工作就是做单元测试了。我们在做测试是有测试环境的,整个单元测试过程是有前人经验的。所以只要按照规则来就没有问题,也相对比较简单。就这样单元测试做了近8天左右,测试了51个c++函数。其实,单元测试比较简单,但是碰到函数的输入输出的值及路径多的时候,特别的烦,会影响测试效率。实习的另一个内容就是编码,其实说的确切一点,是看代码。一个刚来不到3周的新员工,以前又没有经验,公司怎么会放心让你写代码。有前辈给我安装了秀丸和Source Insight软件,然后给了我一代码,让我按上面看,有问题可以问组里的前辈。C++代码是看的懂,但是太多的函数,被调用的关系也不清楚,也不了解决函数的意义,所以感到很无趣。也许是在考验我的耐心或者是让我熟悉代码编写的规范。不管是什么目的,至少自己可以巩固下c++的基础。不过真的要感谢前辈的细心指导,使我大概了解程序的调用关系。

再次,向大学介绍下我的实习阶段的工作过程。每的8小时的上班时间,但是一般会比这个时间长的。早上8点45分到9点15分不等上班,晚上5点30分到6点不等下班,中午11点可以去吃饭、1点之前上班。这个时间还是比较人性化的。当然也有时候也要加班,如有时候日本客户来这里的时候,发现我们的人都很早下班的时候,他就会和我们的上级说,然后我们就得加班。这也是一种非常情况,但是加班是可以调休的。每天的上班时间基本上是跟电脑打交道。前期实习阶段都是打开电子表格看日语版功能说明书,后面做测试的时间就是各种软件一起用了。每天做单元测试的时候,其实感觉特别烦。有时候一天做7到8个,有时候一天2个做不到。但是整个过程自己还是坚持下来了,虽然很累,自己还是很好强的。后期基本上是学习编程了。由于后面项目已经交互,所以每天都不没有加班了。每天的工作主要就是学习代码规范,如那里怎么缩进、命名之类的事。至于逻辑什么的,还是很不清楚,还需要努力多问多想。

再次,与大家分享下我的实习收获。虽然与原计划5个月的实习还差很远,但自己还是很有收获。其一,对于歌乐Audio项目有一定的了解。具体的表现在,分了几层。我个人是分配到app层,也就是业务应用层。虽然对业务的熟悉不够深,但大概知道,每一天前辈们都在做什么事。其二,日语方面的加强。因为客户方面基本上是日本人,所以加强日语学习是必须的。有了这样的一种压力,自动会转化为一种动力,促使我去学习。我想这样多少可以提高下我的日语能力。还有就是,常常有很多日本客户就做在我的旁边。感情还是很紧张,因为不知道怎么跟他交流。结果每一天他来的时候,我只能和他说声早上好。希望自己在今后的时间里要多多加强日语学习,争取与日本客户交流,才能提升自己的能力。其三,交流沟通能力的提高。其实自习也一直觉得沟通能力对成功贡献是最大,要把一件做成肯定不是一个人的事情,我们需要与别人沟通。在沟通中互相了解相联系的部分,这样才能够避免摩擦带来不必要时间与精力的浪费。而我自己的沟通能力提高表现在自我意识的提高。当遇到问题的时候,会主动的想想,是哪个具体的点不懂,然后列出问题,再向前辈请教。这样大脑里就会有一个逻辑过程。通过这样就可以把自己的意思清楚的传达给别人。在别人向自己传达信息的时候,我会边思考边听,遇到不了解的地方,讲明白自己的不解之处。这样这个沟通过程就会比较流畅。其四,职场意识的提高。可以说来实习就意味我们提前

毕业了,提前进入社会。所以,由学生到社会职业人的过渡期就被实习给填充了。经过一个月实习,我发现自己已经很习惯在公司工作。对于自己能做什么,未来能做什么也有了一定的思考。不管毕业,我还是留在这个公司还是去其他的公司,我想我心中已经有了这份意识,这对我将来的职业生涯都是有帮助的。其五,时间管理。很多人工作的时候就忘记了生活的存在,我们的生活是多彩的,并不是只有工作。其中,有一项转变的比较大,就是很多人不喜欢运动了。对于这些,我都是不太认可的。我还是会抽出时间出去运动一下。我觉得运动可以带给我健康,同时会让我的精神更好,工作更有效率。其实,运动并不会浪费我们时间,而是会给生活带更美好。

最后,与大家分享一下我这个月实习的心得与体会。通过这段时间的学习,从无知到认知,到深入了解,渐渐的我喜欢上这份工作,让我深刻的体会到学习的过程是最美的。在整个实习过程中,我每天都有很多的新的体会,新的想法,想说的很多,我总结下来主要有以下几点:

1、持之以恒

既然选择了自己的这份工作,不管工作本身怎么样,我们都要坚持往下走。因为我相信每一家公司的工作原理都是差不多的。如果你在这家公司做不住的话,我想你在另外一家公司也是做不住的。只有我们改变自己的态度,才可能战胜心中的浮躁。我们新人一来到公司我,一开始都不会立刻给工作我们做,-一般也都是先让我们看看文档或代码,时间短的要几天,时间长的要几周,在这段时间里很多人会觉得很无聊,没事可做,便觉没有发展空间,于是产生想走的念头。恰恰在这个关键的时候更需要我们的坚持,轻易放弃只会让自己后悔。

2、不怕做小事,那是一种考验

我们一来到公司实习的时候,很多组里的前辈多数还是把我们当学生看待。他们不会也不敢让我们直接参考到一个真正的项目中去。在这个其间一般会给我们看一些过去做过项目的文档和代码,其实不可小看这些小事,也许是为了考验我们,也许是让我们先了解业务。作为一人新人,一定要积极面对这些,勇于担当做小事,喜欢做小事。这样公司同事才会更快的接受你,慢慢地才会让你做一些重要的工作。

3、态度端正,一定要多主动

我们到公司工作以后,要知道自己能否胜任这份工作,关键是看你自己对待工作的态度,态度对了,即使自己以前没学过的知识也可以在工作中逐渐的掌握。态度不好,就算自己有知识基础也不会把工作做好,四多一少就是我的态度,我刚到这个岗位工作,根本不清楚该做些什么,并且这和我在学校读的专业与这里做的东西还是不太一样的,刚开始我觉得很头痛,可经过工作过程中多看别人怎样做,多听别人怎样说,多想自己应该怎样做,然后自己亲自动手去多做,终于在这一个月里对工作有了一个较系统的认识,慢慢的自己也可以完成相关的工作了,光用嘴巴去说是不行的,所以,我们今后不管干什么都要端正自己的态度,这样才能把事情做好。4.不要报怨

其实在做单元测试的那个时候,有时候觉的特别的烦。有时候做了半天连一个函数都没有把弄出来,那种感觉真的是非常的难受,心中也有委屈。可是这是我的工作,我报怨也没有用。只能一步一个脚印走过来。直到后面把函数测完,心中还是很有成就感的。其实有的人会觉得公司这里不好那里不好,同事也不好相处工作也不如愿,经常埋怨。我觉这样只会影响自己的工作情绪,不但做不好工作,还增加了自己的压力。所以,我们应该少埋怨,要看到公司好的一面,对存在的问题应该想办法去解决而不是去报怨,这样才能保持工作的激情。

5、虚心学习

由于我们是新手,而且又还没有从学校里完全走出来。所以在工作过程中,我们会碰到很多问题,有的问题我们可以有我们所学的解决,有的有很大业务性的问题,我们就无法解决。这个时候不要不懂装懂,应该虚心地向前辈们请教。请不要害怕,因为前辈肯教我们肯定是我们的福气,对我们以后在工作中都有帮助的。同时请教的时候也是一个锻炼沟通的过程。在前辈给我们解惑的时候,我们也应该虚心的接受,不要装着一副不屑的样子。

6、知错能改

做为一名新人,不管在学校有多么的优秀,来到公司,我们顶多就只有点基础,其他什么的都得重新开始。在学习的过程当中,犯错是不可避免的。知错能改是我们唯一的选择。明知自己有错,还理直气壮那是不应该的。我认为这种行为是可耻的。在犯错的时候来铭记于心,不要第二次在犯同样的错了。当前辈或

其他人指出我们的错误时,我们要虚心听教,坦诚改错。这样我们才会进步,才会在组里与同事相处融洽。

7、团队合作

重要的不是我,是我们。在一个项目组里,我并不是一个人。我只能说我是组里的一个部分。我们每一人都不是神,我们不可能一个来完成所有的工作,因此,必须分工。但是,分工并不是都很明确的。每个人分到的工作,多多少少都会和别人的工作的有交集。这是因为,作为一个项目的每个部分,最终还是整合形成整体。我们还是需要这些部分与部分交集作为连接点组合起来。因此,每个虽是分工,但更多是合作。我们中的我必须明白这些,要有团队观,做好自己的同时,更重要也要做好与别人的沟通。这样才会避免工作的重复,意见的不同等负能量。

8、沟通能力

在上一点的体会团队合作中,其实我已经说了,团队合作的基础就是沟通。一个有效率的团队,我认为它的成功就在于成员之间良好的沟通能力。因为,人与人的沟通是信息传递的媒介。没有良好的沟通基础,信息在传递的时候就会被曲解。在软件开发的整个过程,团队合作是至关重要。每一环节,都离不开沟通。需求变更带来的问题,尤其需要在沟通中解决问题。所以,让自己把信息传递的正确和有效,提高沟通能力是必不可少的。9.做人做事讲究原则

其实在公司上下班是一个很大的学问。同事都已经来上班了,你才来。或者是同事还没下班,你人就都先走了。其实要把这些看成一种常态。在公司上班不是比谁先来,也不是比谁晚走的,比得是自己的工作的效率。有时候,我们工作做完,是可以先走。你想想,你走了之后,估计别人也敢走了。从这一点上,可以说你是帮助了大家。当然这只是开玩笑,做人做事要有点原则。工作没完成当然不能跑回去,这是没有责任的表现,以后主管怎么能把事情交给你。工作做完,想先走就走了,不必当担心这担心那的。我相信一个好的主管,不会以一些无所谓的因素来衡量一个人的。只要自己身体正,就不怕别人说。10.做好职业生涯规划

每个人在来实习之前,肯定会想我来这家公司是做什么。当你想好,并决定

来的时候,你已经做了第一步职业生涯规划了。实习也是成了我们检验计划的时候,如果你发现这个工作不适合你,毕业前你还有机会可以做换。如果感觉这个工作适合你,那么你就可以做下一步的规划了。我当初选择这个工作,是因为嵌入式软件开发在近几年会发展会比较快,而且本人对c++和c比较感兴趣。同时,目前做的工作是对日外包,对于我日语的提高也是很有帮助的。现在实习给我感觉是,不出现什么其他状况,应该毕业后会留在这个公司。至少今后的职业规划以日语和编程提高为主,以管理为辅。

在这里,我要感谢上海宝信软件股份分司给我这次宝贵的实习机会。同时,也要感谢组员对我有直接帮助的前辈。当然还要感谢学校和毕业指导王老师的关心与指导。

实习总结嵌入式 篇2

自2005年年末《国务院关于大力发展职业教育的决定》发布以来, “顶岗实习”即“2+1”人才培养模式已在全国各高等院校普遍实行。此模式的具体实行方式为:高校学生在校学习4~5个学期, 其余学期到专业对口的指定企业带薪实习并完成一定的生产任务, 使学生得以在真实的生产环境下完成职业技能训练。这种使学生脱离学校, 提前进入企业实习的方式所带来的直接问题就是实习单位遍布全国, 学生实习过程和时间相对较长, 教师无法随时随地对学生进行指导, 学生之间实习的经验体会等不能很好的交流等等。有鉴于此, 在目前互联网普及程度超高的前提下, 渤海船舶职业学院船舶工程系于2007年11月以学院网络服务器为依托搭建了“船舶工程系‘顶岗实习’教学网络平台”, 以网络论坛的形式对外开放, 特设经验丰富的专业教师进行网上教学、辅导, 此举不仅打破了时间和空间上的局限性, 拓展和完善了顶岗实习教学体系和内容, 还大大提高了学生们的实习热情和自主实习能力, 此外还实现了互动、高效、便捷、开放的管理方式。现将相关经验总结如下。

1 针对建设目的确定合理规模、优化布局

网络平台建设首先应针对建设目的确定其规模和布局。“船舶工程系‘顶岗实习’教学网络平台”是专门为顶岗实习服务的一种网络系统, 目的性专一, 没必要盲目仿照各大门户网站投入过多成本, 建设重点应为扩大平台互动性及增加使用人员的认同感。布局方面主要包括平台系统类型设计、网页设计、内容模块设计、检索和信息库设计等, 建设中应注重多元化优化组合, 力求突出主题、层次分明、使用便捷。如平台系统类型除教师答疑和指导模块以外, 还应包括用户管理、学习资源下载、经验交流、通知公告、信息检索等;网页设计不仅要有方便的导航和帮助系统, 版面还要布局合理, 各级网页主题突出, 层次分明;内容模块设计可依据学生专业、实习时间、知识内容特点、同一单位实习人数等进行系统化设计和完善, 例如该平台就按专业不同分设“船舶工程技术”、“船舶舾装工程”和“船舶涂装工程”等五个子模块, 考虑到学生在“中远船务集团”、“渤船重工”等企业实习人数较多, 特设相应子模块, 便于学生有针对性地检索信息。

2 师生共建共管共用、教师注重引导和监督

顶岗实习网络平台应以学生为主要建设主体和使用对象, 师生共建、共管、共用才能更好地发挥网络平台的实践应用效果。网络平台既要有学校和教师的空间, 也要有学生的独立空间, 使每个用户都能产生一定的网络归属感, 力求使每位老师和实习学生都能在该平台中找到自己的“家”, 网站的浏览次数才能不断增加, 从而汇聚人气, 进而大大提高网络平台的使用效率。

由于船舶工程系为学院主干系部, 教学任务繁重, 本系专职教师在完成专业教学和科研任务之余无法长期进行网络平台的建设和维护, 造成更新滞后, 降低了教学平台的使用效果。只有让学生参与到网络平台的建设和管理当中, 充分调动学生的积极性和参与热情, 满足其多元化的学习需求, 使其乐于享用自己的建设成果, 网络平台才能充分发挥作用, 取得更好的教学效果。

自该平台开放以来, 学生对于工作中的问题经常利用手机、数码相机等现场记录, 再上传到平台, 大家共同讨论, 使问题得到了很好的解决;平台中还为学生提供个人空间, 使学生可以将每天的工作心得体会进行保存, 相对于传统的工作日志来说, 这种新形式的网络日志更易被学生接受, 并能提高学生记工作日志的兴趣, 养成良好的工作习惯;平台中还设有学生专用讨论区模块, 在此模块中学生对工作中出现的问题、各船厂实际情况、学生在船厂中实际待遇等展开了积极的讨论, 热门话题人气过千, 跟贴数百, 学生各抒己见, 创造出了一个极好的学习、研究氛围。此外, 教师应加强对学生的引导和监督, 确保学生有正确的学习方向, 保证学生的网络活动内容与实习过程紧密结合。

3 体现船舶专业特色、与实践教学内容相结合

船舶工程系教学课程体系主要包括“船舶工程技术”、“船舶舾装工程”和“船舶涂装工程”等内容。课程研究对象为具体船舶, 实践性很强, 而网络具有虚拟性, 二者存在一定矛盾。网络平台建设必须注重虚拟与现实结合、课内与课外结合、实践教学内容与科学研究结合。为此, 本平台中大量添加多媒体教学和实例教学的内容, 如钢材预处理、分段装配、船舶下水、船舶舾装件安装、船舶涂装等, 均建立了内容丰富的录像和图片信息库。为体现“船舶工程”特色, 增加网络平台的影响力, 建设中以“船舶建造”等内容为主体对其进行补充和包装, 实践证明这些具有非常好的效果, 不仅提高了网络平台的档次和水平, 还增加了人气。更为令人欣喜的是吸引到了许多船舶工程专业人士的加入, 特别是该院的一些老校友, 他们大多数人已成为各船厂的骨干力量, 而他们成功的经验恰恰是现在学生最需要和欠缺的。在平台中, 他们结合自己的经验, 从实际出发, 为应届毕业学生提出了许多宝贵意见, 这样, 学生登陆该平台就等于有多个具有丰富工作经验的老师在身边指导, 从而进一步提高了学生的专业技能水平。

4 动态化管理、开放式运行

渤海船院船舶工程系现有“船舶工程技术”等五个专业, 每年毕业学生为500余人。而“顶岗实习”是使学生都分散进入船厂, 如采用传统的管理模式, 管理混乱、效率低下将不可避免。教学网络平台充分发挥网络的先进、高效、便捷、资源共享等优势, 动态化管理、开放式运行有力地保障了“顶岗实习”教学的顺利开展, 增强了教学效果。目前“船舶工程系‘顶岗实习’教学网络平台”时间上24小时开放, 空间上全方位开放, 使用对象包括学院教师、在校学生、毕业实习学生及相关专业人士, 起到了良好的示范和辐射作用。

5 存在的问题和改进意见

目前“船舶工程系‘顶岗实习’教学网络平台”建设还存在以下问题:一是责权不分, 教师是兼职额外进行工作, 常因科研、教学任务繁重而影响网络平台的建设、维护和运行;二是网络技术水平不够高, 网络平台建设质量还有待提高;三是平台的影响力还应进一步扩大。针对教学网络平台的实际情况和存在的问题, 建议采取以下策略进一步完善网络平台的建设工作:一是配备专职人员管理和建设网络平台;二是加强对专业教师的网络技术培训;三是扩大开放力度, 加强学习和交流;四是重视网络平台的长期管理和运行, 学院出台相关政策鼓励教师和学生积极参与网络平台的建设、管理和维护, 以增加用户数量, 提高使用效率。

参考文献

[1]杨文林.“船舶工程系毕业实践探讨与研究”[Z].渤海船舶职业学院立项课题, 2008, 4.

[2]“船舶工程系网络教学专用平台”存档资料[Z].2007, 11-2009, 3.

嵌入式开发技术总结 篇3

摘 要:由于嵌入式系统是一个资源受限的系统,所以嵌入系统的软件开发是采用交叉开发实现的。本文总结了嵌入式系统软件的开发技术,分析了嵌入式软件开发的各个过程,给出了每个过程能够使用的各种方法和技术,详细叙述了它们的实现过程,主要内容包括启动软件的选择、启动软件的各种烧写方法、操作系统内核的下载方法、根文件系统的下载方法、NFS文件系统的配置、通过NFS应用程序的交叉开发和目标机程序的编译等。

关键词:嵌入式系统交叉开发网络文件系统简单文件传输协议

中图分类号:TP311.52文献标识码:A 文章编号:1673-8454(2009)17-0078-03

嵌入式系统将拥有最大的市场。目前在世界范围内嵌入式系统带来的工业年产值已超过了一万亿元, 现在嵌入式系统正处在高速发展阶段。 嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上开发软件比较困难,有时候甚至是不可能的。目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行。需要交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个显著特点,交叉开发环境是指编译、链接和调试嵌入式软件的环境,它与运行嵌入式软件的环境有所不同,通常采用宿主机/目标机模式,目标机和宿主机之间的连接通常有三种连接方式:目标机的串口连接宿主机的串口,目标机的JTAG口连接宿主机的并行口,目标机的网口连接宿主机的网口,如图1所示。

本文选用某公司生产的OURS_ ARM9_2410EP为嵌入式目标系统,OURS_ARM9_2410EP是一个典型的嵌入式实验系统, 支持ARM9,具有丰富的外部接口,包括串口、JTAG口、PCMCIA卡、SMC卡、SD卡、USB 、网口和VGA接口等,支持三种启动方式,分别可以从两种NOR FLASH和一种NAND FLASH启动,具有丰富的扩展功能,可扩展GPS&GPRS、射频卡和蓝牙等模块。

一、目标机程序的编译

嵌入式系统中的软件一般包含四个部分:启动部分、操作系统内核、根文件系统和应用程序,这些程序是在宿主机的交叉编译环境中编译成目标机CPU能够运行的目标代码,然后下载到目标机。常用的嵌入式集成开发环境有Tornado、PB(Platform Builder)、ADS(ARM Developer Suite)、GNU工具链等。

二、启动部分的烧写

启动部分的烧写有三种方法:通过JTAG接口使用命令烧写、使用仿真器烧写和交叉烧写,其中交叉烧写要求嵌入式系统中含有两个启动部分。

ARM9_2410EP可以直接从FLASH硬盘的零地址执行代码,也就是说将初始启动代码烧写到FLASH零地址开始的地方就可以启动目标系统。支持ARM结构的启动软件有:U_BOOT、PPCBOOT、REBOOT和BLOB,本文以PPCBOOT为例进行说明。

PPCBOOT是源代码开放并遵守GPL(General Public License )的自由软件,支持多种CPU架构,包括alpha、arm、x86、ia64、mips、mips64、ppc、s390、sh、sparc和sparc64,是被广泛使用的一个启动软件。

首先使用GNU工具链将PPCBOOT编译成在目标机可运行的程序ppcboot.bin,编译过程请参阅文献[1]。

1.通过JTAG接口烧写

JTAG技术可以实现在目标机是裸机的情况下将程序烧写到目标机,是简单和直接的烧写方法。

用JTAG连接线连接宿主机的并口和目标机的JTAG接口,确认已经将JTAG 连接好,通过跳线开关配置要烧写的NOR FLASH。在Red Hat Linux或 Windows XP打开命令窗口,运行命令:

./JFLASH_2410EP_Nor /f: ppcboot.bin

其中JFLASH为烧写工具,/f表示文件,ppcboot.bin是OURS_ARM9_2410EP系统引导程序。

后面有两个选择,表示要烧写的目标地址,分别选择0,0,即开始对FLASH烧写引导程序ppcboot.bin。此后大约等待六七分钟,烧写完成。烧写结束后又出现选择,输入2退出,这时目标板的启动部分烧写完成。使用这种方法烧写的时间比较长,一般较少使用。

2.通过仿真器烧写

在Windows XP中安装ARM ADS集成开发环境,即ARM Developer Suite。安装Multi-ICE仿真器,在宿主机的并口和目标机的JTAG接口之间连接仿真器,连接宿主机的串口和目标机的串口,安装Multi-ICE v2.2软件。运行Multi-ICE Server,点击软件界面左上角的Auto-Configure按钮,在出现仿真器符号后,仿真器连接成功。

通过仿真器可以使程序直接运行在目标机的内存中,不使用目标机的FLASH,有很多程序就是通过仿真器在目标机运行和调试的。

在Windows XP中打开超级终端,在ADS集成开发环境中编译项目ProgramFlash,ProgramFlash是专门编写的操作FLASH的一个软件。通过仿真器运行ProgramFlash,ProgramFlash在超级终端的运行界面如图2所示。

选择写入的FLASH,然后在超级终端发送ppcboot.bin,按照提示就可以完成启动的烧写。

3.交叉烧写

在目标机支持多启动的情况下, 可以从一个FLASH启动,利用启动软件写FLASH的功能,通过热跳线,写到另一个FLASH中。

如图3所示是一个支持烧写FLASH的启动软件的运行界面,此时通过热跳线到另一个FLASH, 然后选择4就可以实现交叉烧写。

三、操作系统内核的下载

操作系统内核下载到目标机有三种方法:通过JTAG烧写、通过网口和串口从宿主机下载。其中通过JTAG烧写的操作与第一部分相同。在目标机启动PPCBOOT后,由于PPCBOOT支持网口和串口下载,操作系统内核就通过网口或串口下载到目标机。PPCBOOT的详细使用说明见参考文献[2]。

目前使用较多的嵌入式实时操作系统有:美国WindRiver公司设计开发的嵌入式实时操作系统VxWorks、微软公司的WindowsCE、Linux、UC/OS、eCos、Lynx实时系统公司的LynxOS和QNX软件系统有限公司的QNX等。

本文以Linux为例说明操作过程,Linux内核的交叉编译是在Red Hat Linux环境中实现的,编译后内核的文件名是bzImage,内核的编译过程见文献[3]。

下面分别说明通过网口和串口内核的下载过程。

1.使用网口

从网口下载操作系统内核,首先要在Red Hat Linux或Windows XP中启动tftp服务,启动超级终端,然后启动目标机的PPCBOOT,在超级终端中就可以使用PPCBOOT的tftp命令,将内核下载到目标机。[4]

下面分别说明在Red Hat Linux和Windows XP环境中的操作过程。SMDK2410 #表示PPCBOOT的提示符。

(1)Red Hat Linux环境

实现过程:1)在Red Hat Linux中启动tftp服务;2)在根目录下建立/tftpboot目录;3)把Linux 内核bzImage拷贝到/tftpboot目录下;4)在Red Hat Linux中启动超级终端minicom;5)启动目标板的PPCBOOT;6)在超级终端中运行tftp命令SMDK2410 # tftp 0x30008000 bzImage。其中数值0x30008000为内核下载到实验箱内存中的地址。7)下载Linux内核, SMDK2410# fl 0x1040000 0x30008000 0x100000。三个参数的意义:0x1040000为内核烧写到Flash的地址,当PPCBOOT启动后它会从此地址加载Linux内核。0x30008000为上一步使用的内核下载到内存中的地址。0x100000为内核的大小,0x100000可被替换为大于内核大小且是0x20000倍数的最小整数。

(2)Windows XP 环境

实现过程:1)在Windows XP中启动tftp服务器;2)在Windows XP中启动超级终端;3)启动目标板PPCBOOT;4)在超级终端中运行命令:SMDK2410 # tftp 0x30008000bzImage;5)下载Linux内核:SMDK2410# fl 0x1040000 0x30008000 0x100000。

2.通过串口

从串口下载操作系统内核,同样需要在Red Hat Linux或Windows XP中启动超级终端。启动目标机的PPCBOOT,在PPCBOOT的提示符下输入loadb命令, loadb命令的功能是通过串行线下载可执行文件到目标机,命令格式是:loadb [offset] [baud], 其中Offset是地址偏移量,baud是串口的波特率。

这个命令开始执行后,在超级终端中打开发送文件选项,出现发送文件对话框,在文件名选择项中加入要烧写的内核,然后单击发送,注意超级终端的波特率要与loadb命令的波特率一致。

四、根文件系统

根文件系统(Root File System)下载到目标机的方法与操作系统内核的方法相同。

首先制作根文件系统,Linux根文件系统的制作见文献[5],假定制作后根文件系统的文件名是ramdisk.image.gz,使用下面的命令下载。

SMDK2410# tftp 30800000 ramdisk.imag.gz

SMDK2410# fl 1140000 30800000 200000

其参数意义与上面的内核下载相同。

五、应用程序

由于应用程序运行在内核和根文件之上,所以应用程序的交叉开发能采用更方便的方法,一般采用NFS系统实现。在应用程序运行之前,应交叉编译为目标机的可执行程序。

NFS(Network File System)指网络文件系统,是Linux系统中经常使用的一种服务,NFS是一个RPC service,很像Windows中的文件共享服务。它的设计是为了在不同的系统间使用, 所以它的通讯协议设计与主机及作业系统无关。当使用者想使用远端档案时只要用“mount”就可把远端档案系统挂接在自己的档案系统之下,使得远端的档案在使用上和本地的档案没两样。

NFS系统配置包括目标机和宿主机的配置,其中以宿主机已配置为主。

在NFS服务中,宿主机(Servers)是被挂载(mount)端,为了远端目标机(Clients)可以访问宿主机的文件,宿主机配置两方面内容:打开NFS服务,允许“指定用户”使用。

在Red Hat Linux或Windows XP中均可以使用NFS服务,本文以Red Hat Linux为例进行说明。

1.NFS文件系统配置

宿主机NFS 文件系统的配置过程如下。

首先打开/etc/exports文件,加入如下内容:

/ 192.168.2.* (rw,sync,no_root_squash)。

其中:/表示宿主机的目录,在目标机共享,192.168.2.*为目标机的IP地址范围,括弧内表示操作的权限,然后运行命令:exportfs。

NFS服务的启动是由一些命令来完成的,它们是:portmap、rpc.nfsd、rpc.lockd、rpc.statd、rpc.mountd和rpc.rquotad,如果系统中有这几个命令,就运行下列命令启动NFS服务:service nfs start或/etc/rc.d/init.d/nfsstart;如果系统中没有,就下载工具包nfs-utils-1.0.7.tar.gz,然后编译安装就可以了。在目标机也应该启动NFS服务。在上述的工作完成以后,目标机和宿主机就可以通过NFS 文件系统进行软件的调试和运行,即软件编译在宿主机完成,运行在目标机。

2.通过NFS文件系统进行访问

访问过程的实现如下:在宿主机的Red Hat Linux 中运行命令:minicom,minicom是Linux下的超级终端,进入超级终端后进行一些设置,首先按下Ctrl-A,再按Z,然后选择O,进入配置界面,按上下键选择Serial port setup 进行如下设置:

Serial Device:/dev/ttyS0

BPS/par/bits:/115200 8N1

硬件流、软件流均选择无

然后按ESC键退出配置界面,启动目标机,就在超级终端出现Linux命令提示符,键入命令:ifconfig eth0 192.168.2.2,配置目标机的IP地址,然后在宿主机的控制台运行命令:ifconfig eth0 192.168.2.10,配置宿主机的IP地址。

然后在宿主机的超级终端中键入命令:mount-t nfs 192.168.2.10://mnt/,它的作用是把宿主机的/目录挂接到目标机的/mnt/ 目录中,这时宿主机的/目录下的程序就可以运行在目标机中。需要注意的是宿主机应关闭防火

墙。

六、结论

本文对嵌入式开发进行了总结,总结了嵌入式目标机软件的各个部分各种不同的实现方法,详细介绍了它们的实现过程。本文选用OURS_ARM9_2410EP作为实验对象,OURS_ARM9_2410EP是一款具有代表性的嵌入式实验平台,其他产品的操作是类似的。本文介绍的方法可在S3C2410的产品中使用,可对嵌入式开发提供一些参考方法。

参考文献:

[1]将ppcboot2.0.0移植到s3c2410平台.http://www.yuanma.org/data/2006/0917/article_1549.htm,2006.09.

[2]PPC Boot Firmware User Manual.http://www.radstone.com/linux/linux1/ppcboot.pdf,2004.

[3]陈健,宋健建.Linux程序设计(第三版)[M].北京:人民邮电出版社,2006.

[4]汪小燕,连晓平,董燕,杨大鹏.基于TFTP 协议的嵌入式系统开发方法设计与实现[J].华中科技大学学报(自然科学版),2006,34(12):56-58.

嵌入式培训实习报告 篇4

今天是我到杰普软件科技有限公司实习的第一天,也是我第一次接触到linux系统。虽然我以前就知道这个系统,但以前从没见过,现在第一次用感觉还不错。

老师在上课的时候还介绍了很多于linux的发展历史和强大的功能,所以对那个以后要一直用到的系统充满了期待。老师也讲了一些linux系统的组成,些简单的操作,linux分为内核,文件系统,和shell,shell是用来提供与内核交互界面的东西,所以以后的对inux的操作也就是在终端上输入shell命令来操作系统。

第二天:

今天主要讲了一些基本的操作命令,比如说在终端上输入pwd,就能显示当前的文件目录,输入ls,能显示当前目录的所有文件和目录,后面加些后缀就能显示更多的关于文件的信息,还有就是用touch命令来建立文件,用cp命令来复制文件和目录,mkdir命令来建立目录等等。用命令来操作看起来有点像DOS系统,不过比DOS操作起来更简单,并且功能比DOS强大太多了。总的来说今天收获还蛮大的。

第三天:

今天是讲基本操作命令的最后一天,这几天学下来感觉有点吃力了,因为这命令太多了,还有很多命令还有后缀,还有一些命令可以相互组合,而且学习中间还涉及到很多以前没有听过过的计算机术语,更是加大了学习的难度,不过在同学的相互帮助下克服了种种困难。

经过这一段时间的学习我们对linux的操作有了很大的提高,并且知道了很多计算机方面的知识,这对以后的进一步学习有很大的帮助。

第四天:

经过几天的学习,终于把linux的所有命令学完了。但是第一天老师提到过的shell还是没怎么理解是怎么回事,所以今天老师就重点讲了shell。Shell俗称壳(用来区别于核),是指“提供使用者使用界面的”软件“(命令解析器)。它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。Shell有好多种类型,其中比较常见的shell有Bourne shell,C shell,Kornv shell和 Bourne Again Shell,其中我们现在用的就是Bourne Again shell。

第五天:

前几天学习的命令太多,但一条命令只能让计算机做一件事,并

且每次要用的时候一次只能输一条语句,用起来很不方便。为了能让这些命令做更多事,并且提高执行效率,所以我们把一些命令写在脚本上,我们把这些叫shell脚本,shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。在写shell脚本的时候可以再里面加入判断,循环等语句,所以能把linux的操作效率大大的提高,功能也变得更强大。

第六天:

新的一年到了,我们也开始新的东西了,前几天学的只是操作,但是今天开始就要学习嵌入式开发的核心内容,那就是我们以前都学习过的c语言,不过以前学习的都忘得差不多了。最先学习的还是在linux平台下的编译环境,这里我们要用到种个叫VI的编译环境,他跟我们以前用的window环境下的vc++6.0有很大不同,用vi进行编译时候比vc++6.0复杂多了,要编译时候要输好几行命令,刚开始用的时候很不习惯,但用了几次以后就好多了。

第七天:

今天就要开始正式学习c语言了,C语言是嵌入式开发的基础,所以一定要把c语言给学好。虽然以前学习过c,但是学了跟没学差不多,所以一切都要重头开始学起,今天老师只讲了一些基本的,所以今天只讲了数据结构,不过比以前老师讲的更深入一些。这里讲课更以前学校里最大区别就是这里老师每讲一个程序,我们都要跟着动手敲出来。有一句话叫熟能生巧,所以只要我们肯动手,多动手就能把这东西学好。

第八天:

今天是年前学习的最后一天了,明天就要回家了,虽然回家的心情有点急切,但还是要把课给上完,今天还是在讲的是指针,指针是c语言的精华,但也是c语言中最难的,特别是指针跟数组,字符数组什么的结合在一起,弄得头都有点大了。所以老师讲了好几天,但是还有好多听不懂的,看来还是要加把劲。回到家里还是要多看一点书,多学一点是一点,尽量吧那些不懂得弄懂。

实习总结:

回想起这么多天的培训实习,感觉收获挺多的,学到了很多关于计算机的知识,还有一些以前在在课堂上学不到的一些东西。总的来说本次实习使我第一次亲身感受了所学知识与实际的应

实习总结嵌入式 篇5

户口所在: 广东省 国 籍: 中国

婚姻状况: 未婚 民 族: 汉族

身 高: 177 cm

求职意向

人才类型: 普通求职

应聘职位: 软件工程师,嵌入式软硬件开发

求职类型: 实习可到职日期: 随时

月薪要求: 3500~4499元 希望工作地区: 广州,东莞,佛山

教育背景

毕业院校: 华南理工大学广州学院

最高学历: 本科 获得学位: 毕业日期: -07

专 业 一: 自动化

起始年月 终止年月 学校(机构) 所学专业 获得证书 证书编号

2012-09 2016-07 华南理工大学广州学院 自动化

语言能力

外语: 英语 良好 粤语水平: 良好

其它外语能力:

国语水平: 良好

工作能力及其他专长

1.熟悉C语言、链表、队列等数据结构和基本算法的编程应用。

2.熟悉Linux操作系统以及Linux多进程,多线程编程方式。

3.掌握 Linux文件IO操作、系统编程、socket网络编程,了解TCP/IP协议。

4.了解ARM处理器(S5PV210)、汇编语言、shell脚本以及QT应用,具有良好的英语水平与良好的编程习惯。

项目经验:

项目一 :模拟聊天软件

项目描述: 在Linux的编译环境下,采用Socket网络编程编写一个服务器程序和客户端程序,实现多个客户端连接服务器进行通讯。在服务端程序中,采用系统编程创建子线程,实现程序的.并发执行,一条线程打印连接到本端的客户端的IP号,另一条线程负责收发消息,从而实现模拟聊天功能。

项目技术: Linux系统编程、进程及线程间通信、Socket网络编程。

项目收获: 1、进一步理解了TCP/IP四层网络模型的结构框架。

2、在编写程序的过程中,进一步掌握了多线程程序的设计技巧。

3、掌握Socket函数的编程技巧与数据结构相关知识在实际编程中的应用。

项目二 :基于ARM平台功能

开发工具:S5PV210开发板、Cortex-A8处理器

项目描述:在Linux的编译环境下,使用C语言编写6个功能程序,并移植到ARM平台下实现LED灯流水灯;控制蜂鸣器频率和音量调节;LCD图片和文字显示;动态显示A/D电压波形;使用Nand Flash读写32位数据;数码相册。

项目三:校园一卡通

开发环境:linux 、Qt creator工具

项目描述:在Linux操作系统中,采用Qt creator工具进行编程与设计校园一卡通系统,该系统包含着登录界面,点菜界面以及充值界面。系统运行时学生通过姓名和学号登录成功后即可进入点菜界面、该界面内可查询余额、充值、下单、清除菜单、结帐等一系列功能

个人自传

1、有上进心,肯虚心求学,有时会因为执着于编程问题,忘了时间。

2、注重团队合作,具备软件编程能力,愿意在强压力环境下工作。

嵌入式试题总结 篇6

1、交叉开发环境、嵌入式系统开发的调试方法(填空一)

答:

交叉开发环境:交叉开发环境是指实现编译、链接和调试应用程序代码的环境与运行应用程序的环境不同,它分散在有通信连接的宿主机与目标机环境之中。

嵌入式系统的调试方法: a.源程序模拟器方式 b.监控器方式 c.仿真器方式

2、BSP的定义、作用(填空二)答:

硬件抽象层称为BSP,即板级支持包(Board Support Package)。板级支持包是操作系统与目标应用硬件环境的中间接口,它是软件包中具有平台依赖性的那一部分。

板级支持包的主要功能包括两部分: a.在系统启动时,对硬件进行初始化

b.为驱动程序提供访问硬件的手段

3、ARM处理器的特点、寄存器数目及作用(填空三)答:

ARM处理器的三大特点是: a.耗电少、成本低、功能强; b.16位/32位双指令集;

c.全球众多合作伙伴保证供应。

ARM内含37个寄存器,其中: a.31个通用32位寄存器 b.6个状态寄存器

4、中断的处理流程及其寄存器的作用、相关的操作等(填空四)答:

处理中断的步骤如下:

(1)保存现场。保存当前的PC值到R14,保存当前的程序运行状态到SPSR。(2)模式切换。根据发生的中断类型,进入IRQ模式或FIQ模式。

(3)获取中断源。以异常向量表保存在低地址处为例,若是IRQ中断,则PC指针跳到0x18处;若是FIQ中断,则跳到0x1C处。IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,所以接下来PC指针跳入中断服务子程序处理中断。

(4)中断处理。为各种中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识

07电信三班13栋216 别到底哪一个中断发生了。进而调用相应的函数进行中断处理。

(5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,进而继续执行被中断的程序。

中断控制器使用的寄存器

• SRCPND(SOURCE PENDING REGISTER)• 中断源挂起寄存器

• INTMOD(INTERRUPT MODE REGISTER)• 中断模式寄存器

• INTMSK(INTERRUPT MASK REGISTER)• 中断屏蔽寄存器

• PRIORITY(PRIORITY REGISTER)• 中断优先级控制寄存器

• INTPND(INTERRUPT PENDING REGISTER)• 中断挂起寄存器

• INTOFFSET(INTERRUPT OFFSET REGISTER)• 中断偏移寄存器

• SUBSRCPND(INTERRUPT SUB SOURCE PENDING)• 子中断源挂起寄存器

INTSUBMSK(INTERRUPT SUB MASK REGISTER)• 副中断屏蔽寄存器。

a.SRCPND/ SUBSRCPND, 这两个寄存器的作用是用于标示出哪个中断请求被触发。

• b.INTMOD寄存器作用是指定该位相应的中断源处理模式(IRQ还是FIQ)。若某位为0,则该位相对应的中断按IRQ模式处理,为1则以FIQ模式进行处理,该寄存器初始化值为0x00000000,即所有中断皆以IRQ模式进行处理。

c.INTMSK/ INTSUBMSK 寄存器为中断屏蔽寄存器 ,作用是决定该位相应的中断请求是否被处理。若某位被设置为1,则该位相对应的中断产生后将被忽略(CPU不处理该中断请求),设置为0则对其进行处理。这两个寄存器初始化后的值是0xFFFFFFFF和0x7FF,既默认情况下所有的中断都是被屏蔽的。

• d.PRIORITY(PRIORITY REGISTER),中断优先级控制寄存器,设置中断优先级

• e.INTPND(INTERRUPT PENDING REGISTER)中断挂起寄存器,INTPND 某个位被置1,则表示CPU响应了该位相应的中断进行处理。

f.INTOFFSET(INTERRUPT OFFSET REGISTER)中断偏移寄存器,作用只是用于表明哪个中断正在被处理。

二:简答(30分、6题)

5、单片机系统、嵌入式系统和SOC系统三者有何区别和联系?(简答一)

07电信三班13栋216 答:嵌入式系统与单片机系统的区别

• 目前嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计;

• 单片机系统多为4位、8位、16位机,不适合运行操作系统,难以进行复杂的运算及处理功能;

• 嵌入式系统强调基于平台的设计、软硬件协同设计,单片机大多采用软硬件流水设计;

• 嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基本相同。

• SoC就是System on Chip,SoC是一种基于IP(Intellectual Property)核嵌入式系统设计技术。• 它结合了许多功能区块,将功能做在一个芯片上,ARM RISC、MIPS RISC、DSP或是其他的微处理器核心,加上通信的接口单元,例如通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等等,这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。

• 嵌入式片上系统设计的关键是IP核的设计。IP核分为硬核、软核和固核,是嵌入式技术的重要支持技术。

6、嵌入式系统的定义、组成(简答二)答:

嵌入式系统的狭义定义:使用嵌入式微处理器构成的独立系统,并有自己的操作系统,具有特定功能,用于特定场合的系统。

嵌入式系统的组成:嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。

7、实时系统的概念、RTOS和普通OS的区别(简答三)答:

实时系统(Real Time System)是指产生系统输出的时间对系统至关重要的系统。从输入到输出的滞后时间必须足够小到一个可以接受的时限内。

RTOS与通用计算机OS的区别:

a.实时性。响应速度快,只有几微秒;执行时间确定、可预测; b.代码尺寸小。10~100KB,节省内存空间,降低成本; c.应用程序开发较难;

d.需要专用开发工具:仿真器、编译器和调试器等。

8、ARM的数据类型和处理器模式(简答四)答:

ARM处理器支持下列数据类型: a.Byte

字节, 8位;

b.Halfword 半字, 16位(半字必须与2字节边界对准); c.Word

字,32 位(字必须与4字节边界对准)。ARM体系结构支持7种处理器模式。

07电信三班13栋216 处理用户 FIQ IRQ 管理 中止 未定系统

模 式 usr fiq irq svc abt und sys

说 明

正常程序执行模式

支持高速数据传送或通道处理 用于通用中断处理 操作系统保护模式

实现虚拟存储器和/或存储器保护 支持硬件协处理器的软件仿真 运行特权操作系统任务

9、什么是写直达和写回Cache操作,各有何特点?(简答五)答:

写直达、写回、标记法是Cache的三种写操作方式,即三种不同的Cache更新算法。

写直达,顾名思义,它的做法是当Cache写命中时,Cache与主存同时发生写修改。写直达法是写Cache与写主存同步进行。其优点是Cache每行无需设置一个修改位及相应的判测逻辑;其缺点是Cache对CPU向主存的写操作无高速缓冲功能,降低了Cache的功效。•

写回,当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,只当此行被换出时才写回主存。这种策略使Cache在CPU与主存之间的读方向和写方向方面都起到高速缓存的作用。对一Cache行的多次写命中都在Cache中快速完成修改,只是需被替换时才写回速度较慢的主存,减少了访问主存的次数,从而提高了效率。

10、ARM为何集成了32位的ARM指令集和16位的Thumb指令集?(简答六)答:

ARM指令集是32位的,THUMB是16位的。他们可以动态切换。你可以认为ARM是80386,而THUMB是8086。

在一般的情况下,Thumb 指令与ARM 指令的时间效率和空间效率关系为:

— Thumb 代码所需的存储空间约为ARM 代码的60%~70% — Thumb 代码使用的指令数比ARM 代码多约30%~40% — 若使用32 位的存储器,ARM 代码比Thumb 代码快约40% — 若使用16 位的存储器,Thumb 代码比ARM 代码快约40%~50%

07电信三班13栋216 — 与ARM 代码相比较,使用Thumb 代码,存储器的功耗会降低约30%

11、基于ARM的硬件启动流程(简答七)答:

硬件启动程序的工作一般包括:(1)分配中断向量表(2)初始化存储器系统

(3)初始化各工作模式下的堆栈(4)初始化有特殊要求的硬件模块(5)初始化用户程序的执行环境(6)切换处理器的工作模式(7)呼叫主应用程序

三:应用(20分、2题)

12、.C程序和汇编的互相调用的应用

答:汇编程序调用C程序的方法为:首先在汇编程序中使用IMPORT伪指令事先声明将要调用的C语言函数;然后通过BL指令来调用C函数。

C程序调用汇编子程序的方法为:首先在汇编程序中使用EXPORT伪指令声明被调用的子程序,表示该子程序将在其他文件中被调用;然后在C程序中使用extern关键字声明要调用的汇编子程序为外部函数。

举例:

A.汇编程序调用C程序的方法为:首先在汇编程序中使用IMPORT伪指令事先声明将要调用的C语言函数;然后通过BL指令来调用C函数。

例如在一个C源文件中定义了如下求和函数: int add(int x,int y){

return(x+y);} 调用add()函数的汇编程序结构如下:

IMPORT add

;声明要调用的C函数 …

MOV r0,1 MOV r1,2 BL add

;调用C函数add B.C程序调用汇编子程序的方法为:首先在汇编程序中使用EXPORT伪指令声明被调用的子程序,表示该子程序将在其他文件中被调用;然后在C程序中使用extern关键字声明要调用的汇编子程序为外部函数。

例如在一个汇编源文件中定义了如下求和函数: EXPORT add

;声明add子程序将被外部函数调用 …

07电信三班13栋216 add

;求和子程序add

ADD r0,r0,r1

MOV pc,lr

在一个C程序的main()函数中对add汇编子程序进行了调用: extern int add(int x,int y);

//声明add为外部函数 void main(){

int a=1,b=2,c;

c=add(a,b);

//调用add子程序

… }

13、什么是big-endian和little-endian,编写一段程序测试你所使用的计算机的体系结构采用哪一种存储机制?

答:big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。

int x=0x12345678;int *p=&x;if(*(char*)p==0x78)

printf(“little-endian”)else if(*(char*)p==0x12)

printf(“big-endian”);

四:编程(10分、1题)

14、GPIO的编程(例:控制LED、有配置图、表)

答:举例:通过对G口的操作控制CPU板左下角的LED1和LED2实现轮流闪烁。

void Main(void){

int flag, i;

Target_Init();//进行硬件初始化操作,包括对I/O口的初始化操作

for(;;){

if(flag==0){

for(i=0;i<1000000;i++);//延时

rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000;//配置第8、第9位为输出引脚

rGPGDAT = rGPGDAT & 0xeff | 0x200;//第8位输出为低电平

//第9位输出高电平

for(i=0;i<10000000;i++);//延时

flag = 1;

}

07电信三班13栋216

else {

for(i=0;i<1000000;i++);//延时

rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000;//配置第8、第9位为输出引脚

rGPGDAT = rGPGDAT & 0xdff | 0x100;//第8位输出为高电平

//第9位输出低电平

for(i=0;i<1000000;i++);//延时

flag = 0;}

} }

五:分析(10分、1题)

15、分析:中断过程举例

初始化条件:(1)INTMASK的值为0x400, PRIORITY寄存器中的ARB_MODE2值为0,ARB_SEL2的值为00。INTMOD的值为0xffffffff。

(2)INT_TIMER0, INT_TIMER2和INT_UART2三个中断同时触发。问:(1)此时SRCPND、INTPND、INTOFFSET的值分别是什么?

(2)一次中断处理完毕后,SRCPND、INTPND、INTOFFSET的值又是什么? 我们用INT_TIMER0, INT_TIMER2和INT_UART0三个中断完整地介绍一次中断异常处理。首先我们得做几个假设: 假设1:这三个中断的屏蔽被取消。

假设2:PRIORITY寄存器中ARB_MODE2,ARB_MODE5皆为0,即不进行优先级的自动旋转排序,任何时候ARBITER2,ARBITER5控制的中断组优先级次序分别为0-1-2-3-4-5和1-2-3-4。假设3:这三个中断皆为IRQ类型。假设4:这三个中断同时被触发。

上一篇:美工个人述职报告下一篇:名著阅读英语