ARM 实例代码

.text

.global _start

_start:

@1.RCC时钟使能GPIOE RCC_MP_AHB4ENSETR4->1

LDR r0,=0x50000A28

LDR r1,r0

ORR r1,r1,#(0x1<<4)

STR r1,r0

@RCC时钟使能GPIOF RCC_MP_AHB4ENSETR5->1

LDR r0,=0x50000A28

LDR r1,r0

ORR r1,r1,#(0x1<<5)

STR r1,r0

LDR r0,=0x50000A28

LDR r1,r0

ORR r1,r1,#(0x1<<1)

STR r1,r0

@2.设置PE10为输出模式 GPIOE_MODER21:20->01

LDR r0,=0x50006000

LDR r1,r0

BIC r1,r1,#(0x3<<20)

ORR r1,r1,#(0x1<<20)

STR r1,r0

LDR r0,=0x50007000

LDR r1,r0

BIC r1,r1,#(0x3<<12)

ORR r1,r1,#(0x1<<12)

STR r1,r0

LDR r0,=0x50003000

LDR r1,r0

BIC r1,r1,#(0x3<<12)

ORR r1,r1,#(0x1<<12)

STR r1,r0

@3.设置PE10为推挽输出 GPIOE_OTYPER10->0

LDR r0,=0x50006004

LDR r1,r0

BIC r1,r1,#(0x1<<10)

STR r1,r0

LDR r0,=0x50007004

LDR r1,r0

BIC r1,r1,#(0x1<<6)

STR r1,r0

LDR r0,=0x50003004

LDR r1,r0

BIC r1,r1,#(0x1<<6)

STR r1,r0

@4.设置PE10为低速输出 GPIOE_OSPEEDR21:20->00

LDR r0,=0x50006008

LDR r1,r0

BIC r1,r1,#(0x3<<20)

STR r1,r0

LDR r0,=0x50007008

LDR r1,r0

BIC r1,r1,#(0x3<<12)

STR r1,r0

LDR r0,=0x50003008

LDR r1,r0

BIC r1,r1,#(0x3<<12)

STR r1,r0

@5.设置PE10输出无上拉下拉 GPIOE_PUPDR21:20->00

LDR r0,=0x5000600C

LDR r1,r0

BIC r1,r1,#(0x3<<20)

STR r1,r0

LDR r0,=0x5000700C

LDR r1,r0

BIC r1,r1,#(0x3<<12)

STR r1,r0

LDR r0,=0x5000300C

LDR r1,r0

BIC r1,r1,#(0x3<<12)

STR r1,r0

loop:

@LED1灯亮

bl led1_on

@bl tim4_ch1_on

bl delay

@LED1灯灭

bl led1_off

bl delay

bl led2_on

bl delay

bl led2_off

bl delay

@bl tim4_ch1_off

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 r0,=0x50007014

LDR r1,r0

ORR r1,r1,#(0x1<<6)

STR r1,r0

MOV pc,lr

led2_off:

LDR r0,=0x50007014

LDR r1,r0

BIC r1,r1,#(0x1<<6)

STR r1,r0

MOV pc,lr

tim4_ch1_on:

LDR r0,=0x50003014

LDR r1,r0

ORR r1,r1,#(0x1<<6)

STR r1,r0

MOV pc,lr

tim4_ch1_off:

LDR r0,=0x50003014

LDR r1,r0

BIC r1,r1,#(0x1<<6)

STR r1,r0

MOV pc,lr

delay:

LDR R1,=0X10000000

mm:

cmp R1,#0

SUBNE R1,R1,#1

BNE mm

mov pc,lr

.end

相关推荐
振南的单片机世界1 天前
单片机:一颗芯片包办CPU、内存、外设的“单芯片计算机”
arm开发·stm32·单片机·嵌入式硬件
振南的单片机世界2 天前
地址总线定门牌号,数据总线搬货量:CPU的“寻址”与“搬运”
arm开发·stm32·单片机·嵌入式硬件
2401_854151553 天前
ARM Cortex-M 体系结构深度解析——寄存器模型、处理器模式、AAPCS 与异常模型
arm开发·stm32·单片机·嵌入式硬件
zlinear数据采集卡3 天前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
keep7545 天前
ARM NEON 向量优化在图像处理中的应用:降低 CPU 开销,提升模式切换稳定性
arm开发·图像处理·人工智能
zlinear数据采集卡7 天前
从协议解析到波形实时显示:硬核拆解ZLinear采集卡上位机软件的开发架构
arm开发·单片机·嵌入式硬件·fpga开发·架构·开源
奔跑的架构师7 天前
[A-48]ARMv9/v8-电源状态管理机制(PSCI协调机制)
android·linux·arm开发·arm
想你依然心痛7 天前
RT-Thread组件生态:SAL网络框架与AT组件实战——网络抽象、AT指令
网络·arm开发·at·sal
secondyoung8 天前
Cortex-R52学习:存储系统
arm开发·单片机·学习·arm
c++之路8 天前
C++跨平台(九):跨平台字节序统一处理
开发语言·arm开发·c++