【摘要】:启动文件定义了一个全局符号_start,它也是程序的起点。启动文件的功能有:1)初始化硬件和软件堆栈指针。启动文件也定义了复位向量,不需要修改启动文件来使用别的中断,具体可参考中断操作部分。注意,必须指定启动文件的绝对路径或启动文件必须位于工程选项库路径所指定的目录中。
这个链接器会自动将启动文件连接到程序之前,并将标准库libcavr.a与程序相连接,启动文件根据目标MCU的不同在crtavr.o和crtatmega.o中任意选择一个。启动文件定义了一个全局符号_start,它也是程序的起点。启动文件的功能有:
2)从idata区复制初始化数据到直接寻址数据区data区。
3)将bss区全部初始化为零。
4)调用用户主例程main函数。
5)定义一个退出点,如果主函数main()一旦退出,它将进入这个退出点进行无限循环。
启动文件也定义了复位向量,不需要修改启动文件来使用别的中断,具体可参考中断操作部分。
为修改和使用新的启动文件:(www.xing528.com)
cd \icc\libsrc.avr;进入安装的编译器路径
<edit crtavr.s>;编辑修改crtavr.s文件
<open crtavr.s using the IDE>;用IDE打开crtavr.s文件
<Choose"Compile File To->Object">;选择编译到目标文件,创建一个新的crtavr.o copy crtavr.o..\lib;复制到库目录
如果使用的目标MCU是Mega,应该用“crtatmega”代替“crtavr”,注意Mega的每个中断入口地址使用两个字,而非Mega芯片每一个中断入口地址使用一个字。
也可以有多个启动文件,可以在工程选项对话框中很方便地直接指定一个启动文件加入工程中。注意,必须指定启动文件的绝对路径或启动文件必须位于工程选项库路径所指定的目录中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。