ARM芯片架构(RTOS)

        前言:笔记韦东山老师的rtos教程,连接放在最后

 #ARM介绍

        arm芯片属于精简指令集risc,所用的指令比较简单,ARM架构是一种精简指令集(RISC)架构,广泛应用于移动设备、嵌入式系统、物联网等领域。ARM芯片采用ARM架构设计,通常具有较低的功耗和更高的性能效率。

        所以arm架构也就是32位精简指令集处理器架构。精简指令集相对于复杂指令集来说,指令数目少,在通道中只包含最有用的指令;执行时间短,确保数据通道快速执行每一条指令;使CPU硬件结构设计变得更为简单;每条指令都采用标准字长。这就是,RISC:精简指令集(Reduced Instruction Set Computer)

       在操作系统创建一个任务的时候,通常要创建栈,分配栈的大小,理解栈之后才能理解rtos的本质,对arm芯片的架构有着一些理解能够帮助我们更好的理解,rtos的多任务本质。

        ARM架构:System on Chip 缩写SOC,翻译:在一个芯片上有着完整的系统,ARM单片机芯片,集成了一个完成的系统,cpu  内存   flash(对应电脑的硬盘)flash用于保存程序,cpu用来运行程序,和计算功能,在keil5下载选型里面有一个选型,是擦除flash,就是擦除arm芯片里面存储程序的flsh,在程序运行的过程中,会用到内存的空间去存储变量,没有计算功能,使用单纯为了访问数据,写数据,

                       

        汇编指令介绍:掌握汇编指令可以理解程序的本质,理解rtos的本质,

        可以将汇编语言分为 地址 寄存器 目的 然后分别带入,将地址什么样的目的写入寄存器

        读内存:Load

