一步步点亮LED---开始写代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一步步点亮LED---开始写代码相关的知识,希望对你有一定的参考价值。

下面是我写的点亮 LED 的代码:
 1 #define GPJ0CON 0xE0200240
 2 #define GPJ0DAT 0xE0200244
 3 
 4 .globl _start
 5 
 6 _start:
 7     ldr r0, =GPJ0CON
 8     ldr r1, =0x00111000
 9     str r1, [r0]
10     ldr r0, =GPJ0DAT
11     ldr r1, =~(0x1<<4)
12     str r1, [r0]
13 halt:
14     b halt
  上面代码中的 0xE0200240 和 0xE0200244 这两个地址值分别是特殊功能寄存器 GPJ0CON 和GPJ0DAT 的地址,在代码中操作这两个地址就是在操作这两个特殊功能寄存器。
  从代码中可以看出,汇编代码的第一个标号是 _start ,现在从链接程序的入口地址方面的知识来看就可以知道,_start 肯定是链接脚本指定的入口地址,我们也可以改掉它,使用其他标号,但必须使用特定的链接脚本。
  使用 .globl 伪指令来将 _start 标号声明为外部变量,以便 链接器 和 其他文件中的函数 可以使用。

以上是关于一步步点亮LED---开始写代码的主要内容,如果未能解决你的问题,请参考以下文章

一步步点亮LED---GPIO概念和相关数据手册查阅

WS2812B的第一个led在代码进入for循环时开始点亮

3.修改第一个程序来点亮LED

和12岁小同志搞创客开发:手撕代码,点亮LED灯

和12岁小同志搞创客开发:手撕代码,点亮LED灯

传感网灯闪烁代码