娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月08日(星期六)

2018年03月08日 | 將8051應用程序遷移到ARM Cortex-M處理器上的過程

發布者:自在堂 來源: eefocus關鍵字:ARM  Cortex-M  處理器 手機看文章 掃描二維碼
隨時隨地手機看文章

    Cortex-M處理器系列包括廣泛使用的Cortex-M3處理器、針對FPGA的Cortex-M1處理器、2009年初推出的Cortex-M0處理器(最小的 ARM 處理器)和2010年初推出的 C o r tex-M4處理器(支持浮點和數字信號處理增強指令)。這些處理器具有先進的功能特點和簡單易用的編程模型,對于想從8051微控制器遷移到ARM架構的開發人員來說,極具吸引力。本文是一篇入門指南,目的是幫助8051微控制器的開發人員了解8051和A R M Cor tex-M處理器系列在架構、軟件和硬件設計上的主要差異,從而加快遷移過程。


    架構概述

    對于一些嵌入式程序員(尤其是那些習慣使用匯編語言編程的程序員),首先要做的事情就是了解編程模型。

    寄存器

    ARM Cortex-M處理器具有一個32位寄存器庫和一個xPSR(組合程序狀態寄存器)。而8051具有ACC(累加器)、B、DPTR(數據指針)、P SW(處理器狀態字)和四個各含八個寄存器的寄存器庫 (R0-R7)。

     

456

    在8051中,一些指令會頻繁使用某些寄存器,如ACC和 DPTR。

    這種相關性會極大降低系統的性能,而在ARM處理器中,指令可使用不同的寄存器來進行數據處理、內存存取和用作內存指針,因此不會有這個問題。

    從根本上說,ARM 架構是一個基于加載(Load)和存儲(STore)的RI S C架構,處理器寄存器加載數據,然后將數據傳給A LU進行單周期執行。而8051寄存器(ACC、B、PSW、SP和DPTR)可在SFR(特殊功能寄存器)的內存空間中訪問。

    為了確保普通的C函數能夠用作中斷處理程序,在需要處理中斷時,C o r t e x- M的寄存器(R 0 - R 3、R12、L R、P C和xPSR)會被自動壓入堆棧,而軟件僅需在必要時將其他寄存器壓入堆棧。雖然8051具有4個寄存器庫,但是ACC、B、D P T R和PSW寄存器并不會自動壓棧,因此通常需要通過中斷處理程序對這些寄存器進行軟件壓棧。

    寄存器

    ARM處理器具有32位尋址,可實現一個4GB的線性內存空間。該內存空間在結構上分成多個區。每個區都有各自的推薦用法(雖然并不是固定的)。統一內存架構不僅增加了內存使用的靈活性,而且降低了不同內存空間使用不同數據類型的復雜性。

    相反地,8051微控制器具有多個內存空間。內存空間的分割使得有效地利用全部內存空間變得困難,而且需要借助C語言擴展來處理不同的內存類型。

    8 0 51在外部R A M內存空間上最高支持* K B的程序內存和64K B的數據內存。理論上,可以利用內存分頁來擴展程序內存大小。不過,內存分頁解決方案并未標準化,換句話說,不同8051供應商的內存分頁的實現并不相同。這不僅會增加軟件開發的復雜性,而且由于處理頁面切換所需的軟件開銷,還會顯著降低軟件性能。

    在AR M C or tex-M3或M4上,S R A M區和外設區都提供了一個1MB的位段區(bit band regiON)。此位段區允許通過別名地址訪問其內部的每個位。由于位段別名地址只需通過普通的內存存取指令即可訪問,因此C語言完全可以支持,不需要任何特殊指令。而8051提供了少量的位尋址內存(內部R A M上16字節和S F R空間上16字節)。處理這些位數據需要特殊指令,而要支持此功能,C編譯器中需要C語言擴展。

