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

相关推荐
Jason Yan1 天前
【经验分享】ARM Linux-RT内核实时系统性能评估工具
linux·arm开发·经验分享
7yewh2 天前
MCU、MPU、SOC、ECU、CPU、GPU的区别到底是什么
linux·arm开发·驱动开发·单片机·嵌入式硬件·物联网
7yewh2 天前
嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础
arm开发·stm32·单片机·嵌入式硬件·mcu·物联网
ARM&开发(Haidong)2 天前
Arm 驱动i2c相关
arm开发
艾格北峰4 天前
STM32 物联网智能家居 (五) 设备子系统之点亮LED灯
arm开发·stm32·单片机·嵌入式硬件·物联网·架构·智能家居
苏三福5 天前
opencv3.4 ffmpeg3.4 arm-linux 交叉编译
linux·运维·arm开发
kse_music6 天前
Big-endian(大端字节序)与Little-endian(小端字节序)区别
arm开发·字节·大端字节·小端字节
捕鲸叉6 天前
怎样在Linux PC上调试另一台PC的内核驱动程序,以及另一台Arm/Linux上的程序和驱动程序
linux·arm开发·软件调试·诊断调试
七天可修改名字一次6 天前
云手机技术架构原理浅析,ARM架构与X86架构的对比
arm开发·矩阵·架构·华为云·云计算·手机·百度云
大大菜鸟一枚6 天前
arm使用ubi系统
linux·arm开发·学习