色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

瑞薩RA產(chǎn)品家族初學(xué)者指南-第9章(1)

瑞薩MCU小百科 ? 來(lái)源:未知 ? 2022-11-15 12:15 ? 次閱讀


瑞薩RA產(chǎn)品家族初學(xué)者指南》系列文章已收錄成合集,歡迎點(diǎn)擊上方查看合集并訂閱!


9. 使用實(shí)時(shí)操作系統(tǒng)


您將在本章中學(xué)到以下內(nèi)容:

  • 什么是線程、信號(hào)量和隊(duì)列,以及如何使用它們。

  • 如何在e2 studio中向程序添加線程和信號(hào)量

  • 如何在RTOS控制下通過(guò)按鈕切換LED


上一章中的練習(xí)已經(jīng)利用了瑞薩RA系列單片機(jī)MCU)靈活配置軟件包(FSP)的很大一部分。在本章中,您將使用FreeRTOS實(shí)時(shí)操作系統(tǒng)創(chuàng)建一個(gè)小型應(yīng)用程序,利用線程控制LED并利用信號(hào)量實(shí)現(xiàn)與按鈕的同步。您將親身體驗(yàn)到這實(shí)際上僅需要幾個(gè)步驟。


我們將從頭開(kāi)始創(chuàng)建完整的項(xiàng)目,因此如果您沒(méi)有進(jìn)行過(guò)之前的實(shí)驗(yàn),請(qǐng)不必?fù)?dān)心。


本章目錄

  1. 線程、信號(hào)量和隊(duì)列

  2. 使用e2 studio將線程添加到FreeRTOS中


9.1 線程、信號(hào)量和隊(duì)列

在我們實(shí)際深入進(jìn)行此練習(xí)之前,需要定義將在本章和下一章中使用的一些術(shù)語(yǔ),以確保我們能夠達(dá)成共識(shí)。

首先,需要定義術(shù)語(yǔ)“線程”。如果您更習(xí)慣于“任務(wù)”這個(gè)表達(dá)方式,只需把線程看作是一種任務(wù)。有些人甚至互換使用這兩個(gè)短語(yǔ)。當(dāng)使用實(shí)時(shí)操作系統(tǒng)(RTOS)時(shí),單片機(jī)上運(yùn)行的應(yīng)用程序?qū)⒉鸱譃閹讉€(gè)較小的半獨(dú)立代碼塊,每個(gè)代碼塊通常控制程序的一個(gè)方面。這些小片段稱(chēng)為線程。一個(gè)應(yīng)用程序中可以存在多個(gè)線程,但是在任何給定時(shí)間都只能有一個(gè)線程處于活動(dòng)狀態(tài),因?yàn)镽A系列單片機(jī)是單核器件。每個(gè)線程都有自己的堆棧空間,如果需要安全的上下文,則可以將其置于MCU的安全側(cè)。每個(gè)線程還分配有優(yōu)先級(jí)(相對(duì)于應(yīng)用程序中的其他線程),并且可以處于不同的狀態(tài),例如運(yùn)行、就緒、阻塞或暫停。在FreeRTOS中,可以通過(guò)調(diào)用eTaskGetState()API函數(shù)來(lái)查詢線程的狀態(tài)。線程間信號(hào)傳輸、同步或通信是通過(guò)信號(hào)量、隊(duì)列、互斥、通知、直接任務(wù)通知或者流和消息緩沖區(qū)來(lái)實(shí)現(xiàn)的。

信號(hào)量是RTOS的資源,可用于傳輸事件和線程同步(以產(chǎn)生者-使用者方式)。使用信號(hào)量允許應(yīng)用程序暫停線程,直到事件發(fā)生并發(fā)布信號(hào)量。如果沒(méi)有RTOS,就需要不斷地輪詢標(biāo)志變量或創(chuàng)建代碼來(lái)執(zhí)行中斷服務(wù)程序(ISR)中的某個(gè)操作,這會(huì)在相當(dāng)長(zhǎng)的一段時(shí)間內(nèi)阻塞其他中斷。使用信號(hào)量可快速退出ISR并將操作推遲到相關(guān)線程。

