女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

FreeRTOS|再次移植

玩轉單片機 ? 來源:玩轉單片機 ? 作者: noah ? 2022-12-06 09:36 ? 次閱讀

FreeRTOS系列推文很久之前就完結了,最近在GD32進行相關移植,發現還有更好的移植方案,比起直接修改啟動文件更加實用,這里只簡單做下介紹和總結;

第一步:準備一個裸機工程文件,最好配置了GPIO和串口,因為這兩個是最方便查看效果的;

第二步:把FreeRTOS的源碼直接復制到工程目錄下,這樣就算沒安裝支持包都可以直接使用,也方便相關管理和維護:

a9fa2714-74b2-11ed-8abf-dac502259ad0.png

第三步:添加分組,然后把相關源碼添加進去:

aa318a24-74b2-11ed-8abf-dac502259ad0.png

注意: 配置文件可以在官方demo中找到:

aa61cc66-74b2-11ed-8abf-dac502259ad0.png

第四步:添加路徑:

aa9b3f28-74b2-11ed-8abf-dac502259ad0.png

第五步:在FreeRTOSConfig.h進行適當修改:

aabe74e8-74b2-11ed-8abf-dac502259ad0.png

第六步:屏蔽三個中斷函數:

aaf4b526-74b2-11ed-8abf-dac502259ad0.png

第七步:編寫任務函數:

#include "hal_led.h"
#include "hal_log.h"
#include "hal_usart.h"
#include "hal_printf.h"


#include "FreeRTOS.h"
#include "task.h"


#define START_TASK_PRIO 1         //任務優先級
#define START_STK_SIZE 128        //任務堆棧大小
TaskHandle_t StartTask_Handler;     //任務句柄
void start_task(void *pvParameters);//任務函數


#define LED0_TASK_PRIO 2      //任務優先級
#define LED0_STK_SIZE 50      //任務堆棧大小
TaskHandle_t LED0Task_Handler;    //任務句柄
void led0_task(void *p_arg);    //任務函數


// 外設初始化
void hal_device_init(void)
{
  hal_led_init();
  hal_log_init();
  hal_usart_init();
}




// 主循環
int main( void ) 
{
  // 設置系統中斷優先級分組 4
  nvic_priority_group_set(NVIC_PRIGROUP_PRE0_SUB4);
  // 外設初始化
  hal_device_init();
  //創建開始任務
  xTaskCreate(
    (TaskFunction_t )start_task,    //任務函數
    (const char* )"start_task",      //任務名稱
    (uint16_t )START_STK_SIZE,      //任務堆棧大小
    (void* )NULL,            //傳遞給任務函數的參數
    (UBaseType_t )START_TASK_PRIO,    //任務優先級
    (TaskHandle_t* )&StartTask_Handler  //任務句柄 
  );
  vTaskStartScheduler();  //開啟調度
  while(1);
}




//開始任務函數
void start_task(void *pvParameters)
{
  taskENTER_CRITICAL();   //進入臨界區
  //創建 LED0 任務
  xTaskCreate(
    (TaskFunction_t )led0_task, 
    (const char* )"led0_task", 
    (uint16_t )LED0_STK_SIZE, 
    (void* )NULL,
    (UBaseType_t )LED0_TASK_PRIO,
    (TaskHandle_t* )&LED0Task_Handler
  );
  vTaskDelete(StartTask_Handler); //刪除開始任務
  taskEXIT_CRITICAL();   //退出臨界區
}


