www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]每一個VIC通道都支持軟件中斷與硬件中斷,即每個中斷均可由軟件或硬件中斷產(chǎn)生,軟件中斷與對應(yīng)通道上的硬件中斷是邏輯“或”的關(guān)系。軟件中斷可通過置位VICSoft

每一個VIC通道都支持軟件中斷與硬件中斷,即每個中斷均可由軟件或硬件中斷產(chǎn)生,軟件中斷與對應(yīng)通道上的硬件中斷是邏輯“或”的關(guān)系。軟件中斷可通過置位VICSoftInt寄存器相應(yīng)位來產(chǎn)生,也可通過置位VICSoftIntClear寄存器相應(yīng)位來清除。

LPC2000具有3類中斷:FIQ、向量IRQ和非向量IRQ。LPC2000系列可通過對VICIntSelect和VICVectCntlx(x=0,1,…,15)這兩類寄存器的設(shè)置,將以上的32個中斷源設(shè)置為這三類中斷的任何一種。其中,

快速中斷請求FIQ具有最高優(yōu)先級。建議只分配一個中斷請求給FIQ以減少中塅處理程序的延遲。當(dāng)然,VIC支持多個FIQ中斷。

向量IRQ具有中等優(yōu)先級。該級別最多可分配32個請求中的16個。32個請求中的任何一個都可以分配到16個向量IRQslot中的任意一個。其中,slot0具有最高優(yōu)先級,而slot15則為最低優(yōu)先級。

非向量IRQ具有最低優(yōu)先級。

如何初始化某個中斷源為三類中斷中的一類

通過VICIntSelect中斷選擇寄存器將32個中斷請求分配為FIQ或IRQ(包括向量IRQ與非向量IRQ);通過VICVectCntlx(x=0,1,…,15)來選擇32個中斷請求中的某個為向量IRQ并設(shè)定此中斷請求為IRQ slotx(x對應(yīng)于VICVectCntlx中的x)。若某個中斷源被設(shè)定為IRQ,但卻未通過VICVectCntlx使能,則該中斷源將被默認(rèn)為非向量IRQ。

中斷處理過程中斷處理過程如下所示:

初始化:設(shè)置中斷源為3種中斷源之一,設(shè)置中斷地址,使能中斷,然后正常運(yùn)行用戶程序;

當(dāng)有IRQ中斷產(chǎn)生時,VIC將會根據(jù)中斷源設(shè)置VICVectAddr寄存器為相應(yīng)中斷服務(wù)程序的地址,切換處理器工作模式為IRQ模式,并跳轉(zhuǎn)到IRQ中斷入口0x00000018處;

異常中斷向量表中0x00000018處使用“LDR PC, [PC, #-0xFF0]”,使得程序跳轉(zhuǎn)到(0x00000018+8-0x00000FF0=0xFFFFF030)存儲器處保存的地址。0xFFFFF030是VICVectAddr寄存器地址。也即是說:通過該指令,程序跳轉(zhuǎn)到VICVectAddr寄存器所指向的中斷服務(wù)程序的地址;

中斷服務(wù)程序執(zhí)行相應(yīng)的中斷處理,清除中斷。建議用__irq關(guān)鍵字定義中斷服務(wù)程序;

中斷服務(wù)完成后,即可返回原中斷點(diǎn)。返回時要同時切換處理器工作模式。

注意:退出中斷前,一定要對VICVectAddr寄存器寫0,通知VIC中斷結(jié)束;建議用__irq關(guān)鍵字定義中斷服務(wù)程序,這樣的話,該函數(shù)將自動切換處理器工作模式,但該函數(shù)不能返回參數(shù)或者數(shù)值。

IRQ中斷

IRQ中斷有向量IRQ和非向量IRQ中斷兩種類型,當(dāng)IRQ中斷產(chǎn)生時:

若是向量IRQ中斷,由于之前VIC已經(jīng)將最高優(yōu)先級請求的IRQ服務(wù)程序地址VICVectAddrx(x=0,1,…,15)裝入VICVectAddr,故程序跳入該中斷服務(wù)程序繼續(xù)執(zhí)行。

若是非向量IRQ中斷,VIC提供默認(rèn)服務(wù)程序地址VICDefVectAddr,IRQ中斷入口程序可通過讀取VIC的向量地址寄存器VICVectAddr來取得該地址,然后跳轉(zhuǎn)到相應(yīng)服務(wù)程序繼續(xù)執(zhí)行。該默認(rèn)服務(wù)程序由所有非向量IRQ公用,默認(rèn)服務(wù)程序可讀取IRQ狀態(tài)寄存器以確定哪個IRQ被激活。

lpc2000的工作原理

嵌入式處理器是嵌入式系統(tǒng)硬件最核心的部分,飛利浦推出十余款基于 ARM7 的高性能低功耗LPC2000系列微控制器,來滿足不斷增長的嵌入式市場需求。LPC2000系列微處理器工作頻率為60MHz,采用基于ARMTDMI內(nèi)核的32位RISC。LPC2000的外設(shè)接口非常豐富,包括UART、SPI、I2C、CAN、ADC、 PWM、RTC等。

這一系列微控制器LPC2114/2124/2119/2129/2194、LPC2210/2212/2214、LPC2290 /2292/2294借助片上存儲器加載模塊實(shí)現(xiàn)了“零等待訪問”高速閃存功能,提高了指令執(zhí)行的效率。在高性能低功耗的基礎(chǔ)上提供了增強(qiáng)的通信功能和片上代碼保護(hù)機(jī)制。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適用于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟調(diào)制解調(diào)器等。6通道的PWM更能用于復(fù)雜的馬達(dá)控制應(yīng)用。

LPC2000系列微控制器能夠?qū)崿F(xiàn)零等待訪問的高速閃存,這主要?dú)w功于片上的存儲器加速模塊。圖2為存儲器加速模塊的結(jié)構(gòu)框圖。128位寬度的閃存陣列通過單獨(dú)的局部總線與處理器接口,每周期可為ARM內(nèi)核提供四條32位指令。這使得MCU無需經(jīng)過等待狀態(tài)就可直接從閃存上執(zhí)行指令,從而消除了一般閃存讀取時的等待時間。為了解決指令序列的變化,指令和數(shù)據(jù)的不同處理帶來的等待時間,模塊內(nèi)部實(shí)現(xiàn)了預(yù)取緩沖器、避免數(shù)據(jù)讀/寫打亂地址序列的數(shù)據(jù)旁路和跳轉(zhuǎn)跟蹤緩沖器三個功能塊的聯(lián)合工作,并用兩組128位寬度的存儲器來進(jìn)行并行訪問,消除延時。