23

     

    A R M C o r t ex-M處理器的內存映射包含多個內置外設塊。例如,ARM Cortex-M處理器的一個特性是具有一個嵌套矢量中斷控制器 (NVIC) 。此外,系統區中內存映射有數個指定控制寄存器和調試組件,以確保優異的中斷處理并極大方便開發人員使用。

    堆棧內存

    堆棧內存操作是內存架構的重要組成部分。在8051中,堆棧指針只有8位,同時堆棧位于內部的內存空間(上限為256個字節,并由工作寄存器(四個各由R0至R7構成的寄存器庫)和內部數據變量共享)。堆棧操作基于空遞增模型。

45

 

    與8051不同的是,A RM Cor tex-M處理器使用系統內存作為堆棧,采用滿遞減模型。

     

45

    滿遞減堆棧內存模型更受C語言的支持。例如,微控制器中的SRAM的使用可組織為:

23

    使用動態分配內存空間的C庫和應用程序通常需要堆內存。

    盡管C o r tex-M處理器的每次壓棧需要32位的堆棧內存,總的R A M使用仍然要比8051小。8051的變量通常是靜態地放在IDATA上,而ARM處理的局部變量是放在堆棧內存上的,因此,只有當函數執行的時候,局部變量才會占用RAM空間。

    此外,ARM Cortex-M 處理器提供有第二個堆棧指針,以允許操作系統內核和進程堆棧使用不同的堆棧內存。這使得操作更可靠,也使操作系統設計更高效。(堆棧指針切換是自動處理的)8051中的很多外設是通過特殊功能寄存器 (S F R) 來控制的。由于S F R空間只有128個字節,而且其中一些已經為處理器寄存器和標準外設所占用,剩余的S F R地址空間通常非常有限,因此也就限制了可通過S F R控制的外設數量。雖然可以通過外部內存空間來控制外設,但是與S F R存取相比,外部存取通常需要更多的開銷(需要將地址復制到DPTR,數據必須通過ACC傳輸)。


關鍵字:ARM  Cortex-M  處理器 引用地址:將8051應用程序遷移到ARM Cortex-M處理器上的過程

上一篇:用單片機編寫幾種跑馬燈程序
下一篇:讀入獨立鍵點亮相應的LED燈

推薦閱讀

人工智能開放平臺能夠將人工智能企業的技術能力和計算資源與傳統企業的數據應用需求連接起來,有效提升行業運營效率、創造新產品,是人工智能與實體經濟融合創新的重要基礎設施,也是我國實體經濟轉型發展的必然選擇。建議鼓勵更多企業通過人工智能開放平臺服務實體經濟。?第一,國家出臺更大力度的項目、資金、稅收等政策措施,鼓勵企業開放人工智能平臺...
據外媒報道,法國盧瓦爾省的圣艾蒂安(Saint-tienne)將在治安復雜的街區,安裝50只聲音傳感器,借助這些傳聲系統向市政警察報告可疑聲音,這在法國尚屬首次。據悉,法國資訊保護委員會(Cnil)已批準這項監聽系統,試行期從3月初開始。據《巴黎人報》報道,為了確保塔朗泰斯-波布朗-庫里奧街區7000戶居民的安全,圣艾蒂安市政當局決定嘗試聲音監聽系統,...
單片機型號:STM32L053R8T6項目中應用FreeRTOS操作系統后,可以將任務單獨封類,以使程序結構上更容易理解,操作更為方便簡單。本文介紹在項目的邏輯層,將任務單獨封類的步驟。1、在Keil中建立2個空白文檔,然后進行保存,將其保存到項目中邏輯層所對應的相應文件夾中,如下圖所示,兩個文件分別以.h和.cpp作為后綴。2、將上述建立的2個文件加入到邏輯層...
使用方法一、正確步驟分為主回路和輔回路兩個回路,主回路采用大旋鈕調節,輔回路采用小旋鈕調節,主回路通過面板上“輸出選擇“按鍵開關控制其輸出的各種量,并且每切換一種輸出的同時,儀器上的數字電壓/電流表可自動監視其輸出值。輔回路通過輸出開關控制直接調節輸出,測量可外附萬用表測量。二、回路原理1、輸入的AC220V電源經保險通過輸出控制繼電器...

