1.STM32用得多
stm32虽然功能不比ARM7以后的ARM芯片 但却比51 AVR的功能强大 最主要是它成本较低 感觉以后要取代其他低端的芯片(用的最多的)。
2.一个工具,对外围要精通。
stm32只是一个工具而已,如果学的非常"精通",但对外围一窍不通,照样白搭.
3.怎样用比较好的方法解决问题才是真的,应用中去解决问题。
光学没用,主要还是应用,做项目的过程中会遇到很多问题,怎样用比较好的方法解决那才是真的
4.学习stm32只是为了开发项目,关键是在提升自己的能力。
就是个工具而已,以后不用STM32了,还会有stm33,stm34,关键是要能 快速适应。学习stm32只是为了开发项目,关键是在提升自己的能力
5.控制方面的很多用STM32来做
很多产品,都是不需要linux来做的,比如家电,电机,工业控制,医疗电子,消费类电子。
很多的应用场合都需要stm32来完成,你所提及的linux,我个人认为那些都属于人际界面方面的产品,要说控制,还得靠单片机呀。
6.
用最快的方法熟悉一个新的平台做出项目 才是王道。
7.
(1)先学stm32,把硬件基础打牢
(2)学好各种总线(usb、iic、spi...)
(3)各种外设模块(红外、温湿、mpu6050...)
(4)ucosii
学会把你的任务放到操作系统这个架构里完成,而不是简单地写程序--对操作系统机制的掌握是和周围的单片机同事拉开距离的关键;
理解OS的精髓,看《操作系统原理》
(5)接触ARM
(6)买个A8的开发板
开始学ARM时无非就是裸板程序,用汇编和C控制cpu内部的寄存器,从而控制外设,和STM32差不多的。
当你学会控制开发板的外设后,恭喜你进入嵌入式Linux的大门!
(7)深入精通C语言
注意是精通GNU C,知道GNU C和ANSI C的区别,知道一段C代码运行时在SDRAM中布局,知道指针的灵活用法,
知道如何用面向过程的C实现面向对象思想的方法... 你需要至少看三本C语言的书(国产的除外)外加若干博文。
前提是你在Linux里写代码。你可以装个ubuntu,学会设置环境变量、学会用vim,用gcc编译、学会用gdb调试,
建议你看下《鸟哥的Linux私房菜》。
(8)学习Linux系统编程
开始学习Linux系统编程了,多进程、多线程、socket编程什么的。
建议从《Unix高级环境编程》开始,然后看看《...IPC》《UNIX网络编程》... 每一部分就是一本书 !
这之中最重要是 多进程/多线程对共享变量的并发控制机制,和socket编程--切记一定要把它们学好!!!当你把这些学完后,也就一年多的时间,你就会爱上Linux了。
(9)研究下uboot、Linux内核剪裁,文件系统制作等等
这个时候,你前面学的C和Linux系统编程已经和你的ARM板发生联系了。
最最后,如何你依然深爱硬件。你可以向嵌入式Linux驱动开发方向发展,你之前在stm32上积累的硬件基础这时就派上用场了。从Linux设备模型、内核模块,
到字符设备驱动、块设备驱动、网络设备驱动,养成用source insight看Linux内核源码的习惯--随便回想下当年学的ucosii。
建议你看《LDD3》和宋的《Linux设备驱动程序详解》。这个过程需要两年的时间。
最最最后,你会发现stm32、s5pv210、ucosii、linux都叫嵌入式系统。
没走进Linux的世界不会明白Linux有多么美。但是不要把Linux当你的终极目标,就像当初不把ucosii当终极目标一样,使用操作系统机制解决复杂问题的策略才是你整个职业生涯应都应当关注的