Makefile
xxgui1992
认真踏实的小晚辈
展开
-
GNU链接脚本学习-最简链接脚本
最简连接脚本必备的元素注: 这里的最简是指能成功生成.bin文件的最简,不代表一定能使MCU跑起来,要跑起来还得指定中断向量表以及堆和栈指定入口ENTRY(ramcode_start), 其中ramcode_start是汇编程序标号定于存储介质/* Specify the memory areas */MEMORY{FLASHCODE(rx) : ORIGIN = 0x8040000, LENGTH = 128KFREERAM (xrw) : ORIGIN = 0x20019000原创 2021-11-26 16:55:37 · 909 阅读 · 0 评论 -
GNU 链接脚本学习
很少有系统地讲解链接器的工作原理和语法规则的教程,当初笔者自学时也是费尽周折才淘到一些有价值的学习资料,现将我淘到的资料分享一下:GNU ld linker script 链接脚本详解:https://www.cnblogs.com/idalink/articles/11800860.html配套例程:https://github.com/iDalink/ld-linker-script知乎,链接脚本https://zhuanlan.zhihu.com/p/383729996官方英文文档:h转载 2021-10-20 17:48:58 · 203 阅读 · 0 评论 -
将源码文件链接到指定段
你可能经常有这样的需求:一部分特殊程序希望跑在RAM里,其余程序跑在norFLash, 这时你就可以将期望跑在RAM里的函数汇聚到一个.c文件中,例如汇聚到insert_ramcode.c, 然后在链接脚本中就可以把这个文件安排在你设计的地址段,有着极大的灵活性 /*Store in flash but copy to ram run*/ .RAMCODE : { *(.RAMCODE) APP_ZX_BOOT/insert_ramcode.o } >FREERAM原创 2021-10-20 17:30:28 · 466 阅读 · 0 评论 -
将函数链接到指定段
不同的编译器控制语句不同,但基本大同小异,本文使用的编译器是GNU 编译工具链。使用编译控制语句告诉链接器将其放到指定段attribute((section(".RAMCODE")))这种方式必须在每个函数的开头声明。如果嫌这样太麻烦,你可以直接在链接脚本中指定文件名来实现将整个文件安排到指定段,详见我另一篇博文《将某个源码文件链接到指定段》查看编译后的map文件,确实给放到这个段里了...原创 2021-10-20 17:02:03 · 701 阅读 · 0 评论 -
在GCC环境下编译STM32的makefile解读
在GCC环境下编译STM32的makefile解读以下是comple.mk以下是makefile`以下是链接脚本``/***** File : LinkerScript.ld**** Abstract : Linker script for STM32F105RBTx Device with** 128KByte FL...原创 2020-04-16 13:37:16 · 879 阅读 · 0 评论