ARM 三个小灯闪烁

.text

.global _start

_start:

@使能GPIOE的外设时钟

LDR R0,=0x50000A28 @指定基地址

LDR R1,R0 @读取r0中的数据保存到r1中

ORR R1,R1,#(0X3<<4) @4设置为1,表示

STR R1,R0 @将修改之后的值放回去

@设置PE10,PE8为输出

LDR R0,=0X50006000

LDR R1,R0

BIC R1,R1,#(0X3<<20)

BIC R1,R1,#(0X3<<16)

ORR R1,R1,#(0X1<<20)

ORR R1,R1,#(0X1<<16)

STR R1,R0

@设置PF10输出模式

LDR R0,=0X50007000

LDR R1,R0

BIC R1,R1,#(0X3<<20)

ORR R1,R1,#(0X1<<20)

STR R1,R0

@PE10,PE8设置推挽输出

LDR R0,=0X50006004

LDR R1,R0

BIC R1,R1,#(0X1<<10)

BIC R1,R1,#(0X1<<8)

STR R1,R0

@设置PF8为推挽输出

LDR R0,=0X50007004

LDR R1,R0

BIC R1,R1,#(0X1<<10)

STR R1,R0

@PE10,PE8设置低速输出

LDR R0,=0X50006008

LDR R1,R0

BIC R1,R1,#(0X3<<20)

BIC R1,R1,#(0X3<<16)

STR R1,R0

@PF10设置低速输出

LDR R0,=0X50007008

LDR R1,R0

BIC R1,R1,#(0X3<<20)

STR R1,R0

@PE10,PE8设置无上拉下拉电阻

LDR R0,=0X5000600C

LDR R1,R0

BIC R1,R1,#(0X3<<20)

BIC R1,R1,#(0X3<<16)

STR R1,R0

@PF10设置无上拉下拉电阻

LDR R0,=0X5000700C

LDR R1,R0

BIC R1,R1,#(0X3<<20)

STR R1,R0

@亮灭

LOOP:

BL LED1_ON

BL DEALY

BL LED1_OFF

BL LED2_ON

BL DEALY

BL LED2_OFF

BL LED3_ON

BL DEALY

BL LED3_OFF

BL 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 R0,=0X50007014

LDR R1,R0

ORR R1,R1,#(0X1<<10)

STR R1,R0

MOV PC,LR

LED2_OFF:

LDR R0,=#0X50007014

LDR R1,R0

BIC R1,R1,#(0X1<<10)

STR R1,R0

MOV PC,LR

LED3_ON:

LDR R0,=0X50006014

LDR R1,R0

ORR R1,R1,#(0X1<<8)

STR R1,R0

MOV PC,LR

LED3_OFF:

LDR R0,=#0X50006014

LDR R1,R0

BIC R1,R1,#(0X1<<8)

STR R1,R0

MOV PC,LR

@延时

DEALY:

LDR R3,=0X10000000

MM:

CMP R3,#0

SUBNE R3,R3,#1

BNE MM

MOV PC,LR

.end

相关推荐
secondyoung11 小时前
Cortex-R52学习:存储系统
arm开发·单片机·学习·arm
c++之路14 小时前
C++跨平台(九):跨平台字节序统一处理
开发语言·arm开发·c++
AndyHeee18 天前
【SVC、PendSV(系统异常) 与 外设 IRQ 、NVIC笔记】
arm开发
暮云星影18 天前
瑞芯微rk3588利用Rockchip NPU运行大语言模型(LLM)
arm开发·人工智能·语言模型·自然语言处理
techdashen18 天前
绕过系统 ICMP:用 rawsock、Npcap 和 WMI 找到默认网卡
开发语言·arm开发·rust
振南的单片机世界18 天前
ARM中断比51快在哪?硬件压栈+NVIC集中管理
arm开发·stm32·单片机·嵌入式硬件
墨绿色的摆渡人18 天前
论文笔记(一百三十七)Learning Dual-Arm Push and Grasp Synergy in Dense Clutter
arm开发·论文阅读
暮云星影18 天前
全志linux开发屏幕适配(一)屏幕参数设置说明
linux·arm开发
m0_5474866619 天前
《ARM Cortex-M4嵌入式应用技术——基于STM32F407、STM32CubeMX与Proteus》全套PPT课件
arm开发·stm32·proteus
Lanceli_van19 天前
SQLite 3.45.2(sqlite-autoconf-3450200)ARM 交叉编译完整步骤
arm开发·sqlite