0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時(shí)的注意事項(xiàng)

RA生態(tài)工作室 ? 2024-03-29 08:05 ? 次閱讀
wKgZomaCLKyAcpu6AAALN2XKaw0639.png

在裸機(jī)系統(tǒng)中,以一定的時(shí)間間隔循環(huán)調(diào)用CTSU APIs

QE for Cap Touch工具生成的Cap Touch Sample Code

?使用While(true)實(shí)現(xiàn)循環(huán)調(diào)用CTSU APIs

?使用R_BSP_SoftwareDelay()實(shí)現(xiàn)適當(dāng)?shù)亩〞r(shí)間隔

嵌入式多任務(wù)系統(tǒng)中,也需要以一定的時(shí)間間隔循環(huán)運(yùn)行CTSU APIs

?CTSU運(yùn)行涉及的相關(guān)ISR以及API可直接移植到多任務(wù)系統(tǒng)中

?需要對(duì)QE for Cap Touch工具生成的CapTouch Sample Codee進(jìn)行改寫

wKgaomaCLLiAPDjyAAAPhSDDNVY788.png

CTSU底層驅(qū)動(dòng)程序和應(yīng)用程序在向RTOS系統(tǒng)中移植時(shí),一般需要考慮的基本內(nèi)容

?RTOSSystick的設(shè)定

?RTOS延時(shí)函數(shù)的使用

?MCU中斷優(yōu)先級(jí)與RTOS任務(wù)優(yōu)先級(jí)的設(shè)置

?QE for Cap Touch工具生成的CTSU CapTouch Sample Code的改寫

Systick的設(shè)定

FreeRTOS為例,使用e2 studio新建的FreeRTOS工程中, Systick的默認(rèn)設(shè)定為1ms

wKgaomaCLMeABkvvAAFP1JhxH9E531.png

RTOS延時(shí)函數(shù)的使用

以FreeRTOS為例,F(xiàn)reeRTOS延時(shí)函數(shù)vTaskDelay()和vTaskDelayUntil()

? FreeRTOS提供了兩個(gè)系統(tǒng)延時(shí)函數(shù):相對(duì)延時(shí)函數(shù)vTaskDelay()和絕對(duì)延時(shí)vTaskDelayUntil()。

?這兩個(gè)延時(shí)函數(shù)和自己實(shí)現(xiàn)的延時(shí)函數(shù)不同,這兩個(gè)延時(shí)函數(shù)一旦被調(diào)用,當(dāng)前任務(wù)會(huì)立刻進(jìn)入阻塞狀態(tài),而自己寫的延時(shí)函數(shù)(以for循環(huán)等形式實(shí)現(xiàn)的軟件延時(shí))會(huì)被當(dāng)做有效任務(wù)而一直執(zhí)行。

?相對(duì)延時(shí)是指每次延時(shí)都是從任務(wù)執(zhí)行函數(shù)vTaskDelay()開始,延時(shí)指定的時(shí)間結(jié)束;

vTaskDelay()函數(shù)的參數(shù)xTicksToDelay表示延時(shí)多少個(gè)系統(tǒng)節(jié)拍時(shí)鐘周期(Systick)。

void vTaskDelay( const TickType_t xTicksToDelay )

?絕對(duì)延時(shí)是指每隔指定的時(shí)間,執(zhí)行一次調(diào)用vTaskDelayUntil()函數(shù)的任務(wù)。換句話說:任務(wù)以固定的頻率執(zhí)行

MCU中斷優(yōu)先級(jí)與RTOS任務(wù)優(yōu)先級(jí)的設(shè)置

以FreeRTOS任務(wù)優(yōu)先級(jí)為例說明

FreeRTOS中任務(wù)的最高優(yōu)先級(jí)是通過FreeRTOSConfig.h文件中的configMAX_PRIORITIES進(jìn)行配置的,用戶實(shí)際可以使用的優(yōu)先級(jí)范圍是0到configMAX_PRIORITIES – 1,建議用戶配置宏定義configMAX_PRIORITIES的最大值不要超過32。根據(jù)實(shí)際應(yīng)用配置,配置越大,需要的內(nèi)存空間越大

