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

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

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

如何創(chuàng)建FreeRTOS項(xiàng)目

CHANBAEK ? 來(lái)源:凌云物聯(lián)網(wǎng)實(shí)驗(yàn)室 ? 作者:郭工 ? 2022-12-19 09:23 ? 次閱讀

在該章節(jié)中,我們將介紹如何創(chuàng)建FreeRTOS項(xiàng)目,并創(chuàng)建兩個(gè)線程:一個(gè)線程將讓Led每隔600ms閃爍一次,另外一個(gè)線程則讓串口每隔1.5s輸出一個(gè)打印。

10.1 創(chuàng)建FreeRTOS項(xiàng)目

在e2studio上點(diǎn)擊 File -> C/C++ Project 創(chuàng)建 Renesas RA C/C++ Project 。 接下來(lái)設(shè)置我們的項(xiàng)目名為 MyBoard 。

圖片

在接下來(lái)的配置中,我們定制開(kāi)發(fā)我們的開(kāi)發(fā)板,Board選擇“Custom User Board (Any Device) ”,Device選擇"R7FA6M4AF3CFB",以及燒錄調(diào)試器的類型。下一步我們就選擇 Flat (Non-TrustZone) Project 。

圖片

接下來(lái)的操作系統(tǒng)類型,選擇 FreeRTOS (v10.4.6+fsp.4.1.0) 。

圖片

項(xiàng)目模板選擇 Bare Metal -Minimal

圖片

接下來(lái),創(chuàng)建好的項(xiàng)目如下圖所示。

圖片

10.2 配置Led和串口硬件

接下來(lái)我們打開(kāi)項(xiàng)目中的FSP配置文件,配置三個(gè)Led燈的引腳為GPIO模式,并分別配置它們的別名為L(zhǎng)edRed(P400)、LedGreen(P404)、LedBlue(P415)。

圖片

  • 通過(guò) Symbolic Name 字段可以修改該GPIO的名稱為 LedRed,它將在IDE自動(dòng)生成的文件 ra_cfg/fsp_cfg/bsp/bsp_pin_cfg.h 中定義;
  • 通過(guò) Mode 字段可以修改GPIO口的工作模式,它們將在IDE自動(dòng)生成的文件 ra_gen/pin_data.c 中定義;

然后再配置使能外部晶振,并重新生成代碼。

圖片

接下來(lái)我們打開(kāi)項(xiàng)目中的FSP配置文件,配置使能相應(yīng)串口的Pin功能,并重新生成代碼。

圖片

接下來(lái)我們選擇 Stacks , 點(diǎn)擊 "New Stack" -> "Connectivity" -> "UART(r_sci_uart)" 添加串口通信功能協(xié)議棧,并使用其默認(rèn)配置即可。

圖片

10.3 FreeRTOS添加線程

如下圖所示,單擊窗格頂部的 “New Thread 按鈕,添加兩個(gè)線程分別命名為 thread_led 和 thread_uart ,其它的保持默認(rèn)配置即可,并重新生成代碼。

圖片

10.4 修改FreeRTOS源碼

修改 src/thread_led_entry.c 源文件,代碼如下。

#include "thread_led.h"

/* Led Thread entry function */
/* pvParameters contains TaskHandle_t */
void thread_led_entry(void *pvParameters)
{
    FSP_PARAMETER_NOT_USED (pvParameters);

    R_BSP_PinAccessEnable(); /* Enable access to the PFS registers. */

    /* TODO: add your own code here */
    while (1)
    {
        R_BSP_PinWrite(LedBlue, BSP_IO_LEVEL_HIGH);
        vTaskDelay (300);
        R_BSP_PinWrite(LedBlue, BSP_IO_LEVEL_LOW);
        vTaskDelay (300);
    }
}

修改 src/thread_uart_entry.c 源文件,代碼如下。

#include "thread_uart.h"

#define HELLO_MSG  "FreeRTOS is running on EK-RA6M4 Board!
"

/* UART Thread entry function */
/* pvParameters contains TaskHandle_t */
void thread_uart_entry(void *pvParameters)
{
    FSP_PARAMETER_NOT_USED (pvParameters);

    R_SCI_UART_Open(&g_uart0_ctrl, &g_uart0_cfg);

    /* TODO: add your own code here */
    while (1)
    {
        R_SCI_UART_Write(&g_uart0_ctrl, (uint8_t *)HELLO_MSG, strlen(HELLO_MSG));
        vTaskDelay (1500);
    }
}

