91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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)在板子上跑起來(lái)

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 11:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫在前面

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

為什么不先講述源代碼?

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

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

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

這里主要想提醒的是:在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ī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 目錄
    +關(guān)注

    關(guān)注

    3

    文章

    13

    瀏覽量

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

    關(guān)注

    96

    文章

    2953

    瀏覽量

    70274
  • FreeRTOS
    +關(guān)注

    關(guān)注

    14

    文章

    499

    瀏覽量

    66886
  • Source
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Linux設(shè)備樹到底是啥?一張圖看懂硬件適配的「翻譯官」

    你有沒(méi)有想過(guò):同一份 Linux 內(nèi)核鏡像,為啥能在不同型號(hào)的開發(fā)板跑起來(lái)?比如一塊 ARM 架構(gòu)的開發(fā)板,今天換個(gè)顯示屏、明天加個(gè)傳感器,內(nèi)核不用重新編譯就能識(shí)別新硬件 —— 這背后,設(shè)備樹(Devicetree) 功不可沒(méi)。
    的頭像 發(fā)表于 02-09 17:01 ?1049次閱讀
    Linux設(shè)備樹到底是啥?一張圖看懂硬件適配的「翻譯官」

    其利天下:論“高速風(fēng)筒驅(qū)動(dòng)方案”中那些看不見的設(shè)計(jì)關(guān)鍵

    聊到高速風(fēng)筒,大家首先想到的可能是十萬(wàn)轉(zhuǎn)的電機(jī)、超大風(fēng)量。但很多工程師朋友都知道,這些參數(shù)穩(wěn)定、安全、可靠地跑起來(lái),真正決定用戶體驗(yàn)“下限”的,往往是藏在里面那顆不顯眼的MCU(微控制器)及其整體方案。
    的頭像 發(fā)表于 02-05 16:44 ?1255次閱讀
    其利天下:論“高速風(fēng)筒驅(qū)動(dòng)方案”中那些看不見的設(shè)計(jì)關(guān)鍵

    Linux 下交叉編譯實(shí)戰(zhàn):跑起來(lái)你的第一個(gè) STM32 程序

    跑起來(lái)你的第一個(gè)STM32程序。一、準(zhǔn)備工作開始之前,需要準(zhǔn)備:1、Linux開發(fā)環(huán)境Ubuntu、Debian或其他主流發(fā)行版都可以。2、ARMGCC交叉編譯工具
    的頭像 發(fā)表于 11-24 19:04 ?801次閱讀
    Linux 下交叉編譯實(shí)戰(zhàn):<b class='flag-5'>跑起來(lái)</b>你的第一個(gè) STM32 程序

    RTOS 必學(xué)概念:任務(wù)、信號(hào)量、隊(duì)列一次搞懂

    個(gè)FIFO緩沖區(qū)?”這些問(wèn)題聽起來(lái)基礎(chǔ),但又總是繞在初學(xué)者腦子里。很多人直接拿FreeRTOS、RTX這樣的RTOS例程開搞,能跑起來(lái),卻完全沒(méi)理解任務(wù)調(diào)度、信號(hào)
    的頭像 發(fā)表于 11-17 10:53 ?465次閱讀
    RTOS 必學(xué)概念:任務(wù)、信號(hào)量、隊(duì)列一次搞懂

    如何自己設(shè)計(jì)一個(gè)基于RISC-V的SoC架構(gòu),最后可以FPGA跑起來(lái)

    如何自己設(shè)計(jì)一個(gè)基于RISC-V的SoC架構(gòu),最后可以FPGA跑起來(lái)
    發(fā)表于 11-11 08:03

    RT Studio 創(chuàng)建 STM32G4xx的板子,LPUART1的初始化存在錯(cuò)誤怎么解決?

    我是一個(gè)新手,剛開始探索RT-Thread+STM32 在用RT Studio創(chuàng)建工程后順利把板子跑起來(lái)了,不是開發(fā)板,是自己的板子;但是發(fā)現(xiàn)LPUART1不能使用,后面有折騰了下Studio鏈接
    發(fā)表于 10-11 08:34

    rtthread studio dubuge在線調(diào)試無(wú)法查看寄存器和外設(shè)寄存器,怎么解決?

    程序也跑起來(lái)了,SVDpath也沒(méi)問(wèn)題。
    發(fā)表于 10-09 09:13

    請(qǐng)問(wèn)rt-thread 能在msp430跑起來(lái)嗎?

    剛看到tr-thread,認(rèn)為很不錯(cuò),關(guān)注中… 我想問(wèn)一下,rt-thread能在msp430跑起來(lái)嗎? 有沒(méi)有人打算往上移植的? [s:175][s:175]
    發(fā)表于 09-22 07:54

    盤點(diǎn)那些電腦“跑起來(lái)”的“隱形高速公路”

    PCIe是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn),用于計(jì)算機(jī)主板與外部硬件設(shè)備的連接(如顯卡、擴(kuò)展卡、數(shù)據(jù)采集卡等)。它相對(duì)比PCI并行總線,解決了數(shù)據(jù)傳輸帶寬不足、信號(hào)干擾的問(wèn)題。
    的頭像 發(fā)表于 07-29 17:57 ?614次閱讀
    盤點(diǎn)那些<b class='flag-5'>讓</b>電腦“<b class='flag-5'>跑起來(lái)</b>”的“隱形高速公路”

    儲(chǔ)能BMS通信“卡殼”?CAN轉(zhuǎn)EtherCAT電池?cái)?shù)據(jù)“跑起來(lái)

    儲(chǔ)能電站的“神經(jīng)中樞”里,BMS(電池管理系統(tǒng))就像電池的“健康管家”,但當(dāng)百節(jié)電池串聯(lián)成儲(chǔ)能集群,傳統(tǒng)CAN總線常陷入“數(shù)據(jù)堵車”——這時(shí)候,耐達(dá)訊通信技術(shù)CAN轉(zhuǎn)EtherCAT方案就成了打通
    發(fā)表于 07-18 15:32

    扎根業(yè)務(wù),這個(gè)618商業(yè)智能體先跑起來(lái)

    首個(gè)人機(jī)協(xié)同作戰(zhàn)的京東618,誰(shuí)在制造數(shù)字員工?
    的頭像 發(fā)表于 06-10 18:09 ?2366次閱讀
    扎根業(yè)務(wù),這個(gè)618商業(yè)智能體先<b class='flag-5'>跑起來(lái)</b>

    智能車淺談——手把手跑起來(lái)(電磁篇)

    前言電磁尋跡小車之前智能車系列已經(jīng)做了一個(gè)比較詳細(xì)的解析,但是美中不足是知識(shí)點(diǎn)被拆的太零散,可能對(duì)于新手來(lái)說(shuō)不太友好,所以借著有空就再寫一點(diǎn)能讓車跑起來(lái)的方案。當(dāng)然,也就僅僅限于可以跑起來(lái),元素
    的頭像 發(fā)表于 05-22 19:32 ?2839次閱讀
    智能車淺談——手把手<b class='flag-5'>讓</b>車<b class='flag-5'>跑起來(lái)</b>(電磁篇)

    同樣的代碼官方開發(fā)板運(yùn)行正常,自己板子就跑不起來(lái),怎么辦?

    同樣的代碼Nordic官方開發(fā)板可以運(yùn)行正常,但在自己板子就跑不起來(lái),如果你碰到了上述情況,建議按照如下步驟進(jìn)行自檢: 首先確認(rèn)用戶板
    的頭像 發(fā)表于 05-12 15:26 ?756次閱讀
    同樣的代碼<b class='flag-5'>在</b>官方開發(fā)板<b class='flag-5'>上</b>運(yùn)行正常,<b class='flag-5'>在</b>自己<b class='flag-5'>板子</b><b class='flag-5'>上</b>就跑不<b class='flag-5'>起來(lái)</b>,怎么辦?

    如何在i.MX 8XDXL EVK的A35運(yùn)行Yocto Linux,M4運(yùn)行FreeRTOS?

    方法是什么?具體說(shuō)來(lái): 1. 我應(yīng)該如何正確啟動(dòng)兩個(gè)作系統(tǒng)? 2. 當(dāng) Linux A35 運(yùn)行時(shí), M4 加載和執(zhí)行
    發(fā)表于 04-04 06:02

    stm32cubeide生成的lwip網(wǎng)絡(luò)通訊任務(wù)跑起來(lái)都很正常,為什么一旦加獨(dú)立看門狗之后就會(huì)卡死呢?

    stm32cubeide生成的lwip網(wǎng)絡(luò)通訊任務(wù)跑起來(lái)都很正常,為什么一旦加獨(dú)立看門狗之后就會(huì)卡死?
    發(fā)表于 03-10 07:29