FreeRTOS提供計(jì)數(shù)信號(hào)量和二進(jìn)制信號(hào)量。盡管二進(jìn)制信號(hào)量由于只能采用兩個(gè)值(0和1)而非常適合實(shí)現(xiàn)任務(wù)之間或中斷與任務(wù)之間的同步,但是計(jì)數(shù)信號(hào)量的計(jì)數(shù)范圍可涵蓋0到用戶在FSP配置器中創(chuàng)建信號(hào)量期間指定的最大計(jì)數(shù)。默認(rèn)值為256,可支持設(shè)計(jì)人員執(zhí)行更復(fù)雜的同步操作。

每個(gè)信號(hào)量都有兩個(gè)相關(guān)的基本操作:

xSemaphoreTake()(將使信號(hào)量遞減1)和xSemaphoreGive()(將使信號(hào)量遞增1)。

這兩個(gè)函數(shù)有兩種形式:一種是可以從中斷服務(wù)程序內(nèi)部調(diào)用(xSemaphoreTakeFromISR()xSemaphoreGiveFromThread())的形式,另一種則是上述可以在線程的正常上下文中調(diào)用的形式。


我們需要討論的最后一個(gè)術(shù)語(yǔ)是隊(duì)列,即使在本練習(xí)中不使用隊(duì)列,下一章的練習(xí)中也會(huì)使用。報(bào)文隊(duì)列是線程間通信的主要方法,它允許在任務(wù)之間或中斷與任務(wù)之間發(fā)送消息。消息隊(duì)列中可以有一條或多條消息。數(shù)據(jù)(也可以是指向更大緩沖區(qū)的指針)會(huì)復(fù)制到隊(duì)列中,即,它不存儲(chǔ)引用而是消息本身。新消息通常置于隊(duì)列的末尾,但也可以直接發(fā)送到開(kāi)頭。接收到的消息將從前面開(kāi)始刪除。

允許的消息大小可在設(shè)計(jì)時(shí)通過(guò)FSP配置器指定。默認(rèn)項(xiàng)大小為4個(gè)字節(jié),默認(rèn)隊(duì)列長(zhǎng)度(表示隊(duì)列中可存儲(chǔ)的項(xiàng)數(shù))為20。所有項(xiàng)的大小必須相同。FreeRTOS中的隊(duì)列數(shù)沒(méi)有限制;惟一的限制是系統(tǒng)中可用的存儲(chǔ)空間。使用xQueueSend()函數(shù)將消息放入隊(duì)列中,并通過(guò)xQueueReceive()從隊(duì)列中讀取消息。與信號(hào)量一樣,函數(shù)有兩種版本:一種可以從線程的上下文調(diào)用,另一種可以從ISR內(nèi)部調(diào)用。


9.2 使用e2 studio將線程添加到FreeRTOS中

接下來(lái)的練習(xí)也是基于EK-RA6M4評(píng)估板。這次,我們將使用電路板左上方的藍(lán)色按鈕S1向應(yīng)用程序傳輸事件,應(yīng)用程序?qū)⑶袚Q綠色LED2進(jìn)行響應(yīng)。為實(shí)現(xiàn)目標(biāo),我們將使用FreeRTOS,事件的處理將在線程內(nèi)進(jìn)行,并通過(guò)信號(hào)量進(jìn)行通知。


像往常一樣,第一步是使用項(xiàng)目配置器創(chuàng)建一個(gè)新項(xiàng)目,這已在第4章第8章中做過(guò)練習(xí)。首先,轉(zhuǎn)到“File → New → C/C++ Project”(文件 → 新建 → C/C++項(xiàng)目)。在所出現(xiàn)窗口的側(cè)邊欄中選擇Renesas RA,并突出顯示“Renesas RA C/C++ Project”(瑞薩RA C/C++項(xiàng)目)條目。單擊“Next”(下一步)并在出現(xiàn)的屏幕上輸入項(xiàng)目名稱(chēng),例如MyRtosProject。再次單擊“Next”(下一步)。此操作將轉(zhuǎn)到“Device and Tools Selection”(器件和工具選擇)窗口。首先,選擇一個(gè)電路板。選擇EK-RA6M4并將相應(yīng)的器件設(shè)置為R7FA6M4AF3CFB(如果尚未列出)。查看工具鏈:它應(yīng)顯示為GCC Arm Embedded。單擊“Next”(下一步)繼續(xù)操作。