存儲器加速模塊的作用取決于系統(tǒng)時鐘的大小。LPC2000系列片上閃存的訪問時間為50nS,對于系統(tǒng)時鐘不高于20MHZ的應(yīng)用,在1個周期內(nèi)就可將閃存的內(nèi)容讀出,此時沒必要使用存儲器加速模塊。時鐘頻率越高,當(dāng)直接執(zhí)行閃存中的代碼時,系統(tǒng)性能受影響越大,此時使能存儲器加速模塊,可以得到接近4倍速度的加速,真正實(shí)現(xiàn)零等待高速閃存。由于LPC2000可直接從閃存執(zhí)行指令,無需引導(dǎo)期間將代碼傳送到SRAM,這不僅省掉了耗時又耗能的系統(tǒng)啟動步驟,還節(jié)省了昂貴的SRAM。

對片內(nèi)閃存的編程可通過幾種方法來實(shí)現(xiàn):通過內(nèi)置的串行JTAG 接口,通過串口進(jìn)行在系統(tǒng)編程(ISP),或通過在應(yīng)用編程(IAP)。

矢量中斷控制器

LPC2000系列的矢量中斷控制器可以支持最多32個中斷請求,可根據(jù)需要將其編程分為3 類:FIQ、矢量IRQ 和非矢量IRQ??焖僦袛嗾埱?FIQ)要求具有最高優(yōu)先級。矢量IRQ 具有中等優(yōu)先級。該級別可分配32個請求中的16個。非矢量IRQ 的優(yōu)先級最低。這種可編程分配機(jī)制意味著不同外設(shè)的中斷優(yōu)先級可以動態(tài)分配并調(diào)整。對于任意矢量中斷,一旦發(fā)出請求,CPU可在一個周期內(nèi)過讀取VIC并跳轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序的入口地址,這將中斷延時降低到最小。

對lpc2000系列微控制器片內(nèi)flash編程的方法

1.LPC2000的Flash簡介

Flash存儲器系統(tǒng)包含128kB Flash器件的16個扇區(qū)和256kB Flash器件的17個扇區(qū)。Flash存儲器從地址0開始并向上增加。Flash boot裝載程序同時提供片內(nèi)Flash存儲器的ISP和IAP編程接口。IAP、ISP和RealMonitor程序都位于boot扇區(qū)。boot扇區(qū)存在于所有的器件當(dāng)中。ISP和IAP命令不允許對boot扇區(qū)執(zhí)行寫/擦除/運(yùn)行操作。在128kB Flash器件中只有120kB Flash可供用戶程序使用。器件共包含256kB的Flash,其中,248kB的Flash可供用戶程序使用。Boot Block一般位于片內(nèi)Flash存儲器頂端。在128kB Flash中,它是第16個扇區(qū)(對應(yīng)的扇區(qū)號是15),在256kB Flash中,它是第18個扇區(qū)(對應(yīng)的扇區(qū)號是17)。Boot Block占有的Flash存儲器扇區(qū)不能用來存放用戶數(shù)據(jù)。

