裸机开发(1)-汇编基础

文章目录

  • GNU汇编语法
  • 常用汇编指令
    • 处理器内部数据传输指令
    • 存储器访问指令
    • 压栈和出栈指令
    • 跳转指令
    • 算术指令
    • 逻辑运算指令
    • 实战

函数发生调用时,需要进行线程保护,简单来说,就是先进行压栈操作,将调用函数参数、返回值等存到R0-15寄存器中,在执行完毕后,需要将数据内容从寄存器读出,进行出栈操作,而这一系列操作需要SP指针。芯片上电后SP指针(堆栈指针寄存器)还未初始化完毕,无法执行C代码,所以必须要用汇编设置好C语言环境。

GNU汇编语法

label:instruction @ comment
# label:标号,表示地址位置
# instruction:指令,代表汇编指令或伪指令
# comment:注释/*例子:
add:MOVS R0, #0X12 @设置 R0=0X12
/*.global _start     @设置start函数为全局,供加载器找到该函数,之后再实现该函数即可

指令不可大小写混用

常用汇编指令

处理器内部数据传输指令

**1)MOV指令 **
将数据从一个寄存器拷贝到另外的寄存器,或者将立即数传递到寄存器中
MOV R0, R1 @寄存器R0 = R1
MOV R0, #0X12 @R0=0X12
2)MRS指令
读取特殊寄存器(CPSR、SPSR)中数据传递给通用寄存器
MRS R0, CPSP @R0=CPSR
3)MSR指令
写特殊寄存器
MSR CPSR, R0 @CPSR=R0

存储器访问指令

访问IMX6UL存储器,需要借助存储器访问指令,先写入到R0-R12寄存器,再写入到指定存储器(RAM)中的寄存器中。
1)LDR、STR指令
LDR Rd, [Rn,#offset] 从寄存器Rn+offset位置读数据到寄存器Rd中
STR Rd,[Rn,#offset] 将Rd中的数据写入到存储器的Rn+offset位置

LDR R0, =0X0209C004 @将寄存器地址 0X0209C004 加载到 R0 中,即 R0=0X0209C004
LDR R1, =0X20000002 @R1 保存要写入到寄存器的值,即 R1=0X20000002
STR R1, [R0] @将 R1 中的值写入到 R0 中所保存的地址中,即地址0X0209C004的值为0X20000002

LDR、STR 按32位数据操作
LDRB、STRB 按字节操作、
LDRH、STRH 按半字操作

压栈和出栈指令

在函数执行到一半时,如果需要执行另外一个函数,则需要保留当前处理器状态到寄存器,在执行完毕后,从寄存器中读取数据恢复现场,其中涉及到压栈和出栈。

PUSH 将寄存器列表入栈
POP 从栈中恢复寄存器
等价于
STMFD SP!
LDMFD SP!!

处理器堆栈向下增长,栈由高地址向低地址增长,起始地址为0x80000000,向0x70000000增长
PUSH {R0~R3,R12} @将 R0~R3 和 R12 压栈
image.png
PUSH {LR} @将LR进行压栈
image.png
POP {LR} @先恢复 LR
POP {R0~R3,R12} @在恢复 R0~R3,R12

跳转指令

1)B指令
B

2)BL指令
BL

算术指令

ADD 加法
ADC 带进位的加法
SUB 减法
SBC 带借位的减法
MUL 乘法
UDIV 无符号除法
SDIV 有符号除法
image.png

逻辑运算指令

AND 按位与
ORR 按位或
BIC 位清除
ORN 按位与非
EOR 按位异或
image.png

实战

github路径:linux_bsp/board_driver/1.ledc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

脑科学研究:对于学习来说,休息可能与练习同样重要...

来源:神经科技近日,在针对健康志愿者的的一项研究中,美国国立卫生研究院(NIH)的研究人员发现,大脑可能会通过短暂的休息来巩固我们几秒钟前刚练习过的新技能的记忆。该研究结果强调了早期休息在学习中可能发…

Harris 角点检测(Harris corner detection)

在许多应用中,会运用到特征提取。 比如,把下方两张图片缝合成一张图片。哪么从哪些地方开始缝合呢?这些地方可以通过特征提取找到。 1、特征 图片上的特征点应该具有怎样的特性? a. 图片上的特征点不随图片的变化(平…

BoW(词袋Bag of words)

Bag-of-words词袋模型最初被用在信息检索领域。例如检索一篇文档,只需考虑文档中出现单词的频率,而不用考虑语法语序等。在图像领域,如果把一幅图像当作文档,图像中的图像块的特征向量视为文档内的词,BoW在图像领域也可…

欧盟最新《AI网络安全政策发展框架》

来源:学术plus报告主要内容编译如下下载全文报告请参见文末链接一、 概要AI进入主流商用,数据收集是关键在过去几年,人工智能(AI)迅速超越研究和学术范畴,进入主流商用,创新的自主代理利用人工智…

2019上海车展重磅新车前瞻

来源:中信建投分析师:余海坤、陶亦然第十八届上海国际汽车工业展览会将于2019年4月18日至25日在上海国家会展中心举行。本次车展的主题为“共创美好生活”,将展现世界汽车工业的创新发展,将汽车与信息通讯、互联网、大数据、人工智…

HDU 4190 Distributing Ballot Boxes【二分答案】

题意&#xff1a;给出n个城市&#xff0c;n个城市分别的居民&#xff0c;m个盒子&#xff0c;为了让每个人都投上票&#xff0c;问每个盒子应该装多少张票 二分盒子装的票数&#xff0c; 如果mid<m,说明偏大了&#xff0c;r应该向下逼近 &#xff0c;rmid 如果mid>m,说明…

局部特征检测器和描述符

图像匹配有三个步骤&#xff1a;检测特征点&#xff0c;特征描述和匹配 1、检测特征点 好的特征点的位置不随图像亮度变换的改变&#xff0c;只与图像的几何变换有关。 1.1 图像变换 1.1.1 几何变换&#xff1a;旋转和伸缩 1.1.2 亮度变换 1.2 Harris角点检测的性质 角点的…

5G+AI系列研究:5G元年,电子行业迎来新时代​

来源&#xff1a;国泰君安证券摘要&#xff1a;本报告作为【5GAI】系列报告的第一篇&#xff0c;主要包括两部分内容&#xff0c;PART A&#xff1a;5G带来终端射频新机遇&#xff1b;PART B&#xff1a;基站建设启动&#xff0c;产业链爆发在即。附报告部分PPT&#xff1a;未来…

卷积神经网络(CNN:Convolutional Neural Network)

1、感知器&#xff08;perceptron&#xff09; 感知器是卷积神经网络的基本单元&#xff0c;下图展示了其工作原理&#xff0c;为了方便理解&#xff0c;图中只显示了3个输入。 向量w为输入向量x的权重&#xff0c;b为偏差&#xff0c;最后对x的线性组合&#xff08;&#xff…

性能调优:理解Set Statistics Time输出

性能调优&#xff1a;理解Set Statistics Time输出 原文:性能调优&#xff1a;理解Set Statistics Time输出在性能调优&#xff1a;理解Set Statistics IO输出我们讨论了Set Statistics IO&#xff0c;还有如何帮助我们进行性能调优。这篇文章会讨论下Set Statistics Time&…

Nature Communications:实时记录神经系统,解开大脑秘密

来源&#xff1a;神经科技人的大脑中大概有一千亿个神经元&#xff0c;每一个神经元都连接到数以百计的神经元邻居。分析大脑中的神经活动和致此活动的原因&#xff0c;一直是科学家们研究的目标。现在&#xff0c;一组科学家设计出整个神经系统高速映射神经元放电的成像技术&a…

图像变换(Image transformations)

1 图像变换和图像滤波&#xff08;image filtering&#xff09;的区别 1.1 图像滤波 图像滤波改变像素点的灰度值&#xff0c;不改变像素点的坐标&#xff0c;如下图所示。 用函数可表示为&#xff1a; 其中f(x)表示原图&#xff0c;h(x)表示滤波器 1.2 图像变换 图像变换改…

图像对齐(image alignment)

1、图像对齐的步骤 已知图像A和B&#xff0c;图像对齐的步骤&#xff1a; 提取图像A和B的特征匹配图像A和B中的特征求解图像A和B的对齐矩阵2 使用最小二乘求解对齐矩阵的问题 使用最小二乘求解对齐矩阵容易受到outliers的影响, 误差会很大。 3 RANSAC&#xff08;random sa…

巴黎不哭!十亿点数据“重建”巴黎圣母院

来源&#xff1a;大数据文摘摘要&#xff1a;目前&#xff0c;尽管现实中的大教堂已经无法恢复&#xff0c;但被数字化的“巴黎圣母院”仍然精确地留存在人类世界。而通过这一数据留存&#xff0c;重建巴黎圣母院成为可能&#xff0c;后人也仍然可以一览它曾经的雄伟。即使这一…

照相机的成像变换

1 变换过程 照相机的成像变换过程可以分为3步&#xff1a;世界坐标系——>相机坐标系——>图像坐标系——>像素坐标系 2 世界坐标系——>相机坐标系 景物从世界坐标系转换到相机坐标系需要使用到刚体变换&#xff08;物体不发生变形&#xff0c;对一个几何物体做…

我国芯片各细分领域龙头名单

来源&#xff1a;机械前沿芯片的分类&#xff1a;日常生活中&#xff0c;我们可以发现芯片的种类比如有通信芯片、人工智能芯片、LED芯片、电脑芯片等等。芯片的产业链是这样的&#xff1a;根据产业链划分&#xff0c;芯片从设计到出厂的核心环节主要包括 6 个部分&#xff1a;…

求解相机参数Camera Calibration

1 主要思想 使用黑白棋盘格&#xff0c;记录世界坐标系中关键点的坐标&#xff0c;然后使用手机拍照&#xff0c;记录相应点像素点的坐标。 这样就得到了许多3D-2D的配对点 2 详细过程 由 上一篇博客 内容可知&#xff0c; 其中 P‘ 为像素坐标&#xff0c; Pw为世界坐标系的…

超壮观!10只波士顿动力机器狗,拖动大卡车,步伐整齐划一如同仪仗队

来源&#xff1a;量子位整整10只SpotMini机器狗&#xff0c;可以做什么&#xff1f;波士顿动力的答案是&#xff1a;拉卡车。对&#xff0c;不是狗拉雪橇&#xff0c;是狗拉体积大得多、质量重得多的大卡车。画面中&#xff0c;出现了并排走的一对机器狗。后面还有另一对机器狗…

立体视觉(Stereo Vision)-本征矩阵(essential matrix)和基本矩阵(fundamental matrix)

1 物体深度 问题描述&#xff1a;从不同的位置拍摄相同物体的两张图片&#xff0c;恢复其深度 这里假设摄像机的镜头平行 由相似三角形&#xff1a; 由上面第一、二等式可得&#xff1a; 深度与视差成反比 2 如何配对左右图片的点 问题描述&#xff1a;已知两张图像&#xff…

重磅:苹果高通和解!英特尔退出5G基带市场,高通股价暴涨超20%,华为依然淡定...

来源&#xff1a;新浪、量子位等&#xff0c;物联网智库整理摘要&#xff1a;没有永恒的朋友&#xff0c;只有永恒的利益。前一阵子还是“牛夫人”&#xff0c;今天就变成“小甜甜”了。没有永恒的朋友&#xff0c;只有永恒的利益。前一阵子还是“牛夫人”&#xff0c;今天就变…