人妻蜜と1~4中文字幕月野定规 ,国产精品成人va在线播放,色优久久久久综合网鬼色,WWW插插插无码视频网站

【ARM】解決MDK中開啟MPU后RTX的線程無(wú)法正常啟動(dòng)的問(wèn)題

1、 文檔目標(biāo)

在嵌入式開發(fā)領(lǐng)域,尤其是在使用ARM Cortex-M系列微控制器時(shí),MDK(Keil Microcontroller Development Kit)是開發(fā)者最常用的集成開發(fā)環(huán)境之一。而RTX(Real-Time eXecutive)作為一款輕量級(jí)實(shí)時(shí)操作系統(tǒng)內(nèi)核,廣泛應(yīng)用于需要高效任務(wù)調(diào)度和資源管理的場(chǎng)景中。然而,在某些復(fù)雜的應(yīng)用環(huán)境中,例如啟用了MPU(Memory Protection Unit)后,可能會(huì)遇到RTX線程無(wú)法正常啟動(dòng)的問(wèn)題。這種問(wèn)題不僅會(huì)影響系統(tǒng)的功能實(shí)現(xiàn),還可能對(duì)項(xiàng)目的開發(fā)進(jìn)度造成顯著影響。因此,深入分析該問(wèn)題的成因并提出有效的解決方案,具有重要的實(shí)踐意義。


2、 問(wèn)題場(chǎng)景

在Keil MDK中,用RTOS2后,在Main函數(shù)中開啟MPU初始化后,RTX5的線程無(wú)法正常啟動(dòng),如圖2-1所示:



圖2-1

3、軟硬件環(huán)境

1)、軟件版本:Keil MDK5.41

2)、電腦環(huán)境:Windows 11

3)、外設(shè)硬件:無(wú)


4、解決方法

方法1:

打開工程的main函數(shù)中的MPU的初始化代碼,把“MPU_InitStruct.Size“設(shè)置為”MPU_REGION_SIZE_4GB”,如圖4-1所示:


圖4-1

注:當(dāng)MPU的區(qū)域大小設(shè)置為MPU_REGION_SIZE_4GB時(shí),它覆蓋了一個(gè)非常大的內(nèi)存區(qū)域,這通常包括了整個(gè)地址空間,因此不太可能限制到RTX線程所需的特定內(nèi)存區(qū)域。而當(dāng)設(shè)置為MPU_REGION_SIZE_512KB時(shí),覆蓋的內(nèi)存區(qū)域較小,如果這個(gè)區(qū)域沒有正確覆蓋RTX線程的??臻g或需要訪問(wèn)的內(nèi)存區(qū)域,就可能導(dǎo)致線程無(wú)法正常啟動(dòng)。


方法2:

如果不修改“MPU_InitStruct.Size”的值,打開RTX的配置文件把默認(rèn)線程的模式修改為特權(quán)模式,如圖4-2所示:



圖4-2

注:在非特權(quán)模式下運(yùn)行線程時(shí),系統(tǒng)定時(shí)器(SysTick)和其他中斷仍需要特權(quán)模式的權(quán)限。如果中斷服務(wù)程序試圖訪問(wèn)受限區(qū)域,可能導(dǎo)致線程無(wú)法運(yùn)行。