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
相关推荐
电子科技圈43 分钟前
IAR开发平台升级Arm和RISC-V开发工具链,加速现代嵌入式系统开发
arm开发·嵌入式硬件·设计模式·性能优化·软件工程·代码规范·risc-v
鹅是开哥2 小时前
ZZU-ARM汇编语言实验 3&4
汇编·arm开发
IAR Systems2 小时前
IAR开发平台升级Arm和RISC-V开发工具链,加速现代嵌入式系统开发
arm开发·risc-v
头发够用的程序员3 小时前
小米玄戒O1架构深度解析(二):多核任务调度策略详解
android·linux·arm开发·智能手机·架构·手机
有时有晌1 天前
linux arm系统烧录
linux·运维·arm开发
学不动CV了1 天前
ARM内存理解(一)
arm开发
zjun30212 天前
在ARM+Ascend NPU上适配Step-Audio模型
arm开发·npu·ascend·step-audio
贝塔实验室2 天前
FPGA 的硬件结构
arm开发·fpga开发·职场和发展·硬件架构·硬件工程·fpga·安全架构
待什么青丝3 天前
【TMS570LC4357】之相关驱动开发学习记录2
c语言·arm开发·驱动开发·单片机·学习
szxinmai主板定制专家3 天前
【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
运维·服务器·arm开发·人工智能·fpga开发