常用的arm嵌入式开发平台是什么_arm嵌入式开发步骤
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。嵌入式软件与嵌入式系统是密不可分的,嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,是嵌入式系统的重要组成部分。扩展资料:早期的嵌入式系统设计方法,通常是采用“硬件优先”原则。即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现。然后,在此硬件平台之上,再进行软件设计。因而很难达到充分利用硬件软件资源,取得最佳性能的效果。同时,一旦在测试时发现问题,需要对设计进行修改时,整个设计流程将重新进行,对成本和设计周期的影响很大。这种传统的设计方法只能改善硬件/软件各自的性能,在有限的设计空间不可能对系统做出较好的性能综合优化,在很大程度上依赖于设计者的经验和反复实验。
学习ARM嵌入式一般需要装什么软件,有什么好的教程吗?
有什么好的教程吗?
首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。
还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。
最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
===================================================
前几天又看到一个专科生写的关于他自己如果学习嵌入式并找到工作,他把自己的学习过程写了出来,我觉得写的非常不错。拿出来和你分享下,
《专科生学嵌入式到找到工作的前前后后》
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在百度知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《从零基础开始学嵌入式》,网址:http://www.embedstudy.com/viewnews-8701
里面的教程还不错,很完整,可以让我从基础的开始学起。300元,不便宜啊,但是我也忍了,毕竟买几本书都要几百了,何况他们还有半年的技术咨询和服务,算值了。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
最后祝愿所有想学嵌入式的朋友更早的入门!!!
至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。很多人看不进书,那就去看看视频吧。视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。
ARM怎么学习
估计你没有ARM的基础,不建议你从ARM7或者ARM9开始学习ARM的开发,而建议你从最新的CortexM3内核开始,因为CortexM3内核简单易学并且是ARM公司目前主推的内核和技术,CortexM3内核的单片机芯片目前有Luminary和ST两家约100款芯片,2009年Atmel公司和NXP公司也会推出CortexM3内核的单片机芯片。
目前,有少数几本书,但是不推荐,建议最好直接看厂商出的中文资料,假如英文好直接看英文资料更好。另外,建议从厂商出了程序例子开始,有问题就到论坛上面问。
Luminary和ST的CortexM3内核的单片机,开发环境可以使用IAR公司的EWARM开发环境,或者ARM/Keil公司的MDK开发环境,来进行软件开发、调试,这些开发环境都有免费的评估版本;调试可以使用通用的JLINK、ULINK之类的仿真器,另外有些开发板上面也集成了专用的仿真器。电路板推荐:EasyARM1138开发板(周立功的),使用Luminary单片机且集成了仿真器,99元,外设比较少;以及EK-STM3210B 开发板(万利电子的),使用STM32单片机且集成了仿真器,199元,外设比较多。
参考:
http://www.manley.com.cn/web/product_neirong_01.asp?pro=262
学习STM32单片机,可以上21ic热门论坛:
http://bbs.21ic.com/club/bbs/bbsView.asp?boardid=49
Luminary单片机在21ic上的论坛:
http://bbs.21ic.com/club/bbs/list.asp?boardid=42
学ARM难吗?
为什么嵌入式要学ARM?学ARM要学什么?学ARM难吗?如何学ARM?
(一) 为什么要学ARM?
技术要以市场为导向。
规划个人职业生涯,学习主流技术和先进技术。
32位嵌入式系统在嵌入式系统的份额中,ARM的份额很大,
而且ARM发展前景较好。
提升公司平台和核心竞争力。
(二) 学ARM要学什么?
学ARM要学核心的东西,而不是花哨的外设。
结合自己的专长进行发挥。
学习ARM9或以上的体系架构,学习ARM和操作系统的联系
(三) 学ARM难吗?
学ARM不难,只要有电子基础、有一定的C/汇编
语言能力即可,能懂或者了解某一个体系的CPU架构则更好。
电子、自动化、机电一体化、仪器仪表、计算机、机械甚至物理等
基础学科的学生都可以学习。
(四) 如何学ARM?
良好的学习态度 +
合适的开发套件 +
正确的学习方法
前提条件:
选择一款合适的芯片和开发套件。
嵌入式开发是一个实战性很强的行业。选
一个最简单的芯片、最简单的开发板,可以加快入门的速度。
简单的芯片和开发板可以降低门槛,减少障碍。
选择开发套件的标准:
(1)配套资料是否齐全?原理图、源程序、文档等。
(2)是否提供技术支持?
强大、完善的技术支持能够加快学习进度。
(3)能否提供开发平台?
现代嵌入式系统的开发要以平台为基础。
平台是公司和个人迅速发展的保证。
(1)动手实践
不要将光盘配套程序直接运行,而要逐行输入代码,并理解代码,写文档。
(2)使用网络查找问题的解决方法和学习他人心得。
(3)学会投资
舍得为学知识投资,如买书、资料和工具等
初学嵌入式学习,用什么开发板较好?可以直接从ARM11学起吗?
对于ARM嵌入式的初学者,用ARM9开发板。\x0d\x0a\x0d\x0a首先,从功能上来说,ARM11要比ARM9强一些,但是性能优异并不代表适合初学者。对于初学者来说ARM11的有些功能是冗余。\x0d\x0a\x0d\x0a其次,学习ARM9或者ARM11就在所难免学习其所支持的操作系统Linux(ARM11可以支持Android)。目前,市面上ARM9的开发版的价格\x0d\x0a要比ARM11低很多,而两者都可以运行Linux操作系统。并且ARM9开发板的资料和教学视频也更多一些。jz2440+韦东山系列教学视\x0d\x0a频,mini2440+国嵌视频都是不错的选择。\x0d\x0a\x0d\x0a最后,学习ARM9,可以按Linux应用开发、驱动开发顺序学习。如果想学习Android系统开发,可以学完ARM9再学习ARM11开发板下的安卓系统开发。因为安卓系统就是Linux内核+libc库用Java封装而成。
初学嵌入式学习,用什么开发板较好?可以直接从ARM11学起吗?
如果经济条件允许的话,可以考虑选择ARM11开发板,甚至更高级的开发板。因为,在ARM11开发板上可以比较流畅的运行Android等大型移动操作系统。这样,一份投资,可以做更多的事情。ARM9开发板上虽然也可以跑Android,不过,性能上还是有些不让人满意的。ARM7,ARM9,ARM11只是硬件平台的区别,对于嵌入式软件开发来说,区别不太大,因为基本上不会有人去写汇编代码的:)大家都是拿C来开发,而且各个ARM SoC的架构实际上差别不大的,学会其中一个,是可以融会贯通的~如果想尽量省钱的话,建议选择ARM9开发板。这是目前学习嵌入式性价比最好的方案。选择ARM7,可能连一个完整的Linux都跑不起来(因为很多ARM7 SoC是不带MMU的,如果是这样的板子,只能跑uCLinux,那我觉得,还不如不买)。如果你对PC架构比较了解的话,而且要更省钱的方法的话,用Bochs,VirtualBox,VMware,QEMU等虚拟机照样可以学习嵌入式软件开发的相关基础知识。在虚拟机上开发完,然后移植到自己的PC上,为自己的PC写个Bootloader,也一样可以达到学习的目的。不过使用开发板,可以让自己更贴近将来的工作环境,也是很有必要的。开发板的品牌,我就不说了。你上淘宝上,搜索“ARM9 开发板”,哪个销售量最多,就买哪个。永远不要相信一些广告贴~大众的选择,永远是最好的~希望可以帮助到你。有问题,可以继续追问。
要学ARM,要掌握哪些知识呀??
很多芯片都是ARM 芯片,不知道你特指那一款,像M3、2440等等都是ARM芯片,因为他们的CPU内核都是ARM公司设计的。
不管怎么样,资源都差不多。那我就举我熟悉的S3C2440来跟你说。如果单纯学习ARM裸机,不加操作系统的话,掌握下面这些就OK了,会了这些以后再学习STM32就变简单多了。
理解启动代码流程。
掌握NANDFLASH控制器。
掌握PWM定时器。
掌握串口通信UART。
掌握中断的使用方法。
掌握LCD控制器。
掌握AD以及触摸屏控制。
掌握实时时钟RTC。
掌握IIC总线通信。
理解内存管理单元MMU的作用和代码。
就这些就差不多了,学好上面这些内容,对你学习Linux操作系统还是一些类似的ARM芯片都比较简单了。当然2440还有其他资源,像USB、音频等等,这些都是要上操作系统才能用,所有单纯学习裸机的话,那些就不用去看了,等以后接触操作系统再说吧。
好好学吧,路还很长。
怎么学好ARM
1. 如果你有做硬件和单片机的经验,建议自己做个最小系统板:假如你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好,因为ARM的启动方式和dsp或单片机有所不同,往往会碰到各种问题,所以建议先布一个仅有Flash,SRAM或SDRAM、CPU、JTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你的任务就完成了一半,好在arm的外围接口基本都是标准接口,假如你已有这些硬件的布线经验,这对你来讲是一件很轻易的事情。
2. 动手写启动代码,根据硬件地址先写一个能够启动的小代码,包括以下部分:
初始化端口,屏蔽中断,把程序拷贝到SRAM中;完成代码的重映射;配置中断句柄,连接到C语言入口。也许你看到给你的一些示例程序当中,bootloader会有很多东西,但是不要被这些复杂的程序所困扰,因为你不是做开发板的,你的任务就是做段小程序,让你的应用程序能够运行下去。
3.假如你是作硬件,每个厂家基本上都有针对该芯片的DEMO板原理图。先将原理图消化。这样你以后做设计时,对资源的分配心中有数。器件的DATSHEET一定要好好消化。
4. 仔细研究你所用的芯片的资料,尽管arm在内核上兼容,但每家芯片都有自己的特色,编写程序时必须考虑这些问题。尤其是女孩子,在这儿千万别有依靠心理,总想拿别人的示例程序修改,却越改越乱。
5. 多看一些操作系统程序,在arm的应用开放源代码的程序很多,要想提高自己,就要多看别人的程序,linux,uc/os-II等等这些都是很好的原码。
6.假如做软件最好对操作系统的机理要有所了解。当然这对软件工程师来说是小菜一碟。但假如是硬件出身的就有点费劲。
DSP,ARM和单片机的区别
1、单片机是一种有完整计算机体系的芯片,适用于简单的测控系统,功能相对简单。
单片机的工作ARM和DSP都能作,单片机对于数字计算方面的指令少得多,DSP为了进行快速的数字计算,提高常用的信号处理算法的效率,加入了很多指令,比如单周期乘加指令、逆序加减指令,块重复指令等等,甚至将很多常用的由几个操作组成的一个序列专门设计一个指令可以一周期完成,极大的提高了信号处理的速度。
由于数字处理的读数、回写量非常大,为了提高速度,采用指令、数据空间分开的方式,以两条总线来分别访问两个空间,同时,一般在DSP内部有高速RAM,数据和程序要先加载到高速片内ram中才能运行。
2、ARM是微处理器,具有强大的事务处理功能,可以配合嵌入式操作系统使用。
ARM最大的优势在于速度快、低功耗、芯片集成度高,多数ARM芯片都可以算作SOC,基本上外围加上电源和驱动接口就可以做成一个小系统了,基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。
目前,采用ARM核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
3、DSP适用于数字信号处理,例如FFT、数字滤波算法、加密算法和复杂控制算法等。
DSP实时运行速度可达每秒数以千万条复杂指令程序。DSP器件比16位单片机单指令执行时间快8~10倍,完成一次乘加运算快16~30倍,其采用的设计是数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠,其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。其主要应用是实时快速地实现各种数字信号处理算法。
DSP和ARM的区别是什么?
数据处理方面用DSP,因为他可以实现比较复杂的运算,我指的是硬件完成运算,比如除法,一般的arm没有除法器,而是把除法变成加法等运算,所以要很多步实现比较慢,这点你看看c编译成的汇编就可以看出。当然不只是除法其它微分卷积等等。arm优点在于外设,包括ad,da等等,所以一般用在控制类的电子产品上。当然高级点的arm中有的也会集成dsp处理器,起到相互补充的作用。 举例:比如数码相机用的是dsp处理的图片,实现粒子滤波算法等等。而汽车中有的电子仪表,就是有个小液晶屏上面显示各个门,油量等等那个用的是arm,因为不需要大量处理数据,只需采集显示。
对arm的理解
第一层意思:ARM英文全称Advanced RISC Machines,是英国一家电子公司的名字,该公司成立于1990年11月,是苹果电脑,Acorn电脑集团和VLSI Technology的合资企业。Acorn曾在1985年推出世界上首个商用单芯片RISC(Reduced Instruction Set Computing)处理器。ARM主要出售芯片设计技术的授权。第二层意思:ARM开发的RISC处理器。而现在我们把这一类的处理器称为ARM。ARM 微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。第三层意思:ARM还可以理解为是一种技术,ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。