下面这段先引用创龙的说明
IBL 运行后, 将从 NOR FLASH 或 NAND FLASH 的 0x00080000 地址引导 ELF/BBLOB 格式
用户程序。 当引导 ELF 格式用户程序时, IBL 会解析用户程序头部信息,并根据头部信息
拷贝不同的代码段至指定 CPU 内存地址,然后将 PC 指针跳转至_c_int00, 再运行用户程
序。当引导 BBLOB 格式用户程序时,由于无头部信息, IBL 会将用户程序拷贝至 0x9E000000
(该内存地址为 IBL 代码指定),并将 PC 指针跳转至 0x9E000000, 再运行用户程序。
IBL 默认运行于 MSM(Multicore Shared Memory) SRAM 内存空间, 各个段的内存分配如
下。 用户程序分配内存地址时,请避开 MSM SRAM 用于 IBL 运行的 0x0C000000 至
0x0C01CA00 内存空间。 由于 IBL 未使用 L2SRAM 和 DDR3 内存空间,则用户程序可使用
L2SRAM 作为主要内存空间,加快程序运行速度,同时可避免多核程序内存分配冲突问题
表 2
| 段名称 | 段开始地址 | 段长度 |
| TEXT(代码段) | 0x0C000000 | 0x10000 |
| STACK(栈段) | 0x0C010000 | 0x0800 |
| HEAP(堆段) | 0x0C010800 | 0x8000 |
| DATA(数据段) | 0x0C018800 | 0x3000 |
| CFG(IBL 配置数据段) | 0x0C |
298



被折叠的 条评论
为什么被折叠?



