给DFlash分配内存,如下
memory cal_rom
{
mau = 8;
size = 128k;
type = reserved nvram;
map (dest=bus:sri, dest_offset=0xaf001000, size=128k);
}
group cal_data_rom_section(ordered, contiguous, run_addr=0xAF001000)
{
section "cal_rom" (size=4K,attributes=r,fill=0xFF)
{
select "[.rodata.__cal_data_ram]";
}
}
如果把 section "cal_rom" (size=4K,attributes=r,fill=0xFF)中size的长度改为大于4,则编译会通过,但tasking Debug的时候会报错,如下截图
共2条
1/1 1 跳转至页
DFlash填充失败怎么解决?

关键词: DFlash

2楼
任务验证将失败。
DFlash填充失败可能有以下几个原因:
1.
内存大小不足:首先要确保为DFlash分配的内存大小足够,以满足程序的要求。在给DFlash分配内存时,你设置的size是128k,也就是128KB,这个大小是否足够取决于你的程序对DFlash的需求。如果DFlash填充失败,可以尝试增加分配给DFlash的内存大小。
2. 内存类型不对:在给DFlash分配内存时,你指定了type为reserved nvram。确保你的系统支持这种类型的内存,并且正确地配置了系统。
3. 内存映射配置错误:给DFlash分配了内存后,需要确保它正确地映射到系统总线上的正确地址。在你的示例中,DFlash被映射到了bus:sri的地址0xAF001000处。检查一下系统总线配置和DFlash的映射是否正确。
如果你修改了section "cal_rom"的size长度为大于4,编译可以通过,但是Tasking任务验证会失败。这可能是因为对DFlash的访问超出了实际分配的内存大小。在分配内存时,确保将size设置为实际需要的大小,以避免引发访问越界的问题。
共2条
1/1 1 跳转至页