硬件道路: 第一步: pcb 设计,一般为开发板的电路裁减和扩充,由开发板原理图为基础,画出 PCB 和封装库,设计自己的电路。 第二步: SOPC 技术,一般为 FPGA,CPLD 开发,利用 VHDL 等硬件描述语言做专用芯片开发,写出自己的逻辑电路,基于 ALTER 或 XILINUX 的 FPGA 做开发。 第三步: SOC 设计,分前端,后端实现,这是硬件设计的核心技术:芯片设计.能做到这步,已经不属于平凡的技术人员。 软件道路: 第一步:bootloader 的编写,修改, 通过这步熟悉 ARM 硬件结构,学习 ARM 汇编语言,阅读 ARM 的芯片手册,感觉就是像操作 51 单片机一样操作 ARM 芯片.这一步最好的两个参考资料就是:芯片手册和 bootloader 源代码。 第二步:系统移植, 驱动开发, 我只做过 linu x 方向,所以也推荐学习嵌入式linu x 系统,作为标准体系,他开源而且可以获得大量学习资料.操作系统是整个计算机科学的核心,熟悉 kernel 实属不易,kernel, 驱动开发的学习,没有什么捷径,只有多读代码,多写代码,熟悉系统API.. u nderstanding linu x kernel , linu x dev ice driv er 都是不可多得的好书,值得一看。 第三步:应用程序的编写,各种GUI 的移植,qt , minigu i 都被大量采用,两种思想都类似,熟悉一种就可以。 软件道路中,驱动,系统应该是最深入的部分,不是短时间可以掌握的,需要有勇气和耐心。嵌入式开发,软硬结合,因为硬件条件比PC 差很多,所以肯定会遇见不少问题,因此实践的勇气更加重要.有问题就解决问题,无数次的实验,也许是解决问题的必由之路。 嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。 一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如 BootLoader、Board Su pport Package(像 PC 的BIOS 一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。 另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写 BSP 和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作...