ARM_LED实现

cs 复制代码
.text 
.global _start
_start: 
@1.RCC时钟使能GPIOE   RCC_MP_AHB4ENSETR[4]->1

LDR R0,=0x50000a28
LDR R1,[R0]
ORR R1,R1,#(0x1<<4)
STR R1,[R0]

@2.设置PE10为输出模式  GPIOE_MODER[21:20]->01
    
LDR R0,=0x50006000
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
ORR R1,R1,#(0x1<<20)
STR R1,[R0]

@3.设置PE10为推挽输出  GPIOE_OTYPER[10]->0

LDR R0,=0x50006004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
STR R1,[R0]

@4.设置PE10为低速输出  GPIOE_OSPEEDR[21:20]->00

LDR R0,=0x50006008
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]

@5.设置PE10输出无上拉下拉 GPIOE_PUPDR[21:20]->00

LDR R0,=0x5000600C
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]

@led2
ldr r2,=0x50000a28
ldr r3,[r2]
orr r3,r3,#(0x1<<5)
str r3,[r2]

ldr r2,=0x50007000
ldr r3,[r2]
bic r3,r3,#(0x3<<20)
orr r3,r3,#(0x1<<20)
str r3,[r2]

ldr r2,=0x50007004
ldr r3,[r2]
bic r3,r3,#(0x1<<10)
str r3,[r2]

ldr r2,=0x50007008
ldr r3,[r0]
bic r3,r3,#(0x3<<20)
str r3,[r0]

ldr r2,=0x5000700C
ldr r3,[r0]
bic r3,r3,#(0x3<<20)
str r3,[r0]

@led3
ldr r4,=0x50000a28
ldr r5,[r4]
orr r5,r5,#(0x1<<4)
str r5,[r4]

ldr r4,=0x50006000
ldr r5,[r4]
bic r5,r5,#(0x3<<16)
orr r5,r5,#(0x1<<16)
str r5,[r4]

ldr r4,=0x50006004
ldr r5,[r4]
bic r5,r5,#(0x1<<8)
str r5,[r4]

ldr r4,=0x50006008
ldr r5,[r4]
bic r5,r5,#(0x3<<16)
str r5,[r4]

ldr r4,=0x5000600C
ldr r5,[r4]
bic r5,r5,#(0x3<<16)
str r5,[r4]

loop:
bl led1_on
bl delay

bl led1_off
bl delay

bl led2_on
bl delay

bl led2_off
bl delay

bl led3_on
bl delay

bl led3_off
bl delay

b loop

led1_on:
LDR R0,=0x50006014
LDR R1,[R0]
ORR R1,R1,#(0x1<<10)
STR R1,[R0] 
mov pc,lr

led1_off:
LDR R0,=0x50006014
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
STR R1,[R0] 
mov pc,lr

led2_on:
ldr r2,=0x50007014
ldr r3,[r2]
orr r3,r3,#(0x1<<10)
str r3,[r2]
mov pc,lr

led2_off:
ldr r2,=0x50007014
ldr r3,[r2]
bic r3,r3,#(0x1<<10)
str r3,[r2]
mov pc,lr

led3_on:
ldr r4,=0x50006014
ldr r5,[r4]
orr  r5,r5,#(0x1<<8)
str r5,[r4]
mov pc,lr

led3_off:
ldr r4,=0x50006014
ldr r5,[r4]
bic r5,r5,#(0x1<<8)
str r5,[r4]
mov pc,lr

@封装汇编的延时函数
delay:
    LDR R1,=0X10000000
mm:
    cmp R1,#0
    SUBNE R1,R1,#1
    BNE mm
    mov pc,lr	

.end
相关推荐
驱动探索者3 小时前
[缩略语大全]之[ARM]篇
arm开发·ai编程
深圳英康仕1 天前
ARM工控机openEuler系统Docker安装指南
arm开发·docker·rk3588·工控机
路溪非溪1 天前
UBUS基本使用总结
linux·网络·arm开发·智能路由器
wanhengidc1 天前
巨 椰 云手机 性能稳定
运维·服务器·arm开发·智能手机·云计算
亿道电子Emdoor1 天前
【Arm】MCU和SOC的区别
arm开发·单片机·嵌入式硬件
qq_5470261792 天前
Linux 基础
linux·运维·arm开发
物随心转2 天前
Armv7的寄存器介绍
arm开发
Jewel Q2 天前
x86、ARM、Intel、AMD
arm开发
切糕师学AI2 天前
ARM 汇编指令:MOV
汇编·arm开发
驱动探索者2 天前
[缩略语大全]之[数据中心]篇
arm开发·阿里云