1907_Arm Cortex-M3的基本了解

1907_Arm?Cortex-M3的基本了解

全部學習匯總:?g_arm_cores:?ARM內核的學習筆記?(gitee.com)

我發現Arm?Coretex-M3有一個專門的DataSheet,看起來這個的確是被當做了一個設計的產品來對待的。正好,基于這個文件來看看M3具備哪些基本的特性,尤其是我關注的軟件設計方面。

  • ATB是高級trace總線的意思。一直聽說trace是很高級的調試功能,但是時至今日我沒有用過。慚愧、慚愧!
  • M3的MPU這里描述是可選的,在之前看M系列內核的對比表的時候還以為這個是必然會集成的。
  • 串口的調試方式,就是調試器設置的時候需要選擇的SWD模式。

增加之前看過的文檔關于MPU部分的截圖,的確是讓我在這里產生了疑惑。

支持的基本功能:內核、NVIC中斷控制器、各種總線、可選的MPU、調試以及trace的支持。

這里提到了一個printf風格的調試,不知道是一個什么樣的具體功能。而我個人的確是很喜歡在軟件調試的時候一通printf的。

調試口是直接接到總線上而不是CPU上,trace的模塊ETM則是靠近CPU一些。

指令中是支持基本的push以及pop操作的。不過,這兩個指令在我看各種匯編代碼的時候似乎是沒看到。

看起來,trace不僅是硬件到位了就能夠順利開啟的一個功能。這個也是需要軟件配置寄存器來支持一下的,或者,也可能是調試器來修改寄存器?

這個是一個指令集的圖,看的一知半解。幾個想到的點記錄一下:

  • M3和M4都是基于v7的指令集的,但是在指令集上也有不同。其實,從之前的M系列的對比表上也是可以看出一些信息的。M4是有DSP的,而M3是沒有DSP的。DSP肯定是有自己的指令集的,因此M4肯定有多于M3的指令。
  • v6以及v7中似乎有一些指令是完全相同的名稱,比如ADC、ADD等。大概看了下,可能左下角的小方塊是v6的架構,其他的全都是v7?這么看,v7相對于v6來說在指令集上的擴種的確是多很多。
  • 兩個坐標方向中的箭頭,我覺得可能是劃定對應矩形的意思。如果是這樣,M4比M3多出來的指令是很多的。不過,從這個包含的關系上來看,或許M4可以完全按照M3來使用?
  • 這么看下來,可能M4的優勢是在于DSP的指令擴展。不知道現在的編譯器是否會優先考慮這方面的使用,否則兩者的算力或者性能豈不是沒有過多的差距?

這個術語表還是可以復習看一下的,里面很多功能塊需要關注下。算是豐富對這個架構理解的很好的語言元素。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713893.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713893.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713893.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GO—變量

Go語言是靜態類型語言,因此變量(variable)是有明確類型的,編譯器也會檢查變量類型的正確性。 我們從計算機系統的角度來講,變量就是一段或者多段內存,用于存儲數據 1.1 標準格式 var 變量名 變量類型 1 …

vue 使用vue-scroller 列表滑動到底部加載更多數據

安裝插件 npm install vue-scroller -dmain.js import VueScroller from vue-scroller Vue.use(VueScroller)<template><div class"wrap"><div class"footer"><div class"btn" click"open true">新增</d…

多層控制上身姿態的方法

1選擇要施加的clip并調出層控制窗口 2點選motion層控制 3選擇并復制pose&#xff08;注意在哪個層中選中的情況下復制的是那個層中的pose&#xff09; 4在新建層中分別選擇頭幀粘貼pose和尾幀粘貼pose因是上半身&#xff0c;因此mask中把下半身去掉即變灰

提升工作能力的方法

1.接受工作&#xff0c;只問標準 2.請示工作&#xff0c;必帶方案&#xff1b; 3.匯報工作&#xff0c;突出成果&#xff1b; 4.分享工作&#xff0c;細說流程&#xff1b; 5.復盤工作&#xff0c;總結SOP 如果能這么做&#xff0c;那將是一個非常通透的高手&#xff0c;所以高…

如何使用 takeUntil RxJS 操作符來聲明性地管理訂閱

簡介 Angular 處理取消訂閱可觀察對象的操作&#xff0c;比如從 HTTP 服務返回的可觀察對象或者使用 async 管道時。然而&#xff0c;對于其他情況&#xff0c;管理所有訂閱并確保取消長期存在的訂閱可能會變得困難。而且&#xff0c;取消大部分訂閱的策略也會帶來自己的問題。…

2024年春招小紅書前端實習面試題分享

文章目錄 導文面試重點一、方便介紹一下&#xff0c;你之前實習都做了什么嘛&#xff1f;二、 可以講一下封裝組件相關邏輯嘛&#xff1f;1. 為什么要封裝組件&#xff1f;2. 封裝組件的步驟3. 封裝組件的原則4. 組件的復用和擴展5. 組件的維護和文檔 三、項目的性能優化你有什…

python數據結構學習系列

在Python編程中&#xff0c;數據結構是組織、管理和存儲數據的方式&#xff0c;以便能夠有效地執行特定的操作。數據結構的選擇對于算法的效率、代碼的清晰度和可維護性都至關重要。以下是對Python中常見數據結構的學習總結。 列表&#xff08;List&#xff09; 列表是Python中…

