• ARM_LED实现


    1. .text
    2. .global _start
    3. _start:
    4. @1.RCC时钟使能GPIOE RCC_MP_AHB4ENSETR[4]->1
    5. LDR R0,=0x50000a28
    6. LDR R1,[R0]
    7. ORR R1,R1,#(0x1<<4)
    8. STR R1,[R0]
    9. @2.设置PE10为输出模式 GPIOE_MODER[21:20]->01
    10. LDR R0,=0x50006000
    11. LDR R1,[R0]
    12. BIC R1,R1,#(0x3<<20)
    13. ORR R1,R1,#(0x1<<20)
    14. STR R1,[R0]
    15. @3.设置PE10为推挽输出 GPIOE_OTYPER[10]->0
    16. LDR R0,=0x50006004
    17. LDR R1,[R0]
    18. BIC R1,R1,#(0x1<<10)
    19. STR R1,[R0]
    20. @4.设置PE10为低速输出 GPIOE_OSPEEDR[21:20]->00
    21. LDR R0,=0x50006008
    22. LDR R1,[R0]
    23. BIC R1,R1,#(0x3<<20)
    24. STR R1,[R0]
    25. @5.设置PE10输出无上拉下拉 GPIOE_PUPDR[21:20]->00
    26. LDR R0,=0x5000600C
    27. LDR R1,[R0]
    28. BIC R1,R1,#(0x3<<20)
    29. STR R1,[R0]
    30. @led2
    31. ldr r2,=0x50000a28
    32. ldr r3,[r2]
    33. orr r3,r3,#(0x1<<5)
    34. str r3,[r2]
    35. ldr r2,=0x50007000
    36. ldr r3,[r2]
    37. bic r3,r3,#(0x3<<20)
    38. orr r3,r3,#(0x1<<20)
    39. str r3,[r2]
    40. ldr r2,=0x50007004
    41. ldr r3,[r2]
    42. bic r3,r3,#(0x1<<10)
    43. str r3,[r2]
    44. ldr r2,=0x50007008
    45. ldr r3,[r0]
    46. bic r3,r3,#(0x3<<20)
    47. str r3,[r0]
    48. ldr r2,=0x5000700C
    49. ldr r3,[r0]
    50. bic r3,r3,#(0x3<<20)
    51. str r3,[r0]
    52. @led3
    53. ldr r4,=0x50000a28
    54. ldr r5,[r4]
    55. orr r5,r5,#(0x1<<4)
    56. str r5,[r4]
    57. ldr r4,=0x50006000
    58. ldr r5,[r4]
    59. bic r5,r5,#(0x3<<16)
    60. orr r5,r5,#(0x1<<16)
    61. str r5,[r4]
    62. ldr r4,=0x50006004
    63. ldr r5,[r4]
    64. bic r5,r5,#(0x1<<8)
    65. str r5,[r4]
    66. ldr r4,=0x50006008
    67. ldr r5,[r4]
    68. bic r5,r5,#(0x3<<16)
    69. str r5,[r4]
    70. ldr r4,=0x5000600C
    71. ldr r5,[r4]
    72. bic r5,r5,#(0x3<<16)
    73. str r5,[r4]
    74. loop:
    75. bl led1_on
    76. bl delay
    77. bl led1_off
    78. bl delay
    79. bl led2_on
    80. bl delay
    81. bl led2_off
    82. bl delay
    83. bl led3_on
    84. bl delay
    85. bl led3_off
    86. bl delay
    87. b loop
    88. led1_on:
    89. LDR R0,=0x50006014
    90. LDR R1,[R0]
    91. ORR R1,R1,#(0x1<<10)
    92. STR R1,[R0]
    93. mov pc,lr
    94. led1_off:
    95. LDR R0,=0x50006014
    96. LDR R1,[R0]
    97. BIC R1,R1,#(0x1<<10)
    98. STR R1,[R0]
    99. mov pc,lr
    100. led2_on:
    101. ldr r2,=0x50007014
    102. ldr r3,[r2]
    103. orr r3,r3,#(0x1<<10)
    104. str r3,[r2]
    105. mov pc,lr
    106. led2_off:
    107. ldr r2,=0x50007014
    108. ldr r3,[r2]
    109. bic r3,r3,#(0x1<<10)
    110. str r3,[r2]
    111. mov pc,lr
    112. led3_on:
    113. ldr r4,=0x50006014
    114. ldr r5,[r4]
    115. orr r5,r5,#(0x1<<8)
    116. str r5,[r4]
    117. mov pc,lr
    118. led3_off:
    119. ldr r4,=0x50006014
    120. ldr r5,[r4]
    121. bic r5,r5,#(0x1<<8)
    122. str r5,[r4]
    123. mov pc,lr
    124. @封装汇编的延时函数
    125. delay:
    126. LDR R1,=0X10000000
    127. mm:
    128. cmp R1,#0
    129. SUBNE R1,R1,#1
    130. BNE mm
    131. mov pc,lr
    132. .end

  • 相关阅读:
    【Javascript】$.each方法使用
    mac查看端口占用程序
    网络——多区域OSPF配置(OSPF系列第1篇)
    网络安全—自学笔记
    誉天学员笔记:数通HCIE专题之VLAN&交换机高级特性
    基于单片机智能汽车仪表设计系统
    关于 Linux Shell文件的三个时间
    浏览器识别操作系统
    DataGridView 控件分页
    springboot开启Redis缓存支持
  • 原文地址:https://blog.csdn.net/wwjj26/article/details/134339488