代码及数据位置 ============== 概述 ----------- 可以使用一些控制项及宏控制连接阶段代码和数据存放的位置 内存类型 ----------- - 内部RAM (IRAM) riscv 中的片上存储,可以存放代码(text)和数据(data, rodata, bss), 代码和数据在此位置具有理论最高的访问速度 - XIP flash只读存储 (XIP_CACHE) flash存储,可以存放代码(text)和只读数据(rodata), 代码在此位置需要讲过cache,未命中时从外部读取,效率较低 - PSRAM (外部读写内存) psram存储,可以存放代码(text)和数据(data, rodata, bss), 此位置访问速度同XIP,但是由于同时会存储可写内容,代码在此位置执行时整体效率将低于XIP 配置 ----------- - CONFIG_SMALL_IRAM 降低内部iram的使用,将非关键代码段放在非iram中 - \*CORE_PSRAM_LENGTH 分配给某个core的PSRAM长度 - \*CORE_PSRAM_DATA_SECTION 默认将data段放进psram中 - \*CORE_PSRAM_BSS_SECTION 默认将bss段放进psram中 宏 ----------- ============= ========================= 宏 说明 ============= ========================= IRAM_TEXT 将代码放进内部ram中 IRAM_RODATA 将只读数据放进内部ram中 IRAM_DATA 将数据放进内部ram中 IRAM_BSS 将未初始化数据放进内部ram中 XIP_TEXT 将代码放进Flash中 XIP_RODATA 将只读数据放进Flash中 PSRAM_TEXT 将代码放进psram中 PSRAM_RODATA 将只读数据放进psram中 PSRAM_DATA 将数据放进psram中 PSRAM_BSS 将未初始化数据放进psram中 ============= =========================