selenium測試工具用來模擬用戶瀏覽器的操作

執行JS的類庫&#xff1a;execjs&#xff0c;PyV8&#xff0c;selenium&#xff0c;node pip list pip install selenium pip install xlrd pip install xlwt pip install PyExecJS pip install xlutils selenium測試工具可以用來模擬用戶瀏覽器的操作&#xff0c;其支持的瀏覽…

能當老板的AI大模型多智體框架MetaGPT自動完成項目

能當老板的AI大模型多智體框架MetaGPT自動完成項目。 MetaGPT是一個創新的多智能體框架&#xff0c;它結合了大語言模型&#xff08;LLM&#xff09;和多智能體協作系統&#xff0c;旨在通過模擬人類工作流程來解決復雜問題。這個框架的核心在于將標準化操作程序&#xff08;SO…

Redis學習路徑(構建體系)

學習路徑 掌握數據類型&#xff08;分析底層數據結構&#xff09;和緩存的基本使用 (理論使用) 掌握 redis 實現高性能&#xff0c;高可靠、高可用技術 &#xff08;理論&#xff09;學習redis源代碼底層實現 (底層實現) 先來一個引言&#xff0c;比較宏觀的角度&#xf…

Linux常用操作命令

Linux作為一種廣泛應用的操作系統&#xff0c;其強大的命令行工具使得用戶能夠高效地管理文件、處理數據和監控系統。在本文中&#xff0c;我們將深入 探討一些常用的Linux操作命令及其用法。 ls&#xff1a;列出當前目錄下的文件和子目錄。 ls [選項] [文件或目錄]常用選項&am…

Python實現MACD工具判斷信號:股票技術分析的工具系列(1)

Python實現MACD工具判斷信號&#xff1a;股票技術分析的工具系列&#xff08;1&#xff09; 介紹代碼rolling函數介紹核心代碼計算指數移動平均值計算MACD指標 完整代碼 介紹 先看看官方介紹&#xff1a; MACD (平滑異同平均線&#xff09; 指標說明 DIF線&#xff1a;收盤價短…

#單片機(TB6600驅動42步進電機)

1.IDE:keil 2.設備:保密 3.實驗&#xff1a;使用單片機通過普通IO口控制TB6600驅動42步進電機 4.時序圖&#xff1a; TB6600 ENA、ENA-DIR-、DIRPUL-、PULB-、BA、A-VCC、GND使能電機&#xff08;直接懸空不接&#xff09;方向脈沖輸入&#xff08;普通IO口模擬即可&#xff…

Linux系統編程7--線程 寫個測試腳本

Linux系統編程7–線程_寫個測試腳本 參考博客&#xff1a; Linux多線程編程初探 - 峰子_仰望陽光 - 博客園 (cnblogs.com) 我的PC是8核*16進程&#xff0c;所以在固定的時間點&#xff0c;我可以同時運行8 * 16的進程&#xff0c;更多的線程&#xff08;任務管理器&#xff09;…

【學習筆記】Diffusion擴散模型

導讀 Diffusion models是現在人工智能領域最火的方向之一&#xff0c;并引爆了AIGC領域&#xff0c;一大批創業公司隨之誕生。 AIGC&#xff08;AI-Generated Content&#xff09;&#xff1a;人工智能創作內容的生產方式。 擴散模型Diffusion 擴散模型Duffison的訓練過程 …

等概率事件算法

1等概率的生成(0-8)范圍內的正整數 // Math.random 數據范圍[0,1) 且 是 等概率的產生隨機數 // 應用&#xff1a; // 1.生成等概率的整數&#xff08;等概率的生成(0-8)范圍內的正整數 int value (int) (Math.random() * 9); System.out.println("value "…

非阻塞實現高效鍵盤掃描功能(STM32F4XX)

目錄 概述 1 原理分析 1.1 技術背景 1.2 系統硬件 1.3 STM32 IO&#xff08;輸入模式&#xff09;寄存器分析 1.3.1 輸入IO的功能描述 1.3.2 輸入配置 1.3.3 GPIO 寄存器&#xff08;輸入模式相關&#xff09; 1.3.3.1 GPIO 端口模式寄存器 1.3.3.2 GPIO 端口上拉/下拉…

springboot,druid動態數據源切換

關鍵字&#xff1a;springboot&#xff0c;druid數據庫連接池&#xff0c;兩個數據源&#xff08;可以切換成多個&#xff09;&#xff0c;事務管理 關于druid簡介傳送門&#xff1a;https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 具體分為四…

Doris【數據模型】

一、數據模型簡介 在 Doris 中&#xff0c;數據以表&#xff08;Table&#xff09;的形式進行邏輯上的描述。 一張表包括行&#xff08;Row&#xff09;和列&#xff08;Column&#xff09;。Row 即用戶的一行數據。Column 用于描述一行數據中不同的字段。 Column 可以分為兩…

autoware.universe中跟蹤模塊詳解,一看就懂!

目錄 問題:閱讀關鍵點:總結問題: 根據對預測模塊代碼的分析,發現預測框出現在點云前方的原因在于跟蹤框出現在點云前方 對rviz上的目標進行觀察后發現 車輛的檢測框先出來一段時間后,跟蹤框和預測框同步一塊出來 跟蹤框總是超出點云一部分 閱讀關鍵點: 每個跟蹤器最少要統計…