boot.img的分析
在lk 中, smem_ptable_init 函式中會初始化 smem_apps_flash_start ,它通過讀share memory ,也就是ARM9端傳入的0:APPS
這樣在targe_init函式中,會將offset = smem_apps_flash_start , 然後ptable_add將第一個分割槽的地址設定為offset .
在ARM9 中 有兩個檔案 partition.h 和 partition.c
partition.h 中定義了:
FLASH_PARTI_APPS "0:APPS" --- 對於boot.img
partition.c 中定義了所有的分割槽的大小, 這樣smem_apps_flash_start 其實就為ARM9的所有image的大小。
4 ARM9中的實現
函式smem_retrieve_mibib 中將分配 smem_alloc , 也就是有512 位元組的 MIBIB區
MIBIB區 : 16個位元組是header
每個分割槽 28個位元組
這樣共有16個分割槽
每個分割槽資訊,flash_partition_entry 包括了name 和 offset .
這樣ARM11 測 根據name 為0:APPS 得到offset ,也就是該分割槽的起始地址。
MIBIB 分割槽 是通過根據 mjnand -c mibib_xxx.cfg 得到