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.pswp.cn/diannao/36823.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36823.shtml
英文地址,請注明出處:http://en.pswp.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…