嵌入式门槛虽然较高,但也跟其他事物相同,并不是牢不可破。只需咱们用心去对待,冬雪终将化去,春风定会吹来。
详细步骤如下:
1、《C言语》第二版 谭浩强 ; 《C程序规划言语》第二版 徐宝文译 机械工业出版社
你能区分隔指针数组和数组指针吗?你知道函数指针吗?
你能区分隔界说一个变量时体系给它分配的空间与用malloc()函数给一个变量分配的空间有什么不相同吗?
2、《数据结构》C言语版 黄国愉、叶乃青编 清华大学出版社
你能合上书本,用C言语完成书中的单链表、双链表数据结构吗?
3、《有用C++程序规划》第二板 中国电力出版社 Steve_Oualline著
此阶段首要是学习其面向对象的编程思维,加深对C言语和数据结构的了解。
4、学习单片机,最好能找个长辈带一带。
你能用51单片机做出相同实践的东西吗?即便它再简略!
要注意加深对中止的了解。
5、学习ARM单片机。
(1)、细读《ARM微操控器根底与实战》周立工编写(注:即便你不必书中的开发板)
(2)、细读相关芯片的原版英文文档。如:arm920TE.pdf S3C2410_1.2.pdf
6、学习uCOS!!操作体系。
(1)、细读《嵌入式实时操作体系uC/OS-!!》第二版 召贝贝译
你能把uCOS!!移植到自己的平台上吗?
(2)、能编写在uCOS!!操作体系环境下运转的针对详细硬件的驱动程序
7、了解Linux环境,学习Linux环境编程,学习穿插编程
(1)、细读《linux指令大全.pdf》
(2)、细读《GNU Make 运用手册(中译版).pdf》
(3)、学习创立穿插编程环境.
8、学习Linux操作体系。
(1)、《UNIX环境高档编程》
(2)、能够到一些好的网站下载一些比较好的书本
(3)、细读《linux内核彻底注释》
(4)、细读《understanding the linux kernel 2》
(5)、运用源代码阅览利器东西"Source Insight"进行真实的linux内核原码刨析
(6)、最终进行内核移植,并能编写在linux操作体系环境下运转的针对详细硬件的驱动程序
9、学习Linux设备驱动编写。可参阅《Linux设备驱动程序》
10、温习C++,学惯用QT进行图形界面编程
(1)、细读《QT编程宝典》
(2)、学会经过检查QT电子文档进行QT GUI实地编程
(3)、学习穿插编程.(其实便是把指令qmake变为tmake)
11、当然,你也可学习一下PCB的制作和规划一个自己的CPU(即软壳)
在嵌入式软件方面最重要的课程包含:
(1) 嵌入式微处理器结构与运用:
这是一门嵌入式硬件根底课程,咱们说过,嵌入式是软硬件结合的技能,搞嵌入式软件的人应对ARM处理器作业原理和接口技能有充沛了解,包含ARM的汇编指令体系。若不了解处理器原理,怎样能操控硬件作业,怎样能写出节约内存又运转高速的最优代码(嵌入式软件规划特别考究时空功率),怎样能写出驱动程序(驱动程序都是与硬件打交道的)?许多公司招聘嵌入式软件人员时都要求了解ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件标准阐明书 (xxx Specification),你有必要能看懂其间的内存散布和端口运用等最基本的阐明(就像x86汇编相同),不然怎样规划软件。有些同学觉得嵌入式处理 器课程较单调,这首要是硬件课程都较笼统的原因。还有同学对ARM汇编不感兴趣,认为嵌入式开发用C言语就足够了。其实不该仅是将汇编言语当成一个程序规划言语,学汇编首要是为了把握处理器作业原理的。一个不了解汇编言语的人,怎样能在该处理器写出最优的C言语代码。在嵌入式开发的一些要害部分,有时还有必要写汇编,如Bootloader等(或许还包含BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图画收集和图画解压缩),现在还会用到汇编写程序的,虽然用到的时机相对C要小得多。当你在一个嵌入式公司作业时,在检查描绘原理的手册时,或许许多都是用汇编描绘的,这是由于许多硬件规划人员只会写或许喜爱用汇编描绘,此刻你就有必要看懂汇编程序,不然软硬件人员或许就无法沟通。许多嵌入式职位招聘时都要求了解汇编。
[小常识] 现在嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire (冷火)等,但ARM占有了肯定干流(有材料说手机中简直90%都是ARM处理器)。ARM是一个只卖常识产权的公司,现在取得购买了ARM CPU核授权答应的大公司许多,包含Intel、Samsung、Amstel、Motorola、Philip等,他们都在ARM CPU核的根底上进行了一些外围扩展,构成自己的处理器(如Samsung S3C2410,Motorola i.MXL9328等处理器都是选用ARM 9内核,指令一级是相同的)。而许多中小公司又购买了这些处理器,规划了各式各样的开发板,如华恒等国内许多闻名嵌入式公司都出产根据SamsungS3C2410的开发板,供最终用户运用或供教育试验。在ARM这个食物链上,ARM公司是大鱼,Intel、Samsung等公司是小鱼,而华恒等则是虾米,最终用户(咱们这些要收购嵌入式开发板的)则是喂虾米的。Intel前期出产的是低端ARM(Strong ARM,相当于ARM 7),现在转向首要出产高端ARM(即Intel Xscale处理器,归于ARMv5宗族,首要用在高端PDA上,如HP和DELL出产的PDA都选用Intel Xscale,价格较高)。现在运用最多的是ARM 7和ARM 9两类处理器。 ARM 7较廉价,可跑uclinux(是一个不支持高档内存办理功用的嵌入式Linux体体系)、Vxworks、uc/os II等实时操作体系,但因处理器不带内存办理单元MMU(无内存分页和地址映射机制,所以不能运用虚拟内存),所以不能跑Windows CE,别的通用Linux中的某些内存办理功用也不能用在ARM 7上。ARM 9大都是一个带MMU功用的高端处理器,可跑WinCE或通用Linux的大多数功用。ARM7和ARM9的区别是在与体系结构上,前者是冯?诺伊曼结 构,后者是哈佛结构——指令和数据总线是分隔的。以上是我的一点了解,或许有不对的当地。咱们学院有十几套ARM 7开发体系(选用Samsung S3C44b0x开发板,首要用于嵌入式处理器结构、实时操作体系等课程试验用),ARM 9的体系好象也现已到了(选用的芯片我不知道也没去问),还有曾经的十几套MPC860开发板(传闻价格都很贵,很简单损坏),同学应保护运用和爱惜这样 的试验时机。
linux操作体系文章专题:linux操作体系详解(linux不再难明)