精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

瑞薩CTSU程序在向嵌入式OS操作系統移植時的注意事項

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

在裸機系統中,以一定的時間間隔循環調用CTSU APIs

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

?使用While(true)實現循環調用CTSU APIs

?使用R_BSP_SoftwareDelay()實現適當的定時間隔

嵌入式多任務系統中,也需要以一定的時間間隔循環運行CTSU APIs

?CTSU運行涉及的相關ISR以及API可直接移植到多任務系統中

?需要對QE for Cap Touch工具生成的CapTouch Sample Codee進行改寫

wKgaomaCLLiAPDjyAAAPhSDDNVY788.png

CTSU底層驅動程序和應用程序在向RTOS系統中移植時,一般需要考慮的基本內容

?RTOSSystick的設定

?RTOS延時函數的使用

?MCU中斷優先級與RTOS任務優先級的設置

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

Systick的設定

FreeRTOS為例,使用e2 studio新建的FreeRTOS工程中, Systick的默認設定為1ms

wKgaomaCLMeABkvvAAFP1JhxH9E531.png

RTOS延時函數的使用

以FreeRTOS為例,FreeRTOS延時函數vTaskDelay()和vTaskDelayUntil()

? FreeRTOS提供了兩個系統延時函數:相對延時函數vTaskDelay()和絕對延時vTaskDelayUntil()。

?這兩個延時函數和自己實現的延時函數不同,這兩個延時函數一旦被調用,當前任務會立刻進入阻塞狀態,而自己寫的延時函數(以for循環等形式實現的軟件延時)會被當做有效任務而一直執行。

?相對延時是指每次延時都是從任務執行函數vTaskDelay()開始,延時指定的時間結束;

vTaskDelay()函數的參數xTicksToDelay表示延時多少個系統節拍時鐘周期(Systick)。

void vTaskDelay( const TickType_t xTicksToDelay )

?絕對延時是指每隔指定的時間,執行一次調用vTaskDelayUntil()函數的任務。換句話說:任務以固定的頻率執行

MCU中斷優先級與RTOS任務優先級的設置

以FreeRTOS任務優先級為例說明

FreeRTOS中任務的最高優先級是通過FreeRTOSConfig.h文件中的configMAX_PRIORITIES進行配置的,用戶實際可以使用的優先級范圍是0到configMAX_PRIORITIES – 1,建議用戶配置宏定義configMAX_PRIORITIES的最大值不要超過32。根據實際應用配置,配置越大,需要的內存空間越大

使用e2 studio新建的FreeRTOS工程中, configMAX_PRIORITIES默認為5

wKgaomaCLNmAb7yiAAL03gvOgNE131.png

MCU中斷優先級和FreeRTOS任務優先級區別

簡單地說,這兩者之間沒有任何關系,不管中斷的優先級是多少, MCU中斷的優先級永遠高于任何FreeRTOS任務的優先級,即在執行的過程中, MCU中斷來了就開始執行中斷服務程序。

MCU中斷優先級數值越小,優先級就越高;而FreeRTOS的任務優先級是,任務優先級數值越小,任務優先級越低。

MCU中斷優先級與RTOS任務優先級

通常的優先級分配方案:

? IRQ任務:IRQ任務是指通過中斷服務程序進行觸發的任務,所有任務中優先級最高

?高優先級后臺任務:比如按鍵檢測、觸摸檢測、USB消息處理

?低優先級時間調度任務:比如LCD界面顯示、LED數碼管顯示

IRQ任務和高優先級任務必須設置為阻塞式(調用消息等待或者延遲等函數),只有這樣高優先級任務才會 釋放CPU的使用權,從而低優先級任務才會有機會得到執行。

CTSU CapTouch觸摸按鍵任務建議配置成高優先級任務,并且設置成阻塞式。

CTSU CapTouch Sample Code的改寫

默認的CTSU CapTouch Sample Code

?QE for Cap Touch工具可生成默認的CapTouch Sample Code

?Sample Code中使用While(1)死循環等待測量完成,以及使用R_BSP_SoftwareDelay()實現CTSU APIs20ms左右定時間隔的循環調用

?CapTouch觸摸按鍵對于實時性的要求并不高,但是涉及CTSU運行的很多參數都與循環調用的定時間隔有關,因此較大程度決定了觸摸按鍵的靈敏度

例如Drift Correction Interval

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

wKgaomaCLQSAZV3lAAKUyjA_B1g063.png

因此,用戶需要根據系統對Cap Touch觸摸按鍵的實時性和靈敏度的要求,合理的改寫默認的CTSU CapTouch Sample Code

