1 固件基本组成
1.1 硬件系统结构
嵌入式硬件基本组成包括:主控芯片(MCU),FLASH,RAM,外设等,我们提供的开发板MCU型号是RK3308,64MB的RAM,外挂一颗128M的SPI-Nand-FLASH。
RAM:也称内存,掉电数据不保存。
FLASH:非易失性存储器,掉电数据不会丢失,从总线访问的方式进行区分,FLASH可以分为SPI(串行)和CFI(也叫JEDEC或者Parallel,并行);从存储类型可以分为Nor(价格较高,存储空间一般比较小,但它可以不用初始化,可以在其内部运行程序,一般在其存储一些初始化内存的固件代码)和Nand(价格便宜,容量较大,改写速度快,适合用于大量的数据存储)。
外设:比如USB口,WiFI主控芯片,RGB灯,按键等都属于外设的范畴。
1.2 分区
和我们电脑的硬盘一样,Flash也可以看成是一个硬盘,可以进行分区;NandFlash的分区需要注意,需要按照单位是sector进行分区,1个sector为512Bytes;同时为了达到最好的性能,每个分区需要和64个sectors进行对齐也就是32KB的整数倍。
比如1MB的分区的大小是: 1024*1024B / 512 = 2048 = 0x800 Sectors。
4MB分区大小:0x800 * 4 = 0x2000 Sectors。
1.3 软件结构
一个完整的嵌入式产品的软件一般包括如下组成:
U-Boot(Bootloader),
芯片原厂要求的引导程序,
Kernel(比如Linux),
<