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)不再提示

UCOS2_STM32F1移植詳細(xì)過(guò)程 (四)

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

掃碼添加小助手

加入工程師交流群

Ⅰ、概述

上一篇文章是講述uC/OS-II Ports下面os_cpu_a.asm、os_cpu_c.c和os_cpu.h文件底層端口代碼的移植(修改)和說(shuō)明,接著上一篇文章來(lái)講述關(guān)于UCOS移植應(yīng)用部分的代碼。

該文主要針對(duì)uC/OS-II 上層應(yīng)用(配置OS、新建任務(wù)等)來(lái)講述。

請(qǐng)下載“UCOS2_STM32F1_3個(gè)簡(jiǎn)單任務(wù)”作為參考工程。

Ⅱ、下載(請(qǐng)到我博客下載)

筆者將F0、F1、F3、F4移植到最新UCOS2.92上。移植好的、獨(dú)立的4個(gè)工程供大家下載學(xué)習(xí)、研究。建立的任務(wù)都是一樣的,只是針對(duì)芯片內(nèi)核不同,Ports目錄下相關(guān)的源代碼有差異、標(biāo)準(zhǔn)外設(shè)庫(kù)也存在差異。每一個(gè)系列針對(duì)不同型號(hào)芯片只需要適當(dāng)改一下“型號(hào)”就行了。

提供下載的軟件工程都是在板子上運(yùn)行,保證沒問(wèn)題才上傳至360云盤。下載提供下載的軟件工程是在上一篇文章的基礎(chǔ)上增加了os_cfg.h系統(tǒng)配置中文注釋,包含了STM32F0、F1、F3、F4系列獨(dú)立的軟件工程。

UCOS2.92_STM32(F0、1、3、4)3個(gè)簡(jiǎn)單任務(wù)(增加os_cfg中文注釋)

360云盤下載地址:

https://yunpan.cn/cBsmgInzX856G訪問(wèn)密碼 4242

UCOS源代碼工程

官網(wǎng)下載(需要賬號(hào)):

https://www.micrium.com/downloadcenter/download-results/?searchterm=hm-stmicroelectronics&supported=true

360云盤下載(定期更新至最新):

https://yunpan.cn/cRzcf8eSacEhE訪問(wèn)密碼 1235

ST標(biāo)準(zhǔn)外設(shè)庫(kù)

官網(wǎng)下載(需要賬號(hào)):

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

360云盤下載(定期更新至最新):

https://yunpan.cn/cSaCpGejMSfr8訪問(wèn)密碼 60ae

參考資料:

https://yunpan.cn/cRCdSt73GwT6j訪問(wèn)密碼 499e

Ⅲ、工程目錄結(jié)構(gòu)說(shuō)明


文件結(jié)構(gòu)和工程目錄結(jié)構(gòu)對(duì)應(yīng)關(guān)系如上圖所示。

第一類(標(biāo)準(zhǔn)外設(shè)庫(kù)):

Startup Code:?jiǎn)?dòng)代碼

STM32F10x_StdPeriph_Driver:標(biāo)準(zhǔn)外設(shè)庫(kù)庫(kù)驅(qū)動(dòng)

CMSIS:標(biāo)準(zhǔn)接口

第二類(μC/OS-II實(shí)時(shí)內(nèi)核):

uC/OS-II Source:內(nèi)核源代碼(與處理器無(wú)關(guān))

uC/OS-II Ports:OS端口底層代碼(與處理器、編譯平臺(tái)有關(guān))

第三類(用戶應(yīng)用):

Bsp:應(yīng)用底層代碼(初始化、驅(qū)動(dòng)等)

App:應(yīng)用實(shí)現(xiàn)代碼(配置OS、應(yīng)用等)

該文主要針對(duì)第三類APP進(jìn)行移植描述,包括os_cfg.h、app_cfg.c、app_task.c文件等。

Ⅳ、配置os_cfg.h文件

