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

相关推荐
一抹晴空7 小时前
Keil MDK AC6 compiler编译报错,与AC5区别
c语言·arm开发·单片机
运维成长记8 小时前
关于“有x86镜像,没有Dockerfile” 怎么制作arm架构的镜像
arm开发·架构
熠速15 小时前
PolarBox高性能实时仿真系统
arm开发·fpga开发·嵌入式实时数据库·硬件在环半实物仿真
天下·第二2 天前
如何在【x86】服务器上打包构建【arm】镜像
服务器·arm开发·eureka
止观止2 天前
在 WSL2 上从零搭建 ARM 混合编程环境
汇编·arm开发·嵌入式开发·混合编程
陌上花开缓缓归以2 天前
nand flash bbt和bmt管理
arm开发
小熊officer3 天前
AMD架构与ARM架构
arm开发·架构
_kerneler3 天前
arm虚拟机实时性优化总结
arm开发
口袋里のInit3 天前
基础知识——ARM M核入栈出栈流程
开发语言·arm开发
2035去旅行4 天前
WIFI传输带宽
arm开发·嵌入式硬件