STM32高级开发——链接器与启动文件
💡
原文中文,约10300字,阅读约需25分钟。
📝
内容提要
本文讨论了编译器和链接器的作用和必要性,以及如何将程序入口引导到main函数上。链接器将.c文件编译为.o文件,并将所有.o文件链接起来,生成可供单片机执行的文件。启动文件在执行main函数前初始化全局变量和静态变量,并将程序跳转到main函数入口。文章提醒读者学习汇编语言以更好地理解单片机工作原理。
🎯
关键要点
- 编译器将.c文件编译为.o文件,链接器将所有.o文件链接生成可执行文件。
- 链接器解析每个函数的地址,使不同位置的函数可以相互跳转。
- 启动文件在执行main函数前初始化全局变量和静态变量,并设置程序计数器。
- 学习汇编语言有助于更好地理解单片机的工作原理。
- 链接器的执行程序通常是arm-none-eabi-ld,推荐使用arm-none-eabi-gcc进行链接。
- 链接器使用.ld文件来定义内存地址和大小等信息。
- 启动文件的作用是初始化系统并将程序跳转到main函数。
- 在启动文件中,使用attribute修饰符为函数或变量赋予特性。
- 全局变量和静态变量的初始化在程序执行前完成。
- 理解GNU C特性和编译链接过程是掌握单片机编程的基础。
➡️