使用e2 studio新建的FreeRTOS工程中, configMAX_PRIORITIES默認(rèn)為5

wKgaomaCLNmAb7yiAAL03gvOgNE131.png

MCU中斷優(yōu)先級(jí)和FreeRTOS任務(wù)優(yōu)先級(jí)區(qū)別

簡(jiǎn)單地說,這兩者之間沒有任何關(guān)系,不管中斷的優(yōu)先級(jí)是多少, MCU中斷的優(yōu)先級(jí)永遠(yuǎn)高于任何FreeRTOS任務(wù)的優(yōu)先級(jí),即在執(zhí)行的過程中, MCU中斷來了就開始執(zhí)行中斷服務(wù)程序。

MCU中斷優(yōu)先級(jí)數(shù)值越小,優(yōu)先級(jí)就越高;而FreeRTOS的任務(wù)優(yōu)先級(jí)是,任務(wù)優(yōu)先級(jí)數(shù)值越小,任務(wù)優(yōu)先級(jí)越低。

MCU中斷優(yōu)先級(jí)與RTOS任務(wù)優(yōu)先級(jí)

通常的優(yōu)先級(jí)分配方案:

? IRQ任務(wù):IRQ任務(wù)是指通過中斷服務(wù)程序進(jìn)行觸發(fā)的任務(wù),所有任務(wù)中優(yōu)先級(jí)最高

?高優(yōu)先級(jí)后臺(tái)任務(wù):比如按鍵檢測(cè)、觸摸檢測(cè)、USB消息處理

?低優(yōu)先級(jí)時(shí)間調(diào)度任務(wù):比如LCD界面顯示、LED數(shù)碼管顯示

IRQ任務(wù)和高優(yōu)先級(jí)任務(wù)必須設(shè)置為阻塞式(調(diào)用消息等待或者延遲等函數(shù)),只有這樣高優(yōu)先級(jí)任務(wù)才會(huì) 釋放CPU的使用權(quán),從而低優(yōu)先級(jí)任務(wù)才會(huì)有機(jī)會(huì)得到執(zhí)行。

CTSU CapTouch觸摸按鍵任務(wù)建議配置成高優(yōu)先級(jí)任務(wù),并且設(shè)置成阻塞式。

CTSU CapTouch Sample Code的改寫

默認(rèn)的CTSU CapTouch Sample Code

?QE for Cap Touch工具可生成默認(rèn)的CapTouch Sample Code

?Sample Code中使用While(1)死循環(huán)等待測(cè)量完成,以及使用R_BSP_SoftwareDelay()實(shí)現(xiàn)CTSU APIs20ms左右定時(shí)間隔的循環(huán)調(diào)用

?CapTouch觸摸按鍵對(duì)于實(shí)時(shí)性的要求并不高,但是涉及CTSU運(yùn)行的很多參數(shù)都與循環(huán)調(diào)用的定時(shí)間隔有關(guān),因此較大程度決定了觸摸按鍵的靈敏度

例如Drift Correction Interval

下圖中的設(shè)定值為255,實(shí)際值為255 x API定時(shí)調(diào)用間隔,按鍵按下的positive noise filter和按鍵釋放的Negative Noise Filter也是如此。

wKgaomaCLQSAZV3lAAKUyjA_B1g063.png

因此,用戶需要根據(jù)系統(tǒng)對(duì)Cap Touch觸摸按鍵的實(shí)時(shí)性和靈敏度的要求,合理的改寫默認(rèn)的CTSU CapTouch Sample Code

wKgZomaCLRWAWyfNAAJ0CsyrPeY237.png

對(duì)默認(rèn)的CTSU CapTouch Sample Code進(jìn)行改寫

FreeRTOS為例

? 合理設(shè)定Cap Touch Thread的優(yōu)先級(jí),例如設(shè)定為最高優(yōu)先級(jí)

?API調(diào)用報(bào)錯(cuò)時(shí)的改寫

while(ture){} 改為 return

