单片机/MCU论坛
直播中

lotusp

10年用户 1004经验值
擅长:电源/新能源
私信 关注
[问答]

DFlash填充失败怎么解决?

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



                                                                                                                                                                                                                                                                                                                                                                                                        
                                                        

回帖(1)

石玉兰

2024-1-19 17:46:18
任务验证将失败。

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设置为实际需要的大小,以避免引发访问越界的问题。

你可以尝试根据上述可能的解决方案来解决DFlash填充失败的问题。如果问题仍然存在,建议查阅相关文档或咨询相关技术支持部门,以获取更详细的帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分