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

正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编

文章目录

  • 一、裸机开发(21个)
  • 二、嵌入式Linux驱动例程
  • 三、汇编
    • 3.1 处理器内部数据传输指令
    • 3.2 存储器访问指令
    • 3.3 压栈和出栈指令
    • 3.4 跳转指令
    • 3.5 算术运算指令
    • 3.6 逻辑运算指令

一、裸机开发(21个)

在这里插入图片描述

二、嵌入式Linux驱动例程

在这里插入图片描述

三、汇编

我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境,比如初始化 DDR、设置 SP指针等等,当汇编把 C 环境设置好了以后才可以运行 C 代码。

3.1 处理器内部数据传输指令

在这里插入图片描述
Rx(0~12):普通寄存器
CPSR:特殊寄存器

用法,就是把后一个传到前一个

3.2 存储器访问指令

在这里插入图片描述
在这里插入图片描述
LDR,相当于给一个地址命名,LDR 是从存储器读取数据,STR 就是将数据写入到存储器中

3.3 压栈和出栈指令

在这里插入图片描述
在这里插入图片描述
首先就是这是向下增长,也就是说,栈顶是R12,出栈先是LR再之后依次出栈。
主要是为了,中断保存数据

3.4 跳转指令

在这里插入图片描述
主要是,B和BL,
在这里插入图片描述
如果调用这个函数,不会再返回此处,可以用B

对于BL,是可以保存之前的位置标号,执行完再回来
在这里插入图片描述

3.5 算术运算指令

在这里插入图片描述

3.6 逻辑运算指令

在这里插入图片描述


http://www.kler.cn/a/293721.html

相关文章:

  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • C获取程序名称的方法
  • 【vue2.0入门】vue基本语法
  • 性能优化、安全
  • 力扣515:在每个树行中找最大值
  • ABC334
  • 基于飞腾平台的Hive的安装配置
  • 从贝叶斯角度理解卡尔曼滤波算法
  • 狂奔的荣耀,稳健的苹果:AI Agent手机竞速赛
  • Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究
  • 使用isolation: isolate声明隔离混合模式
  • 超声波测距模块HC-SR04(基于STM32F103C8T6HAL库)
  • 比较差异 图片 视频
  • 问题合集更更更之cssnano配置导致打包重新计算z-index
  • 中秋猜灯谜_猜字谜小程序源码,无需服务器
  • 目标检测-YOLOv8
  • PowerMock 单元测试总结与常见坑解决方案
  • 前端框架有哪些
  • Java项目: 基于SpringBoot+mysql+maven房屋租赁系统(含源码+数据库+毕业论文)
  • 4--SpringBootWeb-请求响应
  • 创建型设计模式-工厂模式(Factory Pattern)- python实现
  • 【动态规划】【完全背包】力扣322. 零钱兑换
  • 家庭教育系列—投资理财
  • Vue双向绑定
  • 常见面试1
  • 久久派简单搭建小游戏网站