//LED0 任務函數
void led0_task(void *pvParameters)
{
  while(1)
  {
    /* 測試精度*/
  if(RESET == gpio_input_bit_get(GPIOC, GPIO_PIN_6)){
    gpio_bit_write(GPIOC, GPIO_PIN_6, SET);
  }else{
    gpio_bit_write(GPIOC, GPIO_PIN_6, RESET);
  }
  usert_printf(USART0, "USART0
");
  vTaskDelay(1000);
  }
}

第八步:看效果:

ab280dd6-74b2-11ed-8abf-dac502259ad0.png

這種移植方案與以前的方案最大的不同就是不修改啟動文件, 對于不懂匯編和啟動文件的讀者比較友好, 也比較推薦這種方案來使用FreeRTOS;解決問題的方法千千萬萬, 選擇自己喜歡的就好, 也沒有什么不可。

審核編輯:湯梓紅

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

    關注

    1

    文章

    394

    瀏覽量

    28575
  • 源碼
    +關注

    關注

    8

    文章

    667

    瀏覽量

    30137
  • FreeRTOS
    +關注

    關注

    12

    文章

    489

    瀏覽量

    63738
  • GD32
    +關注

    關注

    7

    文章

    418

    瀏覽量

    25152

原文標題:FreeRTOS|再次移植

文章出處:【微信號:玩轉單片機,微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    FreeRTOS下對lwIP的移植程序

    FreeRTOS下對 lwIP的移植程序。
    發表于 10-29 10:58 ?11次下載

    FreeRTOS移植到MAPS-資料匯總

    FreeRTOS已成功移植于超過35種架構的MCU中運行,本文以MAPS-K22開發板為例,介紹了將FreeRTOS移植于NXP Kientis 系列MCU中的步驟,希望能對想學習RT
    發表于 12-24 18:36 ?6次下載

    freertos移植教程_freertos任務調度原理

    移植之前,我們首先要獲取到FreeRTOS的官方的源碼包。
    發表于 04-16 09:16 ?1.3w次閱讀
    <b class='flag-5'>freertos</b><b class='flag-5'>移植</b>教程_<b class='flag-5'>freertos</b>任務調度原理

    嵌入式操作系統FREERTOS移植.

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

    轉發:stm32 移植 freertos

    轉發:stm32 移植 freertos
    發表于 11-20 12:36 ?14次下載
    轉發:stm32 <b class='flag-5'>移植</b> <b class='flag-5'>freertos</b>

    STM32移植FreeRTOS(圖文實操)

    目錄一、Freertos1、前后臺系統2、可剝奪型內核3、Freertos系統簡介二、FreeRTOS移植1.在基礎工程種新建Freertos
    發表于 11-21 19:06 ?9次下載
    STM32<b class='flag-5'>移植</b><b class='flag-5'>FreeRTOS</b>(圖文實操)

    IAR移植FreeRTOS

    IAR移植FreeRTOS之前寫了移植在MDK的文章,之后試著移植到IAR上(IAR的在線調試功能用著比MDK順手,在線調試實時查看大型數組也不會卡死,MDK查看數組若是太大會很卡)。
    發表于 12-03 10:36 ?15次下載
    IAR<b class='flag-5'>移植</b><b class='flag-5'>FreeRTOS</b>

    freeRTOS使用筆記一(移植篇)

    freeRTOS使用筆記一(移植篇)
    發表于 12-03 14:06 ?18次下載
    <b class='flag-5'>freeRTOS</b>使用筆記一(<b class='flag-5'>移植</b>篇)

    英飛凌infineon-XMC4500,移植FreeRTOS

    英飛凌infineon-XMC4500,移植FreeRTOS
    發表于 12-03 16:06 ?14次下載
    英飛凌infineon-XMC4500,<b class='flag-5'>移植</b><b class='flag-5'>FreeRTOS</b>

    FreeRTOS移植—基于STM32

    FreeRTOS移植—基于STM32
    發表于 12-04 12:51 ?18次下載
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>—基于STM32

    FreeRTOS-stm32f407移植

    FreeRTOS-stm32f407移植需要準備的內容FreeRTOS移植步驟1、添加FreeRTOS源碼1)復制源碼內容2)刪除porta
    發表于 12-04 13:36 ?9次下載
    <b class='flag-5'>FreeRTOS</b>-stm32f407<b class='flag-5'>移植</b>

    【STM32】FreeRTOS移植

    00. 目錄文章目錄00. 目錄01. 簡介02. 預備工作03. FreeRTOS移植04. SYSTEM文件修改05. 測試程序設計06. 附錄07. 參考01. 簡介我們已經了解
    發表于 12-04 14:06 ?14次下載
    【STM32】<b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>

    Freertos移植中 “FreeRTOSConfig.h“ 的配置

    Freertos移植中 “FreeRTOSConfig.h“ 的配置
    發表于 12-04 14:06 ?10次下載
    <b class='flag-5'>Freertos</b> 的<b class='flag-5'>移植</b>中 “FreeRTOSConfig.h“ 的配置

    FreeRTOS操作系統移植文件

    FreeRTOS操作系統移植文件,不會官網下載的,可以這里下載
    發表于 08-28 14:58 ?1次下載

    FreeRTOS移植

    FreeRTOS包含Demo例程和內核源碼(比較重要,我們就需要提取該目錄下的大部分文件)。 **Source**文件夾里面包含的是FreeRTOS內核的源代碼,我們移植FreeRTOS
    的頭像 發表于 02-14 09:34 ?1499次閱讀
    <b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>移植</b>