史海拾趣

問答坊 | AI 解惑

2007歐美日電子工程師薪金調查

對于工程師來說,尤其是北美的工程師,現在的情況還是相當讓他們滿意的,至少基于EE Tims的對于工程師薪金和工作狀況的年度調查的結果是這樣的。 基于大約1600份調查問卷的統計,在美國2007年工程師的平均年薪包括福利總數為108800美元,略高于去年 ...…

查看全部問答∨

PAC自動化市場的影響及PLC穩固的市場地位

在今天各類制造廠正在持續地將服務范圍從與用戶協商轉向交鑰匙工程全程承包。用戶則把更多的精力集中在提高核心競爭力,而把自動化和控制的功能委托給自動化的供應商。這就創造了對服務和支持的更大需求,而PAC的多功能、多專業的能力正是可利用和 ...…

查看全部問答∨

綠色繪圖軟件

這款繪圖軟件好不好用下載了就知道! …

查看全部問答∨

沒有并口下載線怎么辦!!!

我用的是周立功的EasyFPGA030,它只支持并口下載的,但是現在手上沒有并口的下載線,我的筆記本上也沒有,同學也沒有!!難道又要花幾十甚至幾百去買個并口下載線,望高手指點!!!!!!!!!…

查看全部問答∨

【求 長城電源ATX-300P4-PFC原理圖】

求長城電源ATX-300P4-PFC原理圖 實物圖如下 …

查看全部問答∨

linux-2.6.18內核移植及根文件系統的制做(簡易)

linux-2.6.18內核移植及根文件系統的制做(簡易) 一、        去 http://www.kernel.org 下載內核,下面以 linux-2.6.18.tar.bz2 為例。         [root@Binnary ~ ]# tar –jxvf linux-2.6.18.tar.bz2 & ...…

查看全部問答∨

heihei

愛藝購,藝術的天堂,藝術的寶庫,愛好藝術的人都該去看看,獲取能找到一件稀世珍寶歐…

查看全部問答∨

兩段代碼,上一段顯示為0,,下一段顯示為8.。

#include <reg52.h> #define uint unsigned int #define uchar unsigned char sbit duan=P2^6;        //申明U1鎖存器的鎖存端        sbit wei=P2^7;        //申U2鎖存器 ...…

查看全部問答∨

modelsim se添加altera庫 還是不工作

問題是這樣的,在modelsim se中添加了altera的庫,可以看到了。但是在在quartus中調用modelsim se進行仿真時,仍然默認的是work這個庫,仍然會編譯一大堆的altera的東西,我自己添加的altera的庫沒有起到作用。 請問大俠們,該怎么設置可以在調用m ...…

查看全部問答∨

msp430g2553的ADC10外部參考電壓問題

我在做msp430g2553的ADC10外部參考電壓時,想設置一個5V以上的外部參考電壓,可怎么也弄不出來!請各位大蝦指教指教! 下面是我的程序: #include <intrinsics.h> #include "1602-4.h" #include "1602-4.c" /******************** ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 天水市| 会泽县| 织金县| 宁夏| 仁布县| 景德镇市| 巩义市| 玉山县| 株洲县| 南投市| 利川市| 潼关县| 商都县| 郑州市| 潮州市| 合阳县| 屏东市| 黄骅市| 锡林浩特市| 沈丘县| 丹棱县| 门源| 西盟| 保德县| 铜陵市| 张家界市| 桂平市| 改则县| 岳阳市| 电白县| 京山县| 宣恩县| 临海市| 芜湖县| 蒙城县| 休宁县| 司法| 锡林浩特市| 瑞金市| 山东省| 遵化市|