在當(dāng)前出現(xiàn)的屏幕中,可以在非TrustZone與安全和非安全TrustZone項(xiàng)目之間進(jìn)行選擇。保持“Flat(NonTrustZone)Project”(扁平化(非TrustZone)項(xiàng)目)處于選中狀態(tài),然后單擊“Next”(下一步)。隨即出現(xiàn)“Build Artifact andRTOSSelection”(構(gòu)建工件和RTOS選擇)窗口。保持設(shè)置不變,即在“Build Artifact Selection”(構(gòu)建工件選擇)下選擇“Executable”(可執(zhí)行文件),在“RTOS Selection”(RTOS選擇)下選擇FreeRTOS。單擊“Next”(下一步),轉(zhuǎn)到下一個(gè)名為“Project Template Selection”(項(xiàng)目模板選擇)的屏幕。在此,選擇“FreeRTOS – Minimal – Static Allocation”(FreeRTOS – 最小化 – 靜態(tài)分配)。


最后,單擊“Finish”(完成),在配置器生成項(xiàng)目后,e2 studio將詢問(wèn)您是否切換到“FSP Configuration”(FSP配置)透視圖。透視圖出現(xiàn)后,直接轉(zhuǎn)到“Stacks”(堆)選項(xiàng)卡。該選項(xiàng)卡將在“Threads”(線程)窗格中顯示“HAL/Common”(HAL/通用)線程的單個(gè)條目,其中包含I/O端口的驅(qū)動(dòng)程序。單擊窗格頂部的“New Thread”(新線程)圖標(biāo)(請(qǐng)參見(jiàn)圖9-1添加新線程)。


圖9-1:在FSP配置器出現(xiàn)之后,將僅顯示一個(gè)線程。選擇“New Thread”(新線程)按鈕,添加另一個(gè)線程


現(xiàn)在,在“Properties”(屬性)視圖中更改新線程的屬性:將“Symbol”(符號(hào))重命名為led_thread,將“Name”(名稱(chēng))重命名為LED Thread。其他屬性保持默認(rèn)值。在“LED Thread Stack”(LED線程堆)窗格中,單擊“New Stack”(新線程)按鈕圖標(biāo),選擇“Driver → Input → External IRQ Driver on r_icu”(驅(qū)動(dòng)程序 → 輸入 → r_icu 上的外部IRQ驅(qū)動(dòng)程序)(請(qǐng)參見(jiàn)圖9-2)。


圖9-2:添加新驅(qū)動(dòng)程序只需單擊幾下鼠標(biāo)


此操作將為外部中斷添加驅(qū)動(dòng)程序。查看新驅(qū)動(dòng)程序的“Properties”(屬性)并進(jìn)行一些更改:首先,將“Channel”(通道)從0更改為10,因?yàn)镾1所連引腳連接到IRQ10。出于相同的原因,將名稱(chēng)更改為g_external_irq10或您喜歡的任何名稱(chēng)。

為中斷分配優(yōu)先級(jí)12,啟動(dòng)期間FSP將不會(huì)允許該中斷。也可以選擇任何其他優(yōu)先級(jí),但開(kāi)始時(shí)最好選擇優(yōu)先級(jí)12,因?yàn)榧词乖谳^大的系統(tǒng)中,也很少會(huì)遇到中斷優(yōu)先級(jí)沖突。請(qǐng)注意,優(yōu)先級(jí)15是為系統(tǒng)時(shí)鐘節(jié)拍定時(shí)器(systick)保留的,因此不應(yīng)被其他中斷使用。


圖9-3:堆元素的灰色條表示此驅(qū)動(dòng)程序是模塊實(shí)例,只能由另一個(gè)FSP模塊實(shí)例引用。


“Trigger”(觸發(fā)器)從“Rising”(上升)更改為“Falling”(下降)以捕捉按鈕激活操作,并將“Digital Filtering”(數(shù)字濾波)從“Disabled”(禁用)更改為“Enabled”(啟用)。始終將“Digital Filtering Sample Clock”(數(shù)字濾波采樣時(shí)鐘)設(shè)置為PCLK/64。這將有助于對(duì)按鈕去抖。最后,用external_irq10_callback替換Callback行中的NULL。每次按下S1都會(huì)調(diào)用此函數(shù)。在稍后創(chuàng)建應(yīng)用程序時(shí),我們將為回調(diào)函數(shù)本身添加代碼。圖9-4給出了必要設(shè)置的摘要。


圖9-4:應(yīng)用程序所需的IRQ驅(qū)動(dòng)程序的屬性


接下來(lái),只需要執(zhí)行幾個(gè)步驟,即可編譯和下載程序。


