Cortex M0 核心的處理器架構簡介

2021-06-28 21:37:49 字數 1528 閱讀 1724

cortex-m0處理器具有32位系統匯流排介面,以及32位位址線,即有4gb的位址空間。

系統匯流排基於ahb_lite高階高效能匯流排協議。外設匯流排基於apb高階外設匯流排協議,通過乙個轉換橋連線到ahb上。這只是cortex-m0核心的大概模式,cortex-m0+的儲存器系統與cortex-m0基本相同。但是廠商根據需要會進行調整。

以下的是基於cortex-m0+核心的stm32l053的內部架構圖。

可以看到gpio口掛在了核心上,由busmartix負責ahb,dma,sram,mif之間的資料交換

主匯流排和外設匯流排是分離的,所以很多情況下時鐘頻率也不同。我們可以使外設執行在較低的頻率上,或者關閉不用的外設時鐘,這樣可以降低功耗。

cortex-m0(+)處理器的4g儲存空間從架構上被分為多個區域。總的被分成8個大部分,每個部分512m。

雖然對映已經被架構預先定義,但是實際分配卻是很靈活的。

1.**區域 (0x0000 0000~0x1fff ffff) 512m,主要用於儲存**

2.sram區域 (0x2000 0000~0x3fff ffff) 512m,主要用於資料儲存

3.外設區域 (0x4000 0000~0x5fff ffff) 512m,主要用於外設及資料儲存。不允許執行程式

4.ram區域 (0x6000 0000~0x9fff ffff) 1gb,外部ram區域,由兩個512m區域組成

5.裝置區域 (0xa000 0000~0xdfff ffff) 1gb,由兩個512m組成。屬性不同。主要用於外設和io口,不允許程式執行,但是可以用作通用資料儲存。

6.內部私有匯流排區域(0xe000 0000~0xe00f ffff) 1mb。用於處理器內部的外設,包括中斷控制器nvic和除錯部件,還有systick。不允許程式執行。

7.保留儲存器空間 (0xe010 0000~0xffff ffff) 511m用於保留。

上圖為基於cortex-m0+的stm32l053的儲存器對映圖。我們可以看到基本是與cortex-m0核心是符合的。但是具體的分配具有很大的靈活性。

片上flash在0x0800 0000,sram在0x2000 0000。

io口在0x5000 0000-0x5000 1fff,占用了8k。

apb1上的器件基位址為0x4000 0000;

apb2上的外設基位址為0x4001 0000;

ahb上的外設基位址為 0x4002 0000。

對於Cortex M0核心的中斷的搶占和巢狀的理解

首先,我們需要理清楚異常和中斷的關係 異常是能夠引起程式流偏離正常流程的事件,當異常 發生的時候,正在執行的程式就會處於掛起狀態,處理器轉而執行一塊與該事件相關的 塊 異常處理 事件可以是外部輸入也可以是內部產生,外部產生的事件被稱為 中斷或者中斷請求 irq 微控制器的中斷可以由片上外設或者軟體產...

基於Cortex M0的藍芽SOC晶元及開發系統

核心技術 極致優化的無線收發晶元的整體設計 自主研發的射頻,基帶和協議棧技術,成本極致降低 面向應用的晶元設計 在射頻 基帶 協議棧之間做深度優化 自適應電路技術,易於生產公升級和應用支援 偵測工藝和執行環境的變化,做動態電路引數配置 大量數位化模擬電路設計,易於工藝移植 獨特的射頻 mcu系統,適...

處理器核心

處理器核心 cache 寫緩衝器 主存 輔助儲存器 寫操作,對核心而言非迫切,所以加乙個寫緩衝器很好。cache可放在處理器核心與mmu之間 邏輯 cache,主流 也可放在mmu與主存之間 物理 cache 對儲存器中相同或相鄰資料和 的反覆使用,是cache改善效能的主要原因。cache同時使用...