LPC2000系列提供在在應(yīng)用中編程IAP,最終用戶代碼直接執(zhí)行在應(yīng)用編程 (IAP)對片內(nèi)Flash存儲器進(jìn)行擦除和編程操作。Falsh可以擦寫10000次,512字節(jié)行編程時間為1ms。單扇區(qū)或整片擦除時間為400ms。

Flash存儲器在寫或擦除操作過程中不可被訪問。

執(zhí)行Flash寫/擦除操作的IAP命令使用片內(nèi)RAM頂端的32個字節(jié)空間。如果應(yīng)用程序中允許IAP編程,那么用戶程序不應(yīng)使用該空間。

很多8位單片機(jī)中有頁的概念,頁為Flash編程的最小單位,每次可以擦除和編程一個頁的內(nèi)容,由于頁中包含的字節(jié)較少,在這種情況下把Flash用作EEPROM靈活性會很好。而LPC2000系列沒有頁的概念,它只有扇區(qū)這個最小的Flash編程單位,即用戶即使是只修改一個字節(jié),也需要首先擦除8K的Flash。

把Flash當(dāng)作EEPROM的過程,其實(shí)就是對Flash進(jìn)行讀-修改-寫的過程。

2.向Flash中寫數(shù)據(jù)

Flash必須遵循選擇扇區(qū),擦除,選擇扇區(qū),寫的過程,具體到程序的編寫,必須先后有下面的代碼:

SelSector(1,1); // 選擇扇區(qū)1

EraseSector(1,1); // 擦除扇區(qū)1

SelSector(1,1); // 選擇扇區(qū)1

for(i=0;i《512;i++)

source[i]=0x41;

RamToFlash(0x00002000, (uint32)source, 512); // 寫數(shù)據(jù)到扇區(qū)1

應(yīng)用的時候需要注意下面幾點(diǎn):

1)如果寫之前沒有選擇扇區(qū),是不能正確寫入的。

2)如果寫之前沒有擦除,寫入是不正確的。

3)最少寫512字節(jié),寫入的字節(jié)數(shù)應(yīng)當(dāng)為512 或 1024 或 4096 或 8192.

4)Flash在擦寫時不能訪問,這也是IAP是要關(guān)閉中斷的原因。關(guān)中斷可以用下面的語句來實(shí)現(xiàn):__asm{MSR CPSR_c, #0xdf},與此對應(yīng),開中斷可以下面的語句:__asm{MSR CPSR_c, #0x5f}。

另外,經(jīng)常有人問如何將一個常量的數(shù)值定義在Flash的特定地址上,我覺得這個功能不太實(shí)用,因?yàn)槊看尾脸淖钚挝皇?K,到不如直接寫數(shù)據(jù)到Flash的一個地址,這個地址是在一個空扇區(qū)中,讀和寫都以這個地址為基址。由于編譯后的代碼是向下靠緊的,所以你可以查看一下編譯后的代碼量,然后選擇靠上的地址做為用的變量區(qū)。如果實(shí)在想把數(shù)組定義在Flash的特定位置好像可以用分散加載。

3. 從Flash中讀數(shù)據(jù)

從Flash中讀數(shù)據(jù)比較簡單,可以定義一個指針變量,該指針變量指向特定的Flash地址,例如可以寫成下面的樣子:

uint32 i;

uint8 * p;

p=(uint8 *)0x1C000;

for(i=0;i《400;i++)

{

Puthexbyte(*(p++));

}

4. Flash的加密

代碼讀保護(hù) 這是Bootloader修訂版1.61的特性。代碼讀保護(hù)通過向Flash地址單元0x1FC(用戶Flash扇區(qū)0)寫入0x87654321(十進(jìn)制表示為2271560481)來使能。地址單元0x1FC用來允許為fiq異常處理程序保留部分空間。當(dāng)JTAG調(diào)試端口的代碼讀保護(hù)被使能時,外部存儲器引導(dǎo)和以下ISP命令將被禁能:

l 讀存儲器

l 寫RAM

l 運(yùn)行

l 將RAM內(nèi)容復(fù)制到Flash

上述ISP命令終止時返回CODE_READ_PROTECTION_ENABLED。代碼讀保護(hù)使能時,ISP擦除命令只允許擦除用戶扇區(qū)的內(nèi)容。這種限制是代碼讀保護(hù)不使能時所沒有的。IAP命令不受代碼讀保護(hù)的影響。

采用工程模板的RelInFlash會自動加密。

5. 采用工程模板時需要注意的地方

采用ZLG的工程模板時需要注意下面幾點(diǎn):

