新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 技術(shù)洞察 | 如何在英飛凌 AURIX? TC3xx 系列單片機(jī)上移植 FreeRTOS 實(shí)時(shí)操作系統(tǒng)

        技術(shù)洞察 | 如何在英飛凌 AURIX? TC3xx 系列單片機(jī)上移植 FreeRTOS 實(shí)時(shí)操作系統(tǒng)

        作者: 時(shí)間:2025-04-22 來源:英飛凌 收藏

        本文作者

        本文引用地址:http://www.104case.com/article/202504/469650.htm

        Di Wang

        科技大中華區(qū) CAE 客戶支持工程師

        最近在 新聞 中,大家了解到為其 ? TC3x 微控制器(MCU)添加了對FreeRTOS的支持。借助實(shí)時(shí)操作系統(tǒng)(FreeRTOS),功能強(qiáng)大的微控制器 ? MCU 能夠高效管理硬件和軟件資源,確保任務(wù)的及時(shí)和可靠執(zhí)行。FreeRTOS作為硬件和應(yīng)用軟件之間的中介,使開發(fā)者能夠?qū)W⒂趹?yīng)用代碼,無需處理硬件的復(fù)雜性,從而實(shí)現(xiàn)應(yīng)用代碼的可移植性和可重用性,并縮短上市時(shí)間。

        本文介紹了在 ?  單片機(jī)上移植 FreeRTOS 實(shí)時(shí)操作系統(tǒng)的操作步驟,讀者可以使用 Triboard 開發(fā)板和免費(fèi)的 ADS 開發(fā)平臺(tái),快速移植 FreeRTOS 到自己使用的 MCU上,創(chuàng)建任務(wù)并實(shí)現(xiàn) LED 的閃燈演示。

        1、前言

        FreeRTOS是一款廣泛使用的開源實(shí)時(shí)操作系統(tǒng)(RTOS),具有輕量級(jí)、模塊化和易用的特點(diǎn),適用于資源受限的嵌入式系統(tǒng)開發(fā)。 它支持多任務(wù)調(diào)度、任務(wù)間通信和同步,并提供豐富的中間件支持,便于開發(fā)者快速構(gòu)建高效、可靠的應(yīng)用程序。

        的AURIX? TC3x MCU采用符合ASIL-D/SIL-3標(biāo)準(zhǔn)的設(shè)計(jì),滿足汽車和工業(yè)市場的嚴(yán)格要求。它基于高性能的TriCore?架構(gòu),具備實(shí)時(shí)能力、先進(jìn)的功能安全特性和功能可靠性, 是安全關(guān)鍵應(yīng)用的理想選擇 。FreeRTOS的可用性使客戶能夠在成熟且功能豐富的開源環(huán)境中快速構(gòu)建應(yīng)用程序。將FreeRTOS集成到AURIX? TC3x MCU中,不僅能夠助力汽車和工業(yè)市場的廣大客戶快速進(jìn)行功能評(píng)估,而且為在非AUTOSAR項(xiàng)目中快速遷移應(yīng)用代碼提供了可能。

        2、參考鏈接

        參考鏈接一

        參考鏈接二

        參考鏈接三

        3、準(zhǔn)備 ADS 開發(fā)環(huán)境

        ADS (AURIX? Development Studio)是英飛凌推出的一個(gè)免費(fèi)的集成開發(fā)環(huán)境,內(nèi)嵌 Tasking 編譯器的免費(fèi)版本,并集成大量AURIX? TC3xx 微控制器的例子工程。用戶可以快速上手,通過導(dǎo)入不同模塊的例子工程,編譯并下載到開發(fā)板中,進(jìn)行功能評(píng)估和開發(fā)。( 下載鏈接 )

        如圖所示:

        4

        準(zhǔn)備 Triboard 開發(fā)板

        ADS 開發(fā)環(huán)境支持各種 AURIX? TC3xx MCU的開發(fā)板,比如Lite Kit、ShieldBuddy、TFT Kit或Triboard。本文基于 TC399 Triboard ,其板載有8個(gè) LED 供測試使用,本文代碼使用 P33.4和 P33.5引腳來控制最左側(cè)的LED1和LED2,實(shí)現(xiàn)閃爍演示。在下載程序之前,請使用電源線給 Triboard供電,并使用mini USB線連接開發(fā)板到PC機(jī),在 PC 機(jī)上開啟 ADS 集成開發(fā)環(huán)境。

        如圖所示:

        5

        打開一個(gè)例子工程

        安裝完成之后,用戶可打開 ADS平臺(tái),在 File 菜單中選擇 Import 導(dǎo)入,之后在例子工程的代碼庫中找到名為 STM_Interrupt_1 的例子工程,點(diǎn)擊 Finish 完成,即可導(dǎo)入第一個(gè)例子工程。 (注:TC397的工程可以使用在TC399的開發(fā)板上)。

        如圖所示:

        打開工程后,可以在工程上點(diǎn)擊右鍵,選擇 Set Active Project,之后點(diǎn)擊 Build Project 進(jìn)行編譯。編譯之后,點(diǎn)擊 Debug菜單進(jìn)行下載調(diào)試。如果在Debug Configurations中沒有合適的配置,請首先創(chuàng)建一個(gè)配置(使用默認(rèn)配置在TASKING C/C++ Debugger中創(chuàng)建即可)。這里注意,編譯前需修改 STM_Interrupt.c 文件中的 LED 引腳為 P33.4,以適配 TC399 Triboard 的 LED1 引腳。下載后,點(diǎn)擊Resume運(yùn)行,可以看到開發(fā)板上最左側(cè)的LED燈會(huì)閃爍。這個(gè)工程是我們進(jìn)行 FreeRTOS 移植的基礎(chǔ)。

        6

        移植過程

        在準(zhǔn)備好了ADS開發(fā)環(huán)境、Triboard開發(fā)板,并下載成功 STM_Interrupt_1 例子工程后,即可開始我們的移植過程。

        第一步:下載 FreeRTOS 版本 10.5.1 并解壓縮

        用戶可以從 FreeRTOS 的官方網(wǎng)站獲取源碼,將解壓后的 FreeRTOS 文件夾復(fù)制到 STM_INTERRUPT_1 例子工程的 OS/FreeRTOS/ 路徑下。( 下載鏈接 )

        第二步:整理 Portable 文件夾

        打開 FreeRTOS/Portable/ 目錄,刪除所有文件夾,僅保留 MemMang 和 Tasking 文件夾。

        第三步:port.c 和 portmacro.h

        在 Tasking 文件夾中移除 ARM_CM4F 文件夾,創(chuàng)建一個(gè)名為 TC3 的新文件夾,該文件夾將包含兩個(gè)文件:port.c 和 portmacro.h。( 下載鏈接 )

        第四步:FreeRTOSConfig.h

        將 FreeRTOSConfig.h 文件復(fù)制到 STM_INTERRUPT_1 例子工程的 Configurations/ 路徑下。( 下載鏈接 )

        第五步:修改 Ifx_Cfg.h

        參考后面鏈接中的 Ifx_Cfg.h 文件,修改例子工程中的 Configurations/Ifx_Cfg.h 文件。( 下載鏈接 )

        第六步:排除不必要的文件

        打開 OS/FreeRTOS/portable/MemMang/ 目錄,右鍵點(diǎn)擊 heap_2.c 到 heap_5.c,選擇 Resource Configuration,然后選擇 Exclude from Build。這確保在構(gòu)建過程中僅使用 heap_1.c

        第七步:修改 Cpu0_Main.c 、 STM_Interrupt.c 和 STM_Interrupt.h

        讀者可以下載3個(gè)源文件并覆蓋例子工程中的相應(yīng)文件。( 下載鏈接 )

        講解:

        • 在 Cpu0_Main.c 中,主要?jiǎng)?chuàng)建了2個(gè)任務(wù) task_app_led1 和 task_app_led2,并啟動(dòng)操作系統(tǒng)的調(diào)度器,代碼如下:

        • 在 STM_Interrupt.c 中,對LED1和LED2引腳進(jìn)行初始化,設(shè)置為輸出模式,并給出了2個(gè)任務(wù)的具體實(shí)現(xiàn),主要是定時(shí)翻轉(zhuǎn) LED1 和 LED2的引腳,代碼如下:

        • 在 STM_Interrupt.h中,對兩個(gè)任務(wù)函數(shù)的原型給出了聲明。


        第八步:重新編譯工程并下載

        右鍵點(diǎn)擊工程,選擇「Clean Project」清除編譯文件,之后重新「Build Project」,并在 Debug 菜單中點(diǎn)擊 Debug,之后生成的程序會(huì)下載到 TC399 Triboard 開發(fā)板中并進(jìn)入調(diào)試界面,在調(diào)試界面點(diǎn)擊 「Resume」運(yùn)行,觀察開發(fā)板上的 LED1(P33.4)和 LED2(P33.5),它們將分別以 500ms 和 1000ms 的周期閃爍。



        關(guān)鍵詞: 英飛凌 AURIX TC3xx

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 涪陵区| 宣威市| 独山县| 南京市| 大石桥市| 呼和浩特市| 民权县| 木兰县| 岳池县| 海淀区| 紫金县| 忻城县| 葵青区| 吉林省| 岱山县| 永清县| 江达县| 施甸县| 贺州市| 咸丰县| 闵行区| 中山市| 福州市| 静安区| 洛浦县| 武清区| 哈巴河县| 赫章县| 柳江县| 宁晋县| 娄底市| 吐鲁番市| 巴塘县| 仪征市| 璧山县| 绿春县| 竹北市| 秦皇岛市| 遂昌县| 铜梁县| 东源县|