?延時(shí)R_BSP_SoftwareDelay() 的改寫

可改為vTaskDelay()

?Qe_touch_main()以及CTSU_FN_ISR測(cè)量完成中斷Callback函數(shù)的改寫

增加OS TimerSemaphore,定時(shí)啟動(dòng)CTSU的測(cè)量,釋放while(1)等待測(cè)量完成中斷時(shí)的CPU時(shí)間,此時(shí)可取消while(0 == g_qe_touch_flag)R_BSP_SoftwareDelay() / vTaskDelay()

wKgZomaCLSGAD26nAAKQ0QeZdBs047.png

wKgZomaCLS6AbGmgAAAPWutN1U4223.png

目的:分析整個(gè)系統(tǒng)中CapTouch線程與用戶線程的運(yùn)行關(guān)系

根據(jù)觸摸按鍵的數(shù)量:

?確保CapTouch線程以合適的時(shí)間間隔循環(huán)運(yùn)行

?確保CapTouch線程的按鍵處理階段,不被其他用戶線程搶占

?確保CapTouch線程的觸摸按鍵測(cè)量階段,其他用戶線程可以運(yùn)行

一些RTOS支持的分析工具

FreeRTOS:SEGGER Systemviewer

Azure ThreadX:TraceX

RT-Thread:SEGGER Systemviewer

wKgaomaCLT2AEZhDAAAUes7L1kk405.png

SEGGER SystemViewer應(yīng)用示例

CapTouch觸摸按鍵的基本運(yùn)行過程

