当前位置: 首页 > news >正文

【嵌入式学习】ARM day04.11

一、思维导图

二、练习

实现三个灯闪烁

汇编代码

.text 
.global _start
_start: @使能GPIOE和F时钟LDR     r0,=0x50000A28LDR      r1,[R0]ORR     R1,R1,#(0X3<<4)STR      R1,[R0]@配置GPIOE和F的MODER寄存器LDR     r0,=0x50006000   @GPIOELDR     R1,=0X50007000   @GPIOFLDR      R2,[R0]BIC       R2,R2,#(0X3<<20)BIC       R2,R2,#(0X3<<16)ORR     R2,R2,#(0X1<<20)ORR     R2,R2,#(0X1<<16)STR      R2,[R0]LDR      R2,[R1]BIC       R2,R2,#(0X3<<20)ORR     R2,R2,#(0X1<<20)STR      R2,[R1]@配置GPIOE和F的OTYPER寄存器LDR     r0,=0x50006004   @GPIOELDR     R1,=0X50007004   @GPIOFLDR      R2,[R0]BIC       R2,R2,#(0X1<<10)BIC       R2,R2,#(0X1<<8)STR      R2,[R0]LDR      R2,[R1]BIC       R2,R2,#(0X1<<10)STR      R2,[R1]@配置GPIOE和F的OSPEEDR寄存器LDR     r0,=0x50006008   @GPIOELDR     R1,=0X50007008   @GPIOFLDR      R2,[R0].text 
.global _start
_start: @使能GPIOE和F时钟LDR     r0,=0x50000A28LDR      r1,[R0]ORR     R1,R1,#(0X3<<4)STR      R1,[R0]@配置GPIOE和F的MODER寄存器LDR     r0,=0x50006000   @GPIOELDR     R1,=0X50007000   @GPIOFLDR      R2,[R0]BIC       R2,R2,#(0X3<<20)BIC       R2,R2,#(0X3<<16)ORR     R2,R2,#(0X1<<20)ORR     R2,R2,#(0X1<<16)STR      R2,[R0]LDR      R2,[R1]BIC       R2,R2,#(0X3<<20)ORR     R2,R2,#(0X1<<20)STR      R2,[R1]@配置GPIOE和F的OTYPER寄存器LDR     r0,=0x50006004   @GPIOELDR     R1,=0X50007004   @GPIOFLDR      R2,[R0]BIC       R2,R2,#(0X1<<10)BIC       R2,R2,#(0X1<<8)STR      R2,[R0]BIC       R2,R2,#(0X3<<20)BIC       R2,R2,#(0X3<<16)STR      R2,[R0]LDR      R2,[R1]BIC       R2,R2,#(0X3<<20)STR      R2,[R1]@配置GPIOE和F的PUPDR寄存器LDR     r0,=0x5000600C   @GPIOELDR     R1,=0X5000700C   @GPIOFLDR      R2,[R0]BIC       R2,R2,#(0X3<<20)BIC       R2,R2,#(0X3<<16)STR      R2,[R0]LDR      R2,[R1]BIC       R2,R2,#(0X3<<20)STR      R2,[R1]
LOOP:BL  LED_ONBL  DELAYBL  LED_OFFBL  DELAYB  LOOPLED_ON:@GPIOELDR     r0,=0x50006014LDR      r1,[R0]ORR      R1,R1,#(0X1<<10)ORR      R1,R1,#(0X1<<8)STR      R1,[R0]@GPIOFLDR     r0,=0x50007014LDR      r1,[R0]ORR      R1,R1,#(0X1<<10)STR      R1,[R0]MOV PC,LRLED_OFF:@GPIOELDR     R0,=0x50006014LDR      R1,[R0]BIC      R1,R1,#(0X1<<10)BIC      R1,R1,#(0X1<<8)STR      R1,[R0]@GPIOFLDR     r0,=0x50007014LDR      r1,[R0]BIC      R1,R1,#(0X1<<10)STR      R1,[R0]MOV PC,LRDELAY:LDR R3,=0X10000000
MM:CMP R3,#0SUBNE R3,R3,#1BNE MMMOV PC,LR
.end

Makefile 

NAME=asm-led
CROSS_COMPILE = arm-linux-gnueabihf-CC = $(CROSS_COMPILE)gccLD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdumpall:$(CC) -O0 -g -c $(NAME).S -o $(NAME).o$(LD) -Ttext=0xC0008000 $(NAME).o -o $(NAME).elf $(OBJCOPY) -O binary $(NAME).elf  $(NAME).bin$(OBJDUMP) -D $(NAME).elf > $(NAME).dis
clean:rm -rf *.elf *.bin *.o *.disinstall:sudo cp $(NAME).bin  /mnt/hgfs/share/

http://www.lryc.cn/news/336866.html

相关文章:

  • 关于部署ELK和EFLKD的相关知识
  • ChatGPT智能写作:开启论文写作新视野
  • 网络安全---RSA公钥加密与签名
  • 李白打酒加强版 -- 题解 c++
  • 蓝桥杯——玩具蛇
  • 百度SSL证书免费申请
  • SpringBoot Assert断言
  • test4121
  • UI自动化测试重点思考(下)--装饰器/生成器/夹具的使用/描述符的作用/ddt驱动/多线程
  • C# 字段和属性的区别
  • 备考ICA----Istio实验17---TCP流量授权
  • [C++][算法基础]树的重心(树图DFS)
  • 探秘ChatGPT:如何利用AI提升论文写作效率
  • 多无人机集群协同避障
  • 基于velero和minio实现k8s数据的备份
  • 【Java核心技术】第4章 对象与类
  • 【LeetCode】回溯算法类题目详解
  • java实现请求缓冲合并
  • 分布式锁的原子性问题
  • 从零自制docker-8-【构建实现run命令的容器】
  • 2024.03.31 校招 实习 内推 面经
  • 邦芒职场:塑造职场人气王的秘诀
  • 滤波器网络变压器的作用
  • Python —— 简述
  • 使用Rust加速Python程序,让代码飞起来
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(八)- 向量整数算术指令
  • Qt Designer在布局中调整控件垂直伸展或者水平伸展之后控件没有变化
  • 微信公众号粉丝迁移费用是多少?
  • 基于Vue3 中后台管理系统框架
  • Agent调研--19类Agent框架对比