RM新时代网站-首页

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

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

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

FreeRTOS_003 _讓系統(tǒng)在板子上跑起來

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 11:25 ? 次閱讀

寫在前面

為滿足大家的好奇心,本文將講述幾個(gè)步驟可以讓FreeRTOS系統(tǒng)直接在芯片上運(yùn)行,源代碼里面的許多細(xì)節(jié)將在下一篇文章呈現(xiàn)。最后提供可以直接運(yùn)行的Demo工程給大家,方便大家直接拿來修改測(cè)試。

為什么不先講述源代碼?

相信很多朋友開始學(xué)習(xí)的時(shí)候都是參看別人寫好的,可以直接使用的源代碼。在正確代碼工程的基礎(chǔ)上,我們可以展開很多測(cè)試,從而可以知道為什么這樣才可以運(yùn)行。

整個(gè)FreeRTOS工程源代碼里面的內(nèi)容牽涉到許多東西,而只需要簡(jiǎn)單幾個(gè)步驟就能將代碼運(yùn)行起來,看到效果。如果我一一給你們講述源代碼,估計(jì)沒怎么講述幾條,大家都暈了,不知道為什么這個(gè)地方是這樣。

所以,給你看寫好源代碼工程,讓你們自己測(cè)試,并分析才是最好的。

移植幾個(gè)步驟

源代碼里面的內(nèi)容有很少變動(dòng),本篇文章不具體講述,只講述移植的幾個(gè)步驟,最終讓代碼工程可以運(yùn)行在板子上。只需要如下簡(jiǎn)單幾步即可:

1.提取源碼添加到工程

上一篇文章講述了下載FreeRTOS源碼中各個(gè)目錄及文件的意思,也大概講述了一下需要提取源碼。

主要提?。篠ource目錄+FreeRTOSConfig.h

(里面有部分內(nèi)容未使用,為了不讓大家感覺文件比較多,或者雜,我刪除了)

將這些源碼添加到自己的工程(之前講述并建立好的STM32工程),具體提取的源碼和添加到工程中的效果,請(qǐng)下載代碼查看。

2.添加路徑

我們添加源碼到工程,有部分頭文件include需要添加到工程。因此,我們需要添加相應(yīng)路徑。

.c源代碼添加路徑的方法見文章:

1.MDK-ARM_新建軟件工程詳細(xì)過程

2.EWARM_新建軟件工程詳細(xì)過程

這里主要想提醒的是:在IAR工程中有個(gè)匯編文件portasm.s包含了,需要我們添加所在文件下的路徑。

注意:是在EWARM的Project -> Options -> Assembler -> Preprocessor中添加。

3.創(chuàng)建自己任務(wù)和添加相應(yīng)代碼

我們創(chuàng)建四個(gè)任務(wù),還是使用比較經(jīng)典的LED燈任務(wù)。

void AppTaskCreate(void)

{

xTaskCreate(vAppTask1, "Task1", TASK1_STACK_SIZE, NULL, TASK1_PRIORITY, NULL);

xTaskCreate(vAppTask2, "Task2", TASK2_STACK_SIZE, NULL, TASK2_PRIORITY, NULL);

xTaskCreate(vAppTask3, "Task3", TASK3_STACK_SIZE, NULL, TASK3_PRIORITY, NULL);

xTaskCreate(vAppTask4, "Task4", TASK4_STACK_SIZE, NULL, TASK4_PRIORITY, NULL);

}

void vAppTask1(void *pvParameters)

{

for(;;)

{

LED1_TOGGLE;

vTaskDelay(50);

}

}

我新建了app_task.c和app_task.h文件添加任務(wù)的源代碼。

4.修改FreeRTOSConfig.h配置文件

這個(gè)文件是必須配置的,而且根據(jù)實(shí)際情況而定。我們系統(tǒng)的裁剪也與該文件有關(guān),類似于UCOS中的os_cfg.h文件。

比如:主頻、系統(tǒng)滴答、系統(tǒng)堆棧大小等。

#define configCPU_CLOCK_HZ ((unsigned long)72000000)

#define configTICK_RATE_HZ ((TickType_t)100)

#define configTOTAL_HEAP_SIZE ((size_t)(4 * 1024))

本文不講述具體內(nèi)容。后期詳細(xì)分析FreeRTOSConfig.h中的每一個(gè)參數(shù)

至此,基本的步驟算是完成了。

代碼下載

目前只提供了STM32F0、F1和F4的Demo工程,后期更新。

【提示:微信公眾號(hào)不支持外鏈接】

FreeRTOS_STM32F0_Demo下載地址:

http://pan.baidu.com/s/1qYbmfy0

FreeRTOS_STM32F1_Demo下載地址:

http://pan.baidu.com/s/1jHDHRPc

FreeRTOS_STM32F4_Demo下載地址:

http://pan.baidu.com/s/1bplLZ7x

