ARM 实例代码

.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]

@RCC时钟使能GPIOF RCC_MP_AHB4ENSETR[5]->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_MODER[21: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_OTYPER[10]->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_OSPEEDR[21: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_PUPDR[21: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

相关推荐
贝塔实验室2 小时前
FPGA 的硬件结构
arm开发·fpga开发·职场和发展·硬件架构·硬件工程·fpga·安全架构
待什么青丝19 小时前
【TMS570LC4357】之相关驱动开发学习记录2
c语言·arm开发·驱动开发·单片机·学习
szxinmai主板定制专家21 小时前
【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
运维·服务器·arm开发·人工智能·fpga开发
小狗爱吃黄桃罐头1 天前
正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-12.1 Linux内核启动流程简介
linux·arm开发·学习
m0_637146931 天前
嵌入式全栈面试指南:TCP/IP、C 语言基础、STM32 外设与 RT‑Thread
arm开发
satadriver3 天前
Qemu arm操作系统开发环境
arm开发
待什么青丝4 天前
【TMS570LC4357】之相关驱动开发学习记录1
c语言·arm开发·驱动开发·学习
南玖yy5 天前
x86 汇编逻辑运算全解析:从【位操作】到实际应用(AND,OR,NOT,XOR,TEST)
开发语言·汇编·arm开发·后端·架构·策略模式
菜只因C6 天前
嵌入式系统:从技术原理到未来趋势(驱动程序篇)
arm开发
!chen8 天前
鲲鹏Arm+麒麟V10 K8s 离线部署教程
java·arm开发·kubernetes