對lpc2000系列微控制器片內(nèi)flash編程的方法

1)修改堆棧,在STARTUP.S文件中的初始化堆棧為 StackUsr-20*4

2)設(shè)置編譯參數(shù)-apcs/intervork,需要注意是修改 Language Settings/ARM C Compiler/ATPS下面的。我一開始的時候不小心選擇的語言設(shè)置是ARM Assembler ,結(jié)果運(yùn)行程序后一寫Flash就錯,大家要選準(zhǔn)語言設(shè)置。

3)變量定義,由于一次至少寫512個字節(jié),所以跟讀寫操作的變量最好定義為uint32類型的,我犯的一個錯誤是將變量定義為uint8類型的,如下面:

uint8 i;

for(i=0;i《512;i++)

source[i]=0x41;

RamToFlash(0x00002000, (uint32)source, 512); // 寫數(shù)據(jù)到扇區(qū)1

結(jié)果可想而知,一直在for循環(huán)中運(yùn)行而跳不出來,這到給我們一個IAP不好用的假象

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

本屆年會將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設(shè)計(jì)工程師推出25門技術(shù)課程

關(guān)鍵字: 嵌入式 MCU 模擬

上海2025年9月5日 /美通社/ -- 由紐倫堡會展(上海)有限公司舉辦的上海國際嵌入式會議將于 2025 年 10 月 16-17 日在上海世博展覽館舉辦。 此次會議將由三個版塊組成:嵌入式技術(shù)會議、汽...

關(guān)鍵字: 嵌入式 CE CHINA EMBEDDED

從外部看,電子系統(tǒng)仿佛一個統(tǒng)一的學(xué)科或設(shè)備,各組成部分協(xié)同工作,渾然一體。然而揭開表象,其內(nèi)在卻是另一番景象:一個碎片化、多層次的世界——其中每一層都獨(dú)立且復(fù)雜,衍生出各自特有的工具、專家、工作流程,甚至哲學(xué)體系。

關(guān)鍵字: 嵌入式 電子系統(tǒng) 半導(dǎo)體

8位單片機(jī)在嵌入式設(shè)計(jì)領(lǐng)域已經(jīng)成為半個多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨(dú)立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

【2025年8月29日,中國上海訊】近日,第二十屆全國大學(xué)生智能汽車競賽(以下簡稱“智能車大賽”)總決賽在杭州舉辦并圓滿結(jié)束。作為大賽主協(xié)辦單位,英飛凌科技從技術(shù)支持與人才培養(yǎng)上全方位支持賽事,踐行產(chǎn)學(xué)研合作,助力行業(yè)人...

關(guān)鍵字: 微控制器 LED驅(qū)動芯片 人機(jī)交互

深圳2025年8月28日 /美通社/ -- 8月26日,2025 ELEXCON深圳國際電子展盛大啟幕。本屆大會以"All for AI"為主題,深圳市德...

關(guān)鍵字: AI 工業(yè)級 SSD 嵌入式

深圳2025年8月26日 /美通社/ -- 8月26日,由博聞創(chuàng)意會展主辦的 第22屆深圳國際電子展暨嵌入式展(elexcon2025)在深圳(福田)會展中心隆重開幕。 作為中國電子與嵌入式技術(shù)領(lǐng)域的專業(yè)大展,本屆展會...

關(guān)鍵字: 嵌入式 電子 高通 AI

在工業(yè)物聯(lián)網(wǎng)(IIoT)與邊緣計(jì)算快速發(fā)展的背景下,Modbus協(xié)議憑借其輕量化特性成為微控制器(MCU)設(shè)備互聯(lián)的首選方案。然而,在資源受限的MCU(如STM32F0系列、ESP8266等,RAM通常小于32KB,F(xiàn)l...

關(guān)鍵字: 微控制器 Modbus 工業(yè)物聯(lián)網(wǎng)

在工業(yè)物聯(lián)網(wǎng)設(shè)備開發(fā)中,Modbus從站功能已成為微控制器(MCU)的標(biāo)配能力。某智能電表項(xiàng)目通過在STM32上實(shí)現(xiàn)Modbus RTU從站,成功將設(shè)備接入現(xiàn)有SCADA系統(tǒng),開發(fā)周期縮短40%。本文將系統(tǒng)解析MCU實(shí)現(xiàn)...

關(guān)鍵字: 微控制器 Modbus 協(xié)議棧優(yōu)化

2025年8月21日 – 專注于引入新品的全球電子元器件和工業(yè)自動化產(chǎn)品授權(quán)代理商貿(mào)澤電子 (Mouser Electronics) 即日起開售Silicon Labs全新xG26系列無線SoC和MCU。xG26片上系統(tǒng)...

關(guān)鍵字: SoC 微控制器 物聯(lián)網(wǎng)
關(guān)閉