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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

瑞薩RA產品家族初學者指南-第9章(1)

瑞薩MCU小百科 ? 來源:未知 ? 2022-11-15 12:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


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


9. 使用實時操作系統


您將在本章中學到以下內容:

  • 什么是線程、信號量和隊列,以及如何使用它們。

  • 如何在e2 studio中向程序添加線程和信號量

  • 如何在RTOS控制下通過按鈕切換LED


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


我們將從頭開始創建完整的項目,因此如果您沒有進行過之前的實驗,請不必擔心。


本章目錄

  1. 線程、信號量和隊列

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


9.1 線程、信號量和隊列

在我們實際深入進行此練習之前,需要定義將在本章和下一章中使用的一些術語,以確保我們能夠達成共識。

首先,需要定義術語“線程”。如果您更習慣于“任務”這個表達方式,只需把線程看作是一種任務。有些人甚至互換使用這兩個短語。當使用實時操作系統(RTOS)時,單片機上運行的應用程序將拆分為幾個較小的半獨立代碼塊,每個代碼塊通常控制程序的一個方面。這些小片段稱為線程。一個應用程序中可以存在多個線程,但是在任何給定時間都只能有一個線程處于活動狀態,因為RA系列單片機是單核器件。每個線程都有自己的堆棧空間,如果需要安全的上下文,則可以將其置于MCU的安全側。每個線程還分配有優先級(相對于應用程序中的其他線程),并且可以處于不同的狀態,例如運行、就緒、阻塞或暫停。在FreeRTOS中,可以通過調用eTaskGetState()API函數來查詢線程的狀態。線程間信號傳輸、同步或通信是通過信號量、隊列、互斥、通知、直接任務通知或者流和消息緩沖區來實現的。

信號量是RTOS的資源,可用于傳輸事件和線程同步(以產生者-使用者方式)。使用信號量允許應用程序暫停線程,直到事件發生并發布信號量。如果沒有RTOS,就需要不斷地輪詢標志變量或創建代碼來執行中斷服務程序(ISR)中的某個操作,這會在相當長的一段時間內阻塞其他中斷。使用信號量可快速退出ISR并將操作推遲到相關線程。

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

每個信號量都有兩個相關的基本操作:

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

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


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

允許的消息大小可在設計時通過FSP配置器指定。默認項大小為4個字節,默認隊列長度(表示隊列中可存儲的項數)為20。所有項的大小必須相同。FreeRTOS中的隊列數沒有限制;惟一的限制是系統中可用的存儲空間。使用xQueueSend()函數將消息放入隊列中,并通過xQueueReceive()從隊列中讀取消息。與信號量一樣,函數有兩種版本:一種可以從線程的上下文調用,另一種可以從ISR內部調用。


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

接下來的練習也是基于EK-RA6M4評估板。這次,我們將使用電路板左上方的藍色按鈕S1向應用程序傳輸事件,應用程序將切換綠色LED2進行響應。為實現目標,我們將使用FreeRTOS,事件的處理將在線程內進行,并通過信號量進行通知。


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


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


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


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


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


圖9-2:添加新驅動程序只需單擊幾下鼠標


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

為中斷分配優先級12,啟動期間FSP將不會允許該中斷。也可以選擇任何其他優先級,但開始時最好選擇優先級12,因為即使在較大的系統中,也很少會遇到中斷優先級沖突。請注意,優先級15是為系統時鐘節拍定時器(systick)保留的,因此不應被其他中斷使用。


圖9-3:堆元素的灰色條表示此驅動程序是模塊實例,只能由另一個FSP模塊實例引用。


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


圖9-4:應用程序所需的IRQ驅動程序的屬性


接下來,只需要執行幾個步驟,即可編譯和下載程序。


第9章未完待續


往期推薦

1

瑞薩RA產品家族初學者指南-第8章(1)

2

瑞薩RA產品家族初學者指南-第8章(2)

3

瑞薩RA產品家族初學者指南-第7章

瑞薩電子 (TSE: 6723)

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

更多信息,敬請訪問renesas.com



原文標題:瑞薩RA產品家族初學者指南-第9章(1)

文章出處:【微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

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

    關注

    146

    文章

    17994

    瀏覽量

    367769
  • 瑞薩
    +關注

    關注

    36

    文章

    22386

    瀏覽量

    88101