os_cfg顧名思義,它就是系統(tǒng)配置的意思,它位于工程App目錄結(jié)構(gòu)下面,主要是系統(tǒng)上層配置和應(yīng)用。

1.各項(xiàng)參數(shù)


各項(xiàng)參數(shù)里面針對(duì)初學(xué)者,主要有三個(gè)重要的參數(shù),其他參數(shù)暫時(shí)可以不用深入理解。

三個(gè)重要的參數(shù):

#define OS_LOWEST_PRIO 63u

#define OS_MAX_TASKS 10u

#define OS_TICKS_PER_SEC 100u

這三個(gè)參數(shù)需要重點(diǎn)理解,詳情可參看中文注釋。

對(duì)于HOOKS函數(shù)是我們上一篇文章講述os_cpu_c.c里面相關(guān)的函數(shù),這里OS_CPU_HOOKS_EN會(huì)被系統(tǒng)調(diào)用,將其定義為使能。

關(guān)于OS_DEBUG_EN,我們不使用系統(tǒng)自帶的調(diào)試功能,就不使能。

2.任務(wù)堆棧大小


這里和我們自己建立的任務(wù)堆棧差不多的意思,將會(huì)在下面講述app_cfg講解。

3.任務(wù)管理


任務(wù)管理主要是針對(duì)uC/OS-II Source結(jié)構(gòu)下os_task.c文件里面的源代碼,os_task.c文件里面就包含了任務(wù)建立、刪除、掛起等關(guān)于任務(wù)的一些函數(shù)接口,我們需要使用那些功能,這里就需要打開。

如創(chuàng)建任務(wù):

#define OS_TASK_CREATE_EN 0u

#define OS_TASK_CREATE_EXT_EN 1u

我們使用擴(kuò)展方式創(chuàng)建任務(wù),也就是升級(jí)版本創(chuàng)建任務(wù)的函數(shù)。

4.系統(tǒng)其他功能


了解過(guò)UOCS系統(tǒng)的人可能知道,UCOS系統(tǒng)有多種功能,也就是可以建立多任務(wù)之間通信的功能,每一種功能對(duì)應(yīng)一個(gè)源代碼文件。

從上圖可以看得出來(lái),每一種功能夠有使能全局的宏定義,只有使能了全局宏定義才可以使用里面的功能,里面各個(gè)模塊(函數(shù)接口)也是配置了使用和不使用的的宏定義。

關(guān)于UCOS2更多功能,我會(huì)在后期整理關(guān)于UCOS系統(tǒng)相關(guān)的知識(shí),也就是這里所說(shuō)的其他功能,敬請(qǐng)關(guān)注微信等待,后期第一時(shí)間在微信發(fā)布消息。

Ⅴ、配置app_cfg.h、.c文件

app_cfg.c文件位于工程App目錄結(jié)構(gòu)下面,主要用于系統(tǒng)應(yīng)用的配置。

1.任務(wù)優(yōu)先級(jí)、堆棧


我們建立任務(wù)需要對(duì)任務(wù)優(yōu)先級(jí)和堆棧進(jìn)行一個(gè)定義,它位于app_cfg.h文件下面。

這里任務(wù)數(shù)和最小優(yōu)先級(jí)數(shù)值需要和os_cfg.h文件的宏定義對(duì)應(yīng)才行。

2.系統(tǒng)滴答


我們?cè)谇皟善恼轮v述過(guò)關(guān)于系統(tǒng)滴答的,但講的是屏蔽Micrium官網(wǎng)提供的OS_CPU_SysTick配置(位于os_cpu_c.c文件下)。

這里是兼容ST(也是M3內(nèi)核標(biāo)準(zhǔn)的)的函數(shù)接口,所以就不使用Micrium官網(wǎng)提供的OS_CPU_SysTick配置。

3.建立任務(wù)


我們建立任務(wù)就是在系統(tǒng)里面分配一定的空間,給我們的應(yīng)用提供一個(gè)函數(shù)接口(AppTask1、AppTask2、AppTask3)。我們一旦啟動(dòng)了系統(tǒng)(開始任務(wù)),相關(guān)的函數(shù)就會(huì)逐步執(zhí)行。

