小编joo*_*oop的帖子

链接器命令语言 LD 的条件语句

GNU LD 链接器命令语言有条件语句吗?

背景:我正在为 ARM Cortex m0+ 开发固件,它由引导加载程序和应用程序组成。两者都在单独的项目中进行编译和刷新以定位目标,但我使用一个带有驱动程序、makefile 和加载器脚本符号链接的框架,这样我就可以为我制作的每个应用程序重复使用这些文件,而无需为每个应用程序复制这些文件。目前我有两个加载程序文件,分别用于引导加载程序和应用程序(makefile 自动指定相应的文件),内存分配如下:

引导装载程序

MEMORY { 
  flash (rx)  : ORIGIN = 0x00000000, LENGTH = 16K
  ram   (rwx) : ORIGIN = 0x1FFFF000, LENGTH =  16K
}
Run Code Online (Sandbox Code Playgroud)

应用程序

MEMORY { 
  flash (rx)  : ORIGIN = 0x00004000, LENGTH = 112K
  ram   (rwx) : ORIGIN = 0x1FFFF000, LENGTH =  16K
}
Run Code Online (Sandbox Code Playgroud)

就像 makefile 一样,我想将它们合并为类似的内容(使用 C 表达式来澄清)

MEMORY { 
#ifdef(bootloaderSymbol)
  flash (rx)  : ORIGIN = 0x00000000, LENGTH = 16K
#else
  flash (rx)  : ORIGIN = 0x00004000, LENGTH = …
Run Code Online (Sandbox Code Playgroud)

ld linker-scripts cortex-m

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

cortex-m ×1

ld ×1

linker-scripts ×1