|
nbcool说的太轻松了,小心误导新人。毕竟以高手的角度看问题,和以入门者的角度看问题,差别是很大的。
单片机虽然是嵌入式的一种,但是看lz的问法,明显是将ARM/MIPS之类的32位系统平台划为“嵌入式”,而希望与他所熟悉的单片机开发做对比。
32位系统从本质上说,的确和你常用的8位单片机(MCS51系列/AVR/PIC之类的)没有太多差别,内部总线,寄存器,运算单元,中断向量,内部SRAM,内部FLASH(这个可能有的cpu没有),IO口极其复用功能,各个外设接口极其控制器(比如UART,i2c,SPI,USB,CAN,Ethernet之类)。
如果将32位平台用来裸跑,那跟8位单片机都一样,汇编启动,初始化,跳转到main,然后继续配置,使能各个控制器,中断等等。
但是,如果这样,就谈不上“ 系统移植 ”这个概念了。
系统移植,指的是在不同的CPU构建的平台上,实现同一个系统,比如Linux比如WINCE比如VxWorks比如ucOSII。
在这里选WINCE作为系统,如果保持外部设备的选型不变,WINCE可以做到在不同的平台上95%都一样的,都不需要你改动。剩下的5%就是要做的改动了,从一个平台移到另一个平台需要做的改动,这个就是“移植”。这部分涉及到启动的汇编代码,内存映射分配及MMU,系统各个时钟的管理,中断的实现及相应函数的设计。
移植时需要改动的,往往是最重要的。
唉,太多了,有点不知从何说起了。还是得nbcool他们来指点才行。
哦,另外,C是必须会的,而在Linux和WINCE的驱动开发中,C++也是必须会的,虽然只用到“类,继承,重载”。 |
|