51单片机启动代码:STARTUP.A51

本文介绍了51单片机在复位后执行的STARTUP.A51启动代码,详细讲解了启动过程,包括内部、外部RAM清零,不同内存模型的堆栈初始化,以及关键参数如IDATALEN、XDATASTART等的作用。启动代码确保了系统正确运行并把控制权交给全局变量初始化或main函数。
摘要由CSDN通过智能技术生成

通过Keil编译器建立工程时,Keil会提示是否添加STARTUP.A51文件到工程,该文件即为51单片机启动代码。

51单片机复位后马上执行STARTUP.A51文件中的启动代码,根据启动代码中的设置依次执行以下操作:

  • 内部RAM清零
  • 外部RAM清零
  • 清零分页的外部RAM
  • 初始化SMALL内存模型的可重入模拟堆栈及其堆栈指针
  • 初始化LARGE内存模型的可重入模拟堆栈及其堆栈指针
  • 初始化COMPACT内存模型的可重入模拟堆栈及其堆栈指针
  • 初始化8051单片机的硬件堆栈指针
  • 将系统控制权转交给初始化全局变量的代码,如果没有被初始化的全局变量则转交给C程序文件中的main函数。
STARTUP.A51启动文件中定义了一些常量,修改这些常量可以控制单片机复位时执行的动作:

        1、IDATALEN

指定idata区需要清零的字节数。默认值为80H,这是由于8051系列单片机都包含至少128字节内部ram。对于8052系列单片机或者其他系列具有256字节内部ram的,可以将此值改为100H。

2、XDATASTART

指定外部ram需要清零的区域起始地址。

3、XDATALEN

指示xdata区需要清零的字节数,默认值为0.。

4、PDATASTART

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值