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
相关推荐
secondyoung20 小时前
Cortex-R52学习:MPU内存保护机制
arm开发·单片机·学习·arm·mpu
szxinmai主板定制专家1 天前
基于 ARM+FPGA精密多轴实时运动控制卡设计方案,适用于半导体设备等高精度领域(一)
arm开发·人工智能·嵌入式硬件·fpga开发·架构·语音识别
你疯了抱抱我1 天前
【Mac】安装并配置HomeBrew;ARM GCC;make;OpenOCD
arm开发·macos
WHS-_-20224 天前
When RDMA Meets Wireless
arm开发
szxinmai主板定制专家4 天前
基于 ARM+FPGA 数据机床实时工业控制设计--以雕刻机为例
arm开发·人工智能·嵌入式硬件·fpga开发
wandertp4 天前
对信号处理及滤波器的理解---基于robomaster机器人嵌入式控制系统
arm开发·stm32·算法·信号处理
XMAIPC_Robot4 天前
基于RK3588 ARM+FPGA电火花数控机床控制系统设计,兼顾ethercat软硬件实时
linux·arm开发·人工智能·嵌入式硬件·fpga开发
底层开发智库4 天前
C1-Ultra FVP调试并运行Linux kernel全程记录,硬核演示如何解决启动问题
linux·arm开发·内核·嵌入式·arm
XMAIPC_Robot4 天前
基于 ARM+FPGA 数据机床控制系统设计--以雕刻机为例
arm开发·fpga开发
一抹晴空5 天前
Keil MDK AC6 compiler编译报错,与AC5区别
c语言·arm开发·单片机