国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK

這篇具有很好參考價(jià)值的文章主要介紹了1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK

全部學(xué)習(xí)匯總:?g_FreeRTOS:?FreeRTOS學(xué)習(xí)筆記?(gitee.com)

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

上面是涉及到的源代碼,而這次需要分析的就是78、79行的兩個(gè)中斷。首先,需要確認(rèn)NVIC_SYSPRI2寄存器的作用。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

進(jìn)一步看里面相關(guān)的定義,從這里看這個(gè)注釋與代碼出現(xiàn)了不一致的地方。也就是這個(gè)0xe000ed20地址究竟是哪一個(gè)寄存器的地址,注釋與代碼的描述并不相同。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

這么看,注釋寫的應(yīng)該是更加準(zhǔn)確一些。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

這里,進(jìn)一步補(bǔ)充一下對(duì)應(yīng)的寄存器信息如上述截圖。

void?print_regs_info(void)
{
????printf("portNVIC_PENDSV_PRI?=?%x\n",?portNVIC_PENDSV_PRI);
????printf("portNVIC_SYSTICK_PRI?=?%x\n",?portNVIC_SYSTICK_PRI);
}

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

增加上面的代碼,直接打印一下結(jié)果如上。那么,上面的兩個(gè)寄存器設(shè)置其實(shí)是把高位的兩個(gè)字節(jié)全都設(shè)置為了每一個(gè)bit都是1。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

再次結(jié)合這一個(gè)信息,上面的操作有效的部分其實(shí)是把這兩個(gè)字節(jié)的高4bit全都設(shè)置為了1。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

再結(jié)合這部分信息,可以看得出來(lái)注釋的描述其實(shí)是對(duì)的。這兩個(gè)語(yǔ)句的操作實(shí)現(xiàn)的功能更是把Systick以及PendSV中斷的優(yōu)先級(jí)設(shè)置為15,也就是最低。其實(shí),功能分析到此,現(xiàn)在這兩個(gè)中斷的優(yōu)先級(jí)究竟應(yīng)該設(shè)置為多少是合理的暫且還是不明確的。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

接下來(lái),再看一下啟動(dòng)第一個(gè)任務(wù)的實(shí)現(xiàn)。首先看93行,這個(gè)是KEIL中的一個(gè)偽指令,主要實(shí)現(xiàn)的功能是保證匯編代碼中的堆棧能夠按照8字節(jié)對(duì)齊。那么,0xE000ED08這個(gè)地址是哪個(gè)寄存器呢?按照注釋,直接找一下文檔看看是否一致。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

首先確認(rèn)SCB的基地址,接下來(lái)看偏移量。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

偏移量從手冊(cè)中查出來(lái)是0x08,因此兩個(gè)組合出來(lái)的這個(gè)地址就是SCB_VTOR的地址。那么,這個(gè)寄存器中的數(shù)值現(xiàn)在是多少呢?直接通過(guò)代碼打印一下,對(duì)應(yīng)的測(cè)試代碼:

void?print_regs_info(void)
{
????/*ldr?r0,?=0xE000ED08
????ldr?r0,?[r0]
????ldr?r0,?[r0]*/

????uint32_t?reg_value?=?0xE000ED08;

????printf("result?1:?0x%x\n",?reg_value);
????reg_value?=?*((uint32_t?*)reg_value);
????printf("result?2:?0x%x\n",?reg_value);
????reg_value?=?*((uint32_t?*)reg_value);
????printf("result?3:?0x%x\n",?reg_value);
}

調(diào)用的位置在調(diào)度器啟動(dòng)之前。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

這是打印出來(lái)的效果。

這樣,繼續(xù)之前的匯編第102行。這一個(gè)操作實(shí)現(xiàn)的額是給msp設(shè)置數(shù)值為0x20001780。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

這個(gè)地址區(qū)從手冊(cè)中可以查出來(lái)是SRAM的區(qū)域,這樣,這一句實(shí)現(xiàn)的作用就是設(shè)置了堆棧在RAM區(qū)域的位置。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

這跟直接從仿真器中看到的寄存器數(shù)值也是一致的。各種仿真器千差萬(wàn)別,有時(shí)候覺(jué)得最順手的似乎還是printf。

1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK,FreeRTOS,stm32,javascript,嵌入式硬件

上面的這個(gè)MSP的操作看起來(lái)的確是有一點(diǎn)莫名其妙,或許是為了兼容不同的啟動(dòng)代碼而設(shè)計(jì)?

