修改链接脚本
STM32F407_OpenEdv\liteos.ld是新开发板的链接脚本,需要根据开发板实际情况修改stack,flash,ram的值,可以参考裸机工程链接脚本STM32F407ZGTx_FLASH.ld中的设定值进行设置。
- stack在链接脚本中对应的是“_estack”变量。
- flash 对应的是“FLASH”变量。
- ram对应的是“RAM ”变量。
同时为适配LiteOS操作系统,链接脚本中增加了如下代码:
增加了一个vector,用于初始化LiteOS:
/* used by the startup to initialize liteos vector */
_si_liteos_vector_data = LOADADDR(.vector_ram);
/* Initialized liteos vector sections goes into RAM, load LMA copy after code */
.vector_ram :
{
. = ORIGIN(RAM);
_s_liteos_vector = .;
*(.data.vector) /* liteos vector in ram */
_e_liteos_vector = .;
} > RAM AT> FLASH
在.bss段中增加“__bss_end”变量的定义,因为在LiteOS中使用的是这个变量而非“__bss_end__”变量:
__bss_end = _ebss;
设置LiteOS使用的内存池的地址,包括起始地址和结束地址:
. = ALIGN(8);
__los_heap_addr_start__ = .;
__los_heap_addr_end__ = ORIGIN(RAM) + LENGTH(RAM) - _Min_Stack_Size - 1;