文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式如何入门

嵌入式如何入门

进入嵌入式的大门1年左右。。。其中的辛酸只有自己能够体会,以下是自己的一些体会,希望能帮助到想从事嵌入式开发的人。
首先,这个行业现在比较流行的大项目方向:路由器、DTV、手机和更深入的智能操作系统。

其次,如果你不是对嵌入式很有兴趣,我觉得你应该换方向。这个高薪的行业,必然造就你多的付出。请各位先想清楚。

ps:不知道为什么这个版块都是些讲单片机的东西,我觉得版主应该自己在一个简单的完整的开发板上进行讲解,这个大家应该能早日进入嵌入式。有单片机的基础是好,但是现在的开发板或者是实际的项目的板子无非就是在单片机的基础上加上了控制器,再就是多上一个操作系统,直接用开发板讲解最好。个人的一点建议。希望能考虑考虑。

然后再说说具体的方向:
1、bootloader也就bsp的开发
这个主要从device上电到kernel启动的方向,主要包括:nandflash、sd、norflash、memory、uart、lcd、net的驱动开发。

2、kernel development
这个就要看你的有哪些设备了,根据不同的设备来写驱动。

其实大家会说这个2个都是些驱动有什么不一样,其实差别很大,在bootloader的时候没有操作系统,mmu也没有开启,这个时候你可以直接去操作设备的物理地址,而kernel启动后则会使用虚拟地址进行访问,这就需要地址映射,还有电源管理你也需要来想方设法让你的设备节能等等。但是驱动的架构基本都是一样

如果是你一个新人,我建议你的学习线路是:
1、先装一个linux os将各种常用的命令玩熟:比如grep、find等等
2、学习C语言。
3、arm体系结构(主要看program model)和汇编,由于现在大部分都是用arm,所以建议学习arm的汇编。这里还要学习操作系统,发现现在的大学对所以的页式虚拟存储技术都不甚了解。大家最后去了解下,arm是2级映射,x86是3级映射。
4、从汇编的角度看C语言。
5、研究下编译原理,也可以说toolchain工具链。如果进行交叉编译。
6、自己构建一个嵌入式系统。
7、git 1种bootlaoder如u-boot或者g-bios,如果学习我建议看g-bios。主要看整个的架构,然后自己看你想看的驱动是如何写的
关于驱动如何看,你需要先去了解platform总线驱动。这是由于这个总线是虚拟的,他能解决设备与驱动的匹配的问题,而且各种驱动都是往其上注册的,然后就应该去看看你的device的规范,包括物理组织方式、硬件架构。然后再去看bootlader里面的驱动是如何来编写的,一般一类设备都有一个子系统,你需要看懂子系统。看完后自己从kernel里面把那个module不要编译进去,自己写一个进行加载测试。

觉得这么写肯定还有很

多东西遗漏,这里只是希望给大家一个方向!~
祝大家早日步入高薪的行业,thx!

相关文档
相关文档 最新文档