wKgZomaCLUqABwqDAADwFmpojjA721.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351186
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19123

    瀏覽量

    305150
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6822

    瀏覽量

    123331
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CTSU程序嵌入式OS操作系統(tǒng)移植時(shí)的注意事項(xiàng)

    APIs ??CTSU 運(yùn)行涉及的相關(guān)ISR以及API可直接移植到多任務(wù)系統(tǒng)中 ??需要對(duì) QE for Cap Touch 工具生成的 CapTouch Sample Codee 進(jìn)行改寫
    的頭像 發(fā)表于 08-11 12:15 ?1423次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>CTSU</b><b class='flag-5'>程序</b><b class='flag-5'>在</b><b class='flag-5'>向</b><b class='flag-5'>嵌入式</b><b class='flag-5'>OS</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>移植</b>時(shí)的<b class='flag-5'>注意事項(xiàng)</b>

    嵌入式操作系統(tǒng)及其特點(diǎn)

    嵌入式操作系統(tǒng)嵌入式應(yīng)用軟件的開發(fā)平臺(tái),嵌入式操作系統(tǒng)(OPerating System,OS
    發(fā)表于 07-11 16:51

    嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-IILPC2378上怎么移植

    操作系統(tǒng)及CPU是什么 μC/OS-Ⅱ內(nèi)核結(jié)構(gòu)及工作原理嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-IILP
    發(fā)表于 04-26 06:32

    怎樣一步一步移植μC/OS嵌入式操作系統(tǒng)

    基于STM32F1怎樣去移植μC/OS嵌入式操作系統(tǒng)呢?基于MDK-ARM V5怎樣去移植μC/OS
    發(fā)表于 11-02 09:09

    實(shí)時(shí)操作系統(tǒng)μC/OS-II LPC2210 上的移植研究

    嵌入式實(shí)時(shí)操作系統(tǒng)目標(biāo)處理器平臺(tái)上的移植嵌入式軟件開發(fā)的基礎(chǔ)和前提。論文實(shí)現(xiàn)了源碼公開的嵌入式
    發(fā)表于 06-03 09:48 ?20次下載

    基于ARM的嵌入式操作系統(tǒng)μC/OS-II的移植

        介紹了μC/OS-II RTOS 的內(nèi)核結(jié)構(gòu)和任務(wù)管理,闡述了ARM 嵌入式芯片的體系結(jié)構(gòu),給出了基于ARM 的嵌入式操作系統(tǒng)μC/
    發(fā)表于 09-04 09:49 ?28次下載

    MINIX嵌入式操作系統(tǒng)進(jìn)程調(diào)度的移植

    MINIX操作系統(tǒng)作為與UNIX操作系統(tǒng)完全兼容但內(nèi)部結(jié)構(gòu)有完全不同的操作系統(tǒng),采用微內(nèi)核結(jié)構(gòu).分析了MINIX 3操作系統(tǒng)作為嵌入式
    發(fā)表于 11-07 15:49 ?18次下載
    MINIX<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>進(jìn)程調(diào)度的<b class='flag-5'>移植</b>

    嵌入式操作系統(tǒng)移植

    嵌入式操作系統(tǒng)移植,感興趣的小伙伴們可以看看。
    發(fā)表于 11-08 18:13 ?3次下載

    嵌入式實(shí)時(shí)操作系統(tǒng)μC_OS_LPC1788上的移植及應(yīng)用

    嵌入式實(shí)時(shí)操作系統(tǒng)μC_OS_LPC1788上的移植及應(yīng)用
    發(fā)表于 09-25 09:35 ?10次下載
    <b class='flag-5'>嵌入式</b>實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>μC_<b class='flag-5'>OS</b>_<b class='flag-5'>在</b>LPC1788上的<b class='flag-5'>移植</b>及應(yīng)用

    嵌入式實(shí)時(shí)操作系統(tǒng)的應(yīng)用詳細(xì)教程說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式實(shí)時(shí)操作系統(tǒng)的應(yīng)用詳細(xì)教程說明包括了:1 嵌入式系統(tǒng)嵌入式操作系統(tǒng)
    發(fā)表于 12-05 08:00 ?2次下載
    <b class='flag-5'>嵌入式</b>實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>的應(yīng)用詳細(xì)教程說明

    嵌入式操作系統(tǒng)FREERTOS的移植.

    嵌入式操作系統(tǒng)FREERTOS的移植.(濟(jì)南嵌入式開發(fā)招聘)-嵌入式操作系統(tǒng)FREERTOS
    發(fā)表于 07-30 12:01 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>FREERTOS的<b class='flag-5'>移植</b>.

    嵌入式實(shí)時(shí)操作系統(tǒng)FreeRTOSARM7上移植實(shí)現(xiàn)

    嵌入式實(shí)時(shí)操作系統(tǒng)FreeRTOSARM7上移植實(shí)現(xiàn)(嵌入式開發(fā)工程師待遇)-嵌入式實(shí)時(shí)
    發(fā)表于 07-30 12:05 ?21次下載
    <b class='flag-5'>嵌入式</b>實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>FreeRTOS<b class='flag-5'>在</b>ARM7上<b class='flag-5'>移植</b>實(shí)現(xiàn)

    嵌入式操作系統(tǒng)FreeRTOS的原理與移植實(shí)現(xiàn)

    嵌入式操作系統(tǒng)FreeRTOS的原理與移植實(shí)現(xiàn)(嵌入式開發(fā)真的很難嗎)-隨著嵌入式技術(shù)的不斷發(fā)展,嵌入式
    發(fā)表于 08-04 13:50 ?16次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>FreeRTOS的原理與<b class='flag-5'>移植</b>實(shí)現(xiàn)

    嵌入式實(shí)時(shí)操作系統(tǒng)μC、OS-IIARM上的移植.

    嵌入式實(shí)時(shí)操作系統(tǒng)μC、OS-IIARM上的移植.(嵌入式開發(fā)環(huán)境是什么)-本文主要研究基于
    發(fā)表于 08-04 14:20 ?13次下載
    <b class='flag-5'>嵌入式</b>實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>μC、<b class='flag-5'>OS</b>-II<b class='flag-5'>在</b>ARM上的<b class='flag-5'>移植</b>.

    嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-ⅡLPC1788上的移植及應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-ⅡLPC1788上的移植及應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 10-23 14:07 ?0次下載
    <b class='flag-5'>嵌入式</b>實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>μC/<b class='flag-5'>OS</b>-Ⅱ<b class='flag-5'>在</b>LPC1788上的<b class='flag-5'>移植</b>及應(yīng)用