Ⅶ、建立任務(wù)(app_task.c)


我們使用操作系統(tǒng)的最終目的還是需要執(zhí)行我們的應(yīng)用,我們這里簡(jiǎn)歷了3個(gè)簡(jiǎn)單的應(yīng)用(任務(wù)),位于app_task.c源文件下面。

應(yīng)用比較簡(jiǎn)單,就是變化LED,至于OSTimeDly(50)函數(shù),可能初學(xué)者不是很理解,其實(shí)就是延時(shí)50個(gè)滴答。

我們?cè)趏s_cfg.h文件中定義#define OS_TICKS_PER_SEC 100u,也就是每秒100個(gè)滴答,OSTimeDly(50)就是延時(shí)了0.5秒的意思。

Ⅷ、文件比較工具

對(duì)于前面幾篇文章,可能有些人比較關(guān)注我們移植的過(guò)程中到底修改了那些文件,這里就給大家推薦一下“文件比較工具”,網(wǎng)上有很多相關(guān)的工具,可以自己搜索下載。也可以到我360云盤下載:

https://yunpan.cn/cBsYfRw3Iiut3訪問(wèn)密碼 7155

這里我們拿Beyond Compare為例,給大家看一下效果:

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

    1

    文章

    416

    瀏覽量

    29420
  • STM32F10
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    16231
  • ucos2
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    SN74LVC157A-Q1:汽車級(jí)21數(shù)據(jù)選擇器/多路復(fù)用器的詳細(xì)解析

    SN74LVC157A-Q1:汽車級(jí)21數(shù)據(jù)選擇器/多路復(fù)用器的詳細(xì)解析 作為一名電子工程師,在設(shè)計(jì)
    的頭像 發(fā)表于 01-15 14:55 ?615次閱讀

    LAT1171+STM32F745 USART1 Bootloader 失敗原因分析與解決

    使用 STM32F745 進(jìn)行產(chǎn)品開發(fā)的時(shí)候,出現(xiàn)了使用 STM32CubeProgramer 無(wú)法通過(guò) USART1 Bootloader 進(jìn)行程序升級(jí)的問(wèn)題。為了解決客戶的問(wèn)題,我在 NUCLEO-
    發(fā)表于 01-11 17:33 ?0次下載

    STM32MP257F-EV1評(píng)估板深度解析與技術(shù)應(yīng)用指南

    STMicroelectronics STM32MP257F-EV1評(píng)估板是用于STM32MP257FAI3的開發(fā)平臺(tái),采用Arm? Cortex?-A35和M33內(nèi)核。它支持用于主處理器(雙核
    的頭像 發(fā)表于 10-20 11:49 ?1154次閱讀
    <b class='flag-5'>STM32MP257F-EV1</b>評(píng)估板深度解析與技術(shù)應(yīng)用指南

    STM32+esp8266連接機(jī)智云,上傳溫濕度數(shù)據(jù)并控制繼電器開關(guān)(平臺(tái)配置、代碼生成、代碼移植

    本教程將詳細(xì)介紹如何將STM32微控制器與ESP8266Wi-Fi模塊連接到機(jī)智云平臺(tái),實(shí)現(xiàn)溫濕度數(shù)據(jù)的上傳與繼電器的遠(yuǎn)程控制。通過(guò)此過(guò)程,您將學(xué)會(huì)如何配置機(jī)智云平臺(tái),燒錄ESP8266固件,
    的頭像 發(fā)表于 07-15 18:54 ?1089次閱讀
    <b class='flag-5'>STM32</b>+esp8266連接機(jī)智云,上傳溫濕度數(shù)據(jù)并控制繼電器開關(guān)(平臺(tái)配置、代碼生成、代碼<b class='flag-5'>移植</b>)

    STM32F10xxx參考手冊(cè)

    STM32F1XX數(shù)據(jù)手冊(cè)中文版
    發(fā)表于 07-10 16:09 ?10次下載

    機(jī)智云配網(wǎng)教程第三期:?jiǎn)纹瑱C(jī)代碼移植實(shí)戰(zhàn)

    stm32f103c8t6,WiFi模塊:ESP-01s,下載器:ST-LINK2.軟件:keil5的工程文件模板,mcu代碼包代碼資源:未移植移植后(注:本文是基于
    的頭像 發(fā)表于 07-01 17:32 ?1738次閱讀
    機(jī)智云配網(wǎng)教程第三期:?jiǎn)纹瑱C(jī)代碼<b class='flag-5'>移植</b>實(shí)戰(zhàn)

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 06-06 17:06 ?17次下載

    STM32F40xxx和STM32f41xx flash編程手冊(cè)

    PM0081_STM32F40xxx and STM32F41xxx單片機(jī)編程手冊(cè)
    發(fā)表于 06-06 17:02 ?5次下載

    MAX96724/F/R通道 GMSL2/1 到 CSI-2 反串行器技術(shù)手冊(cè)

    MAX96724/F/R 反串行器可以將路 GMSL ^?^ 2/1 輸入轉(zhuǎn)換為 1、2
    的頭像 發(fā)表于 05-27 18:21 ?1832次閱讀
    MAX96724/<b class='flag-5'>F</b>/R<b class='flag-5'>四</b>通道 GMSL<b class='flag-5'>2</b>/<b class='flag-5'>1</b> 到 CSI-<b class='flag-5'>2</b> 反串行器技術(shù)手冊(cè)

    STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(下篇):機(jī)智云代碼移植與優(yōu)化

    機(jī)智云SDK,集成API,實(shí)現(xiàn)數(shù)據(jù)傳輸和設(shè)備狀態(tài)同步,并分享移植過(guò)程中的常見問(wèn)題及解決方法,幫助開發(fā)者順利實(shí)現(xiàn)云端連接。機(jī)智云相關(guān)代碼開始移植相關(guān)移植步驟
    的頭像 發(fā)表于 05-23 18:10 ?1129次閱讀
    <b class='flag-5'>STM32</b>與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(下篇):機(jī)智云代碼<b class='flag-5'>移植</b>與優(yōu)化

    STM32G431移植FreeModbus

    STM32G431移植FreeModbus 的代碼已通過(guò)驗(yàn)證,在WeActStudio的STM32G431CoreBoard上進(jìn)行多次測(cè)試,均可正常讀取寄存器數(shù)值。STM32G431C
    發(fā)表于 04-19 16:50 ?2次下載

    uCOS III v3.08.01 移植PC Dev C++ 免虛擬機(jī)移植WinXP,Win7,Win10,Win 11

    uCOS III v3.08.01 移植PC Dev C++ 免虛擬機(jī)移植WinXP,Win7,Win10,Win 11。32位系統(tǒng)64位系統(tǒng)都可以。 這里有源碼和程序,歡迎下載測(cè)試
    發(fā)表于 04-15 20:14

    STM32F103x8 STM32F103xB單片機(jī)數(shù)據(jù)手冊(cè)

    STM32F103x8STM32F103xB單片機(jī)數(shù)據(jù)手冊(cè)
    發(fā)表于 04-14 14:55 ?8次下載

    uCOS II v2.92 移植PC 免虛擬機(jī)移植WinXP,Win7,Win10,Win 11

    uCOS II v2.92 移植PC 免虛擬機(jī)移植WinXP,Win7,Win10,Win 11,32位系統(tǒng)64位系統(tǒng)都可以。
    發(fā)表于 04-13 22:46

    STM32F103×8/STM32F103×B MCU手冊(cè)

    本文提供了STM32F103x8和STM32F103xB中密度高性能系列微控制器的訂購(gòu)信息和機(jī)械器件特性。有關(guān)整個(gè)STMicroelectronics STM32F103xx系列的更多信息,請(qǐng)
    發(fā)表于 03-18 16:37 ?0次下載