[導(dǎo)讀]如果中斷中用到了其它復(fù)雜的運(yùn)算,用戶必須明確告訴編譯器那些寄存器或數(shù)據(jù)段需要額外保護(hù)。請(qǐng)參考C18的使用手冊(cè)。
1)針對(duì)PIC18系列,進(jìn)入中斷時(shí),不管是高優(yōu)先級(jí)中斷還是低優(yōu)先級(jí)中斷,三個(gè)重要的寄存器--WREG、STATUS和BSR,一定會(huì)被硬件自動(dòng)壓入只有一級(jí)深度的“影子”寄存器中保護(hù);
2)高優(yōu)先級(jí)中斷在處理過程中不可能被低優(yōu)先級(jí)中斷打斷,故影子寄存器中的內(nèi)容不會(huì)被破化。中斷返回指令可以指示用“fast return”形式直接用影子寄存器中的內(nèi)容快速恢復(fù)三個(gè)重要寄存器的原始值;
3)低優(yōu)先級(jí)的中斷服務(wù)可能被高優(yōu)先級(jí)中斷所打斷,故原本也是保護(hù)在影子寄存器中的內(nèi)容可能會(huì)被沖掉。因此用戶必須自己編寫額外的代碼將上述三個(gè)寄存器保存在其它獨(dú)立的備份單元中,不必理會(huì)影子寄存器的內(nèi)容。返回時(shí)也不能通過“fast return”形式利用影子寄存器的內(nèi)容恢復(fù)原現(xiàn)場(chǎng),自己編寫代碼從備份單元中恢復(fù)寄存器的原始值;
4)如果用MPLAB-C18編譯器,只要聲明了低優(yōu)先級(jí)的中斷服務(wù)函數(shù)屬性為“interruptlow”,編譯器會(huì)自動(dòng)加入額外的指令保護(hù)和恢復(fù)三個(gè)重要寄存器。中斷退出時(shí)也不會(huì)用“fast return”形式。
5)如果中斷中用到了其它復(fù)雜的運(yùn)算,用戶必須明確告訴編譯器那些寄存器或數(shù)據(jù)段需要額外保護(hù)。請(qǐng)參考C18的使用手冊(cè)。
|
請(qǐng)教張老師:關(guān)于中斷嵌套的問題? - zxc526 2004-10-9 17:55:19 [ID:1390531 點(diǎn)擊:146] (334 Bytes) (100)
魚與熊掌兼得 - 張明峰 2004-10-15 11:37:48 [ID:1397533 點(diǎn)擊:23] (948 Bytes) (90)
簡介C18F8720單片機(jī)的中斷嵌套 - 笑蒼天 2004-10-15 10:10:48 [ID:1397378 點(diǎn)擊:24] (2662 Bytes) (0)
那問題出在250us的那個(gè)中斷上 - 張明峰 2004-10-11 14:16:21 [ID:1392725 點(diǎn)擊:68] (53 Bytes) (0)
中斷 - zxc526 2004-10-10 22:11:10 [ID:1391989 點(diǎn)擊:84] (232 Bytes) (0)
中斷函數(shù)定義完全錯(cuò)誤 - 張明峰 2004-10-10 16:59:29 [ID:1391669 點(diǎn)擊:102] (786 Bytes) (1)
進(jìn)到中斷入口的時(shí)候…… - yewuyi 2004-10-10 14:28:50 [ID:1391481 點(diǎn)擊:105] (70 Bytes) (0)
中斷服務(wù)程序! - zxc526 2004-10-10 11:33:09 [ID:1391217 點(diǎn)擊:115] (1321 Bytes) (0)
不要去碰GIEH和GIEL - 張明峰 2004-10-9 18:31:53 [ID:1390559 點(diǎn)擊:136] (30
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
在C語言編程中,結(jié)構(gòu)體內(nèi)存對(duì)齊是一個(gè)容易被忽視卻影響深遠(yuǎn)的關(guān)鍵問題。它不僅關(guān)乎程序性能,更直接影響到內(nèi)存占用效率,尤其在嵌入式系統(tǒng)等資源受限環(huán)境中顯得尤為重要。本文將深入探討結(jié)構(gòu)體內(nèi)存對(duì)齊的原理,并分享手動(dòng)調(diào)整與編譯器優(yōu)...
關(guān)鍵字:
C語言
內(nèi)存對(duì)齊
編譯器
編譯器不僅是連接硬件與軟件的橋梁,還直接影響MCU的性能優(yōu)化與功能安全。面對(duì)汽車行業(yè)對(duì)高可靠性、低功耗和高算力的需求,編譯器需在確保ASIL-D等嚴(yán)格標(biāo)準(zhǔn)的同時(shí),最大化發(fā)揮RISC-V芯片的潛力。
關(guān)鍵字:
車規(guī)MCU
RISC-V
編譯器
HighTec
控制寄存器(Control Register)是中央處理器(CPU)中用于管理系統(tǒng)級(jí)操作的特殊寄存器,它為操作系統(tǒng)和硬件提供對(duì)處理器行為的精細(xì)控制。本文從計(jì)算機(jī)體系結(jié)構(gòu)角度系統(tǒng)闡述控制寄存器的設(shè)計(jì)原理、功能分類、操作機(jī)制...
關(guān)鍵字:
寄存器
處理器
國內(nèi)電子信息產(chǎn)業(yè)內(nèi)的廠商正在全球嵌入式系統(tǒng)的發(fā)展浪潮中扮演著越來越重要的角色,但隨之而來的是國內(nèi)嵌入式系統(tǒng)和相關(guān)芯片企業(yè)在出海時(shí)也面臨越來越多的合規(guī)要求,尤其是在保障用戶、設(shè)備和周邊人與物安全的功能安全領(lǐng)域內(nèi)的合規(guī)要求。...
關(guān)鍵字:
嵌入式系統(tǒng)
智能網(wǎng)聯(lián)
編譯器
在嵌入式系統(tǒng)開發(fā)中,硬件抽象層(Hardware Abstraction Layer,HAL)起著至關(guān)重要的作用。它為上層軟件提供了統(tǒng)一的硬件訪問接口,隱藏了底層硬件的細(xì)節(jié),使得軟件具有更好的可移植性和可維護(hù)性。C++作...
關(guān)鍵字:
嵌入式C++
HAL
寄存器
封裝
采用51單片機(jī)最小開發(fā)板,由8位自制獨(dú)立按鍵控制。單片機(jī)芯片為STC89C52RC,晶振為@12.000 mhz。8X8LED點(diǎn)陣屏模塊由MAX7219驅(qū)動(dòng),MAX7219包含一個(gè)自動(dòng)掃描電路。你只需要把要顯示的數(shù)據(jù)發(fā)送...
關(guān)鍵字:
51單片機(jī)
MAX7219
寄存器
電源管理集成電路(PMIC)有益于簡化最終應(yīng)用并縮小其尺寸,也因此備受青睞。然而,當(dāng)默認(rèn)啟動(dòng)時(shí)序和輸出電壓與應(yīng)用要求不符時(shí),就需要定制上電設(shè)置。大多數(shù)情況下,電路沒有可以存儲(chǔ)這些設(shè)置的非易失性存儲(chǔ)器(NVM)。對(duì)此,低功...
關(guān)鍵字:
電源管理
集成電路
寄存器
我從Digilent公司拿出了我的Arty Z7板,并在Vivado/Vitis 2021.2中創(chuàng)建了一個(gè)項(xiàng)目來讓它工作,你可以在我的上一個(gè)項(xiàng)目帖子中閱讀,我在QDSP-6061的5位數(shù)上顯示滾動(dòng)文本,上面寫著“Hell...
關(guān)鍵字:
寄存器
AXI4 QDSP-6061
RTL模塊
【2025年4月11日, 德國慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼:IFNNY)推出用于AURIX?、TRAVEO?和PSOC?的可擴(kuò)展軟件包產(chǎn)品組合...
關(guān)鍵字:
PSOC
物聯(lián)網(wǎng)
編譯器
瑞典烏普薩拉,2025年3月11日 — 全球領(lǐng)先的嵌入式系統(tǒng)開發(fā)軟件解決方案供應(yīng)商IAR在德國紐倫堡舉辦的embedded world 2025展會(huì)上重磅發(fā)布全新云端平臺(tái)。該平臺(tái)為嵌入式軟件開發(fā)人員提供前所未有的自由度與...
關(guān)鍵字:
編譯器
嵌入式
RISC-V
該統(tǒng)一解決方案為Microchip編譯器產(chǎn)品線提供靈活且經(jīng)濟(jì)高效的許可選項(xiàng)
關(guān)鍵字:
編譯器
嵌入式
當(dāng)安全標(biāo)準(zhǔn)相互契合:意法半導(dǎo)體 (ST) Stellar MCU取得了風(fēng)險(xiǎn)管理安全標(biāo)準(zhǔn)等級(jí)最高的ISO 26262 ASIL D 級(jí)認(rèn)證,現(xiàn)在更有達(dá)到同等安全級(jí)別的 HighTec Rust 編譯器的加持
關(guān)鍵字:
微控制器
編譯器
在單片機(jī)系統(tǒng)的設(shè)計(jì)中,復(fù)位電路是確保單片機(jī)正常工作的關(guān)鍵組成部分。它能夠在系統(tǒng)啟動(dòng)時(shí)將單片機(jī)的內(nèi)部寄存器和狀態(tài)設(shè)置為初始值,保證單片機(jī)從一個(gè)確定的狀態(tài)開始運(yùn)行。與門芯片作為一種常見的數(shù)字邏輯芯片,有時(shí)會(huì)被應(yīng)用于單片機(jī)復(fù)位...
關(guān)鍵字:
復(fù)位電路
寄存器
單片機(jī)
在數(shù)字電路設(shè)計(jì)中,計(jì)數(shù)器是一種基礎(chǔ)的數(shù)字電路組件,用于記錄并顯示脈沖信號(hào)的數(shù)量或頻率。4進(jìn)制計(jì)數(shù)器,即模4計(jì)數(shù)器,是一種特殊的計(jì)數(shù)器,其計(jì)數(shù)范圍從0到3,共4個(gè)狀態(tài)。本文將深入探討如何結(jié)合D觸發(fā)器與寄存器來實(shí)現(xiàn)一個(gè)4進(jìn)制...
關(guān)鍵字:
D觸發(fā)器
寄存器
計(jì)數(shù)器
在STM32的開發(fā)過程中,開發(fā)者可能會(huì)遇到各種編譯錯(cuò)誤,其中“Program file does not exist”是一個(gè)較為常見且可能由多種原因引起的錯(cuò)誤。這個(gè)錯(cuò)誤通常意味著編譯器在預(yù)期的路徑下沒有找到可執(zhí)行文件(如...
關(guān)鍵字:
STM32
編譯器
基于ARM內(nèi)核的芯片在我們的世界中無處不在,從簡單的MCU到高端的應(yīng)用處理器,各行各業(yè)中都有它們的身影。 如今ARM生態(tài)系統(tǒng)非常繁榮,在這繁榮的背后編譯器的作用功不可沒。
關(guān)鍵字:
ARM
編譯器
臺(tái)灣新竹-2024 年 11 月 5 日-新唐科技正式推出免費(fèi)版 Arm? Keil? MDK Nuvoton Edition,成為全球首家提供 Keil MDK 完整版的公司。此專業(yè)工具適用于開發(fā)基于Arm Corte...
關(guān)鍵字:
編譯器
微控制器
嵌入式
上海2024年10月18日 /美通社/ -- 國際第三方檢測(cè)認(rèn)證機(jī)構(gòu)TÜV南德意志集團(tuán)(以下簡稱"TÜV南德")近日授予兆松科技(武漢...
關(guān)鍵字:
ISO
編譯器
軟件開發(fā)
汽車行業(yè)
寄存器是CPU內(nèi)部存儲(chǔ)單元,即寄存器是CPU的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址等。
關(guān)鍵字:
寄存器
CPU
隨著電子技術(shù)的迅速發(fā)展,計(jì)算機(jī)已深入地滲透到我們的生活中,許多電子愛好者開始學(xué)習(xí)單片機(jī)知識(shí),但單片機(jī)的內(nèi)容比較抽象,相對(duì)電子愛好者已熟悉的模擬電路、數(shù)字電路,單片機(jī)中有一些新的概念,這些概念非常基本以至于一般作者不屑去談...
關(guān)鍵字:
單片機(jī)
寄存器