該書籍詳細(xì)說(shuō)明FREERTOS操作系統(tǒng)在stm32F407上面的移植過程,和使用方法
上傳時(shí)間: 2022-06-18
上傳用戶:kent
前言:由于之前聽過太多人抱怨移植FreeRTOS到STM32有各種各樣的問題,小燈經(jīng)過一年多對(duì)FreeRTOS的研究并在公司產(chǎn)品中應(yīng)用, 多少有些心得, 接下來(lái)就由小燈以最新版的FreeRTOS為例一步一步移植到STM32F103 上,并提醒大家某些需要注意的事項(xiàng)。本文檔為非正式技術(shù)文檔,故排版會(huì)有些凌亂,希望大家能提供寶貴意見以供小燈參考改進(jìn)。下面先以IAR 移植為例, 說(shuō)明移植過程中的諸多注意事項(xiàng), 最后再以MDK移植時(shí)不再重復(fù)說(shuō)明,所以還是建議大家先花些時(shí)間看IAR 的移植過程,哪怕你不使用IAR,最好也注意下那一大堆注意事項(xiàng)!一、從官網(wǎng)下載最新版的FreeRTOS源碼下面的網(wǎng)址是官方最新源碼的下載地址:https://sourceforge.net/projects/freertos/files/latest/download?source=files目前官方提供的最新版本是v9.0.0 , FreeRTOS 源碼在解壓目錄下的路徑為FreeRTOS_V9.0.0rc2\FreeRTOS\SourceFreeRTOS組織為了搶用戶也是拼了命的, 不信你打開Demo文件夾看看, 里面提供了FreeRTOS在各種單片機(jī)上已經(jīng)移植好的工程,如果建工程時(shí)遇到什么問題,可以參考下這些Demo。不過小燈現(xiàn)在著重于自己動(dòng)手移植FreeRTOS,考慮到原子哥@正點(diǎn)原子的用戶比較多,絕大多數(shù)習(xí)慣了使用MDK來(lái)開發(fā)STM32,因此小燈分別以IAR 和MDK兩種使用比較廣泛的開發(fā)環(huán)境來(lái)移植FreeRTOS。說(shuō)到IAR 和MDK,不得不提的是小燈自從用了IAR 之后就果斷放棄了MDK,相信很多人有這個(gè)經(jīng)歷,哈哈!在開始移植FreeRTOS之前,先介紹下FreeRTOS的源碼:
上傳時(shí)間: 2022-06-20
上傳用戶:
隨著嵌入式技術(shù)的不斷發(fā)展,嵌入式芯片的不斷革新,嵌入式操作系統(tǒng)也逐漸成為嵌人式系統(tǒng)中不可或缺的部分。嵌入式操作系統(tǒng)的運(yùn)用不僅能夠更有效、更合理的利用現(xiàn)有的CPU的資源,而且能夠簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì),縮短應(yīng)用的開發(fā)周期,保證系統(tǒng)的可靠性和實(shí)時(shí)性。本文主要研究基于STM32芯片的硬件平臺(tái),由于RAM資源的限制,只能使用占用資源少的小型操作系統(tǒng),常見的主要有uC/os-Il eCos,F(xiàn)reeRTOS等,與uC/Os-1 eCcos等商業(yè)收費(fèi)的操作系統(tǒng)不同,F(xiàn)reeRTOS操作系統(tǒng)是一個(gè)源碼公開的免費(fèi)實(shí)時(shí)操作系統(tǒng),能夠很好地移植于各種體系結(jié)構(gòu)的微型處理器。1 FreeRTOS操作系統(tǒng)的體系結(jié)構(gòu)作為一款輕量級(jí)操作系統(tǒng),F(xiàn)reeRTOS提供了任務(wù)管理、時(shí)間管理、信號(hào)量、消息隊(duì)列、內(nèi)存管理、記錄等功能,并且具有源碼公開、可裁減、可移植、調(diào)度策略靈活的特點(diǎn)[1-2,。本文主要從任務(wù)調(diào)度機(jī)制、系統(tǒng)時(shí)間管理機(jī)制、內(nèi)存分配機(jī)制、任務(wù)通信與同步機(jī)制介紹操作系統(tǒng)的體系結(jié)構(gòu),并針對(duì)時(shí)下流行的C/OS-1系統(tǒng)進(jìn)行類
標(biāo)簽: 嵌入式操作系統(tǒng) freertos
上傳時(shí)間: 2022-06-20
上傳用戶:
Tickless Idle Mode(FreeRTOS下的實(shí)現(xiàn))一前言目前,越來(lái)越多的嵌入式產(chǎn)品在開發(fā)中使用RTOS作為軟件平臺(tái),同時(shí),開發(fā)中對(duì)低功耗的要求也越來(lái)越高,這篇文檔會(huì)討論一下如何在RTOS中處理微控制器的低功耗特性。應(yīng)用中使用的RTOS一般采用基于時(shí)間片輪轉(zhuǎn)的搶占式任務(wù)調(diào)度機(jī)制,一般的低功耗設(shè)計(jì)思路如下:1,當(dāng)ldle任務(wù)運(yùn)行時(shí),進(jìn)入低功耗模式:2,在適當(dāng)?shù)臈l件下,通過中斷或者外部事件喚醒MCU.但是,從第二點(diǎn)可以看出,每次當(dāng)OS系統(tǒng)定時(shí)器產(chǎn)生中斷時(shí),也會(huì)將MCU從低功耗模式中喚醒,而頻繁的進(jìn)入低功耗模式/從低功耗模式中喚醒會(huì)使得MCU無(wú)法進(jìn)入深度睡眠,對(duì)低功耗設(shè)計(jì)而言也是不合理的。在FreeRTOS中給出了一種低功耗設(shè)計(jì)模式-Tickless Idle Mode,這個(gè)方法可以讓MCU更長(zhǎng)時(shí)間的處于低功耗模式。
上傳時(shí)間: 2022-06-22
上傳用戶:qingfengchizhu
直流系統(tǒng)是給變電站各類信號(hào)設(shè)備、保護(hù)、自動(dòng)裝置、事故照明、應(yīng)急電源及斷路器分合閘操作提供直流電源的電源設(shè)備。直流系統(tǒng)的可靠與否,對(duì)變電站的安全運(yùn)行起著至關(guān)重要的作用。直流系統(tǒng)主監(jiān)控是整個(gè)直流系統(tǒng)的控制、管理核心。主監(jiān)控單元的主要任務(wù)是:對(duì)直流系統(tǒng)中各功能單元和蓄電池進(jìn)行長(zhǎng)期自動(dòng)監(jiān)測(cè)、獲取直流系統(tǒng)中的各種運(yùn)行參數(shù)和狀態(tài)、根據(jù)測(cè)量數(shù)據(jù)及運(yùn)行狀態(tài)實(shí)時(shí)進(jìn)行處理,并以此為依據(jù)對(duì)直流系統(tǒng)進(jìn)行控制,實(shí)現(xiàn)系統(tǒng)的全自動(dòng)精確管理,從而優(yōu)化直流系統(tǒng)的運(yùn)行狀況,保證其工作的連續(xù)性、安全性和可靠性。嵌入式軟硬件技術(shù)已廣泛用于變電站自動(dòng)化、配電網(wǎng)自動(dòng)化、新能源發(fā)電控制等智能電網(wǎng)的各個(gè)應(yīng)用領(lǐng)域。主監(jiān)控單元運(yùn)行時(shí)處理任務(wù)十分繁雜,包括MMI人機(jī)交互、電池充放電管理算法、開入開出控制、系統(tǒng)內(nèi)部通信、后合通訊等任務(wù),并且對(duì)任務(wù)的實(shí)時(shí)性要求較高。因此,主監(jiān)控單元的軟件設(shè)計(jì)是多任務(wù)、實(shí)時(shí)性和復(fù)雜程序較高的工作。嵌人式實(shí)時(shí)操作系統(tǒng)(RToS)的出現(xiàn)為開發(fā)復(fù)雜多任務(wù)提供了很好的解決方案。FreeRTOS操作系統(tǒng)是一個(gè)源碼公開的嵌入式實(shí)時(shí)操作系統(tǒng),具有可移植、可裁減、調(diào)度策略靈活的特點(diǎn),可以方便地移植到各種體系結(jié)構(gòu)的微處理器上運(yùn)行。
標(biāo)簽: freertos 直流系統(tǒng)
上傳時(shí)間: 2022-06-24
上傳用戶:slq1234567890
1 準(zhǔn)備1.1 硬件和編譯環(huán)境1.1.1 開發(fā)板硬件選用PIC18F25K22,在淘寶上可以買到開發(fā)板, LIXUE 工作室出品的。價(jià)格在140 左右。1.1.2 IDE編譯環(huán)境為MPLAB IDE V8.87C 編譯器為MCC18,版本號(hào)為3.38(以上編譯環(huán)境均由開發(fā)板中的光盤提供)1.1.3 仿真器PICkit3,同一家店買的1.2 FreeRTOS 相關(guān)移植文件準(zhǔn)備1.2.1 下載移植文件在Microchip 官網(wǎng)下載通用移植文件http://embeddedcodesource.com/rtos我是選了下面這個(gè),點(diǎn)擊download 即可下載,解壓后里面存在如下文件,1.2.2 查找有用的文件下載到的FreeRTOS為6.0.4 版本1)找到三個(gè).c 文件如上圖所示,解壓后,主要的文件在FreeRTOS\Source文件夾中,如下所示:其中l(wèi)ist.c , queue.c ,tasks.c 無(wú)需修改,作為主要的FreeRTOS的文件,2)找到與.c 文件對(duì)應(yīng)的.h 文件如下圖所示,與之對(duì)應(yīng)的在FreeRTOS\Source\include文件夾中:找到list.h , queue.h ,tasks.h,也無(wú)需修改。3)另外還有用的文件包括FreeRTOS.h , portable.h ,projdef.h4)找到heap_1.c找到FreeRTOS\Source\portable\MemMang文件夾里面5)移植修改文件主要包括port.c portmacro.h,在找到FreeRTOS\Source\portable\MPLAB\PIC18F文件夾里面6)其他文件在FreeRTOS_C18\FreeRTOS PrimerEjemplo文件夾中包含了主體的Demo 工程文件,關(guān)注FreeRTOSConfig.h,還有兩個(gè).lkr 鏈接文件。2 示例Demo 說(shuō)明點(diǎn)開FreeRTOS_C18\FreeRTOS PrimerEjemplo 文件夾中的.mcw 工程文件,發(fā)現(xiàn)提示丟失文件,如下所示,其實(shí)是定位出現(xiàn)文件,依次對(duì)應(yīng)步驟1.2.2 中的各個(gè)文件夾位置查找,重新定位即可,定位好之后,編譯即可通過,
標(biāo)簽: freertos
上傳時(shí)間: 2022-06-24
上傳用戶:
摘要:FreeR'TOS作為一種開源的輕量級(jí)多任務(wù)實(shí)時(shí)操作系統(tǒng),被廣泛應(yīng)用在各種嵌入式儀器和設(shè)備中,但該操作系統(tǒng)不支持軟件模塊的動(dòng)態(tài)加載,這限制了它的靈活性和擴(kuò)展性。本文在詳細(xì)分析ELF文件符號(hào)重定位原理的基礎(chǔ)上,通過修改FreeRTOS任務(wù)的內(nèi)存布局,并在其內(nèi)核中添加ELF文件加載器,實(shí)現(xiàn)軟件模塊的動(dòng)態(tài)加載和卸載功能。程序在STM32平臺(tái)上的測(cè)試結(jié)果表明,軟件模塊能夠在系統(tǒng)運(yùn)行時(shí)被動(dòng)態(tài)加載入內(nèi)存,并成功被FreeRTOS內(nèi)核調(diào)度執(zhí)行。關(guān)鍵詞:FreeRTOS;ELF文件;動(dòng)態(tài)軟件模塊;符號(hào)重定位0引言動(dòng)態(tài)軟件模塊是一種能夠在操作系統(tǒng)運(yùn)行時(shí)加載和卸載的程序代碼或數(shù)據(jù),對(duì)于不支持該特性的嵌人式操作系統(tǒng),其任務(wù)代碼必須與操作系統(tǒng)內(nèi)核一起編譯,鏈接成一個(gè)完整的可執(zhí)行鏡像,并下載或燒寫到目標(biāo)板中運(yùn)行,一旦任務(wù)代碼需要修改更新,則必須重新編譯所有代碼。這一不支持動(dòng)態(tài)軟件模塊的缺點(diǎn)限制了嵌入式操作系統(tǒng)的靈活性和可擴(kuò)展性,給應(yīng)用軟件的更新升級(jí)也帶來(lái)了不便。
標(biāo)簽: freertos 動(dòng)態(tài)軟件
上傳時(shí)間: 2022-06-24
上傳用戶:
本文擬將FreeRTOS在STM32F103VCT6上進(jìn)行移植,并通過典型的應(yīng)用設(shè)計(jì)對(duì)移植的有效性與易用性進(jìn)行驗(yàn)證。1軟硬件開發(fā)環(huán)境及處理器1·1軟件硬開發(fā)環(huán)境及設(shè)計(jì)目標(biāo)本移植過程使用的軟件環(huán)境是RealView MDK開發(fā)套件,此產(chǎn)品是ARM公司最新推出的針對(duì)各種嵌入式處理器的軟件開發(fā)工具,該開發(fā)套件功能強(qiáng)大,包括了uVision3集成開發(fā)環(huán)境和RealView編譯器,通過設(shè)計(jì)一款低成本遠(yuǎn)程抄表系統(tǒng),驗(yàn)證FreeRTOS在STM32Fl03VCT6上具有可行性,易用性,1.?硬件結(jié)構(gòu)與模塊功能本應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。其中的按鍵有2個(gè),用于工作模塊的切換·其他輸入/輸出模塊是STM32F103VCT6的IO口控制完成一定功能串口通信模塊是通過串口在ISP模式下燒寫芯片程序·發(fā)光二極管共6個(gè),兼斷電源指示、信號(hào)強(qiáng)度通信指示。GPRS模塊通信是通過無(wú)線網(wǎng)絡(luò)進(jìn)行TCP傳輸數(shù)據(jù)·表計(jì)模塊通信是STM32F103VCT6與表計(jì)進(jìn)行數(shù)據(jù)傳輸
標(biāo)簽: freertos stm32f103vct6 移植
上傳時(shí)間: 2022-06-24
上傳用戶:canderile
激光測(cè)距儀利用激光對(duì)目標(biāo)的距離進(jìn)行測(cè)量,具有重量輕、體積小、操作簡(jiǎn)單測(cè)量速度快的特點(diǎn)口,已逐步得到普及和應(yīng)用。激光測(cè)距儀主要分為手持式和望遠(yuǎn)鏡式兩種,其中手持式多采用相位式,測(cè)量距離一般在200米以內(nèi),精度在2mm左右,功能豐富,除了測(cè)量距離還可以計(jì)算面積、體積和高度等參數(shù);望遠(yuǎn)鏡式測(cè)量距離較遠(yuǎn),一般在500~3000米,但是精度較低,一般在1米左右,主要用于野外遠(yuǎn)距離測(cè)量。功能較單一。近年來(lái),隨著主要元器件的價(jià)格下跌和測(cè)量技術(shù)的成熟,手持式激光測(cè)距儀使用越來(lái)越普及,特別是在房屋丈量方面己基本替代皮尺和卷尺。本文以STM32F103RBT6為核心,以相位式測(cè)量原理為基礎(chǔ),結(jié)合激光調(diào)制和解調(diào)電路,設(shè)計(jì)了手持式激光測(cè)距儀硬件系統(tǒng)。在該硬件基礎(chǔ)上移植了輕量級(jí)的FreeRTOS實(shí)時(shí)操作系統(tǒng),充分利用該操作系統(tǒng)的特點(diǎn),使軟件的編程方式上面變得更加簡(jiǎn)潔流暢、可維護(hù)性強(qiáng),在使用體驗(yàn)方面也提高了系統(tǒng)的響應(yīng)靈敏性和穩(wěn)定性,提高了產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。
標(biāo)簽: freertos stm32 手持激光測(cè)距儀
上傳時(shí)間: 2022-06-24
上傳用戶:wangshoupeng199
19.1FreeRTOS簡(jiǎn)介FreeRTOS是一個(gè)可移植的、開源的小型實(shí)時(shí)內(nèi)核,可以免費(fèi)下載并且可以免費(fèi)用于商業(yè)軟件。FreeRTOS支持多種處理器架構(gòu),包括ARM7、ARM9、Cortex-M3、AVR、PIC和MSP430等。FreeRTOS系統(tǒng)的主要特點(diǎn)如下:·完全免費(fèi),使用沒有限制,包括商業(yè)應(yīng)用。·優(yōu)先級(jí)調(diào)度,相同優(yōu)先級(jí)任務(wù)可輪轉(zhuǎn)調(diào)度,同時(shí)可設(shè)置為可波多內(nèi)核或者不可剝奪內(nèi)核:·任務(wù)可選擇是否共享堆棧,井且沒有任務(wù)數(shù)日限制;·消息隊(duì)列,二值信號(hào)量,計(jì)數(shù)信號(hào)量,遞歸互斥體:·時(shí)間管理;·內(nèi)存管理。19.2FreeRTOS應(yīng)用實(shí)例--—-創(chuàng)建任務(wù)19.2.1實(shí)例描述本實(shí)例移植FreeRTOS到ARC開發(fā)板。為了是移植過程清晰,我們只創(chuàng)建了一個(gè)任務(wù),這個(gè)任務(wù)只實(shí)現(xiàn)了最簡(jiǎn)單的跑馬燈功能。19.2.2硬件設(shè)計(jì)該實(shí)例用到了ARC平臺(tái)上的兩個(gè)LED燈,電路圖參考LED那一章節(jié)。
標(biāo)簽: 嵌入式 操作系統(tǒng) freertos
上傳時(shí)間: 2022-06-25
上傳用戶:slq1234567890
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1