arm 跑马灯 linux,arm汇编实现的跑马灯实验

平台:fs2410

用arm汇编编写的跑马灯单文件可以很好运行,不需要包其他的头文件和一些初始化函数。本文引用地址:http://www.eepw.com.cn/article/201611/316933.htm

GPFCON EQU 0x56000050

GPFDAT EQU 0x56000054

GPFUP EQU 0x56000058

EXPORT LEDTEST

AREA LEDTESTASM,CODE,READONLY ;定义了一个代码段,段名为LEDTESTASM,属性只读

LEDTEST

;设置GPF4-GPF7为output

ldr r0,=GPFCON

ldr r1,=0x5500

str r1,[r0]

;禁止GPF4-GPF7端口的上拉电阻

ldr r0,=GPFUP

ldr r1,=0xff00

str r1,[r0]

;将数据端口F的数据寄存器的地址赋值给寄存器r2

ldr r2,=GPFDAT

;跑马灯循环

ledloop1

ldr r1,=0xef

str r1,[r2] ;使GPF4输出低电平,灯亮

bl delay1;调用延迟

ledloop2

ldr r1,=0xdf

str r1,[r2]

bl delay2

ledloop3

ldr r1,=0x7f

str r1,[r2]

bl delay3

ledloop4

ldr r1,=0xbf

str r1,[r2]

bl delay4

;延迟程序

delay1

ldr r3,=0x8ffff ;设置延迟的时间

delay5

sub r3,r3,#1 ;r3=r3-1

cmp r3,#0x0 ;将r3的值与0相比较

bne delay5;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句

b ledloop2

mov pc,lr ;返回

;延迟程序

delay2

ldr r3,=0x8ffff

delay6

sub r3,r3,#1

cmp r3,#0x0

bne delay6

b ledloop3

mov pc,lr

delay3

ldr r3,=0x8ffff

delay7

sub r3,r3,#1

cmp r3,#0x0

bne delay7

b ledloop4

mov pc,lr

delay4

ldr r3,=0x8ffff

delay8

sub r3,r3,#1

cmp r3,#0x0

bne delay8

b ledloop1

mov pc,lr

END ;程序结束符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值