怎么快速怎样学好英语的方法ARM的方法

& 登录/注册
您可以从小木虫客户端获取VIP通行码,无需登录继续浏览
STEP1扫描左侧二维码,下载新版客户端
(已安装客户端用户请无视)
STEP2登录页面下方获取VIP通行码
VIP通行码:
小木虫,学术科研互动社区,为中国学术科研免费提供动力
违规贴举报删除请联系客服电话: 邮箱:(全天候) 或者 QQ:
广告投放与宣传请联系 李想 QQ:
QQ:&&邮箱:
Copyright & 2001-, All Rights Reserved. 小木虫 版权所有
浏览器进程
打开微信扫一扫
随时随地聊科研专访唐攀:经验之谈 学习嵌入式开发起步指南
发表于 14:40|
摘要:社区之星记者第四次的采访是CSDN博客专家唐攀,唐攀是华清远见高级研发工程师和高级讲师,他认为要想深入学习嵌入式,要先学好汇编和体系结构,对操作系统要了解透、中断处理、内存管理和内核结构体等等都能熟练掌握,另外再加上代码的阅读能力。
对于嵌入式工程师应该会哪些技术,唐攀认为技术只是工具,最主要的还是编程思想
唐攀,华清远见高级研发工程师和高级讲师,从事Android底层及系统移植相关研发工作,担当企业在职员工培训、企业内训及大学生职业培训。有多年知名外企嵌入式方向软件研发经历,拥有丰富的项目经验,与杨铸共著《深入浅出嵌入式底层软件开发》一书。2009年转行到培训与研发结合的教育行业,并从那时开始进行Android应用开发及底层移植等工作。
兴趣+坚持=一门新技术
CSDN:根据介绍,你以前是在日企从事汽车嵌入式开发,是什么缘故促使你转向Android移动开发?在自主学习的过程中有没有遇到什么困难?你是如何克服的?
唐攀:其实从07年Steve Jobs发布iPhone手机开始,我们已经从信息时代进入了移动互联网时代,这是个更细化的新时代,在地铁公交上,几乎每个人都在对着移动智能设备进行&交互&。当Android在08年出现,大陆的程序员基本上09年才开始接触 Android,我之所以转向Android移动开发,主要是因为Android是基于Linux操作系统,而我之前又是做Linux应用与驱动工作,所以一定的&交集&让我快速转型。当然,刚开始对Android很陌生,后来买了部G1手机才开始慢慢感受到它的优势,比如开源、程序间平等、UI漂亮和可玩性强等。
刚开始学习Android还是2009年,那个时候网上并没有现在这么多的资料,所以都是直接从官方网站上看在线SDK。有问题也是Google去解决,并且一般做底层的都是和C或C++接触比较多,所以Java语言这儿可能也会有一点突破,不过还好,学会C的人,学其它语言都不难。在学习Android应用时没有很大的困难,就是:兴趣+坚持,而到了后面可能问题就比较多,各种服务的使用,自定义控件或样式等。
后来我又转到Android底层,这主要是因为开源是Android最大的优势,也比较适合国情。在底层最大的困难就是环境搭建和调试经验,基本上每个问题上都会卡上一段时间,一旦解决了,这些就会是自己的经验,一般快捷有效的解决方法都是借助google和自己的跟读代码。
CSDN:是什么原因让你从技术人员成为一名教学工作者,有特别的故事和我们分享吗?
唐攀:这得归结于机会和个人选择共同作用的结果,08年金融危机,外企处境不妙,而教育培训机构却独树一帜。当时一朋友介绍到一培训机构里研发嵌入式开发板上对应的教学案例与项目,后来偶尔也能替讲师上课,再后来教学总监觉得效果不错。在教学案例与项目研发结束后,总监就让我转到教学上&&做教育,这是个良心产业,当讲师也相对比较体面一些,收入和做研发差不多,但是一般不会加班,因此有工作、有兴趣和有生活,也就喜欢上这个行业。
CSDN:你从事Android底层教学工作,对于如何更好、更深入地学习Android技术肯定有独到的见解,可以与我们分享下这一块经验吗?
唐攀:独到的见解倒谈不上,倒是有一些对初学者的建议,Android是一个大杂烩,牵扯的东西非常多,比如Java、C、C++、设计模型、Linux和驱动等等,总之太多了。如果你是做嵌入式底层,比如做过驱动,做过Linux应用程序开发,那你学Android底层相对比较轻松一些,如果你是做上层的,那你要突破的点太多了。我觉得学习Android底层,应站在应用程序角度考虑接口,站在接口角度考虑框架, 站在框架角度考虑硬件抽象与数据处理,以Linux操作为基础,以编程语言为武器,以设计模型为战略,以read source code 为具体动作,坚持下来就行。
CSDN:你和杨铸共同编写了《深入浅出嵌入式底层软件开发》一书,在这本书中,你都做了哪些贡献?在出书的过程中有什么难忘的回忆吗?
唐攀:杨铸老师就是前面提到的朋友兼总监,他先提出来要写一本书,他负责高级驱动那部分,但又想将ARM体系结构加入到书中,由于我一直做这块工作,所以书前面的ARM体系结构及裸驱这块是我写的,杨老师负责后面的部分。至于出书的回忆太多了,我记得无数个夜晚我同时对着三块板子调试书籍里提到的案例(因为我自己改的一个小操作系统要运行在三块常见的开发板上,降低读者学习成本),用了一整天时间画一张中断流程总图,书籍中ARM部分,每一幅图都是我自己亲手PS,反正总共写了300多页,用了半年时间。不过这些付出还是值得的,通过网上书店的评价来看,读者还是比较认可这本书。
如何学习嵌入式开发
CSDN:可以说说当初你为什么选择嵌入式开发?你认为学习嵌入式开发如何开始和深入?
唐攀:选择嵌入式开发是兴趣使然,这得归功于我父亲的影响,他当兵是学无线电,复员后工作之余帮邻居修电视及收音机等。受此影响我也对这些特别感兴趣,大学就直接选择学计算机,毕业了找工作也是底层相关,不过当时叫单片机&&,可以说兴趣主导了我的方向,每当我看到电子产品时,我就特别有感觉。
如何开始和深入学习嵌入式开发,这个还是要和专业相关,并且有兴趣,因为嵌入式有时真的挺枯燥,简单的问题可能卡上几天。深入的话,就是个人追求的问题,我是喜欢打破沙锅问到底的人,嵌入式这块如果你想深入的话,汇编和体系结构要学好,然后是操作系统要了解透、中断处理、内存管理和内核结构体等等都能达到掌握程度,另外再加上代码的阅读能力就差不多了。
CSDN:你认为要成为一名优秀的嵌入式工程师应该会哪些技术,具备哪些职业素养?
唐攀:技术无止境,几年前J2ME还很火,可现在已是Android和ios天下,再过两年可能就是HTML5,这些都不好说。其实技术只是工具,最主要的还是编程思想和一个人对新方向的嗅觉能力,编程思想这块就是开发经验的积累,多调几个错误、多写代码、多看别人的代码和多实现自己的想法,然后就是多关注国内外类似CSDN的一些IT资讯门户。谈到职业素养,其实就是一句话:北京的IT圈子很小,抬头不见低头见,不在一时之得失,做好每一件事,写好每一行代码。
CSDN:请简单介绍下哪些是常用的嵌入式系统?在这些系统中,如何选择适合自己的系统?
唐攀:常用的嵌入式系统主要还是按功能分:实时和非实时,单任务与多任务,常见的有vxworks、linux、winCE和ucosII等。选嵌入式系统得根据硬件芯片和系统功能来决定,如果实时性要求高的,那么就是vxworks和ucosII,如果用于处理多任务,并且要UI表现好点,那么就是linux+QT或Android与winCE。
CSDN:硬件开发平台有FPGA,ARM,DSP,AVR等等,哪个更好,能简单分析下吗?初学者如果要学习ARM开发板,该如何去选购?
唐攀:其实不能说硬件开发平台哪个更好,只能说哪个更适合你哪个更有前途,说白了,就是赚的多还不累的。其实这几个平台都有自己的特点,FPGA基本上是纯硬件,搞IC的,DSP主要是逻辑处理控制,ARM平台现在应用比较多一些,基本上就是针对ARM的芯片进行编程和外设控制,AVR是比较偏小型化的单片机开发和设计,应用广泛且比较简单。如果你是硬件专业的,就做FPGA或ARM、AVR的外设电路设计,如果做软件的,就DSP、ARM和AVR的编程等。如果初学者要学习ARM开发板,我觉得还是2440的比较不错,一是便宜资源多,二是方便调试。有很学生就想花大价钱,买最好的板,其实没有用,买了学习用不上也是浪费,不如自己花500多块买个2440,一点一点的学习,学习成本最低且效率最好。最好去淘宝上找一个2440开发板,那里不仅多,关键不贵包邮,还送东西。
CSDN:有人说嵌入式开发不一定要会ARM汇编指令集,你怎么看的?还有人说会Windows CE的都是牛人,不过也有人讲Windows CE没前景,就业范围太窄,你是怎么看待这个问题的?
唐攀:没写过汇编程序的C语言的程序员,不是优秀的程序员。为什么这么说?汇编并不是一门语言,而是背后的体系结构,了解体系结构后,能大大增加你的计算机理解力,能写出高效的C代码,就好像C语言是武器,而体系结构是剑法,有了宝剑,没有剑法,不能达到最高的杀伤力。WinCE我没有太多的经验,现在WinCE是有点落伍了,主流都是WindowsPhone了,不过目前WindowsPhone市场需求还没有激发出来,再过上一年应该差不多了,大家可以关注下,个人比较看好它。
CSDN:抛开自身因素,当前嵌入式开发学习往哪个方向发展比较好?另外在未来移动物联网和云计算将大行其道,你觉得嵌入式开发都有哪些发展机遇?
唐攀:现在来说,嵌入式开发最好和现在的物联网、智能家居和云计算结合起来,物联网有传感器外设,有控制单元,云计算要与端结合,这些过程都需要嵌入式,我们平时工作中要多关注新理念和新机遇。
CSDN很多内容值得我们去学习
CSDN:你是什么时候接触到CSDN,它对你工作和学习起到哪些帮助或影响?对CSDN有什么建议,对其未来有什么期待?
唐攀:很早就接触CSDN,这主要还是在开发过程中遇到问题,百度一看都是CSDN的文章,心想差不多有救了,因为CSDN是专业做IT的技术库,其中有很多经典的文章和内容值得我们去学习和扩展。对CSDN的建议就是多分享些世界新技术,多报道一些国内外的新点子,同时希望CSDN能多在大学生中举办些开发创新活动,提高国人的创新能力,争取出些Facebook这样的人才,让中国的IT人成长更快,质量更高。
若想获悉唐攀更多动态,请关注:
唐攀CSDN博客: & 唐攀CSDN ID:& 唐攀个人微博:
本文为CSDN原创,未经允许不得转载。如需转载请联系。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章自己的ARM学习历程(入门版)_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
自己的ARM学习历程(入门版)
&&ARM 学习
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩27页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢后使用快捷导航没有帐号?
请完成以下验证码
查看: 2270|回复: 7
快速学习汇编的方法
在线时间267 小时
芯币3315枚
TA的帖子TA的资源
纯净的硅(初级), 积分 598, 距离下一级还需 202 积分
纯净的硅(初级), 积分 598, 距离下一级还需 202 积分
可能有一些人士认为汇编不重要,现在都有C语言编译器了,为什么还需要学习汇编?这个问题需要对不同的人去分来看,如果是学习上层应用软件的,汇编的确不那么重要,但是如果是底层驱动或者平台架构的,汇编会变得非常的重要。
下面举几个例子说明汇编的重要性:
1 系统的启动代码必须要汇编去编写,因为需要涉及到设置C语言运行栈指针,操作CPU内部协处理器等,C语言是无法完成的。
2 由于编译器优化的原因,往往会过度优化而导致C语言经过编译器后原有的逻辑性为和用户的逻辑行为不一致,这个时候只能通过反汇编去找出到底编译器的优化错误到底在哪里。最常见的情况就是变量不加volatile在某种情况下会被编译器优化掉,此时唯一的跟踪方法就是反汇编,才能走到根本原因。
3操作系统的移植必须要用汇编才能做到,因为涉及到cpu寄存器在栈的保存,还原等等操作,C语言是无法做到的。
4 在某种情况下,特别是一些运算的算法,编译器可能不会采用高效率的汇编语言去优化,这个时候用户觉得性能不够的话,
汇编的学习往往是嵌入式软件工程师成为系统平台架构师的必备标准。
有很多读者可能认为每一种cpu的汇编都不同,而且不同的编译器平台,诸如iar, keil, gcc 都不同,怎么去学习呢,似乎是一种不可能的任务。答案肯定是可以学会的,而且很简单。下面举例说明学习方法:
首先你要有armv7-m的手册,这个手册可以去arm官网去下载,前面有说明过在哪里下载,不再复述。手册里面有如下的内容需要粗略看一下,但是不需要记忆,只要会查就行:
11a.png (37.09 KB, 下载次数: 0)
13:56 上传
然后可以下载官网的m3以及m4工程。打开后仿真运行到某一个C语言断点,然后看反汇编:
11b.png (51.99 KB, 下载次数: 0)
13:57 上传
比如设置到断点到task_obj-&suspend_count = 1u 这一句。可以看到对应的反汇编语句是STRB& &&&r10,[r4,#0x1B],然后我们看一下下图的寄存器值:
11c.png (10.14 KB, 下载次数: 0)
13:58 上传
可以看到r10寄存器里面的值是1, r4寄存器里面的值是0x20002dec。查阅strb 的指令可以看到STRB& &&&r10,[r4,#0x1B]的意思是说把r10这个寄存器的值存到r4 + 0x1b 这个内存地址里面去,也就是说放到0x20002e07这个内存地址里面去。当我们单步执行这条指令后,可以利用观察内存的工具可以看到:
11d.png (8.58 KB, 下载次数: 0)
14:00 上传
很清楚0x20002e07这个内存的位置里面的值是1, 验证了之前的汇编语句。
上面只是演示了一个很简单的例子,但是已经能够充分说明学习的方法,这个方法是笔者目前所能想到的最快学习汇编的方法,也就是说把C语言反汇编后的汇编语句拿出来直接使用就好了。其它的例子,读者可以举一反三,相信学习汇编以后并不会难倒各位。
在线时间118 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 106, 距离下一级还需 94 积分
一粒金砂(中级), 积分 106, 距离下一级还需 94 积分
感谢分享哦~~~
在线时间4721 小时
威望28750分
芯币109492枚
E金币1210枚
TA的帖子TA的资源
是个好方法,以前在学校学汇编,是先学汇编,后学C,,,,二者结合学的机会没有,楼主的方法,是实践总结呀,值得借鉴
在线时间12 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
我喜欢& & 感谢楼主了&&
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
是个好方法,以前在学校学汇编,是先学汇编,
在线时间0 小时
TA的帖子TA的资源
宇宙尘埃, 积分 -6, 距离下一级还需 6 积分
宇宙尘埃, 积分 -6, 距离下一级还需 6 积分
在线时间16 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 64, 距离下一级还需 136 积分
一粒金砂(中级), 积分 64, 距离下一级还需 136 积分
汇编的确还是蛮重要的&&,对于理解单片机程序的运行及BUG调试
在线时间9 小时
TA的帖子TA的资源
宇宙尘埃, 积分 -4, 距离下一级还需 4 积分
宇宙尘埃, 积分 -4, 距离下一级还需 4 积分
shi a&&xeuxeuxi
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
EEWORLD 官方微信
Powered by如何学习嵌入式系统? - 知乎388被浏览35902分享邀请回答CE.NET应用程序的开发和模拟调试,也可将目标系统同PC 机相连,进行联机调试。现在有很多系统支持J2ME(JAVA的嵌入式系统版本) ,这使得JAVA 在嵌入式系统应用开发中占有较大的优势。另外,作为专业的嵌入式系统软件开发人员,还需要充分了解面向对象技术和设计模式等方面的知识,当然作为初学者可以先不深入研究这方面的内容。常用嵌入式系统处理器和操作系统处理器常用嵌入式系统处理器主要包括ARM 处理器,Power PC 处理器,基于MIPS 内核的嵌入式处理器,软核处理器(如Altera 的Nios和Xilinx的MicroBlaze等)和DSP(数字信号处理器)等。
ARM 处理器的主要特点是具有较高的性能功耗比。ARM处理器被广泛的应用在手机,PDA等领域,其中较为著名的有Intel 公司生产的基于ARM 内核的XScale系列处理器。由于所有公司生产的基于ARM内核的处理器具有相同的编程模型,在手持和电池供电的系统中,基于ARM的嵌入式系统处理器往往被首先选用。PowerPC(简称PPC)处理器具有较强的运算性能和数据吞吐能力,在网络和数据通信领域基于PPC的嵌入式系统处理器有着广泛的应用。其中Motorola公司生产的MPC860/MPC8260被大量地应用在嵌入式网络产品中。MIPS 处理器的特点表现在十分强大的处理能力上。作为高性能处理器,MIPS处理器适用于网络、企业及高级消费类电子应用,特别是在机顶盒系统中,MIPS处理器具有较高的市场占有率。随着可编程器件的规模不断扩大,使得人们能够根据需要定制处理器,并方便的将针对某种特殊应用定制的处理器方便的在可编程器件内部实现。除了处理器外,计算机系统还需要许多其他构成部分,比如在多通道媒体数据处理系统中,经常需要使用可编程器件来实现高速的数据处理功能,使用软核DSP来实现复杂的数字信号处理算法,同时还需要处理器进行事务处理,软核处理器将可编程器件,DSP同处理器结合在一起,为系统级设计提供了极大的灵活性。DSP(数字信号处理器)有别于通用处理器,集中表现在其强大的数字信号处理能力上。在DSP 内部提供了硬件乘累加器,处理器在设计上对于特殊的寻址方式做了优化,一些DSP 还支持零耗循环(Zero OverheadLoop)。为了方便嵌入式系统设计,主流DSP 一般也都提供了丰富的外设。特别值得一提的是ADI 公司的Blackfin 系列DSP和TI 公司的DM64X系列DSP,两种处理器都提供了丰富的片上外设,非常适用嵌入式系统应用。
作为Microsoft的产品,WindowCE.NE/5.0提供了功能完备的平台开发工具Platform
Builder和应用开发工具Embedded Visual C++/Visual Studio 2003。WindowsCE由于拥有广大使用者所熟悉的windows界面,系统提供了众多驱动程序,并且有完备的文档支持。对于应用开发而言,熟悉Windows系统开发的程序员很容易转到WindowsCE 应用程序的开发。Windows CE将会是一个非常有前途的嵌入式操作系统。
VxWorks是由Windriver(风河)公司出品的嵌入式实时操作系统,大名鼎鼎的火星登陆车就是使用了VxWorks。Windriver为VxWorks提供了集成开发环境tornado。
υC/OS是由Jean Labrosse设计编写的开放源代码的嵌入式实时操作系统,笔者最早接触的嵌入式操作系统就是它。阅读并深入理解υC/OS的源代码对于理解实时系统是大有裨益的。
ARM linux是由Russell King和其他开发者开发移植的用于ARM 处理器的linux操作系统。ARM Linux系统在GNU GPL下发布。
υClinux 是适用于没有MMU 的嵌入式处理的LinuxOS 版本。υ Clinux 同样在GNU GPL发布。
嵌入式系统开发过程中的常见问题和解决方法
Bootloader如何写入Flash ?初学者一般都会遇到如何将程序写入处理器的问题。对于不同的处理器,可以采用不同的方法。例如Intel的Xscale处理器可以使用Intel公司提供的JFlash工具烧写。对于具有JTAG调试工具软件的处理器,可以使用如下思路:编写一段程序,这段程序能将位于SDRAM/SRAM 固定地址中的数据写入Flash中。烧写时,首先,将这段软件下载到SDRAM 中,然后通过调试软件将要写入Flash的数据下载到SDRAM/SRAM的某个固定地址开始的缓冲区,然后通过调试器开始执行程序,将数据写入Flash。除此以外,网络上还提供了很多专用的写Flash的工具,开发者可以根据自己的需要选用。(现在明白了我在学的那个BF533为什么先下个flashProgramer.dxe先了)什么是arm-elf-gcc?
arm-elf-gcc是一个交叉C语言编译器。我们在PC平台下编译程序,编译器运行的处理器同生成的代码将要运行的处理器相同。但是,在PC 机上编译ARM程序时,编译器运行的处理器同生成的代码运行的处理器不同,这种编译器叫做交叉编译器。其中的elf是指编译器生成的目标文件格式。(其实我们平时用的单片机编译器如GCC—AVR等已是交叉编译器了,我到现在才弄清楚什么是交叉编译器)走了哪条编译路径?系统程序和驱动程序往往包含很多的编译选项,很多选项都是在编译时通过命令行定义的,如果想知道编译的是那一段程序可以使用如下的方法:
#ifdef PLAT_AAA
#error Code for Platform AAA
#error Code NOT for Platform AAA
#endif这样在编译的时候就知道,编译的是哪一条路经了。对于支持#pragma message( “I am here”)的编译器也可使用#pragma message预编译指令。我怎么知道那段代码在那个文件中?系统编程中经常需要使用在多个文件中搜索字符串,在windows平台下可以使用平台提供的多文件字符串搜索工具。在linux平台下,可以使用grep来搜索字符串。Grep的搜索功能十分强大,支持正则表达式搜索,熟练使用grep对于阅读系统和驱动程序代码是很有帮助的。系统是从那个文件开始运行的?对于Windows CE系统,一般从WINCE420\PLATFORM\YourPlatform\KERNEL\HAL目录的某个汇编文件中。对于Linux系统版本不同会存在一定差异,以arm处理器为例,一般会在linux2.4.x\arch\arm\kernel的head-armv.S中。程序执行到了那里?可以在程序中插入如下代码来实现
printf( “I am here %s, %d\n”,__FILE__,__LINE__);代码将打出printf语句所在的文件名和行号。
Jean J.Labrosse MicroC/OS-II The Real-TimeKernel,Second Edition这本书是笔者接触嵌入式实时系统的入门书,在国内能够买到中文版。这本书较为清楚地讲述了实时系统的概念,各个组成部分的工作原理,特别是公开了实时系统内核的源代码,仔细研究定会受益匪浅。有个小的提示,对于初学者,这本书可以先不看第一章,直接从第二章看起。
Abraham Silberschatz, Peter Baer Galvin,GregGagne Operating System Concepts笔者在教学过程中发现,无论是计算机还是电子工程专业都有很多学生对于操作系统的基本概念都没有搞清,很少有学生有完整的系统编程经验。Operating System Concepts这本书对操作系统的概念讲述只能用经典来形容。对于嵌入式系统有兴趣深入研究的同学,首先要把基础打好,这本书就成了必读之物了。
Andrew S. Tanenbaum Computer Networks 提起Andrew S. Tanenbaum 学习计算机的同学一定都知道OPERATINGSYSTEMs:Designand Implementation这本书,笔者对于Tanenbaum这样的教授由衷佩服。网络协议栈是嵌入式系统中的支柱性组成部分。愿意致力于网络深层技术研究的同学,这本书将为你们建立一个坚实的网络基础。
Karim Yaghmour Building Embedded Linux Systems本书详尽的介绍了嵌入式linux系统的组成,基本概念和如何去建立各个部分。全书篇幅较小,可谓短小精悍。即可以作为嵌入式linux系统的入门读物,又是开发过程各个部分的指南。
Advanced RISC Machines Ltd (ARM) ARM7 TDMI DataSheet
Advanced RISC Machines Ltd (ARM) ARM920TTechnical Reference Manual学习嵌入式系统不了解当前应用最广泛的嵌入式处理器怎么行?ARM7 TDMI 的 data
sheet是学习ARM编程模型,指令集的好东西。在嵌入式系统中,MMU(内存管理单元)是很重要的部分,又是较难理解和掌握的部分。ARM920TTechnical Reference Manual 正好可以帮你讲解这方面的内容。
Perter Van Der LinDen Expert C Programming嵌入式系统级编程最常用的语言还是C 。很多同学都自认为自己的C语言学的很好,那好,就看看这本书吧,找找自己和Experts差距。
嵌入式开发与桌面开发既有不同,又有非常大的联系,而且十分注重实际操作能力。搞桌面开发的人在一开始接触嵌入式的时候,通常转换不过来,这主要体现在定位上。如文中所说,你是谁,你要做什么?我对硬件的了解仅限于编程领域,PCB设计一窍不通,但并不能说你不懂硬件就不能从事嵌入式开发。一个系统的开发设计方方面面,在自己感兴趣和熟悉的领域做出自己的贡献才是最主要的。
1。硬件设计: 需要有硬件设计的经验,对各种嵌入式器件有很好的了解。
2。系统移植:需要汇编经验,操作系统原理以及底层驱动的了解
3。应用程序:需要桌面编程经验
想了解学习嵌入式的朋友欢迎来信盈达详细了解,专业嵌入式、ARM、Linux、STM32、单片机、硬件等技术提升,详情联系郭老师QQ
电话1263 条评论分享收藏感谢收起102 条评论分享收藏感谢收起查看更多回答

我要回帖

更多关于 快速学好英语的方法 的文章

 

随机推荐