arm嵌入式开发,请问学习ARM嵌入式开发应该准备些什么开发工具和要求?
arm嵌入式开发,请问学习ARM嵌入式开发应该准备些什么开发工具和要求?详细介绍
本文目录一览: 常用的arm嵌入式开发平台是什么_arm嵌入式开发步骤
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。
嵌入式软件与嵌入式系统是密不可分的,嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,是嵌入式系统的重要组成部分。
扩展资料:
早期的嵌入式系统设计方法,通常是采用“硬件优先”原则。即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现。然后,在此硬件平台之上,再进行软件设计。因而很难达到充分利用硬件软件资源,取得最佳性能的效果。
同时,一旦在测试时发现问题,需要对设计进行修改时,整个设计流程将重新进行,对成本和设计周期的影响很大。这种传统的设计方法只能改善硬件/软件各自的性能,在有限的设计空间不可能对系统做出较好的性能综合优化,在很大程度上依赖于设计者的经验和反复实验。
ARM开发是嵌入式开发吗_arm嵌入式系统开发
1.属于嵌入式开发
2.arm开发分裸奔和基于操作系统的
3.基于操作系统的又分移植开发,驱动开发和操作系统上层应用软件开发
什么是ARM?什么是嵌入式系统
1、ARM是AdvanceRISCMachines的缩写,而RISC(reducedinstrumentsetcomputer)计算机精简的指令集合。嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。
2、arm是精简指令集,也就是RISC,所有的指令长度都是相同的。arm处理器,不能直接访问外存,只能通过寄存器来访问外存。所有的指令都是真对那30几个寄存器进行操作的。这些东西网上有很多的。
3、嵌入式系统由硬件和软件组成.是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。
4、所谓的嵌入式开发是指基于ARM等一些列芯片的研发,比如硬件电路的搭建,底层驱动的编写和应用软件的编写等。
5、一什么是嵌入式系统嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。
请问学习ARM嵌入式开发应该准备些什么开发工具和要求?
感谢邀请。
这个问题相信是困扰所有嵌入式初学者的难题,
下面课内容是嵌入式学习必学的:C语言;C++;操作系统;计算机组成原理;linux编程;51单片机;arm;硬件编程语言(FPGA);模拟电路&数字电路。
1、cc++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装turboc编译器为开发环境,联系C语言编程;安装vc++6.0学习C++编程。
2、操作系统,先在电脑上安装一个vmwareworkstation,然后在vmwareworkstation里安装一个linux(redhat企业版)虚拟机。学习一下操作系统的基本原理,熟悉linux环境下的开发环境,然后你就可以照着《自己动手写操作系统》写个操作系统试试。
3、计算机组成原理,熟悉计算机的基本原理,看看一个计算机的基本组成及软件在里面是如何跑的。
4、《unix/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。
5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。
6、arm,现在流行的微机,说白了就是32位的单片机,还可以跑操作系统哦,自己想办法移植一个操作系统上去吧
7、硬件编程语言(FPGA),芯片到底是怎么做成的,学习这门课,你就知道了
8、模拟电路&数字电路,硬件的基础,如果可以的话,学习下protel,自己做个硬件pcb板试试。
计算机这行都是偏向于实践的课程,所以要注重动手能力,
学习嵌入式这基本课程的时候,你可以按照这样的顺序来学习:
1:C语言、计算机组成原理、模拟电路&数字电路
2:汇编语言、单片机、操作系统、C++
3:硬件编程语言、arm
嵌入式开发大抵分四个方向,硬件、驱动、内核、应用,如果是希望向嵌入式软件方向发展的话,目前常见的是
嵌入式Linux+ARM方向,关于这个方向,大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
自学的话你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。推荐书籍:谭浩强的很不错,《TheCProgrammingLanguage》这本经典的教材是老外写的,也有中译版本。
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是起码的要求是能够看懂arm汇编。
(5)系统移植的时候,就需要你从下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
给大家把一个嵌入式开发学习大方面的学习框架搭出来了
。最后呢祝大家能够在学习的路上马到成功。
arm嵌入式linux系统开发详解
如果你水平很高,那确实就是这样。移植进去就成,开发就随便用用系统提供的功能就好了。
但是你水平不高的话,你就会觉得困难,因为首先移植就有很多问题,不懂得话,能移植,不工作的地方不好追,不好修补。移植好了不知道怎么用,能用的话不知道有没有用对,出了问题不知道是系统问题还是你嵌入的程序段问题。
那你要水平高的话,你需要会什么呢?需要对unix/linux有了解,熟悉Arm架构,熟悉嵌入式开发,尤其要熟悉跟踪调试,要熟悉操作系统的知识,要熟悉调度和硬中断,就是熟悉计算机结构,要熟悉C/C,要知道一点汇编,要知道一点硬件知识(数字电路方面),要熟悉文件系统和SD接口,USB接口,要熟悉Arm的各种外设接口。
然后linux开发,你要熟悉临界段,你要熟悉互斥,任务,要熟悉上下半部分中断,要熟悉邮箱,要熟悉信号量,要熟悉优先级等等等等。。
多么?其实列的还不算全,你还要熟悉算法,可重用架构,系统设计方面等等。。。
唉。。。所以说难者不会,会者不难,就是这个样子。
怎么样学习ARM嵌入式_嵌入式arm培训
关于这个方向,我认为大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发
嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等
Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
所以你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《TheCProgrammingLanguage》这本经典的教材是老外写的,也有中译版本。
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5)系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!
嵌入式非常难,看书的话比较晦涩难懂,不容易入门,我个人比较偏向于看视频教程,因为有老师带着比较容易入门。给看看一篇文章是关于一位专科生怎么自学嵌入式的。
做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在百度知道看到一篇让我很鼓舞的文章,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在IT学习联盟网站推出的一份视频《零基础嵌入式就业班》(喜欢《零基础嵌入式就业班》的可以复制sina.lt/qKh粘贴浏览器按回车键即打开)。里面的教程还不错,很完整,可以让我从基础的开始学起。视频比较便宜。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
arm嵌入式linux系统开发详解怎么样
嵌入式系统是目前最流行的计算机应用技术之一。《ARM嵌入式Linux系统开发详解》由浅入深地讲解基于ARM体系结构的嵌入式
Linux系统开发,内容包括嵌入式系统的基本概念、应用领域等基础知识;ARM处理器的体系结构和功能特点;Linux系统内核结构和移植方法、
Bootloader功能和移植;Linux应用程序开发,包括如何操作文件、管理内存、访问串口、多线程和多进程技术,并且剖析了应用程序的结构和工作
流程;Linux系统设备驱动程序开发,包括如何编写内核模块、驱动程序分类和功能特点,并且给出了网络设备驱动、Flash设备驱动和USB设备驱动的
实例分析。
《ARM嵌入式Linux系统开发详解》附带1张DVD光盘,内容为专门为《ARM嵌入式Linux系统开发详解》录制的9小时视频、《ARM嵌入式Linux系统开发详解》涉及的源代码、Ubuntu安装光盘的镜像文件和另外赠送的35小时Linux专题学习视频。
《ARM嵌入式Linux系统开发详解》适合广大从事嵌入式Linux系统开发人员、对嵌入式Linux系统开发有兴趣的计算机爱好者,以及大中专院校学生阅读。
嵌入式系统开发与软件开发
嵌入式开发就是指在嵌入式操作系统下进行开发,常用的系统有WinCE,ucos,vxworks,linux,android等。另外,用c,c或汇编开发;用高级处理器,arm7,arm9,arm11,powerpc,mips,mipsel等,或加上操作系统也属于嵌入式的开发。
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。
特别是随着消费家电的智能化,嵌入式更显重要。像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。
扩展资料:
嵌入式开发的要求:
功能、可靠性、功耗这三点对于软件开发人员来说是最值得关注的地方。以手机为例,当选定硬件平台之后,处理器的性能已经被限定了,要使得手机的操作更人性化、菜单响应更快捷、具备更多更好的功能,这完全取决于软件了。
需要驱动程序和应用程序配合,最大程序地发挥硬件的性能。比如一类手机,它的屏幕总是经过很长时间才熄灭,这使得它的电池很快耗光,只要在编写软件时进行改进,就可能成倍地延长电池的使用时间。
一个优秀的嵌入式系统,对硬件性能的“压榨”、对软件的细致调节,已经到了精益求益的地步。有时候甚至为了节省几秒的启时间而大动脑筋:调整程序的启动顺序让耗时的程序稍后运行、改变程序的存储方式以便更快地加载等等,甚至通过显示一个进度条让用户觉得时间没那么长。
初学嵌入式学习,用什么开发板较好?可以直接从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封装而成。
什么是嵌入式开发?
嵌入式是用于控制、监视或者辅助操作机器和设备的装置。嵌入式是一种专用的计算机系统,作为装置或设备的一部分。嵌入式是才发展起来的一项IT开发技术。嵌入式开发在FPGAARMDSPMCU等各个方面都有了细分专业团队进行外协设计。提供从原型样机、顶层软件架构到源码的所有设计。
通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。
可在从事嵌入式系统开发的计算机与电子技术、IT、通信、军工、工业控制、汽车电子、大型设备智能故障诊断、电子设备等领域进行产品的开发、生产、测试、维护、销售、技术支持、技术咨询等工作。
具体就业岗位包括:嵌入式软件开发工程师、基于ARM系统的研发岗位、Linux系统应用软件开发岗位、Linux下C/C++软件工程师、嵌入式Linux系统研发工程师。