STARTUP.A51是 Keil C51 的项目中的初始化文件。里面包含了中断向量表和变量初始化代码。此文件为可选文件,如果项目中没有此文件将使用编译器中的默认配置。在Simplicity Studio中建立项目时会自动添加此文件。在旧的8比特 IDE中如果想添加此文件可以到如下路径复制一份到项目中: C:\Keil\C51\LIB\STARTUP.A51
不同的MCU上XRAM大小不同,可以在此文件中修改XRAM的大小以实现初始化。
; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF> ; <i> The absolute start address of XDATA memory XDATASTART EQU 0
如果系统中定义变量比较多,尺寸比较大,那么初始化时间比较久可能导致看门狗复位,所以可以在初始化函数执行之前关闭看门狗,比如看门狗在PCA模块的设备上可以使用如下代码:
PCA0MD DATA 0D9H CSEG AT 0 ?C_STARTUP: LJMP STARTUP1 RSEG ?C_C51STARTUP STARTUP1: ANL PCA0MD, #0BFH
而看门狗为独立模块的处理器比如C8051F85x/F86x, EFM8(除 EFM8SB1/SB2/UB2外)上使用如下代码:
STARTUP1: MOV 097H,#0DEH MOV 097H,#0ADH
附件中的文件是STARTUP.A51的例子。相关参考文章:
芯片不停重启,代码无法执行至main()函数。
STARTUP.A51是什么文件,如何使用?