STARTUP.A51启动文件解释

上传人:nbwa****ajie 文档编号:39676376 上传时间:2018-05-18 格式:PDF 页数:5 大小:125.01KB
返回 下载 相关 举报
STARTUP.A51启动文件解释_第1页
第1页 / 共5页
STARTUP.A51启动文件解释_第2页
第2页 / 共5页
STARTUP.A51启动文件解释_第3页
第3页 / 共5页
STARTUP.A51启动文件解释_第4页
第4页 / 共5页
STARTUP.A51启动文件解释_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《STARTUP.A51启动文件解释》由会员分享,可在线阅读,更多相关《STARTUP.A51启动文件解释(5页珍藏版)》请在金锄头文库上搜索。

1、$NOMOD51 ;使编译器不使能预定义的 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. ; ; To translate this file use A51 with the following invocation: ; ;A51

2、 STARTUP.A51 ; ; To link the modified STARTUP.OBJ file to your application use the following ; BL51 invocation: ; ;BL51 , STARTUP.OBJ ;BL51 是 Keil 使用的链接器(Linker),这是命令行的使用格式,一般不用,使用 IDE 环境,;用 project 管理,有相应的按钮可以实现该功能.;- ; ; User-defined Power-On Initialization of Memory - 初始化 RAM 单元; ; With the follo

3、wing EQU statements the initialization of memory ; at processor reset can be defined: ; ; the absolute start-address of IDATA memory is always 0 IDATALENIDATALENIDATALENIDATALEN EQUEQUEQUEQU 80H80H80H80H ; the length of IDATA memory in bytes.-根据你选用的芯片可以适;当的修改这些值XDATASTARTXDATASTARTXDATASTARTXDATASTA

4、RTEQUEQUEQUEQU0H0H0H0H; the absolute start-address of XDATA memory-以下;两项根据目标系统的外设配置和连接自己修改 XDATALENXDATALENXDATALENXDATALENEQUEQUEQUEQU0H0H0H0H; the length of XDATA memory in bytes.PDATASTARTPDATASTARTPDATASTARTPDATASTARTEQUEQUEQUEQU0H0H0H0H; the absolute start-address of PDATA memory PDATALENPDATAL

5、ENPDATALENPDATALENEQUEQUEQUEQU0H0H0H0H; the length of PDATA memory in bytes. ; ; 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. ;- ; ; Reentrant Stack Initilization-注意的再入堆栈的

6、方向区别的芯片自带的堆栈的生长方;式,自顶向下生长的!而 SP 是是自底向上的! ;-且再入堆栈是由编译器自己管理的,一般不必去关心,只是在有在入函数的时候,根据;函数的存储器模式使用相应的 RAM 空间做为再入堆栈。 ; The following EQU statements define the stack pointer for reentrant ; functions and initialized it: ;Keil C 默认情况不是用堆栈来传递参数的,所以造成函数不可重入,Keil 要求用户显示声;明函数是否具有可重入属性,以便为 C 函数调用初始化栈。; Stack Spac

7、e for reentrant functions in the SMALL model. IBPSTACKIBPSTACKIBPSTACKIBPSTACKEQUEQUEQUEQU0 0 0 0; set to 1 if small reentrant is used. IBPSTACKTOPIBPSTACKTOPIBPSTACKTOPIBPSTACKTOPEQUEQUEQUEQU0FFH+10FFH+10FFH+10FFH+1 ; set top of stack to highest location+1. ; ; Stack Space for reentrant functions i

8、n the LARGE model. XBPSTACKXBPSTACKXBPSTACKXBPSTACKEQUEQUEQUEQU0 0 0 0; set to 1 if large reentrant is used. XBPSTACKTOPXBPSTACKTOPXBPSTACKTOPXBPSTACKTOPEQUEQUEQUEQU0FFFFH+10FFFFH+10FFFFH+10FFFFH+1; set top of stack to highest location+1. ; ; Stack Space for reentrant functions in the COMPACT model.