wKgZomaCLRWAWyfNAAJ0CsyrPeY237.png

對默認的CTSU CapTouch Sample Code進行改寫

FreeRTOS為例

? 合理設定Cap Touch Thread的優先級,例如設定為最高優先級

?API調用報錯時的改寫

while(ture){} 改為 return

?延時R_BSP_SoftwareDelay() 的改寫

可改為vTaskDelay()

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

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

wKgZomaCLSGAD26nAAKQ0QeZdBs047.png

wKgZomaCLS6AbGmgAAAPWutN1U4223.png

目的:分析整個系統中CapTouch線程與用戶線程的運行關系

根據觸摸按鍵的數量:

?確保CapTouch線程以合適的時間間隔循環運行

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

?確保CapTouch線程的觸摸按鍵測量階段,其他用戶線程可以運行

一些RTOS支持的分析工具

FreeRTOS:SEGGER Systemviewer

Azure ThreadX:TraceX

RT-Thread:SEGGER Systemviewer

wKgaomaCLT2AEZhDAAAUes7L1kk405.png

SEGGER SystemViewer應用示例

CapTouch觸摸按鍵的基本運行過程

wKgZomaCLUqABwqDAADwFmpojjA721.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17019

    瀏覽量

    350373
  • 嵌入式
    +關注

    關注

    5071

    文章

    19026

    瀏覽量

    303497
  • 操作系統
    +關注

    關注

    37

    文章

    6747

    瀏覽量

    123201
收藏 人收藏

    評論

    相關推薦

    CTSU程序嵌入式OS操作系統移植時的注意事項

    APIs ??CTSU 運行涉及的相關ISR以及API可直接移植到多任務系統中 ??需要對 QE for Cap Touch 工具生成的 CapTouch Sample Codee 進行改寫
    的頭像 發表于 08-11 12:15 ?1380次閱讀
    <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'>操作系統</b><b class='flag-5'>移植</b>時的<b class='flag-5'>注意事項</b>

    嵌入式操作系統及其特點

    嵌入式操作系統嵌入式應用軟件的開發平臺,嵌入式操作系統(OPerating System,OS
    發表于 07-11 16:51

    嵌入式實時操作系統μC/OS-IILPC2378上怎么移植?

    操作系統及CPU是什么 μC/OS-Ⅱ內核結構及工作原理嵌入式實時操作系統μC/OS-IILP
    發表于 04-26 06:32

    怎樣一步一步移植μC/OS嵌入式操作系統

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

    實時操作系統μC/OS-II LPC2210 上的移植研究

    嵌入式實時操作系統目標處理器平臺上的移植嵌入式軟件開發的基礎和前提。論文實現了源碼公開的嵌入式
    發表于 06-03 09:48 ?20次下載

    基于ARM的嵌入式操作系統μC/OS-II的移植

        介紹了μC/OS-II RTOS 的內核結構和任務管理,闡述了ARM 嵌入式芯片的體系結構,給出了基于ARM 的嵌入式操作系統μC/
    發表于 09-04 09:49 ?28次下載

    MINIX嵌入式操作系統進程調度的移植

    MINIX操作系統作為與UNIX操作系統完全兼容但內部結構有完全不同的操作系統,采用微內核結構.分析了MINIX 3操作系統作為嵌入式
    發表于 11-07 15:49 ?18次下載
    MINIX<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>進程調度的<b class='flag-5'>移植</b>

    嵌入式操作系統移植

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

    嵌入式實時操作系統μC_OS_LPC1788上的移植及應用

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

    嵌入式實時操作系統的應用詳細教程說明

    本文檔的主要內容詳細介紹的是嵌入式實時操作系統的應用詳細教程說明包括了:1 嵌入式系統嵌入式操作系統
    發表于 12-05 08:00 ?2次下載
    <b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統</b>的應用詳細教程說明

    嵌入式操作系統FREERTOS的移植.

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

    嵌入式實時操作系統FreeRTOSARM7上移植實現

    嵌入式實時操作系統FreeRTOSARM7上移植實現(嵌入式開發工程師待遇)-嵌入式實時
    發表于 07-30 12:05 ?20次下載
    <b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統</b>FreeRTOS<b class='flag-5'>在</b>ARM7上<b class='flag-5'>移植</b>實現

    嵌入式操作系統FreeRTOS的原理與移植實現

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

    嵌入式實時操作系統μC、OS-IIARM上的移植.

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

    嵌入式實時操作系統μC/OS-ⅡLPC1788上的移植及應用

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