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

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

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

如何讓FreeRTOS系統(tǒng)直接在芯片上運行?

5RJg_mcuworld ? 來源:未知 ? 作者:胡薇 ? 2018-09-12 14:13 ? 次閱讀

為滿足大家的好奇心,本文將講述幾個步驟可以讓FreeRTOS系統(tǒng)直接在芯片上運行,提供可以直接運行的Demo工程給大家,方便大家直接拿來修改測試。

為什么不先講述源代碼?

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

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

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

移植幾個步驟

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

1.提取源碼添加到工程

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

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

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

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

2.添加路徑

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

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

1.MDK-ARM_新建軟件工程詳細過程

2.EWARM_新建軟件工程詳細過程

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

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

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

我們創(chuàng)建四個任務(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配置文件

這個文件是必須配置的,而且根據(jù)實際情況而定。我們系統(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)容。后期詳細分析FreeRTOSConfig.h中的每一個參數(shù)。

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

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

    關(guān)注

    452

    文章

    50219

    瀏覽量

    420966
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61918

原文標(biāo)題:簡單幾步,讓你的FreeRTOS直接跑在芯片上!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Arduino庫可以直接在RT-Thread運行了 附詳細解讀

    Arduino社區(qū)優(yōu)秀的開源項目),來豐富RT-Thread社區(qū)軟件包生態(tài),并降低RT-Thread操作系統(tǒng)以及與RT-Thread適配的芯片的學(xué)習(xí)門檻??梢?b class='flag-5'>讓用戶通過Arduino的函數(shù)和編程方法,輕松地將
    發(fā)表于 08-31 21:03 ?1828次閱讀

    如何用CCS直接在ARM A8運行裸跑程序?

    大家好,請教下能不能用CCS5直接在ARM A8 core運行裸跑程序呢?(我指的是在ARM里面不加操作系統(tǒng)和文件系統(tǒng),把ARM A8當(dāng)單
    發(fā)表于 06-21 13:06

    請問怎么SD卡拔下來可以直接在電腦顯示卡的內(nèi)容,求程序

    怎么SD卡拔下來以后可以直接在電腦顯示卡的內(nèi)容?就是用MSP430向SD卡寫數(shù)據(jù),怎么在電腦端顯示?
    發(fā)表于 01-28 22:55

    freeRTOS 如何移植到zynq芯片

    因為最近要用到zynq芯片,我希望能在zynq芯片使用freeRTOS,但是弄不明白怎么移植進去。一般xillinx sdk在工程里面添加操作系統(tǒng)
    發(fā)表于 06-11 04:35

    FreeRTOS任務(wù)調(diào)度優(yōu)先級,會直接在就緒列表中調(diào)用低優(yōu)先級任務(wù)么?

    由于剛開始使用FreeRTOS,所以有很多問題,也正在學(xué)習(xí)。請問各位,假如優(yōu)先級高的任務(wù)時間片用完后,會直接在就緒列表中調(diào)用低優(yōu)先級任務(wù)么?假設(shè):Task_A 優(yōu)先級為2,Task_B 優(yōu)先級為1
    發(fā)表于 06-14 09:01

    分享STM32F427IIH6芯片運行FreeRTOS系統(tǒng)

    我將分享STM32F427IIH6芯片(RoboMaster A型)運行FreeRTOS系統(tǒng)通過串
    發(fā)表于 01-11 06:17

    現(xiàn)有的BSP工程可以直接在GD32F470上進行開發(fā)嗎

    大家好:有關(guān)于GD32F470的BSP工程的問題咨詢,我在GD官網(wǎng)上查照資料了解470和450是很相似的,目前因為項目需要使用的470芯片,想使用rt-thread的操作系統(tǒng),但是不知道該移植哪些內(nèi)容,或者是現(xiàn)有的BSP可以直接在
    發(fā)表于 08-01 10:39

    FreeRTOS在STM32的移植筆記

    將嵌入式開發(fā)領(lǐng)域著名的開源嵌入式RTOS --- FreeRTOS 一直到STM32 芯片運行的移植筆記。
    發(fā)表于 05-09 09:56 ?5次下載

    什么是操作系統(tǒng)?FreeRTOS中文實用教程你快速入門FreeRTOS

    本文檔的主要內(nèi)容詳細介紹的是什么是操作系統(tǒng)?FreeRTOS中文實用教程你快速入門FreeRTOS帶你了解了1.認(rèn)識操作系統(tǒng) 2.輕松上手
    發(fā)表于 09-12 16:51 ?275次下載
    什么是操作<b class='flag-5'>系統(tǒng)</b>?<b class='flag-5'>FreeRTOS</b>中文實用教程<b class='flag-5'>讓</b>你快速入門<b class='flag-5'>FreeRTOS</b>

    如何輕松幾步實現(xiàn)在STM32運行FreeRTOS任務(wù)

    輕松幾步實現(xiàn)在STM32運行FreeRTOS任務(wù)
    的頭像 發(fā)表于 03-01 12:07 ?8396次閱讀
    如何輕松幾步實現(xiàn)在STM32<b class='flag-5'>上</b><b class='flag-5'>運行</b><b class='flag-5'>FreeRTOS</b>任務(wù)

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

    FreeRTOS_003_系統(tǒng)在板子跑起來
    的頭像 發(fā)表于 03-14 11:25 ?2733次閱讀
    <b class='flag-5'>FreeRTOS</b>_003 _<b class='flag-5'>讓</b><b class='flag-5'>系統(tǒng)</b>在板子<b class='flag-5'>上</b>跑起來

    芯片接在電路板的好處_芯片如何焊接在電路板

    芯片是要“裝”在電路板的,準(zhǔn)確的說是“焊接”。芯片要通過焊錫焊接在電路板,而電路板通過“走
    的頭像 發(fā)表于 03-08 06:12 ?1.1w次閱讀

    FreeRTOS直接任務(wù)(消息)通知

    ? ? ? ? 之前分享了《FreeRTOS V10.4.0更新了哪些功能?》,今天就來詳細講述其中的一個知識點:FreeRTOS直接任務(wù)(消息)通知,這樣做的目的就是減少RAM占用空間并加快執(zhí)行
    的頭像 發(fā)表于 01-07 09:37 ?4494次閱讀

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7移植實現(xiàn)

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7移植實現(xiàn)(嵌入式開發(fā)工程師待遇)-嵌入式實時操作系統(tǒng)FreeRTOS在ARM7
    發(fā)表于 07-30 12:05 ?20次下載
    嵌入式實時操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>FreeRTOS</b>在ARM7<b class='flag-5'>上</b>移植實現(xiàn)

    基于STM32的FreeRTOS開發(fā)(1)----FreeRTOS簡介

    FreeRTOS 是一個免費和開源的實時操作系統(tǒng),它主要用于嵌入式系統(tǒng)。它非常輕量級,可以在很小的硬件資源運行,因此非常適合在限制硬件資源
    的頭像 發(fā)表于 07-27 09:49 ?1243次閱讀
    基于STM32的<b class='flag-5'>FreeRTOS</b>開發(fā)(1)----<b class='flag-5'>FreeRTOS</b>簡介