




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于keil中STARTUP.A51的研究!blueiceman 发表于 2005-10-10 8:53:00让我们先来看看STARTUP.A51文件(默认设置)吧!根据源文件中的说明文字,我们很容易分析出STARTUP.A51文件的工作方式和作用!让我们把它先汉化一下看看!$NOMOD51;Ax51宏汇编器控制命令:禁止预定义的8051;-; This file is part of the C51 Compiler package; Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.;-; STARTUP.A51: This code is executed after processor reset.; STARTUP.A51: STARTUP.A51文件所生成的代码将在单片机复位后被执行!; To translate this file use A51 with the following invocation:; 将按照下面的命令行语句调用A51编译器进行编译产生目标文件; A51 STARTUP.A51; To link the modified STARTUP.OBJ file to your application use the following; BL51 invocation:; 将按照下面的命令行语句调用BL51连接器把STARTUP.OBJ定位连接到您的程序代码中; BL51 , STARTUP.OBJ ;-; User-defined Power-On Initialization of Memory; 自定义上电后需要初始化的储存区域; With the following EQU statements the initialization of memory; at processor reset can be defined:; 使用下列EQU伪指令定义初始化的存储区域 在单片机复位后定义生效; ; the absolute start-address of IDATA memory is always 0IDATALEN EQU 80H ; the length of IDATA memory in bytes.; IDATA(间接寻址区)其起始地址固定为0;IDATALEN用于指定需要初始化; 的 IDATA区长度(以字节为单位)*XDATASTART EQU 0H ; the absolute start-address of XDATA memoryXDATALEN EQU 0H ; the length of XDATA memory in bytes.;XDATA (外部直接寻址区) XDATASTART用于指定需要初始化的XDATA区起始地;址 XDATALEN 用于指定需要初始化的XDATA区长度(以字节为单位)*PDATASTART EQU 0H ; the absolute start-address of PDATA memoryPDATALEN EQU 0H ; the length of PDATA memory in bytes.;PDATA(页寻址区)PDATASTART用于指定需要初始化的PDATA区起始地址;PDATALEN用于指定需要初始化的;PDATA区长度(以字节为单位)* ; Notes: The IDATA space overlaps physically the DATA and BIT areas of the; 8051 CPU. At minimum the memory space occupied from the C51 ; run-time routines must be set to zero.;注释:8051中 IDATA 区物理上已经包括了DATA区(直接寻址区)以及 BIT区 (位寻址区)。C51(库)占用了 最小;化内存空间,运行时程序需要把它设为0;-; Reentrant Stack Initilization; 重入堆栈初始化; The following EQU statements define the stack pointer for reentrant; functions and initialized it:; 下面的EQU语句定义重入函数的堆栈指针并初始化它; Stack Space for reentrant functions in the SMALL model.; SMALL模式下的重入函数的堆栈空间IBPSTACK EQU 0 ; set to 1 if small reentrant is used.;如果再SMALL模式下使用重入则设为1IBPSTACKTOP EQU 0FFH+1 ; set top of stack to highest location+1.;设置堆栈顶 最高位置+1; Stack Space for reentrant functions in the LARGE model.; LARGE模式下的重入函数的堆栈空间XBPSTACK EQU 0 ; set to 1 if large reentrant is used.;如果再LARGE模式下使用重入则设为1XBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.;设置堆栈顶 最高位置+1; Stack Space for reentrant functions in the COMPACT model. ; COMPACT模式下的重入函数的堆栈空间PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.;如果再COMPACT模式下使用重入则设为1PBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.;设置堆栈顶 最高位置+1;-; Page Definition for Using the Compact Model with 64 KByte xdata RAM; 使用COMPACT模式时为64KB的XDATA RAM定义页; The following EQU statements define the xdata page used for pdata; variables. The EQU PPAGE must conform with the PPAGE control used; in the linker invocation.; 下面的EQU语句定义PDATA变量的使用了XDATA页PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.;如果使用PDATA页则设为1;PPAGE EQU 0 ; define PPAGE number.;定义页号;PPAGE_SFR DATA 0A0H ; SFR that supplies uppermost address byte;SFR的最高地址字节; (most 8051 variants use P2 as uppermost address byte); (大多数8051变量要用P2的最高地址字节);-; Standard SFR Symbols ; 标准SFR符号ACC DATA 0E0HB DATA 0F0HSP DATA 81HDPL DATA 82HDPH DATA 83H NAME ?C_STARTUP?C_C51STARTUP SEGMENT CODE?STACK SEGMENT IDATA RSEG ?STACK DS 1 EXTRN CODE (?C_START) ;外部代码(这个标号将代表用户程序的启始地址) PUBLIC ?C_STARTUP ;给外部使用的符号 CSEG AT 0;在code段的0地址处放以下代码(使用AT指令进行绝对地址的定位)?C_STARTUP: LJMP STARTUP1 RSEG ?C_C51STARTUPSTARTUP1:IF IDATALEN 0 ;如果长度大于1则初始化IDATA MOV R0,#IDATALEN - 1 CLR AIDATALOOP: MOV R0,A DJNZ R0,IDATALOOPENDIFIF XDATALEN 0 ;如果长度大于1则初始化XDATA MOV DPTR,#XDATASTART MOV R7,#LOW (XDATALEN) IF (LOW (XDATALEN) 0 ;预置初始化时的外循环次数到R6 MOV R6,#(HIGH (XDATALEN) +1 ELSE MOV R6,#HIGH (XDATALEN) ENDIF CLR AXDATALOOP: MOVX DPTR,A INC DPTR DJNZ R7,XDATALOOP DJNZ R6,XDATALOOPENDIFIF PPAGEENABLE 0 MOV PPAGE_SFR,#PPAGEENDIFIF PDATALEN 0 ;如果长度大于1则初始化PDATA MOV R0,#LOW (PDATASTART) MOV R7,#LOW (PDATALEN) CLR APDATALOOP: MOVX R0,A INC R0 DJNZ R7,PDATALOOPENDIFIF IBPSTACK 0 ;SMALL模式下使用重入函数时要设置的堆栈EXTRN DATA (?C_IBP) MOV ?C_IBP,#LOW IBPSTACKTOPENDIFIF XBPSTACK 0 ;COMPACT模式下使用重入函数时要设置的堆栈EXTRN DATA (?C_XBP) MOV ?C_XBP,#HIGH XBPSTACKTOP MOV ?C_XBP+1,#LOW XBPSTACKTOPENDIFIF PBPSTACK 0 ;LARGE模式下使用重入函数时要设置的堆栈EXTRN DATA (?C_PBP) MOV ?C_PBP,#LOW PBPSTACKTOPENDIF MOV SP,#?STACK-1; This code
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林苗木成活率提升措施探索
- 园林特色花卉培育与推广创新创业项目商业计划书
- 现场可编程逻辑门阵列(FPGA)创新创业项目商业计划书
- 2025年专业解读乡镇畜牧站兽医招聘面试要点与模拟题详解
- 护士分层级技能竞赛准备计划
- 2025年二手车评估师面试题解析及参考答案
- 2025年家政服务员初级技能培训模拟题集及答案
- 2025年中国烟草总公司招聘面试热点问题解析
- 2025年乡镇残联专职委员岗位能力测试题库
- 财务部报表审批流程
- 《社会治理概论》教学大纲
- 2024全国中考语文试题分类汇编:议论文阅读
- 2024ESC心房颤动管理指南解读-完整版
- 《捷众电梯推介书》课件
- 《城市轨道交通车辆标志规范》
- 人事工作目标及规划
- 第十三讲-先锋队与中华民族独立解放-中华民族共同体概论教案
- 糖尿病处方点评
- 诊断学-常见症状的诊疗(临床疾病概要课件)
- 咨询类合同合同范例
- 九上道法【思维导图+重点句+考点问题+典型例题】
评论
0/150
提交评论