日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]前言本文將說明在FreeRTOS嵌入式操作系統(tǒng)中,如何設(shè)置STM32 Cortex M3和M4系列MCU的中斷優(yōu)先級??偨Y(jié)【1】STM32L1系列,STM32F1系列,STM32F4系列,設(shè)置NVIC時(shí)需要使用NVIC_PriorityGroup_4?!?】搶占優(yōu)先級的要比“

前言

本文將說明在FreeRTOS嵌入式操作系統(tǒng)中,如何設(shè)置STM32 Cortex M3和M4系列MCU的中斷優(yōu)先級。

總結(jié)

【1】STM32L1系列,STM32F1系列,STM32F4系列,設(shè)置NVIC時(shí)需要使用NVIC_PriorityGroup_4。

【2】搶占優(yōu)先級的要比“MAX”更大,而比“LOWEST”更小。例如

configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY=5

configLIBRARY_LOWEST_INTERRUPT_PRIORITY=15

那么NVIC搶占優(yōu)先級設(shè)置的具體值應(yīng)該比MAX=5更大(包括等于),比LOWEST=15更?。òǖ扔冢?,也就是說5,6,7,8,9,10,11,12,13,14,15肯定是合法值。

【3】FreeRTOS中,數(shù)值越大優(yōu)先級越高,這種優(yōu)先級可以成為邏輯優(yōu)先級。Cortex M3/M4中斷中,數(shù)值越大優(yōu)先級越低,這種優(yōu)先級成為中斷優(yōu)先級。兩者相反,所以才會(huì)出現(xiàn)比"MAX"更大而比“LOWEST”更小的情況。

示意代碼

【FreeRTOSConfig.h】


/*Usethesystemdefinition,ifthereisone*/

#ifdef__NVIC_PRIO_BITS

#defineconfigPRIO_BITS__NVIC_PRIO_BITS

#else

#defineconfigPRIO_BITS4/*15prioritylevels*/

#endif

#defineconfigLIBRARY_LOWEST_INTERRUPT_PRIORITY15

#defineconfigLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY5

/*Thelowestpriority.*/

#defineconfigKERNEL_INTERRUPT_PRIORITY(configLIBRARY_LOWEST_INTERRUPT_PRIORITY<<(8-configPRIO_BITS))

/*Priority5,or95asonlythetopfourbitsareimplemented.*/

/*!!!!configMAX_SYSCALL_INTERRUPT_PRIORITYmustnotbesettozero!!!!

Seehttp://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html.*/

#defineconfigMAX_SYSCALL_INTERRUPT_PRIORITY(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY<<(8-configPRIO_BITS))

【NVIC設(shè)置】

【示例A】


NVIC_InitTypeDefNVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

NVIC_InitStructure.NVIC_IRQChannel=XXXX_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=configLIBRARY_LOWEST_INTERRUPT_PRIORITY;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructure);

【示例A】


NVIC_InitTypeDefNVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

NVIC_InitStructure.NVIC_IRQChannel=XXXX_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=configLIBRARY_LOWEST_INTERRUPT_PRIORITY-1;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructure);

參考博文

【FreeRTOS STM32移植筆記】

【FreeRTOS學(xué)習(xí)筆記——任務(wù)間使用隊(duì)列同步數(shù)據(jù)】

【FreeRTOS學(xué)習(xí)筆記——二值型信號(hào)量】

【FreeRTOS學(xué)習(xí)筆記——互斥型信號(hào)量】

【如何在FreeRTOS下實(shí)現(xiàn)低功耗——MSP430F5438平臺(tái)】


參考資料

【1】http://www.freertos.org/RTOS-Cortex-M3-M4.html


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