瑞薩RZ/T系列MPU
基于Arm的RZ/T系列MPU通過(guò)工業(yè)以太網(wǎng)通信提供高性能和高速實(shí)時(shí)控制,為自動(dòng)化市場(chǎng)構(gòu)建高性能系統(tǒng)。RZ/T MPU和RZ/N MPU均基于類似的硬件架構(gòu)開(kāi)發(fā)而成,并共享相同的軟件環(huán)境,可實(shí)現(xiàn)可擴(kuò)展產(chǎn)品開(kāi)發(fā)。RZ/T系列MPU支持多種協(xié)議,例如EtherCAT、PROFINET、Ethernet/IP和下一代TSN。RZ/T MPU配備編碼器接口,可支持各種編碼器協(xié)議。
中斷重入的需求
一些客戶的應(yīng)用程序原來(lái)是基于其它家私有核的平臺(tái),整個(gè)程序只使用1個(gè)中斷,系統(tǒng)的任務(wù)全部在這一個(gè)中斷里管理,比如系統(tǒng)里有125us周期的任務(wù),也有62.5us周期的任務(wù),但是62.5us的任務(wù)優(yōu)先級(jí)比125us的任務(wù)高,而且125us的任務(wù)執(zhí)行時(shí)間超過(guò)62.5us。
對(duì)于這個(gè)時(shí)序要求,如果移植到ARM的MCU平臺(tái),一般使用兩個(gè)定時(shí)器中斷,分別設(shè)置不同的優(yōu)先級(jí)來(lái)實(shí)現(xiàn),代碼架構(gòu)更簡(jiǎn)潔清晰。但是客戶要求在不改變?cè)写a結(jié)構(gòu)的前提下,移植到RZ/T2x系列芯片上,要求:使用62.5us的定時(shí)器中斷,但是當(dāng)執(zhí)行到125us的任務(wù)時(shí),如果此時(shí)又產(chǎn)生了新的定時(shí)器中斷信號(hào),需要能打斷當(dāng)前正在執(zhí)行的中斷函數(shù)。也就是說(shuō)要求中斷的重入。
而對(duì)于ARM內(nèi)核,雖然可以實(shí)現(xiàn)中斷嵌套的,但是只能是高優(yōu)先級(jí)的中斷可以打斷低優(yōu)先級(jí)的中斷,不能打斷同一優(yōu)先級(jí)的中斷處理函數(shù),也不能打斷自己的中斷函數(shù)。那么怎么實(shí)現(xiàn)這一個(gè)需求呢?
中斷重入的實(shí)現(xiàn)
實(shí)現(xiàn)的思路是:在62.5us的高優(yōu)先級(jí)任務(wù)執(zhí)行完后,運(yùn)行125us的任務(wù)前,清除中斷控制器的標(biāo)志,欺騙CPU,當(dāng)前不是在中斷處理函數(shù)里,而是在普通的模式下。
下面是代碼的實(shí)現(xiàn):
1在bsp_irq.h文件添加如下函數(shù):
左右滑動(dòng)查看完整內(nèi)容
長(zhǎng)按可保存查看大圖
2假設(shè)中斷使用的是CMT0的比較中斷,首先查詢手冊(cè)Interrupt Controller章第3節(jié)里的Event Table,CMT0的中斷號(hào)是53。
3在62.5us執(zhí)行完后,在可以允許被打斷的代碼前面,加入如下的處理,清除當(dāng)前的中斷標(biāo)志,并告訴中斷控制器,當(dāng)前的中斷號(hào)對(duì)應(yīng)的處理已經(jīng)結(jié)束。這樣有新中斷信號(hào)產(chǎn)生,就可以打斷后面的代碼。
左右滑動(dòng)查看完整內(nèi)容
R_BSP_IrqClearActive(53); // 清除當(dāng)前中斷正在運(yùn)行的狀態(tài) __asm volatile ( " mov r0, # 85 // 85 (=53 + 32) /* Write INTID to EOIR. */ “mcr p15, #0, r0, c12, c12, #1 ” // 當(dāng)前INT ID寫入EOIR寄存器, // 告訴CPU,當(dāng)前中斷處理結(jié)束 ):
-
編碼器
+關(guān)注
關(guān)注
45文章
3573瀏覽量
133980 -
瑞薩
+關(guān)注
關(guān)注
34文章
22282瀏覽量
85938 -
中斷
+關(guān)注
關(guān)注
5文章
895瀏覽量
41349 -
MPU
+關(guān)注
關(guān)注
0文章
340瀏覽量
48699
原文標(biāo)題:RZ/T2x系列的中斷重入實(shí)現(xiàn)
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論