chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

FreeRTOS|再次移植

玩轉(zhuǎn)單片機(jī) ? 來源:玩轉(zhuǎn)單片機(jī) ? 作者: noah ? 2022-12-06 09:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FreeRTOS系列推文很久之前就完結(jié)了,最近在GD32進(jìn)行相關(guān)移植,發(fā)現(xiàn)還有更好的移植方案,比起直接修改啟動(dòng)文件更加實(shí)用,這里只簡單做下介紹和總結(jié);

第一步:準(zhǔn)備一個(gè)裸機(jī)工程文件,最好配置了GPIO和串口,因?yàn)檫@兩個(gè)是最方便查看效果的;

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

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

第三步:添加分組,然后把相關(guān)源碼添加進(jìn)去:

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

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

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

第四步:添加路徑:

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

第五步:在FreeRTOSConfig.h進(jìn)行適當(dāng)修改:

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

第六步:屏蔽三個(gè)中斷函數(shù):

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

第七步:編寫任務(wù)函數(shù):

#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         //任務(wù)優(yōu)先級(jí)
#define START_STK_SIZE 128        //任務(wù)堆棧大小
TaskHandle_t StartTask_Handler;     //任務(wù)句柄
void start_task(void *pvParameters);//任務(wù)函數(shù)


#define LED0_TASK_PRIO 2      //任務(wù)優(yōu)先級(jí)
#define LED0_STK_SIZE 50      //任務(wù)堆棧大小
TaskHandle_t LED0Task_Handler;    //任務(wù)句柄
void led0_task(void *p_arg);    //任務(wù)函數(shù)


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




// 主循環(huán)
int main( void ) 
{
  // 設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組 4
  nvic_priority_group_set(NVIC_PRIGROUP_PRE0_SUB4);
  // 外設(shè)初始化
  hal_device_init();
  //創(chuàng)建開始任務(wù)
  xTaskCreate(
    (TaskFunction_t )start_task,    //任務(wù)函數(shù)
    (const char* )"start_task",      //任務(wù)名稱
    (uint16_t )START_STK_SIZE,      //任務(wù)堆棧大小
    (void* )NULL,            //傳遞給任務(wù)函數(shù)的參數(shù)
    (UBaseType_t )START_TASK_PRIO,    //任務(wù)優(yōu)先級(jí)
    (TaskHandle_t* )&StartTask_Handler  //任務(wù)句柄 
  );
  vTaskStartScheduler();  //開啟調(diào)度
  while(1);
}




//開始任務(wù)函數(shù)
void start_task(void *pvParameters)
{
  taskENTER_CRITICAL();   //進(jìn)入臨界區(qū)
  //創(chuàng)建 LED0 任務(wù)
  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); //刪除開始任務(wù)
  taskEXIT_CRITICAL();   //退出臨界區(qū)
}


//LED0 任務(wù)函數(shù)
void led0_task(void *pvParameters)
{
  while(1)
  {
    /* 測(cè)試精度*/
  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

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

審核編輯:湯梓紅

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

    關(guān)注

    1

    文章

    407

    瀏覽量

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

    關(guān)注

    8

    文章

    682

    瀏覽量

    31091
  • FreeRTOS
    +關(guān)注

    關(guān)注

    14

    文章

    497

    瀏覽量

    66355
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    429

    瀏覽量

    26939

原文標(biāo)題:FreeRTOS|再次移植

文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī),微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    FreeRTOS下對(duì)lwIP的移植程序

    FreeRTOS下對(duì) lwIP的移植程序。
    發(fā)表于 10-29 10:58 ?11次下載

    FreeRTOS移植到MAPS-資料匯總

    FreeRTOS已成功移植于超過35種架構(gòu)的MCU中運(yùn)行,本文以MAPS-K22開發(fā)板為例,介紹了將FreeRTOS移植于NXP Kientis 系列MCU中的步驟,希望能對(duì)想學(xué)習(xí)RT
    發(fā)表于 12-24 18:36 ?6次下載

    freertos移植教程_freertos任務(wù)調(diào)度原理

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

    嵌入式操作系統(tǒng)FREERTOS移植.

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

    轉(zhuǎn)發(fā):stm32 移植 freertos

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

    STM32移植FreeRTOS(圖文實(shí)操)

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

    IAR移植FreeRTOS

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

    freeRTOS使用筆記一(移植篇)

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

    英飛凌infineon-XMC4500,移植FreeRTOS

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

    FreeRTOS移植—基于STM32

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

    FreeRTOS-stm32f407移植

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

    【STM32】FreeRTOS移植

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

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

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

    FreeRTOS操作系統(tǒng)移植文件

    FreeRTOS操作系統(tǒng)移植文件,不會(huì)官網(wǎng)下載的,可以這里下載
    發(fā)表于 08-28 14:58 ?1次下載

    FreeRTOS移植

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