12.21 汇编点亮STM32MP157小灯

复制代码
.text 
.global _start
_start: 
    @时钟使能
    LDR r0,=0x50000A28
    LDR r1,[r0]
    ORR r1,r1,#(0x1<<4)
    ORR r1,r1,#(0x1<<5)
    ORR r1,r1,#(0x1<<1)
    STR r1,[r0]

    @配置GPIO模式
    LDR r0,=0x50006000
    LDR r1,[r0]
    BIC r1,r1,#(0x2<<20)
    ORR r1,r1,#(0x1<<20)
    BIC r1,r1,#(0x2<<16)
    ORR r1,r1,#(0x1<<16)
    STR r1,[r0]

    LDR r0,=0x50007000
    LDR r1,[r0]
    BIC r1,r1,#(0x2<<20)
    ORR r1,r1,#(0x1<<20)
    STR r1,[r0]


    @配置GPIO推挽输出模式
    LDR r0,=0x50006004
    LDR r1,[r0]
    BIC r1,r1,#(0x1<<10)
    BIC r1,r1,#(0x1<<8)
    STR r1,[r0]

    LDR r0,=0x50007004
    LDR r1,[r0]
    BIC r1,r1,#(0x1<<10)
    STR r1,[r0]


    @配置GPIO为低速输出
    LDR r0,=0x50006008
    LDR r1,[r0]
    BIC r1,r1,#(0x3<<20)
    BIC r1,r1,#(0x3<<16)
    STR r1,[r0]

    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]

    LDR r0,=0x5000700c
    LDR r1,[r0]
    BIC r1,r1,#(0x3<<20)
    STR r1,[r0]
    
loop:
    bl led_on
    bl delay
    bl led_off
    bl delay

    b loop
led_on:
    @设置小灯亮
    LDR r0,=0x50006014
    LDR r1,[r0]
    ORR r1,r1,#(0x1<<10)
    ORR r1,r1,#(0x1<<8)
    STR r1,[r0]

    LDR r0,=0x50007014
    LDR r1,[r0]
    ORR r1,r1,#(0x1<<10)
    STR r1,[r0]
    mov pc,lr

led_off:
    @设置小灯灭
    LDR r0,=0x50006014
    LDR r1,[r0]
    BIC r1,r1,#(0x1<<10)
    BIC r1,r1,#(0x1<<8)
    STR r1,[r0]

    LDR r0,=0x50007014
    LDR r1,[r0]
    BIC r1,r1,#(0x1<<10)
    STR r1,[r0]
    mov pc,lr

 delay:
    LDR  R3,=0x10000000
mm:
    cmp r3,#0
    subne r3,r3,#1
    bne mm
    mov pc,lr

.end
相关推荐
Ching·7 小时前
STM32L4xx编译提示Keil MDK Warning: L6989W警告问题及其解决办法
stm32·单片机·嵌入式硬件
小莞尔7 小时前
【51单片机】【protues仿真】基于51单片机温度测量系统
c语言·单片机·嵌入式硬件·物联网·51单片机
Zaki_gd9 小时前
GPIO 引脚速度(Speed)
单片机·嵌入式硬件
武文斌779 小时前
复习总结最终版:单片机
linux·单片机·嵌入式硬件·学习
xiaofei55800810 小时前
CAN 波特率的几个参数说明和计算方式(以STM32为例)
单片机·嵌入式硬件·汽车
应用市场10 小时前
STM32运行原理深度解析:从软件到硬件的神奇之旅
stm32·单片机·嵌入式硬件
点灯小铭10 小时前
基于单片机的64位多模式流水灯控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计
恒锐丰小吕11 小时前
SA8203 输入耐压36V 过流保护0.3-2.5A可调 过压/过流保护器 SOT23-6
嵌入式硬件·硬件工程
cellurw11 小时前
Day61 Linux内核编译、裁剪与驱动开发基础
嵌入式硬件
Winner130012 小时前
STM32 读取引脚状态 -按键输入
stm32·单片机·嵌入式硬件