freertos架构图 如何学习嵌入式?

[更新]
·
·
分类:互联网
2794 阅读

freertos架构图

如何学习嵌入式?

如何学习嵌入式?

我来发表一下我的观点。说下我的方法,适合在校大学生,大家有什么见解欢迎纠正讨论。
为什么说适合在校大学生呢,因为在校大学生时间充裕。而参加工作的人,时间就是金钱,与其花费太长时间自学,还不如报个培训班速成,但是培训班的缺点可能就是基础不牢(这个是个人见解,如有不同意见也可以看看我写的自学经历,根据自己的基础跳过相应的步骤即可)。
我认为学习任何东西都是需要分模块的。各个模块熟悉了最后串起来(个人经验)
提醒!!
提醒!!
提醒!!
玩嵌入式是有点费钱的。但是有舍有得,这个看你们自己把握了。
下面我说下我的方法
一、嵌入式分为几个模块(给自己学的勇气)
二、起步学什么(打基础)
三、进阶学什么(给自己坚持下去的动力)
一、嵌入式分几个模块
嵌入式分为软件、硬件(简单吧)。软件,其实可以分的更详细,但是我们不需要分这么详细,后面学习的过程中你就明白了。
二 、起步学什么
首先,你最好是计算机、电子、电气、微电子、电子信息、通信、自动化、信息工程等相关专业。
可能有人会问为什么必须这些专业。因为这些专业要么编程能力强,要么硬件基础很熟悉,学习嵌入式是天然的优势。比如自动化专业,他们学习过电路,模电,数电,电力电子这些课能让你们有牢固的硬件基础;还有C ,51单片机,微机让你们有一定的软件基础。特别是51单片机,一旦学会了,后面学习嵌入式会更容易。
接下来仔细说说如何起步(基础不劳,地动山摇)
第一步,你要懂得硬件的基本知识,这些硬件知识能帮你更好的理解51单片机的内部原理,硬件的管脚配置,引脚功能,更重要的是帮你理解放大电路,滤波电路等。(第三步推荐一本我认为比价好的关于51的书,里面有51的内部原理)这些懂了,在用51C语言写程序的时候就会发现so easy。至于为什么先学51呢,因为大学大部分还是开设51的课,再者51容易理解,教学视频丰富。
第二步,你要懂C/C ,c语言是学习嵌入式的灵魂。因为大学都开设有C课程,所以大家从C开始学会相对方便和节约时间。
第三步,有了相关基础后开始看51单片机系列的书(见下图),网上各种各样的视频多的很,对着网络上的视频学习,效果会更好。但是不能只学不练,买个开发板(当初我们是自己焊的),自己对着视频练习。理论和实际结合效果最好。
当然需要用到相应的烧录软件,和编程软件。我在这里统一说一下。
烧录软件就用STC-ISP(好用),编程的用KEIL c51(keil3也能用),后面玩32了再用KEIL5。
三、进阶学什么
第一步、51单片机玩差不多半个学期就行啦,半个学期够你掌握了,太长浪费时间。我们已经玩过51了,已经是大孩子了,哈哈哈。但是我们没有玩过32位的,直接上arm是不行的。
所以我们要开始学习32,其实32比51 简单的多,因为他们有丰富的库,各种库。市面上的教学资源非常非常的丰富,产品也比较成熟,某宝上面各种开发板(价格300以内),自己选一个买就行了。
其实你也可以跳过51学32,毕竟51太老了,太陈旧了,但是我觉得你学习51会帮你牢固知识,帮你形成写程序的习惯等。
学习32 的周期,根据自己情况安排,一般一个到一个半学期。
第二步、现在咱们对32比较了解了,轮到学习嵌入式系统了,对,没错就是系统,是不是很兴奋。。
想学习嵌入式系统Linux/WIN等 ,首先你需要买个arm学习版,在淘宝上面买的话,不太贵S3C2440,500 元。资料非常多,建议买arm9,因为ram11的资料太少,不适于自学。或者你们预算非常充足,可以考虑Cortex-A8/A9的开发板。
我相信你们学到这里已经有了自己的想法和见解了。到这个过程的时候,知乎上的大佬回答的很详细和网上的资源也非常丰富,多看看大家写的共同学习。
最后,做下总结
看懂电路图、看懂芯片手册(更牛皮的要求是会自己绘制PCB板,会器件选型,会自己调试自己设计板子,直至可以量产)
有编写,移植驱动的能力
懂内核的实现机制
懂C语言,C 等
下面列有详细的要求,你们自己把握下。
等到找工作的时候,有嵌入式硬件,嵌入式软件,嵌入式等,甚至可以触类旁通,要看你们的学习水平了, 哈哈哈。
嵌入式硬件要求:
1、熟练使用Allegro Cadence等EDA工具进行硬件原理图及PCB的设计,精通PCB布线流程、具备多层板布线经验规范及信号完整性分析,熟悉至少一种高速通信接口,如PCIE、SRIO、10GBE等。
2、精通嵌入式处理器设计,具有大型CPU或者DSP的板级硬件设计调试经验,例如P系列或者T系列PowerPC,C6678、C6655等DSP,以及FPGA设计经验者等。
3、负责硬件产品的需求调研、方案设计,熟练使用各类电子仪器仪表进行测试。
。。。。。。
嵌入式软件要求:
1、熟悉Linux操作系统内核,有Linux内核和驱动开发经验。
2、精通C/C 开发语言,shell脚本。
3、精通C语言,能独立编写、调试硬件驱动程序和功能程序。
4、熟悉多线程的开发,精通ucosII嵌入式系统移植、驱动和应用开发。
。。。。。。
嵌入式硬件的工作:
嵌入式软件的工作:
嵌入式的工作:
那你可以以“低端单片机-高端单片机-低端ARM-高端ARM”来学。我现在就是工作中用STM32,晚上回去自学ARM9。