[quote][size=2][color=#999999]1084504793 发表于 2023-12-25 19:00[/color][/size]
可以看下板卡对Flash空间的划分和自己烧写程序的起始地址[/quote]
我看了一下仓库里面的分区表文件,发现里面为应用固件配置了如下内容
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x10000
size0 = 0x200000
address1 = 0x210000
size1 = 0x168000
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security= 1
这是否代表着我配置 memory.x 文件时需要将 Flash 地址也设置为 0x10000 ,例如这样:
MEMORY
{
ROM (rx) : ORIGIN = 0x90000000, LENGTH = 128K
FLASH (wxa) : ORIGIN = 0x10000, LENGTH = 2048K
OCRAM (wxa) : ORIGIN = 0x22FC0000, LENGTH = 320K
WRAM (wxa) : ORIGIN = 0x23010000, LENGTH = 160K
}
REGION_ALIAS("REGION_TEXT", FLASH);
REGION_ALIAS("REGION_RODATA", FLASH);
REGION_ALIAS("REGION_DATA", OCRAM);
REGION_ALIAS("REGION_BSS", OCRAM);
REGION_ALIAS("REGION_HEAP", OCRAM);
REGION_ALIAS("REGION_STACK", OCRAM);
memory.x 文件是rust编译器编译时使用的链接脚本
还是说需要保留 BL616 手册中给出的 Flash 起始地址 0xA0000000 ,这个 0x10000 只在烧录程序的配置文件 flash_prog_cfg.ini 中使用 |