本文主要介绍bootloader和image之间的通信,以ARM架构的CPU在CE5.0下的开发为例。
首先我们可以查看platform下的BIB文件(WINCEROOT/PLATFORM/MAINSTONEII/FILES),开始的一段如下:
; Memory Map
; ----------
;
; 8000.0000 -+
; | Bootloader Stack (64KB)
; 8001.0000 -+
; | Bootloader RAM (64KB)
; 8002.0000 -+
; | Bootloader Code (256KB)
; 8006.0000 -+
; | GAP (reserved for future)
; 800F.F000 -+
; | ARGS (4KB)
; 8010.0000 -+
; |
; | OS (NK) Code (48MB)
; |
; 8310.0000 -+ **auto-size**
; |
; | OS (NK) RAM (15MB)
; |
; 8400.0000 -+
;
我们看到在0x80060000到0x800FF000的这段内存是reserved for future,在bootloader的代码中我们就可以把需要传递给系统的参数拷贝到这里,可以调用memcpy来
实现,在系统起来以后我们可以在驱动中把这个地址再映射出来,就可以得到bootloader传递过来的残说。调用MmMapIoSpace来实现。