ARM day4 作业

1,点亮三个灯,并闪烁

bash 复制代码
.text 
.global _start
_start:

@led1灯
    @设置GPIOE时钟使能   RCC_MP_AHB4ENSETR[4]->1  @0X50000A28
    LDR R0,=0X50000A28
    LDR R1,[R0]
    ORR R1,R1,#(0x1<<4)
    STR R1,[R0]

    @设置PE10为输出 GPIOE_MODER[21:20]->01   0X50006000
    LDR  R0,=0X50006000
    LDR R1,[R0]
    BIC R1,R1,#(0x3<<20)
    ORR R1,R1,#(0x1<<20)
    STR R1,[R0]

    @设置PE10为推挽输出  GPIOE_OTYPER[10]->0  0X50006004
    LDR R0,=0X50006004
    LDR R1,[R0]
    BIC R1,R1,#(0x1<<10)
    STR R1,[R0]

    @设置PE10为低速输出  GPIOE_OSPEEDR[21:20]->00  0X50006008
    LDR R0,=0X50006008
    LDR R1,[R0]
    BIC R1,R1,#(0x3<<20)
    STR R1,[R0]

    @设置PE10输出时无上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000600C
    LDR R0,=0X5000600C
    LDR R1,[R0]
    BIC R1,R1,#(0x3<<20)
    STR R1,[R0]


@led2灯

   LDR R2,=0X50000A28
    LDR R3,[R2]
    ORR R3,R3,#(0x1<<5)
    STR R3,[R2]

 
    LDR  R2,=0X50007000
    LDR R3,[R2]
    BIC R3,R3,#(0x3<<20)
    ORR R3,R3,#(0x1<<20)
    STR R3,[R2]

  
    LDR R2,=0X50007004
    LDR R3,[R2]
    BIC R3,R3,#(0x1<<10)
    STR R3,[R2]

    
    LDR R2,=0X50007008
    LDR R3,[R2]
    BIC R3,R3,#(0x3<<20)
    STR R3,[R2]

    
    LDR R2,=0X5000700C
    LDR R3,[R2]
    BIC R3,R3,#(0x3<<20)
    STR R3,[R2]

    


@led3灯
    
    LDR  R4,=0X50006000
    LDR R5,[R4]
    BIC R5,R5,#(0x3<<16)
    ORR R5,R5,#(0x1<<16)
    STR R5,[R4]

  
    LDR R4,=0X50006004
    LDR R5,[R4]
    BIC R5,R5,#(0x1<<8)
    STR R5,[R4]


    LDR R4,=0X50006008
    LDR R5,[R4]
    BIC R5,R5,#(0x3<<16)
    STR R5,[R4]

    
    LDR R4,=0X5000600C
    LDR R5,[R4]
    BIC R5,R5,#(0x3<<16)
    STR R5,[R4]

loop:

    bl led1_on
    bl led2_on
    bl led3_on
    bl delay
    bl led1_off
    bl led2_off
    bl led3_off
    bl delay
    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 R2,=0X50007014
    LDR R3,[R2]
    ORR R3,R3,#(0x1<<10)
    STR R3,[R2]
    mov pc,lr

led2_off:
    LDR R2,=0X50007014
    LDR R3,[R2]
    BIC R3,R3,#(0x1<<10)
    STR R3,[R2]
    mov pc,lr

led3_on:
    LDR R4,=0X50006014
    LDR R5,[R4]
    ORR R5,R5,#(0x1<<8)
    STR R5,[R4]
    mov pc,lr

led3_off:
    LDR R4,=0X50006014
    LDR R5,[R4]
    BIC R5,R5,#(0x1<<8)
    STR R5,[R4]
    mov pc,lr

delay:
    LDR R6,=0X10000000
mm:
    cmp r6,#0
    subne r6,r6,#1
    bne mm
    mov pc,lr

.end

2,思维导图

相关推荐
YLAD1 天前
gnu arm toolchain中的arm-none-eabi-gdb.exe的使用方法?
arm开发
饶宇航1 天前
嵌入式硬件——ARM
arm开发
wdfk_prog3 天前
[Linux]学习笔记系列 -- [arm][lib]
linux·运维·arm开发·笔记·学习
努力自学的小夏4 天前
RK3568 Linux驱动学习——新字符设备驱动
linux·arm开发·驱动开发·笔记·学习
wdfk_prog5 天前
[Linux]学习笔记系列 -- [arm][lds]
linux·运维·arm开发·笔记·学习
szxinmai主板定制专家6 天前
基于FPGA的热电偶测温数据采集系统,替代NI的产品(二)总体设计方案
arm开发·人工智能·嵌入式硬件·fpga开发
cici158747 天前
ARM保留的标准中断处理程序入口和外设中断处理程序入口介绍
arm开发
学不动CV了8 天前
FreeRTOS入门知识(初识RTOS任务调度)(三)
c语言·arm开发·stm32·单片机·物联网·算法·51单片机
程序员JerrySUN8 天前
四级页表通俗讲解与实践(以 64 位 ARM Cortex-A 为例)
java·arm开发·数据库·redis·嵌入式硬件·缓存
zhmc9 天前
MCU程序的ARM-GCC编译链接
arm开发·单片机·嵌入式硬件