14.1 EDK - 使用NOLOAD属性增加软件启动时间
描述
当软件设计包含大型未初始化(或0初始化)元件时,软件需要花费非常长的时间来加载。解
这种延迟通常发生在这些元件未初始化或初始化为0时;如果是这种情况,它们将被放置在链接描述文件的.bss部分中。应用程序启动时,此部分始终初始化为0,大型元件将导致此操作的持续时间更长。解决方法是设置一个禁用这些元件初始化的属性;此属性只应添加到不需要初始化的元件中。首先,必须在下面的模板后面的链接器脚本(通常标题为lscript.ld)中添加一个新的部分。
.my_noload_section(NOLOAD):{
*(。my_noload_section)
}> My_Memory_ADDR
“.my_noload_section”可以命名为任何内容,而“My_Memory_ADDR”应该是一个内存器件,无论是BRAM,DDR3等。请参考MEMORY或链接描述文件的其他部分。
现在已经使用NOLOAD标记向链接器添加了新部分,可以将某些元件分配给该部分。这可以通过使用以下格式设置属性来完成。
u8 MyElement [Element_Size] __attribute __((section(“。my_noload_section”)));
请注意属性和链接描述文件之间的节名称是如何一致的。这将阻止具有此属性的任何元件被初始化。
添加评论