第9章未完待續(xù)


往期推薦

1

瑞薩RA產(chǎn)品家族初學(xué)者指南-第8章(1)

2

瑞薩RA產(chǎn)品家族初學(xué)者指南-第8章(2)

3

瑞薩RA產(chǎn)品家族初學(xué)者指南-第7章

瑞薩電子 (TSE: 6723)

科技讓生活更輕松,致力于打造更安全、更智能、可持續(xù)發(fā)展的未來(lái)。作為全球微控制器供應(yīng)商,瑞薩電子融合了在嵌入式處理、模擬電源及連接方面的專(zhuān)業(yè)知識(shí),提供完整的半導(dǎo)體解決方案。成功產(chǎn)品組合加速汽車(chē)、工業(yè)、基礎(chǔ)設(shè)施及物聯(lián)網(wǎng)應(yīng)用上市,賦能數(shù)十億聯(lián)網(wǎng)智能設(shè)備改善人們的工作和生活方式。

更多信息,敬請(qǐng)?jiān)L問(wèn)renesas.com



原文標(biāo)題:瑞薩RA產(chǎn)品家族初學(xué)者指南-第9章(1)

文章出處:【微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    146

    文章

    17135

    瀏覽量

    351031
  • 瑞薩
    +關(guān)注

    關(guān)注

    35

    文章

    22309

    瀏覽量

    86255

