通过Keil编译器建立工程时,Keil会提示是否添加STARTUP.A51文件到工程,该文件即为51单片机启动代码。
51单片机复位后马上执行STARTUP.A51文件中的启动代码,根据启动代码中的设置依次执行以下操作:
- 内部RAM清零
- 外部RAM清零
- 清零分页的外部RAM
- 初始化SMALL内存模型的可重入模拟堆栈及其堆栈指针
- 初始化LARGE内存模型的可重入模拟堆栈及其堆栈指针
- 初始化COMPACT内存模型的可重入模拟堆栈及其堆栈指针
- 初始化8051单片机的硬件堆栈指针
- 将系统控制权转交给初始化全局变量的代码,如果没有被初始化的全局变量则转交给C程序文件中的main函数。
1、IDATALEN
指定idata区需要清零的字节数。默认值为80H,这是由于8051系列单片机都包含至少128字节内部ram。对于8052系列单片机或者其他系列具有256字节内部ram的,可以将此值改为100H。
2、XDATASTART
指定外部ram需要清零的区域起始地址。
3、XDATALEN
指示xdata区需要清零的字节数,默认值为0.。
4、PDATASTART