• 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21
  • 打印

    广东11选5走势图第一球: [技术问答] STARTUP.A51 的疑问

    [复制链接]
    364|8
    跳转到指定楼层
    楼主
     楼主 | 2018-11-14 19:15 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 lomo1316 于 2018-11-14 19:22 编辑

    我是N76E003芯片,而
    IDATA是固定指前面0x00-0xff的256个RAM,其中前128字节空间直接或间接寻址都可以访问,后128字节空间必须采用间接寻址来访问。
    所以有个疑问

    STARTUP.A51文件的

    IDATALEN        EQU     80H     ; the length of IDATA memory in bytes.

    需要如下改吗,改了有什么问题吗

    IDATALEN        EQU     100H   

    1. $NOMOD51
    2. ;------------------------------------------------------------------------------
    3. ;  This file is part of the C51 Compiler package
    4. ;  Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
    5. ;------------------------------------------------------------------------------
    6. ;  STARTUP.A51:  This code is executed after processor reset.
    7. ;
    8. ;  To translate this file use A51 with the following invocation:
    9. ;
    10. ;     A51 STARTUP.A51
    11. ;
    12. ;  To link the modified STARTUP.OBJ file to your application use the following
    13. ;  BL51 invocation:
    14. ;
    15. ;     BL51 <your object file list>, STARTUP.OBJ <controls>
    16. ;
    17. ;------------------------------------------------------------------------------
    18. ;
    19. ;  User-defined Power-On Initialization of Memory
    20. ;
    21. ;  With the following EQU statements the initialization of memory
    22. ;  at processor reset can be defined:
    23. ;
    24. ;               ; the absolute start-address of IDATA memory is always 0
    25. IDATALEN        EQU     80H     ; the length of IDATA memory in bytes.
    26. ;
    27. XDATASTART      EQU     0H      ; the absolute start-address of XDATA memory
    28. XDATALEN        EQU     2FFH     ; the length of XDATA memory in bytes.
    29. ;
    30. PDATASTART      EQU     0H      ; the absolute start-address of PDATA memory
    31. PDATALEN        EQU     0H      ; the length of PDATA memory in bytes.
    32. ;
    33. ;  Notes:  The IDATA space overlaps physically the DATA and BIT areas of the
    34. ;          8051 CPU. At minimum the memory space occupied from the C51
    35. ;          run-time routines must be set to zero.
    36. ;------------------------------------------------------------------------------
    37. ;
    38. ;  Reentrant Stack Initilization
    39. ;
    40. ;  The following EQU statements define the stack pointer for reentrant
    41. ;  functions and initialized it:
    42. ;
    43. ;  Stack Space for reentrant functions in the SMALL model.
    44. IBPSTACK        EQU     0       ; set to 1 if small reentrant is used.
    45. IBPSTACKTOP     EQU     0FFH+1  ; set top of stack to highest location+1.
    46. ;
    47. ;  Stack Space for reentrant functions in the LARGE model.      
    48. XBPSTACK        EQU     0       ; set to 1 if large reentrant is used.
    49. XBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
    50. ;
    51. ;  Stack Space for reentrant functions in the COMPACT model.   
    52. PBPSTACK        EQU     0       ; set to 1 if compact reentrant is used.
    53. PBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
    54. ;
    55. ;------------------------------------------------------------------------------
    56. ;
    57. ;  Page Definition for Using the Compact Model with 64 KByte xdata RAM
    58. ;
    59. ;  The following EQU statements define the xdata page used for pdata
    60. ;  variables. The EQU PPAGE must conform with the PPAGE control used
    61. ;  in the linker invocation.
    62. ;
    63. PPAGEENABLE     EQU     0       ; set to 1 if pdata object are used.
    64. ;
    65. PPAGE           EQU     0       ; define PPAGE number.
    66. ;
    67. PPAGE_SFR       DATA    0A0H    ; SFR that supplies uppermost address byte
    68. ;               (most 8051 variants use P2 as uppermost address byte)
    69. ;
    70. ;------------------------------------------------------------------------------

    71. ; Standard SFR Symbols
    72. ACC     DATA    0E0H
    73. B       DATA    0F0H
    74. SP      DATA    81H
    75. DPL     DATA    82H
    76. DPH     DATA    83H



    77.                 NAME    ?C_STARTUP


    78. ?C_C51STARTUP   SEGMENT   CODE
    79. ?STACK          SEGMENT   IDATA

    80.                 RSEG    ?STACK
    81.                 DS      1

    82.                 EXTRN CODE (?C_START)
    83.                 PUBLIC  ?C_STARTUP

    84.                 CSEG    AT      0
    85. ?C_STARTUP:     LJMP    STARTUP1

    86.                 RSEG    ?C_C51STARTUP

    87. STARTUP1:
    88. ;Disable POR
    89.         MOV 0C7H,#0AAH
    90.         MOV 0C7H,#55H
    91.         MOV 0FDH,#5AH
    92.         
    93.         MOV 0C7H,#0AAH
    94.         MOV 0C7H,#55H
    95.         MOV 0FDH,#0A5H

    96. IF IDATALEN <> 0
    97.                 MOV     R0,#IDATALEN - 1
    98.                 CLR     A
    99. IDATALOOP:      MOV     @R0,A
    100.                 DJNZ    R0,IDATALOOP
    101. ENDIF

    102. IF XDATALEN <> 0
    103.                 MOV     DPTR,#XDATASTART
    104.                 MOV     R7,#LOW (XDATALEN)
    105.   IF (LOW (XDATALEN)) <> 0
    106.                 MOV     R6,#(HIGH (XDATALEN)) +1
    107.   ELSE
    108.                 MOV     R6,#HIGH (XDATALEN)
    109.   ENDIF
    110.                 CLR     A
    111. XDATALOOP:      MOVX    @DPTR,A
    112.                 INC     DPTR
    113.                 DJNZ    R7,XDATALOOP
    114.                 DJNZ    R6,XDATALOOP
    115. ENDIF

    116. IF PPAGEENABLE <> 0
    117.                 MOV     PPAGE_SFR,#PPAGE
    118. ENDIF

    119. IF PDATALEN <> 0
    120.                 MOV     R0,#LOW (PDATASTART)
    121.                 MOV     R7,#LOW (PDATALEN)
    122.                 CLR     A
    123. PDATALOOP:      MOVX    @R0,A
    124.                 INC     R0
    125.                 DJNZ    R7,PDATALOOP
    126. ENDIF

    127. IF IBPSTACK <> 0
    128. EXTRN DATA (?C_IBP)

    129.                 MOV     ?C_IBP,#LOW IBPSTACKTOP
    130. ENDIF

    131. IF XBPSTACK <> 0
    132. EXTRN DATA (?C_XBP)

    133.                 MOV     ?C_XBP,#HIGH XBPSTACKTOP
    134.                 MOV     ?C_XBP+1,#LOW XBPSTACKTOP
    135. ENDIF

    136. IF PBPSTACK <> 0
    137. EXTRN DATA (?C_PBP)
    138.                 MOV     ?C_PBP,#LOW PBPSTACKTOP
    139. ENDIF

    140.                 MOV     SP,#?STACK-1
    141. ; This code is required if you use L51_BANK.A51 with Banking Mode 4
    142. ; EXTRN CODE (?B_SWITCH0)
    143. ;               CALL    ?B_SWITCH0      ; init bank mechanism to code bank 0
    144.                 LJMP    ?C_START

    145.                 END
    复制代码



    沙发
    | 2018-11-14 20:20 | 只看该作者
    用C语言开发就不用管这个吧?》
    板凳
    | 2018-11-14 21:05 | 只看该作者
    不懂这个怎么修改。
    地板
    | 2018-11-14 22:41 | 只看该作者
    那仅仅是上电要清空的ram的长度??聪潞竺娴拇刖湍苊靼?。
    5
    | 2018-11-14 23:08 | 只看该作者
    楼主理解错误了。
    6
    | 2018-11-15 08:38 | 只看该作者
    IDATALEN        EQU     100h 代码还是用间接定址从99h清除到0h的地址。

    108.IF IDATALEN <> 0

    109.                MOV     R0,#IDATALEN - 1

    110.                CLR     A

    111.IDATALOOP:      MOV     @R0,A

    112.                DJNZ    R0,IDATALOOP

    113.ENDIF

    评论

    lomo1316 2018-12-21 17:01 回复TA
    现在理解了,谢谢 
    7
    | 2018-11-15 11:13 | 只看该作者
    jasontu 发表于 2018-11-15 08:38
    IDATALEN        EQU     100h 代码还是用间接定址从99h清除到0h的地址。

    108.IF IDATALEN  0

    100h - 1 = 0FFh,可不是99H
    8
    | 2018-12-21 23:40 | 只看该作者
    jekey 发表于 2018-11-15 11:13
    100h - 1 = 0FFh,可不是99H

    haha,你不提一下,我也以为是99呢,忘了是16进制了。
    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    我要发帖 投诉建议 创建版块 申请版主

    快速回复

    您需要登录后才可以回帖
    登录 | 注册
    高级模式

    论坛热帖

    快速回复 广东快乐十分走势图 返回列表
  • 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21