update README.md.

Signed-off-by: 魔罗 <master_roger@sina.com>
This commit is contained in:
魔罗 2023-09-05 15:37:48 +00:00 committed by Gitee
parent d5e06567a4
commit f31c1643e3
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -289,3 +289,25 @@ void key_init(void)
}
```
### GCC下使用说明
由于代码中使用了一些自定义段功能没有直接显式调用使用GCC时会被优化掉所以需要在链接脚本.lds下添加保留这些段的声明
```c
.custom_sesion:
{
KEEP (*(SORT(init.item.*)))
KEEP (*(SORT(task.item.*)))
KEEP (*(SORT(pm.item.*)))
KEEP (*(SORT(cli.cmd.*)))
}
```
其中,.custom_sesion表示自定义段名称KEEP表示保留该代码段SORT表示对代码段进行排序方便程序查找。
对于一般在MCU项目都有链接脚本而如果是类似LINUX的通用应用程序链接时用得是默认链接脚本这种情况下如何处理呢
以GCC为例可以通过ld程序打开后复制出来然后保存到.lds文件中如在linux终端下输入
ld -verb
打印出来的就是默认链接脚本,将其复制出现保存成文件(xxx.lds)接着在makefile引用(通常是LDFLAGS += -Txxx.lds)