原文標題:瑞薩RA產品家族初學者指南-第9章(1)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RA8系列教程 | RA8 開發環境搭建,并點亮一個LED

    今天就給大家講講基于Cortex-M85內核RA8單片機快速上手指南。
    的頭像 發表于 06-04 17:32 ?748次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>8系列教程 | <b class='flag-5'>瑞</b><b class='flag-5'>薩</b> <b class='flag-5'>RA</b>8 開發環境搭建,并點亮一個LED

    RA-Eco-RA4M2開發板評測】初學-使用flash programmer燒錄程序

    本人剛入坑不久,對單片機的熱情很高,于是也加入了的板子申請隊伍,很榮幸也成為了試用者之一,此前對于的板子從未接觸過,包括對于使用e2studio編寫程序燒錄等工作也是從小白開始
    發表于 04-29 17:28

    RA8D1單片機IO中斷配置實現方法

    本文為結合e2 studio工具,以及CPKCOR_RA8D1B評估板,給大家講述RA8D1
    的頭像 發表于 04-09 15:05 ?1014次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA8D1</b>單片機IO中斷配置實現方法

    RA系列MCU的命名方法與選型

    初學者來說,要理解RA產品家族產品型號中的不同數字和字母并不容易。我們首先以RA系列MCU中的
    的頭像 發表于 03-27 14:32 ?1067次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>系列MCU的命名方法與選型

    RA8快速上手指南:Cortex-M85內核RA8開發環境搭建 并點亮一個LED

    因為Cortex-M內核,RA8系列單片機支持多種市面上常見的開發環境,像Keil MDK、IAR EWARM等,而本文講述的是自家
    的頭像 發表于 03-17 14:35 ?1050次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>8快速上手<b class='flag-5'>指南</b>:Cortex-M85內核<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>8開發環境搭建 并點亮一個LED

    RA2L1入門學習】+開箱評測

    R7FA2L1AB2DFL。RA2L1 產品組采用優化的制程和電子的低功耗工藝技術,是業界一流水平的超低功耗微控制器。 本次收到的開發板
    發表于 03-09 07:40

    RA4L1產品特色功能及應用場景

    近日電子推出了一款最新的RA產品RA4L1,它有哪些特性以及適用于什么樣的應用場景呢?本篇文章給大家帶來詳細介紹。
    的頭像 發表于 03-04 15:51 ?689次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA4L1</b><b class='flag-5'>產品</b>特色功能及應用場景

    電子RA4L1 MCU的基本特性和應用場景

    近日電子推出了一款最新的RA產品RA4L1,它有哪些特性以及適用于什么樣的應用場景呢?本篇文章給大家帶來詳細介紹。
    的頭像 發表于 02-28 16:53 ?1302次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA4L1</b> MCU的基本特性和應用場景

    新品上市 | RA4L1低功耗MCU--USB,CANFD,段碼LCD,適用低功耗電池應用

    RA家族RA4L1低功耗MCU產品系列于2025年2月推出。
    的頭像 發表于 02-27 12:11 ?937次閱讀
    新品上市 | <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA4L1</b>低功耗MCU--USB,CANFD,段碼LCD,適用低功耗電池應用

    RA家族RA4L1低功耗MCU量產上市

    ? RA家族RA4L1低功耗MCU產品系列于2025年2月推出。
    的頭像 發表于 02-20 13:39 ?827次閱讀
    <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'>RA4L1</b>低功耗MCU量產上市

    RA2L1入門學習】1. 點亮LED

    首次使用單片機,先說一下使用感受。 本次學習使用的是RA-Eco-RA2L1-48PIN-V1.0開發板+e2studio(官方的集成開發環境)+RAFP(官方的程序燒錄工具)。 整個流程都是
    發表于 01-29 22:17

    EE-269:以太網802.3初學者指南

    電子發燒友網站提供《EE-269:以太網802.3初學者指南.pdf》資料免費下載
    發表于 01-05 09:48 ?1次下載
    EE-269:以太網802.3<b class='flag-5'>初學者</b><b class='flag-5'>指南</b>

    RA家族精品RA2L1產品介紹

    RA2L1MCU是RA家族RA2系列廣受歡迎的一款產品
    的頭像 發表于 12-27 18:07 ?633次閱讀
    <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'>RA2L1</b><b class='flag-5'>產品</b>介紹

    電子RZ MPU家族精品RZ/N2L產品介紹

    生態合作伙伴RT-Thread推出了一款高性能、多功能以太網MPU開發板EtherKit,搭載電子RZ/N2L,并攜手
    的頭像 發表于 12-23 14:10 ?761次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子RZ MPU<b class='flag-5'>家族</b>精品RZ/N2L<b class='flag-5'>產品</b>介紹

    電子RA2L1 MCU產品介紹

    RA2L1 MCU是RA家族RA2系列廣受歡迎的一款產品
    的頭像 發表于 12-10 10:51 ?940次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA2L1</b> MCU<b class='flag-5'>產品</b>介紹
    主站蜘蛛池模板: 福利啪啪吧 | 精品久久久久久久久免费影院 | 翘臀后进美女白嫩屁股视频 | 影888午夜理论不卡 樱桃熟了A级毛片 | 老牛天天晚上夜噜噜噜 | 国产一区免费在线观看 | 亚洲色婷婷久久精品AV蜜桃久久 | 99国产精品欲AV蜜桃臀麻豆 | 国产精品高清视亚洲一区二区 | 日韩精品卡1卡2三卡四卡乱码 | 国产午夜永久福利视频在线观看 | 国产一区二区无码蜜芽精品 | 亚洲人成伊人成综合网久久久 | 国产极品美女视频福利 | 亚洲精品视频在线观看视频 | 97午夜伦伦电影理论片 | 在线免费观看毛片 | 国产成人精品免费视频大全可播放的 | 中文字幕在线不卡精品视频99 | 国际老妇高清在线观看 | 欧美日韩精品一区二区三区高清视频 | 娇小萝被两个黑人用半米长 | 黄色网址在线免费观看 | 野花韩国视频中文播放 | 我的美女房东未删减版免费观看 | 老司机亚洲精品影院在线观看 | 久久香蕉国产线看观看首页 | 大胸美女脱内衣黄网站 | 灰原哀被啪漫画禁漫 | A级毛片高清免费网站不卡 a级毛片高清免费视频 | 四虎成人影院 | 久久影院一区 | 国产 亚洲 中文在线 字幕 | 国产 亚洲 中文字幕 久久网 | 好大太快了快插穿子宫了 | 97精品免费视频 | qvod激情图片 | 扒开屁股眼往里面夹东西 | 成人精品视频 | 亚洲AV蜜桃永久无码精品红樱桃 | 国产精品人成在线播放新网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品