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

第二期: 第四节, 裸机编程 LED 汇编代码。

1 首先是 关于汇编代码的解释。

来看看原理图:

再来看看 GPL2_0 的寄存器地址。

来看看代码:

.globl _start
.arm
_start:
// 这是 GPL2_0 的 CON 寄存器的地址。LDR R0,=0x11000100    LDR R1,[R0]//首先是清零,最后4位BIC R1,R1,#0x0000000f//然后是将 最后4位设置成 1  , 也就是 输出模式。ORR R1,R1,#0x00000001//然后写回。STR R1,[R0]
loop://这是 GPL_0 的data寄存器的地址。LDR R0,=0x11000004LDR R1,[R0]//首先是 将 第一位 置一, 也就是输出高电平ORR R1,R1,#0x1STR R1,[R0]
//然后跳到 延时函数。BL delay
//接下来就是  将最后 一位置0 也就是 输出低电平。
//这是在实现闪烁功能。LDR R1,[R0]BIC R1,R1,#0x1STR R1,[R0]BL delay
// 然后是循环的闪烁B loop
delay:LDR R2,=0xfffffff
loop1:
// 这是一个延时函数, 就是从 fffff 不断向下减1, 直到减到0 为止。SUB R2,R2,#0x1CMP R2,#0x0BNE loop1MOV PC,LR
.end

2 然后是关于 关于 makefile 的编写。

TARGET=led
all:arm-none-linux-gnueabi-gcc -O0 -g -c -o $(TARGET).o $(TARGET).sarm-none-linux-gnueabi-ld               $(TARGET).o -Ttext 0x40008000 -N -o $(TARGET).elfarm-none-linux-gnueabi-objcopy -O binary -S $(TARGET).elf $(TARGET).bin
clean:rm -rf *.o *.elf *.dis *.bin

3 然后就是 编译+烧写+测试。

烧写 ,编译, 程序在板子上的运行都是正常的。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java企业面试题2
  • HTML5( HTML5 、CSS3) 第一天
  • KV260 进阶开发(PYNQ驱动开发+Pixel Pack)
  • 数据库的操作:SQL语言的介绍
  • 5个AI绘画免费,支持Midjourney【亲测有效】
  • 大二上学期详细学习计划
  • AI电商,如何提高设计效率?
  • Redis 多线程模型详解
  • Linux cut命令详解使用:掌握高效文本切割
  • jackson 中常用注解说明
  • Leetcode 3282. Reach End of Array With Max Score
  • JVM源码解析
  • 第一篇 第3章 不确定型分析 第4章 设备更新分析 第5章价值工程
  • 多个vue项目部署到nginx服务器
  • Java 21的Preferences API的笔记
  • .pyc 想到的一些问题
  • input的行数自动增减
  • Invalidate和postInvalidate的区别
  • IOS评论框不贴底(ios12新bug)
  • Java的Interrupt与线程中断
  • SegmentFault 2015 Top Rank
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Vue官网教程学习过程中值得记录的一些事情
  • yii2权限控制rbac之rule详细讲解
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 订阅Forge Viewer所有的事件
  • 给新手的新浪微博 SDK 集成教程【一】
  • 工作手记之html2canvas使用概述
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 免费小说阅读小程序
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 写代码的正确姿势
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (13)DroneCAN 适配器节点(一)
  • (20)docke容器
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (六)Hibernate的二级缓存
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (三)docker:Dockerfile构建容器运行jar包
  • (三)uboot源码分析
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .a文件和.so文件
  • .cn根服务器被攻击之后
  • .Family_物联网
  • .NET CLR Hosting 简介