聲明:本文內(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)注

    3

    文章

    13

    瀏覽量

    8241
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2945

    瀏覽量

    66730
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62139
  • Source
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    9818
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    1X Technologies明示:機(jī)器人跑起來

    近日,OpenAI投資的機(jī)器人公司1X Technologies(簡(jiǎn)稱1X)透露了其機(jī)器人研發(fā)的下一步計(jì)劃。11月23日,1X的AI副總裁Eric Jang社交媒體發(fā)帖求推薦跑步機(jī),并特別注明
    的頭像 發(fā)表于 11-25 14:40 ?426次閱讀

    TM4C MCUFreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《TM4C MCUFreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 14:15 ?0次下載
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>用<b class='flag-5'>FreeRTOS</b>開發(fā)通用應(yīng)用程序應(yīng)用說明

    TM4C MCU使用FreeRTOS開發(fā)高級(jí)應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《TM4C MCU使用FreeRTOS開發(fā)高級(jí)應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 10:17 ?0次下載
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>使用<b class='flag-5'>FreeRTOS</b>開發(fā)高級(jí)應(yīng)用

    BLE MESH console用例跑起來,除了開發(fā)板、串口線、小燈還需要什么外設(shè)嗎?

    BLE MESH console用例跑起來,除了開發(fā)板、串口線、小燈還需要什么外設(shè)嗎?其次是輸入命令行的窗口是不是執(zhí)行idf build的窗口?最后就是能輸入的命令行是否ble_mesh_commands_README.md中,我嘗試輸入第一個(gè)Example: bmre
    發(fā)表于 06-21 15:27

    請(qǐng)問esp32使用lvgl的時(shí)候要怎么配置使用外部ROM?

    components/lvgl這個(gè)demo 剛剛可以把實(shí)例正常的跑起來 就是豎屏的時(shí)候不流暢 想把緩沖器區(qū)弄的大一點(diǎn)但是不知怎么配置 有大佬用過這個(gè)的嗎 可以指點(diǎn)一下嗎?
    發(fā)表于 06-20 06:29

    espidf5.0.0版本的LCD中的rgb_panel例程怎么跑起來

    想請(qǐng)問一下 espidf5.0.0版本的LCD中的rgb_panel例程怎么跑起來,之前跑起來過幾次,不過現(xiàn)在完全跑不起來了 報(bào)錯(cuò)代碼中出現(xiàn)的錯(cuò)誤均為例程中的源代碼,且其頭文件都是有包含的,請(qǐng)問
    發(fā)表于 06-12 08:04

    板子的TVS管為什么總是壞?

    板子的TVS管為什么總是壞?
    的頭像 發(fā)表于 06-08 08:10 ?334次閱讀
    <b class='flag-5'>板子</b><b class='flag-5'>上</b>的TVS管為什么總是壞?

    使用STMF030C6T6開發(fā)板做的工程,能否用到使用L031F6P6做的產(chǎn)品?

    使用STMF030C6T6開發(fā)板做的工程,能否用到使用L031F6P6做的產(chǎn)品?就是用CUBEMAX生成的STMF030C6T6工程,L031F6P6做的產(chǎn)品能否跑起來?
    發(fā)表于 05-24 07:19

    用STVP將STVD生成的.hex文件直接下載到板子板子就不能跑,請(qǐng)問是什么原因?

    STVD仿真下載程序,程序下進(jìn)去,板子可以跑起來,可是我用STVP將STVD生成的.hex文件直接下載到板子,
    發(fā)表于 04-28 08:23

    請(qǐng)問STM32f103rct6怎么用emwin+AppWiard開發(fā)OLED屏???

    我的板子單用6.24版本的emwin能正常跑起來,但是用AppWizard開發(fā)emwin然后移植就不行了,屏幕用的是128*64的OLED,誰搞過嗎或者哪里有教程?我弄了好幾天了都不行。希望弄過的前輩指點(diǎn)一下。
    發(fā)表于 03-27 06:43

    MotorControl Workbench生成的代碼是開環(huán)的嗎,為什么電機(jī)跑起來很容易受到外力導(dǎo)致停機(jī)?

    請(qǐng)問各位高手 MotorControl Workbench 生成的代碼是開環(huán)的嗎?為什么我的電機(jī)跑起來很容易受到外力導(dǎo)致停機(jī),我想它不停機(jī),請(qǐng)問有什么好的辦法嗎 ?
    發(fā)表于 03-21 07:12

    STM32F103RET6電后出現(xiàn)復(fù)位腳對(duì)地0.09V電壓,一直處于復(fù)位狀態(tài)為什么?

    STM32F103RET6 電后出現(xiàn)復(fù)位腳對(duì)地0.09V電壓,芯片一直處于復(fù)位狀態(tài),接入JLINK后亮紅燈,如果把復(fù)位腳強(qiáng)制接3.3V后,軟件正常跑起來,仿真器能正常識(shí)別到ID,但無法更新FLASH及仿真
    發(fā)表于 03-21 06:42

    CYPD5125 TYPE-C作為Consumer的時(shí)候,CYPD5125里的程序?yàn)槭裁礇]有跑起來?

    CYPD5125 TYPE-C作為Consumer的時(shí)候,外接設(shè)備是有5V輸出的,當(dāng)TYPE-C作為Provider的時(shí)候,此時(shí)VBUS為5V,VDDD也有3.3V左右,CYPD5125里的程序?yàn)槭裁礇]有跑起來?
    發(fā)表于 02-28 08:05

    psoc63能否不開啟藍(lán)牙的時(shí)候藍(lán)牙不耗電?

    的情況下,功耗大概13mA,M4睡眠,M0喚醒的情況下待機(jī)功耗7mA。我M0跑起來的時(shí)候我是沒有開啟藍(lán)牙廣播的。 我記得之前用62的時(shí)候M0跑起來沒有這么大的功耗。 好像也就2~3mA。我現(xiàn)在有個(gè)疑問,是不是
    發(fā)表于 02-19 07:38

    PCB設(shè)計(jì):錯(cuò)把毫米當(dāng)厘米怎么辦?

    50塊的板子:小事,重打吧,這點(diǎn)錢算啥啊,這個(gè)留作紀(jì)念吧。 200塊的板子:出了點(diǎn)小問題,一切都在控制當(dāng)中,重新做一套就沒問題了。 1000塊的板子:這一塊設(shè)計(jì)有問題,我觀察電源和高頻那塊也沒考慮好,估計(jì)這塊
    發(fā)表于 12-25 11:43 ?388次閱讀
    PCB設(shè)計(jì):錯(cuò)把毫米當(dāng)厘米怎么辦?
    RM新时代网站-首页