原文標(biāo)題:瑞薩RA產(chǎn)品家族初學(xué)者指南-第9章(1)

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電子RA2L1 MCU產(chǎn)品介紹

    RA2L1 MCU是RA家族RA2系列廣受歡迎的一款產(chǎn)品
    的頭像 發(fā)表于 12-10 10:51 ?245次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA2L1</b> MCU<b class='flag-5'>產(chǎn)品</b>介紹

    e2studio(1)----芯片之搭建FSP環(huán)境

    視頻教學(xué) 樣品申請(qǐng) 請(qǐng)勿添加外鏈 e2studio軟件 e2studio是的集成開(kāi)發(fā)環(huán)境,F(xiàn)SP 提供了眾多可提高效率的工具,用于開(kāi)發(fā)針對(duì)電子
    發(fā)表于 09-30 15:28

    基于RA0E1 MCU的解決方案介紹

    RA0E1產(chǎn)品組是RA家族入門(mén)級(jí)簡(jiǎn)易MCU,具有出色的成本效益和超低功耗特性。它集成Arm
    的頭像 發(fā)表于 07-09 11:13 ?456次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA0E1</b> MCU的解決方案介紹

    RA2L1系列CAN通信應(yīng)用

    RA2L1系列CAN通信應(yīng)用
    的頭像 發(fā)表于 06-26 08:06 ?603次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA2L1</b>系列CAN通信應(yīng)用

    RISC-V出了幾個(gè)產(chǎn)品

    看到也入手RISC-V,我只了解到了R9A02G021已經(jīng)出了,不知道還有繼續(xù)出強(qiáng)一點(diǎn)的產(chǎn)品
    發(fā)表于 05-30 07:35

    基于電子RA系列的野火耀陽(yáng)RA8D1開(kāi)發(fā)板產(chǎn)品簡(jiǎn)介

    野火耀陽(yáng)RA8D1開(kāi)發(fā)板是一款功能強(qiáng)大的開(kāi)發(fā)板,適用于各種嵌入式應(yīng)用開(kāi)發(fā)。它采用電子的RA系列R7FA8D1BHECBD微控制器作為主控
    的頭像 發(fā)表于 05-29 14:19 ?824次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b>系列的野火耀陽(yáng)<b class='flag-5'>RA8D1</b>開(kāi)發(fā)板<b class='flag-5'>產(chǎn)品</b>簡(jiǎn)介

    RA0E1開(kāi)發(fā)分享之一

    介紹生態(tài)社區(qū)的RA0E1開(kāi)發(fā)板。
    的頭像 發(fā)表于 05-10 13:57 ?901次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA0E1</b>開(kāi)發(fā)分享之一

    電子RA產(chǎn)品家族新增RA0E1 MCU產(chǎn)品

    電子RA產(chǎn)品家族新增RA0E1 MCU產(chǎn)品組。
    的頭像 發(fā)表于 04-11 15:17 ?903次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b><b class='flag-5'>產(chǎn)品</b><b class='flag-5'>家族</b>新增<b class='flag-5'>RA0E1</b> MCU<b class='flag-5'>產(chǎn)品</b>組

    RA MCU家族推出集成Arm? Cortex?-M23內(nèi)核的全新RA0系列

    RA MCU家族推出全新的RA0系列,RA0E1產(chǎn)品
    的頭像 發(fā)表于 04-10 14:32 ?1280次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b> MCU<b class='flag-5'>家族</b>推出集成Arm? Cortex?-M23內(nèi)核的全新<b class='flag-5'>RA</b>0系列

    電子RA家族推出RA8系列高算力通用MCU

    電子RA家族推出RA8系列高算力通用MCU,是業(yè)界首款基于Arm? Cortex?-M85(CM85)內(nèi)核的32位MCU,主頻高達(dá)480
    的頭像 發(fā)表于 04-02 14:14 ?1428次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b><b class='flag-5'>家族</b>推出<b class='flag-5'>RA</b>8系列高算力通用MCU

    RA家族Arm?DSP示例應(yīng)用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《RA家族Arm?DSP示例應(yīng)用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 02-28 09:21 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b>Arm?DSP示例應(yīng)用說(shuō)明

    RA8T1高性能電機(jī)控制新品解讀(上)產(chǎn)品詳解篇

    RA家族基于Arm? Cortex?-M內(nèi)核打造,自2019年10月份正式誕生,短短四年多時(shí)間已經(jīng)快速發(fā)展成廣泛的產(chǎn)品陣容,眾多型號(hào)用
    的頭像 發(fā)表于 02-21 12:15 ?1297次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA8T1</b>高性能電機(jī)控制新品解讀(上)<b class='flag-5'>產(chǎn)品</b>詳解篇

    RA家族 RA AWS MQTT/TLS云連接解決方案-蜂窩應(yīng)用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《RA家族 RA AWS MQTT/TLS云連接解決方案-蜂窩應(yīng)用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 11:00 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b>  <b class='flag-5'>RA</b> AWS MQTT/TLS云連接解決方案-蜂窩應(yīng)用說(shuō)明

    RA家族QE電機(jī)應(yīng)用開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《RA家族QE電機(jī)應(yīng)用開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-31 09:57 ?0次下載
    <b class='flag-5'>RA</b><b class='flag-5'>家族</b>QE電機(jī)應(yīng)用開(kāi)發(fā)<b class='flag-5'>指南</b>

    RA家族RA AWS MQTT/TLS云連接解決方案-以太網(wǎng)

    電子發(fā)燒友網(wǎng)站提供《RA家族RA AWS MQTT/TLS云連接解決方案-以太網(wǎng).pdf》資料免費(fèi)下載
    發(fā)表于 01-03 09:52 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b><b class='flag-5'>RA</b> AWS MQTT/TLS云連接解決方案-以太網(wǎng)
    主站蜘蛛池模板: 啊灬啊灬啊灬快高潮视频| 亚洲 色 欧美 爱 视频 日韩| 色噜噜狠狠色综合中文字幕| 一本久道久久综合狠狠躁AV| 中文字幕在线永久| 男女又黄又刺激B片免费网站 | 老妇xxxxbbbb| 97人视频国产在线观看| 男人的天堂黄色| 高清mv视频免费观看| 久久亚洲精品2017| 99热这里只有精品88| 日韩 亚洲 欧美 中文 高清| 国产精品三级在线观看| 亚洲伊人情人综合网站| 欧美videqsdesex0| 国产精品一区第二页| 97国产视频| 精品麻豆一卡2卡三卡4卡乱码| 18video性欧美19sex高清| 日日噜噜夜夜狠狠扒开双腿 | 国产人妻久久久精品麻豆| 在线播放性xxx欧美| 色在线视频亚洲欧美| 乱码午夜-极品国产内射| 动漫美女性侵| 2019精品国产品在线不卡| 午夜剧场1000| 日韩中文亚洲欧美视频二| 久久综合伊人| 99久久伊人一区二区yy5099| 免费在线观看国产| 精品午夜国产福利观看| 成人免费视频网站www| 在线亚洲精品福利网址导航| 玄幻全黄h全肉后宫| 色一伦一情一区二区三区| 欧美最猛性XXXXX肛交| 毛片免费观看的视频| 国产综合自拍 偷拍在线| 亚洲嫩草AV永久无码精品无码|