10.5 編譯運(yùn)行FreeRTOS

接下來(lái)編譯項(xiàng)目源碼并運(yùn)行,這時(shí)候?qū)?huì)看待一個(gè)線程將讓藍(lán)色Led每隔600ms閃爍一次,另外一個(gè)線程則讓串口每隔1.5s打印如下信息。

圖片

聲明:本文內(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)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23277

    瀏覽量

    660869
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    641

    瀏覽量

    29210
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62178
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    freeRTOS開(kāi)發(fā)筆記】關(guān)注創(chuàng)建任務(wù)時(shí)傳入優(yōu)先級(jí)數(shù)值問(wèn)題

    freeRTOS開(kāi)發(fā)筆記】關(guān)注創(chuàng)建任務(wù)時(shí)傳入的優(yōu)先級(jí)數(shù)值問(wèn)題
    的頭像 發(fā)表于 07-11 09:13 ?2777次閱讀
    【<b class='flag-5'>freeRTOS</b>開(kāi)發(fā)筆記】關(guān)注<b class='flag-5'>創(chuàng)建</b>任務(wù)時(shí)傳入優(yōu)先級(jí)數(shù)值問(wèn)題

    FreeRTOS介紹與基礎(chǔ)任務(wù)創(chuàng)建

    本篇介紹FreeRTOS與基礎(chǔ)任務(wù)創(chuàng)建
    的頭像 發(fā)表于 09-26 09:00 ?2410次閱讀
    <b class='flag-5'>FreeRTOS</b>介紹與基礎(chǔ)任務(wù)<b class='flag-5'>創(chuàng)建</b>

    FreeRTOS創(chuàng)建消息隊(duì)列問(wèn)題如何解決

    剛開(kāi)始學(xué)習(xí)FreeRTOS,用的是STM32F103RCT6,目前創(chuàng)建了三個(gè)任務(wù),運(yùn)行指示燈、按鍵、顯示。其中顯示任務(wù)里是暫時(shí)還沒(méi)有具體的代碼,按鍵任務(wù)準(zhǔn)備使用隊(duì)列傳遞按鍵值。現(xiàn)在的問(wèn)題是這樣
    發(fā)表于 07-19 08:03

    如何使用Visual Studio Code進(jìn)行FreeRTOS開(kāi)發(fā)

    Code作為FreeRTOS項(xiàng)目的開(kāi)發(fā)環(huán)境,介紹需要安裝的擴(kuò)展功能,及環(huán)境配置的相關(guān)選項(xiàng)。如果你還沒(méi)有使用過(guò)VS Code,可以訪問(wèn)VS Code網(wǎng)站(https
    發(fā)表于 02-23 16:58

    STM32CUBE的freertos的任務(wù)創(chuàng)建

    目錄問(wèn)題說(shuō)明解決步驟驗(yàn)證方案總結(jié)問(wèn)題說(shuō)明STM32CUBE的freertos的任務(wù)創(chuàng)建十分簡(jiǎn)單方便,但卻有一個(gè)麻煩:需要我們把要跑的任務(wù)具體代碼都寫(xiě)進(jìn)freertos.c的文件里面,對(duì)于在對(duì)應(yīng)文件
    發(fā)表于 08-24 08:26

    FreeRTOS的任務(wù)創(chuàng)建過(guò)程

    FreeRTOS筆記(四):任務(wù)創(chuàng)建/刪除,掛起/解掛詳解在第二篇筆記中介紹了任務(wù)創(chuàng)建的API,并且簡(jiǎn)單使用了相關(guān)API,本文將詳細(xì)介紹任務(wù)創(chuàng)建的過(guò)程。一、任務(wù)
    發(fā)表于 02-08 06:10

    FreeRTOS創(chuàng)建任務(wù)的流程分享

    從零入門(mén) FreeRTOS 操作系統(tǒng)之創(chuàng)建任務(wù)啟動(dòng)方式在 main() 函數(shù)中將硬件和 RTOS 系統(tǒng)先初始化好,然后創(chuàng)建一個(gè)啟動(dòng)任務(wù)后就啟動(dòng)調(diào)度器,然后在啟動(dòng)任務(wù)里面創(chuàng)建各種應(yīng)用任務(wù)
    發(fā)表于 02-11 06:59

    如何為S32K311或S32K310創(chuàng)建一個(gè)freertos演示?

    我已經(jīng)安裝了 freertos 包,如何為 S32K311 或 S32K310 創(chuàng)建一個(gè) freertos 演示 我現(xiàn)在找不到 freertos 項(xiàng)
    發(fā)表于 04-25 07:44

    FreeRTOS任務(wù)如何創(chuàng)建和刪除?

    FreeRTOS移植到Cortex-M3硬件平臺(tái)的文章中,我們已經(jīng)見(jiàn)過(guò)任務(wù)創(chuàng)建API,但那篇文章的重點(diǎn)在于如何移植FreeRTOS,本文將重點(diǎn)放在任務(wù)的創(chuàng)建和刪除API函數(shù)上面。 任
    的頭像 發(fā)表于 03-11 18:08 ?2932次閱讀

    FreeRTOS筆記(四):任務(wù)創(chuàng)建/刪除,掛起/解掛詳解

    FreeRTOS筆記(四):任務(wù)創(chuàng)建/刪除,掛起/解掛詳解在第二篇筆記中介紹了任務(wù)創(chuàng)建的API,并且簡(jiǎn)單使用了相關(guān)API,本文將詳細(xì)介紹任務(wù)創(chuàng)建的過(guò)程。一、任務(wù)
    發(fā)表于 12-04 19:36 ?15次下載
    <b class='flag-5'>FreeRTOS</b>筆記(四):任務(wù)<b class='flag-5'>創(chuàng)建</b>/刪除,掛起/解掛詳解

    #FreeRTOS學(xué)習(xí)筆記(二):任務(wù)創(chuàng)建/刪除,掛起/解掛

    FreeRTOS學(xué)習(xí)筆記(二):任務(wù)創(chuàng)建/刪除,掛起/解掛上篇文章介紹了任務(wù)相關(guān)的基礎(chǔ)知識(shí),本篇文章對(duì)FreeRTOS任務(wù)的使用,將會(huì)介紹任務(wù)創(chuàng)建、刪除、掛起以及恢復(fù)的API。一、任務(wù)
    發(fā)表于 12-23 19:56 ?2次下載
    #<b class='flag-5'>FreeRTOS</b>學(xué)習(xí)筆記(二):任務(wù)<b class='flag-5'>創(chuàng)建</b>/刪除,掛起/解掛

    FreeRTOS高級(jí)篇2---FreeRTOS任務(wù)創(chuàng)建分析

    FreeRTOS基礎(chǔ)系列《FreeRTOS系列第10篇---FreeRTOS任務(wù)創(chuàng)建和刪除》中介紹了任務(wù)創(chuàng)建API函數(shù)xTaskCreat
    發(fā)表于 01-26 17:42 ?23次下載
    <b class='flag-5'>FreeRTOS</b>高級(jí)篇2---<b class='flag-5'>FreeRTOS</b>任務(wù)<b class='flag-5'>創(chuàng)建</b>分析

    FreeRTOS系列第10篇---FreeRTOS任務(wù)創(chuàng)建和刪除

    FreeRTOS移植到Cortex-M3硬件平臺(tái)的文章中,我們已經(jīng)見(jiàn)過(guò)任務(wù)創(chuàng)建API,但那篇文章的重點(diǎn)在于如何移植FreeRTOS,本文將重點(diǎn)放在任務(wù)的...
    發(fā)表于 01-26 17:56 ?13次下載
    <b class='flag-5'>FreeRTOS</b>系列第10篇---<b class='flag-5'>FreeRTOS</b>任務(wù)<b class='flag-5'>創(chuàng)建</b>和刪除

    RA FreeRTOS任務(wù)創(chuàng)建

    ,開(kāi)發(fā)環(huán)境e 2 studio完美支持FreeRTOS,無(wú)需額外手動(dòng)移植。以下介紹如何用瑞薩e 2 studio創(chuàng)建RA系列MCU的FreeRTOS工程。 對(duì)于不熟悉瑞薩的FSP開(kāi)發(fā)環(huán)境的工程師們,此文
    的頭像 發(fā)表于 03-10 14:35 ?1304次閱讀

    RA FreeRTOS任務(wù)創(chuàng)建

    ,開(kāi)發(fā)環(huán)境e2 studio完美支持FreeRTOS,無(wú)需額外手動(dòng)移植。以下介紹如何用瑞薩e2 studio創(chuàng)建RA系列MCU的FreeRTOS工程。
    的頭像 發(fā)表于 07-12 10:00 ?706次閱讀
    RA <b class='flag-5'>FreeRTOS</b>任務(wù)<b class='flag-5'>創(chuàng)建</b>