《Cortex-M0權(quán)威指南》之Cortex-M0技術(shù)綜述
Cortex-M0 處理器簡(jiǎn)介
本文引用地址:http://www.butianyuan.cn/article/201612/341888.htm1. Cortex-M0 處理器基于馮諾依曼架構(gòu)(單總線接口),使用32位精簡(jiǎn)指令集(RISC),該指令集被稱為Thumb指令集。與之前相比,新的指令集增加了幾條ARMv6架構(gòu)的指令,并且加入了eThumb-2指令集的部分指令。Thumb-2技術(shù)擴(kuò)展了Thumb的應(yīng)用,允許所有的操作都可以在同一種CPU狀態(tài)下執(zhí)行。Thumb指令集既包括16位指令,也包括32位指令。C編譯器生成的指令大部分是16位的,當(dāng)16位的指令無法實(shí)現(xiàn)所需要的操作時(shí),32位指令就會(huì)發(fā)揮作用。這樣以來,在代碼密度得到提升的同時(shí),還避免了兩套指令集之間進(jìn)行切換帶來的開銷
2. Cortex-M0總共支持56個(gè)基本指令,其中某些指令可能會(huì)有多種形式。相對(duì)于Cortex-M0較小的指令集,其處理器的能力可不一般,因?yàn)門humb是經(jīng)過高度優(yōu)化的指令集。從理論來說,由于讀寫存儲(chǔ)是的指令是相互獨(dú)立的,而且算數(shù)或邏輯操作的指令使用寄存器,Cortex-M0處理器可以被歸到加載-存儲(chǔ)(load-store)結(jié)構(gòu)中。
3. 處理器核心包括:
寄存器組 包含16個(gè)32位寄存器,其中有一些特殊寄存器
算術(shù)邏輯單元
數(shù)據(jù)總線
控制邏輯
流水線根據(jù)設(shè)計(jì)可分為三種狀態(tài): 取指、譯碼、執(zhí)行。
4. 嵌套向量中斷控制器(NVIC)可以處理最多32個(gè)中斷請(qǐng)求和一個(gè)不可屏蔽中斷(NMI)輸入。
5. NVIC需要比較這個(gè)在執(zhí)行中斷和請(qǐng)求中斷的優(yōu)先級(jí),,然后自動(dòng)執(zhí)行高優(yōu)先級(jí)的中斷。
6. 如果要處理一個(gè)中斷,NVIC會(huì)和處理器進(jìn)行通信,通知處理器執(zhí)行中斷處理程序。
7. 喚醒中斷控制器(WIC)為可選的單元,在低功耗應(yīng)用中,在關(guān)閉了處理器大部分模塊后,微控制器會(huì)進(jìn)入待機(jī)裝填,此時(shí),WIC可以在NVIC和處理器處于休眠的情況下,執(zhí)行中斷屏蔽功能。當(dāng)WIC檢測(cè)到一個(gè)中斷時(shí),會(huì)通知電源管理部分給系統(tǒng)商店,讓NVIC和處理器內(nèi)核執(zhí)行剩余的中斷處理。
8. 關(guān)于調(diào)試子系統(tǒng),當(dāng)調(diào)試事件發(fā)生時(shí),處理器內(nèi)核會(huì)被置于暫停狀態(tài),這是開發(fā)人員可以檢查當(dāng)前處理器的狀態(tài)。硬件調(diào)試工具有JTAG和SWD(串行線調(diào)試)。
ARM Cortex-M0 處理器的特性
系統(tǒng)特性
thumb指令集,具有高效和高代碼密度
高性能,最高達(dá)到0.9DMIPS/MHz
內(nèi)置的嵌套向量中斷控制器(NVIC),中斷配置和異常處理容易
確定的中斷響應(yīng)事件,中斷等待事件可以被設(shè)定為固定值或最短事件(最小16個(gè)時(shí)鐘周期)
不可屏蔽中斷(NMI),對(duì)高可靠性系統(tǒng)非常重要
內(nèi)置的系統(tǒng)節(jié)拍定時(shí)器(systick)。24位定時(shí)器,可被操作系統(tǒng)使用,或者用作通用定時(shí)器,架構(gòu)中已經(jīng)包含專用的異常類型
請(qǐng)求管理調(diào)用,具有SVC異常和PendSV異常(可掛起的管理服務(wù)),支持嵌入式os的多種操作
架構(gòu)定義的休眠模式和進(jìn)入休眠的指令,休眠特性能大大降低能量的消耗。由于進(jìn)入休眠狀態(tài)需要使用特定的指令,而不是使用寄存器,架構(gòu)定義的休眠模式也提高了軟件的可移植性。
異常處理可以捕獲到系統(tǒng)中的多種錯(cuò)誤。
應(yīng)用特性
中斷數(shù)量可配置
支持大端或小端存儲(chǔ)器
可選擇的喚醒中斷控制器(WIC),處理器可以在休眠狀態(tài)下掉電以降低功耗,而WIC可以在中斷發(fā)生時(shí)喚醒系統(tǒng)
評(píng)論