9、 PBPSTACKPBPSTACKPBPSTACKPBPSTACKEQUEQUEQUEQU0 0 0 0; set to 1 if compact reentrant is used. PBPSTACKTOPPBPSTACKTOPPBPSTACKTOPPBPSTACKTOPEQUEQUEQUEQU0FFFFH+10FFFFH+10FFFFH+10FFFFH+1; set top of stack to highest location+1. ;不同内存模式下的堆栈。Keil 编译器中有三种模式设置: ;Small:所有的变量都放在内部 RAM 区 ;Compact:所有变量在默认情况下都会放在

10、外部 RAM 的低 256 字节中(可由 R0 寻址) ;Large:所有变量都放在外部 RAM 中(DPTR 寻址) ;这是由 51 处理器繁多的寻址模式导致的,不同的寻址模式有不同的效率; ;- ; ; Page Definition for Using the Compact Model with 64 KByte xdata RAM ; ; The following EQU statements define the xdata page used for pdata ; variables. The EQU PPAGE must conform with the PPAGE con

11、trol used ; in the linker invocation. ; PPAGEENABLEPPAGEENABLEPPAGEENABLEPPAGEENABLEEQUEQUEQUEQU0 0 0 0; set to 1 if pdata object are used. ; PPAGEPPAGEPPAGEPPAGEEQUEQUEQUEQU0 0 0 0; define PPAGE number. ; PPAGE_SFRPPAGE_SFRPPAGE_SFRPPAGE_SFRDATADATADATADATA0A0H0A0H0A0H0A0H; SFR that supplies upperm

12、ost address byte ;(most 8051 variants use P2 as uppermost address byte) 很多的外部页面寻址以 P2;口为高位地址的数值,有使用外部页面 RAM 的情况 ;对 PPAGEENABLE 设置为 1 ,根据硬件连接修改 PPAGE 的值。 ;-; Standard SFR Symbols ACCACCACCACCDATADATADATADATA0E0H0E0H0E0H0E0H;关键字 DATA A51 伪指令定义单片机内部数据存储器字节地址的符号 B B B BDATADATADATADATA0F0H0F0H0F0H0F0H S

13、PSPSPSPDATADATADATADATA81H81H81H81HDPLDPLDPLDPLDATADATADATADATA82H82H82H82H DPHDPHDPHDPHDATADATADATADATA83H83H83H83HNAMENAMENAMENAME?C_STARTUP?C_STARTUP?C_STARTUP?C_STARTUP;定义当前程序模块的目标模块名?C_C51STARTUP?C_C51STARTUP?C_C51STARTUP?C_C51STARTUPSEGMENTSEGMENTSEGMENTSEGMENTCODECODECODECODE;定义一个可再定位的段符号名和段所

14、在的;存储空间,汇编器产生的这个段符号名在 BL51/L51 连接定位时用 ?STACK?STACK?STACK?STACKSEGMENTSEGMENTSEGMENTSEGMENTIDATAIDATAIDATAIDATA;定义一个 IDATA 段,段名?STACK ,符合;C51 编译器的命名规则RSEGRSEGRSEGRSEG?STACK?STACK?STACK?STACK;声明当前段是 IDATA 段,段中保留空间。 DSDSDSDS1 1 1 1EXTRNEXTRNEXTRNEXTRNCODECODECODECODE (?C_START)(?C_START)(?C_START)(?C_S

15、TART) ;声明本模块引用的外部全局符号,;用于和 C 相连接在.src 文件中可以看到这个符号 PUBLICPUBLICPUBLICPUBLIC?C_STARTUP?C_STARTUP?C_STARTUP?C_STARTUP;声明可被其他模块使用的全局符;号,由.src 文件中可以看出这个符号的作用。CSEGCSEGCSEGCSEGATATATAT0 0 0 0;结束当前的 IDATA 段,产生一个位于;CODE 中新段,起始地址是 0000H。代码段的起始点 ?C_STARTUP:?C_STARTUP:?C_STARTUP:?C_STARTUP:LJMPLJMPLJMPLJMPSTARTUP1STARTUP1STARTUP1STARTUP1;C

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号