LDR R0,[R1,#4];//读地址"R1+4",得到的4字节数据放入R0
目的LDR   寄存器 R0   地址[R1,#4]

        写内存:Store

STR R0,[R1,#4];//把R0的四字节数据写入"R1+4"

        加减:ADD  SUB

ADD R0 ,R1 ,R2;//将R1 R2 的值相加放入 R0

SUB R0,R0,#1;将R0与R1的值相减放入R0

       比较:Compare

DMP R0,R1;R0与R1二者比较的结果存放在PSR中                                 

        转跳:Branch

B   main ; Branch,//直接跳转

BL main ;Branch and Link //先把返回地址保存在LR寄存器里在转跳

       实际函数的反汇编语言:

int add(volatile int a,volatile int b)
{volatile int sun;sum = a+b;return sum;}

        这里是add()函数变量赋值,然后再调用add函数,进行响应。

                地址                      机器码                                    汇编码

        烧录在芯片上的只有机器码,汇编码是用来给人看的,这一步是什么意思,这些地址和机器码烧录在flash里面,cpu通过读取,地址来获得机器码,也就是 读flash地址 得到机器码  执行机器码 这么一个过程,上面这个汇编语言是add这个函数的反汇编程序。

                                        欢迎指正,希望对你有所帮助!!!

[3-2-1]_ARM架构简明教程_硬件架构与汇编指令_哔哩哔哩_bilibili

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

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

相关文章

Linux:简单说说分号“;”、单竖线“|”、双竖线“||”、单“”、双“”作为多个命令分隔符的用法

以下符号都可以用来连接多个命令,在一行中作为多个命令的分隔符。区别如下: 1、分号“;” 按照先后顺序执行命令。每个命令都会在前一个命令执行完毕后立即执行。 如果其中一个命令出现错误,后续命令仍然会继续执行。 2、单竖线“|” 作为管…

2. jenkins发布java项目

jenkins发布java项目 一、环境描述二、部署tomcat业务服务器三、部署git服务器,上传测试代码1、部署git服务器2、上传测试代码 四、jenkins对接组件1、安装必要的插件2、对接git客户端3、对接maven工具4、配置maven需要的jdk5、配置gitlab服务器的连接6、在jenkins上…

1161. 最大层内元素和

1161. 最大层内元素和 题目链接:1161. 最大层内元素和 代码如下: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr)…

AI智能体文章索引

1,探索AI世界系列:俗说AI智能体 2,是真的吗,不会代码也能开发一款AI应用?GPTs让人梦想成真 3,来了,你的第一个AI智能体 4,制作一个智能体:抖音热点话题文案制作助手 5&am…

【Django】网上蛋糕项目商城-首页

概念 本文在上一文章搭建完数据库,以及创建好项目之后,以及前端静态文件后,对项目的首页功能开发。 后端代码编写 这里我们使用pymysql模块对数据库进行操作,获取数据。因此需要在dos窗口使用以下指令下载该库文件 pip instal…

springboot3搭建WebSocket服务

springboot3搭建WebSocket服务 文章目录 springboot3搭建WebSocket服务前言一、创建SpringBoot工程二、pom.xml中引入依赖1.引入库2. application.yml配置 三、主启动类四、WebSocket配置类五、编写WebSocket服务类六、编写测试页面总结 前言 本文详细介绍了如何在SpringBoot项…

新型发电系统——光伏行业推动能源转型

一、发展背景 “十四五”期间,随着“双碳”目标提出及逐步落实,本就呈现出较好发展势头的分布式光伏发展有望大幅提速。就“十四五”光伏发展规划,国家发改委能源研究所可再生能源发展中心副主任陶冶表示,“双碳”目标意味着国家…

Java面试题:比较Maven和Gradle的构建生命周期和依赖管理

Maven和Gradle是两个流行的构建工具,各自有不同的构建生命周期和依赖管理机制。以下是它们的比较: 构建生命周期 Maven Maven有一个固定的生命周期,由一系列阶段(phases)组成,每个阶段代表一个构建步骤。…

ubuntu更改ssh默认端口22

编辑 /etc/ssh/sshd_config,把Port前的#去掉,端口号改成8022,重启ssh。 // 1. 修改配置 sudo vi /etc/ssh/sshd_config// 2. 重启 ssh sudo systemctl restart ssh//【不想确认可跳过此步骤】 3. 查看 ssh 监听端口 sudo lsof -i:22 // 无…

MySQL改密

这里写目录标题 更改登录密码:有权限账号能登录mysql中:有权限账号不能登录mysql中:mysql5.6版本命令mysql5.7版本命令修改密码8.0版本改完后: mysql登录不上了本机安装了5.6后,又安装了mysql8.0 更改登录密码&#xf…

QT QVariant 类和 C++ 的 union有什么区别

QVariant 类和 C 的 union(共用体)在概念、用途和实现上有所不同。以下是对它们的区别和使用的简要概述: QVariantQT 如何储存多种数据类型(QVariant )-CSDN博客 概念:QVariant 是 Qt 框架中的一个类&…

易查分小程序丨查询开始和截止时间如何设置?

老师在发布查询时,希望让学生家长在指定的时间段才能查询,应该如何实现? 通过查询时段功能,老师可以自主设置查询开始和截止时间,下面就来教给大家如何使用吧! 设置查询时段演示效果 📌使用教程…

ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境: win10,SQL Server 2008 R2 参考: asp.net mvc框架之EF的使用 - black娃 - 博客园 https://www.cnblogs.com/fjiqiang/p/11131365.html 目录 数据库查询要求思路操作 razor使用项目发布要求实现 数据库查询 要求 从服务器的数据库中查…

干货分享 | 学会这7个工具方法,数字化转型规划不是难题

提到数字化转型,首要做的便是分析企业现有的业务流程和价值流,发现企业利润来源的关键点,进而有针对性的数字化转型。要实现传统业务向数字化业务的转变,制定出高效、灵活的业务流程优化策略显得至关重要,这样才能找到…

简化数据提取:Excel-Extractor 使用指南

前言 在当今数据驱动的世界中,从复杂的 Excel 文件中提取和分析数据是许多业务和研究工作的基本需求。为了简化这一过程,Excel-Extractor 项目应运而生。本文将为你介绍 Excel-Extractor 的功能和如何在你的项目中使用它。 什么是 Excel-Extractor&…

【C#】制作图集

如题目,用好几个图片拼在一个大图里,博主是用于Unity游戏开发使用的,话不多说,上代码! using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging;namespace EffectsPac…

Spring Boot中的安全性配置详解

Spring Boot中的安全性配置详解 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨如何在Spring Boot应用中实现全面的安全性配置,保…

LED裸眼3D显示屏:开启视觉新体验

随着科技的不断进步,LED显示屏作为一种新型的显示技术,已经被广泛应用于各个领域。而其中,LED裸眼3D显示屏更是因其独特的技术原理和令人震撼的视觉效果,成为了业界关注的焦点。 裸眼3D显示屏是一种前沿的显示技术,它…

centos系统中neo4j数据库和python环境部署

最近因为项目需要,到了一个纯局域网环境中进行知识图谱构建。对于小规模数据,neo4j社区版能够满足基本的建模和查询需要(大规模数据需要商业版,或是选用其他开源分布式图数据库如nebula等)。本文主要介绍图数据库和pyt…

黄金架构编译部署

LNMP黄金架构部署 行走的CD: LNMP的解析过程:提到 LNMP的解析过程,我们应需要了解一个概念 CGI, CGI 就是指一个通用网关接口,用于 HTTP 服务器和其他应用服务器通讯的一个工具,在这 HTTP 服务器一般咱们就是指的是 Nginx、 Apac…