这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » DFlash填充失败怎么解决?

共2条 1/1 1 跳转至

DFlash填充失败怎么解决?

工程师
2024-06-13 21:17:55     打赏

给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的时候会报错,如下截图





关键词: DFlash    

助工
2024-06-13 21:18:27     打赏
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 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]