工具与软件:
我在闪存中有两个映像:A 和 B。应用 A 位于闪存0x00000000。 APP B 位于0x00220000。 应用 A 是将跳转到应用 B 的加载程序 。我正在构建应用 B、且 链接器输出设置为 true、以便在工程属性中启用链接器生成的 ECC。 当我 刷写构建时 I Get CortexR5:文件加载程序:存储器写入失败:地址0xf0483f7f 没有映射到一个有效的闪存组和加载失败消息。
请就原因提出一些建议、因为映射文件中的 ECC 段 中没有0xf0483f7f。 应用 B 的链接器命令文件如下所示:
#define APP_BASE_ADDRS 0x00220000
小程序
{
VECTORS (X): origin=APP_BASE_ADDRS length=0x00000020 fill = 0xffffffff
Flash (RX):origin=(end (vectors))
长度=(0x00220000 -大小(矢量)) vfill = 0xFFFFFFFF
堆栈(RW):origin=0x08000000 length=0x00001500
RAM (RW):origin=0x08001500 length=0x0006eb00
RAMFUNC (RWX):origin=0x08070000 length=0x0000F000
ECC_VEC (R):origin=(0xf0400000 +(start (vectors)>> 3))
长度=(大小(矢量)>> 3)
ecc={algoL2R5F021、input_range=vectors}
ECC_FLASH (R):origin=(0xf0400000 +(start (flash)>> 3))
length=(size (flash)>> 3)
ecc={algorithm=algoL2R5F021、input_range=flash}
}
ECC{
algoL2R5F021:address_mask = 0xfffff8 /*地址位31:3 */
Hamming_mask = R4 /*使用 R4/R5构建在掩码中*/
parity_mask = 0x0c /*设置哪些 ECC 位为偶数和奇数奇偶校验*/
镜像= F021 /* RM57Lx 和 TMS570LCx 是在 F021中构建的*/
}
/*------------------ */
/*段配置*/
部分中)
{
/*用户代码 begin (5)*/
.intvecs :{} palign=32 > vectors.
.text :{} palign=8 > flash
.const :{} palign=8 > flash
.cinit :{} palign=8 > flash
.pinit :{} palign=8 > flash
/*用户代码结束*/
.bss :{}>RAM.
.data :{}>RAM.
.sysmem :{}> RAM.
}