繼續(xù)往下,主動(dòng)產(chǎn)生一次系統(tǒng)調(diào)用。這里的參數(shù)0會(huì)被處理器給忽略掉,沒(méi)有什么實(shí)際的作用。為什么還有這么一個(gè)參數(shù),主要還是為了保證語(yǔ)法的正確性吧。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-834061.html

到了這里,關(guān)于1902_野火FreeRTOS教程內(nèi)核在STM32中用到的2個(gè)中斷PENDSV和SYSTICK的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32 CubeMX (第三步Freertos中斷管理和軟件定時(shí))

    STM32 CubeMX (第三步Freertos中斷管理和軟件定時(shí))

    學(xué)習(xí)使用Freertos第三步 在 FreeRTOS 中,中斷管理和軟件定時(shí): · taskENTER_CRITICAL() ·; 是一個(gè)函數(shù)在 FreeRTOS 中使用的,用于進(jìn)入臨界區(qū)(critical section)。在臨界區(qū)內(nèi),中斷會(huì)被禁用,這樣可以確保在多任務(wù)環(huán)境下共享資源的安全性。你可以在需要保護(hù)共享資源的代碼段中使用 ·

    2024年02月12日
    瀏覽(41)
  • STM32 hal庫(kù)使用筆記之FreeRTOS—任務(wù)創(chuàng)建、刪除,任務(wù)掛起、恢復(fù),任務(wù)中斷管理

    STM32 hal庫(kù)使用筆記之FreeRTOS—任務(wù)創(chuàng)建、刪除,任務(wù)掛起、恢復(fù),任務(wù)中斷管理

    一、簡(jiǎn)介 1.FreeRTOS簡(jiǎn)介 ? ? RTOS全稱為:Real Time OS,就是實(shí)時(shí)操作系統(tǒng),強(qiáng)調(diào)的是:實(shí)時(shí)性。而Free顯而易見(jiàn)體現(xiàn)的是其免費(fèi)性??偟膩?lái)說(shuō)這是一個(gè)免費(fèi)的嵌入式實(shí)時(shí)操作系統(tǒng)。 ? ? 其特點(diǎn)是:免費(fèi)開(kāi)源、可剪裁(獨(dú)立性強(qiáng),適應(yīng)范圍廣)、簡(jiǎn)單、優(yōu)先級(jí)/任務(wù)不限(但是受到不

    2024年02月04日
    瀏覽(22)
  • 基于STM32的實(shí)時(shí)操作系統(tǒng)FreeRTOS移植教程(手動(dòng)移植)_stm32移植freertos(1)

    基于STM32的實(shí)時(shí)操作系統(tǒng)FreeRTOS移植教程(手動(dòng)移植)_stm32移植freertos(1)

    直接意識(shí)代碼: 這是我們大腦最希望的添加代碼方式,很顯然他是 錯(cuò)的 , 兩個(gè)任務(wù)之間產(chǎn)生了相互的影響 ,使得兩個(gè)任務(wù)都執(zhí)行錯(cuò)誤,這種思想在 裸機(jī)開(kāi)發(fā) 中肯定是 錯(cuò)的 ,但是在我們的 RTOS 中他就可以是 對(duì)的 。 任務(wù)型代碼: 這是 獨(dú)立的兩個(gè)任務(wù)內(nèi)容 ,我們只需要把

    2024年04月10日
    瀏覽(29)
  • FreeRTOS在Cortex-M系列內(nèi)核中遇到的關(guān)于系統(tǒng)滴答中斷的問(wèn)題

    眾所周知,在Cortex-M內(nèi)核中,系統(tǒng)節(jié)拍由Systick時(shí)鐘提供,當(dāng)配置好系統(tǒng)滴答時(shí)鐘后,每次時(shí)鐘中斷就會(huì)觸發(fā)中斷處理函數(shù)?xPortSysTickHandler(), ? 這部分主要是依靠? xTaskIncrementTick(), 來(lái)判斷任務(wù)切換是否在此次系統(tǒng)時(shí)鐘中斷時(shí)被需要。如果是,則PendSV標(biāo)記置位,等待觸發(fā)PendS

    2024年02月08日
    瀏覽(20)
  • 【STM32教程】第四章 STM32的外部中斷EXTI

    【STM32教程】第四章 STM32的外部中斷EXTI

    案例代碼及相關(guān)資料下載鏈接: 鏈接:https://pan.baidu.com/s/1hsIibEmsB91xFclJd-YTYA?pwd=jauj? 提取碼:jauj?? 中斷系統(tǒng)的定義:中斷是指在主程序運(yùn)行過(guò)程中,出現(xiàn)了特定的中斷觸發(fā)條件(中斷源),使得CPU暫停當(dāng)前正在運(yùn)行的程序,轉(zhuǎn)而去處理中斷程序,處理完成后又返回原來(lái)被暫

    2024年02月09日
    瀏覽(28)
  • STM32CUBUMX配置RS485(中斷接收)--保姆級(jí)教程

    STM32CUBUMX配置RS485(中斷接收)--保姆級(jí)教程

    ———————————————————————————————————— ? 大家好哇!我是小光,嵌入式愛(ài)好者,一個(gè)想要成為系統(tǒng)架構(gòu)師的大三學(xué)生。 ?最近在開(kāi)發(fā)一個(gè)STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驅(qū)動(dòng),包括ADC、UART、RS485、EEPROM(IIC)、FLASH(SPI)等等。

    2024年02月16日
    瀏覽(19)
  • LVGL觸摸移植——stm32野火F103

    LVGL觸摸移植——stm32野火F103

    目錄 系列文章目錄 章目錄 目標(biāo) 一、認(rèn)識(shí)端口文件 二、使能?lv_port_indev.c? 三、接口函數(shù) 1.輸入設(shè)備初始化 四、Main函數(shù) 五、過(guò)程中的疑難雜癥 1.內(nèi)存不足 2、LCD白屏 五、效果 總結(jié) 在顯示的基礎(chǔ)上添加觸摸輸入 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 這兩個(gè)是

    2024年02月11日
    瀏覽(29)
  • 野火stm32指南者開(kāi)發(fā)板點(diǎn)亮LED

    野火stm32指南者開(kāi)發(fā)板點(diǎn)亮LED

    目錄 1.芯片手冊(cè)中的LED電路圖 2.官網(wǎng)手冊(cè) 3.代碼演示 3.1 stm32f10x.h 頭文件 3.2 點(diǎn)亮綠燈 3.3 點(diǎn)亮藍(lán)燈 3.4 點(diǎn)亮紅燈 3.5 LED燈閃爍,綠燈閃爍 。 3.6 紅綠藍(lán)三色LED燈切換閃爍 3.1 stm32f10x.h 頭文件 3.2 點(diǎn)亮綠燈 3.3 點(diǎn)亮藍(lán)燈 3.4 點(diǎn)亮紅燈 3.5 LED燈閃爍,綠燈閃爍 。 3.6 紅綠藍(lán)三色LED燈切

    2024年02月13日
    瀏覽(25)
  • stm32使用HAL庫(kù)配置串口中斷收發(fā)數(shù)據(jù)(保姆級(jí)教程)

    stm32使用HAL庫(kù)配置串口中斷收發(fā)數(shù)據(jù)(保姆級(jí)教程)

    最近在學(xué)習(xí)使用hal庫(kù),之前都是用標(biāo)準(zhǔn)庫(kù)來(lái)寫32代碼,所以發(fā)個(gè)帖子記錄一下學(xué)習(xí)過(guò)程,同時(shí)也希望能幫助到一些也在學(xué)習(xí)HAL庫(kù)的同學(xué)。 接下來(lái)進(jìn)入正題 串口中斷是指當(dāng)單片機(jī)收到一個(gè)串口數(shù)據(jù)時(shí),單片機(jī)會(huì)產(chǎn)生一個(gè)中斷信號(hào),通知處理器中斷服務(wù)程序去處理這個(gè)接收到的數(shù)

    2024年02月07日
    瀏覽(23)
  • FreeRTOS教程3 中斷管理

    正點(diǎn)原子stm32f407探索者開(kāi)發(fā)板V2.4 STM32CubeMX軟件(Version 6.10.0) Keil μVision5 IDE(MDK-Arm) 野火DAP仿真器 XCOM V2.6串口助手 本文主要學(xué)習(xí) FreeRTOS 中斷管理的相關(guān)知識(shí), 包括系統(tǒng)硬件中斷、 FreeRTOS 可管理的中斷、中斷屏蔽和一些其他注意事項(xiàng)等知識(shí) 根據(jù)STM32CubeMX教程4 EXTI 按鍵外部

    2024年03月13日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包