色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UCOS2_STM32F1移植詳細過程 (二)

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-04-07 11:55 ? 次閱讀

Ⅰ、概述

打開上一篇文章新建的工程,是提取的ST標準庫里面源代碼文件和UCOS工程包源代碼文件。下載過的朋友可能會知道,直接編譯那個工程會有大片的錯誤和警告,原因在于那個工程是沒有經過修改源代碼的工程,接下來就是講述一步一步修改源代碼的過程(也就是所謂的移植過程)。

該文接著上一篇文章來講述“UCOS移植詳細過程”,上一篇文章是講述準備工作、文件提取并整理、新建UCOS工程等工作。該文講述UCOS移植過程中修改部分源代碼(底層代碼、系統配置等)工作。

Ⅱ、ST芯片配置

配置ST型號的方法有兩種:使用標準庫源代碼配置和工程配置

1.源代碼配置

打開工程 -> 打開源代碼“stm32f10x.h”文件。

使用F103大容量的芯片:取消第68行STM32F10X_MD的注釋,這里需要和我們的啟動代碼匹配startup_stm32f10x_hd.s。

使用標準外設庫:取消第105行USE_STDPERIPH_DRIVER的注釋,使用標準外設庫,我們使用stm32f10x_conf.h文件來配置使用到的外設庫。

2.工程配置

打開工程-> Project -> Options for Target -> C/C++,在該選項預定義里面添加STM32F10X_MD,USE_STDPERIPH_DRIVER這兩個宏定義即可。

注意:兩種方法用一種即可。效果圖如下:

Ⅲ、配置系統滴答時鐘

系統的運行離不開系統滴答,就像我前面說過的:系統滴答的作用,就是驅動整個系統工作的心臟,如果沒有了它,就等于人沒有了心跳。

1.初始化滴答

我們使用ST的滴答SysTick來配置作為操作系統的滴答時鐘,芯片SysTick是屬于內核(Cortex-M3)的一部分,所以,在初始化的時候是調用CM3里面的源代碼(SysTick_Config函數)。

這里說明一下,只要使用Cortex-M3內核的芯片都有這個功能,可以說SysTick是專門為系統而設計的。


系統滴答配置如上圖,位于app_cfg.c源文件下面。

2.滴答中斷配置

中斷函數需要調用系統相關的函數,也就是系統進行滴答相關的函數,這里是規定這么調用的。

Ⅳ、裁剪系統(配置os_cfg.h)

對于我們常說的系統可裁剪,其實就是對系統某些功能打開和關閉,使用到的功能才打開,不使用的功能就關閉(即使能和失能),這個文件就集中在os_cfg.h文件里面。

這里先說一下重要的幾個選項:

1.最低優先級OS_LOWEST_PRIO

這個與我們配置任務優先級有關系,最低優先級任務配置的最大值。我們所說的任務優先級關系是:優先級越小,數值越大; 相反,優先級越大,數值越小。

位于os_cfg.h文件第39行:

#define OS_LOWEST_PRIO 63

2.系統每秒滴答數OS_TICKS_PER_SEC

這個宏定義的意思就是說,系統每秒鐘滴答多少次,它與系統延時(OSTimeDly)關系比較重要,我們的例子中OS_TICKS_PER_SEC等于100,調用OSTimeDly(100);相當于的延時100個滴答,即延時1秒的意思。

位于os_cfg.h文件第51行:

#define OS_TICKS_PER_SEC 100

3.任務堆棧大小OS_TASK_xxx_STK_SIZE

這個幾個宏定義在使用相應功能的時候有用,如果RAM資源有限,這個任務堆棧的大小最好根據任務來評估一下,資源有限時不要太大,當然也不能小于程序正常運行。

位于os_cfg.h文件第55 - 57行:

#define OS_TASK_TMR_STK_SIZE 128

#define OS_TASK_STAT_STK_SIZE 128

#define OS_TASK_IDLE_STK_SIZE 128

4.其他

還有很多與系統其他資源相關的配置,正常的情況下是需要的時候才開啟,不用盡量關閉。一是節約資源,二是減少編譯時間。后期我會將中文注釋在后面。

Ⅴ、下載

我將移植完成,建立了3個簡單任務的例程放在360云盤供大家下載與參考:

https://yunpan.cn/cRIpR5bwHMCCY訪問密碼 3885

UCOS2基于STM32F107的軟件工程包(官網原版):

Micrium官網下載地址(需要賬號):

https://www.micrium.com/download/micrium_stm32f107_ucos-ii

我360云盤下載地址:

https://yunpan.cn/cRzcf8eSacEhE訪問密碼 1235

標準外設庫:

ST官網下載地址(需要賬號):

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訪問密碼 60ae

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32F10
    +關注

    關注

    0

    文章

    45

    瀏覽量

    15624
  • ucos2
    +關注

    關注

    0

    文章

    15

    瀏覽量

    3557
收藏 人收藏

    評論

    相關推薦

    基于機智云移植STM32L496G代碼移植

    前言最近我拿到了STM32L496AGMCU,發現其擴展版可以連接ESP-01S。我想嘗試將開發板連接到我們的機智云上,并根據機智云提供的文檔進行程序移植STM32CubeMX移植
    的頭像 發表于 09-20 08:05 ?396次閱讀
    基于機智云<b class='flag-5'>移植</b><b class='flag-5'>STM32</b>L496G代碼<b class='flag-5'>移植</b>

    【GD32 MCU 移植教程】10、從STM32F030系列移植到GD32E230系列

    GD32E230 對比 STM32F030 有著很好的兼容性和更高的性價比,內核和外設都有所增強。本人曾做過產品的 MCU 替換,將基于 STM32F0xx 1.5.0 固件庫的應用程序移植
    的頭像 發表于 09-07 10:24 ?636次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】10、從<b class='flag-5'>STM32F</b>030系列<b class='flag-5'>移植</b>到GD32E230系列

    【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列

    對比、外設及性能對比以及從 STM32F10x 移植到 GD32F30x 的移植步驟,旨在讓開發者能夠快速從STM32F10x
    的頭像 發表于 09-07 09:57 ?681次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】9、從 <b class='flag-5'>STM32F</b>10x 系列<b class='flag-5'>移植</b>到 GD32<b class='flag-5'>F</b>30x 系列

    【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx 系

    、外設及性能對比以及從 STM32F4xx 移植到 GD32F4xx 的移植步驟,旨在讓開發者能夠快速從STM32F4xx
    的頭像 發表于 09-06 09:40 ?1244次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】8、從 <b class='flag-5'>STM32F</b>4xx 系列<b class='flag-5'>移植</b>到 GD32<b class='flag-5'>F</b>4xx 系

    【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列產品,該系列資源上與 GD32F303 兼容度非常高,本應用筆記旨在幫助您快速將應用程序從 GD32F303 系列微控制器移植到 GD32E503 系列微控制器。
    的頭像 發表于 08-31 09:36 ?1449次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】<b class='flag-5'>2</b>、從 GD32<b class='flag-5'>F</b>303 <b class='flag-5'>移植</b>到 GD32<b class='flag-5'>F</b>503

    基于STM32的E01和E01C驅動移植

    實驗簡介基于STM32F103C8T6的E01系列(nRF24L01P)和E01C系列(SI24R1)的EBYTE官網例程移植。EBYTE官網例程是基于STM8L151編寫,本次實驗的目的是將該例程
    的頭像 發表于 08-30 12:35 ?359次閱讀
    基于<b class='flag-5'>STM32</b>的E01和E01C驅動<b class='flag-5'>移植</b>

    自制一款兼容STM32F1/F4芯片的飛控板

    自己制作的一款兼容STM32F1/F4芯片的飛控板。
    發表于 07-04 14:07 ?0次下載

    stm32f4跑ucos+emwin5.16 gui_init()初始化失敗的原因?

    我用stm32f4discovery 連了一塊ra8875的4.3寸屏幕, ucosii已經移植成功了,但是移植emwin5。16的時候在gui初始化的時候就會進入 HardFault_Handler(); 不知道是什么情況;
    發表于 05-17 12:33

    STM32F072怎么移植os?

    STM32F072 怎么移植os
    發表于 05-17 08:22

    STM32移植UCOS和編寫GUI程序的平臺如何建立?

    請教STM32移植UCOS和編寫GUI程序的平臺如何建立 ,需要哪些軟件,請各位大蝦、前輩指教,分享一下,或推薦一下教程,謝謝
    發表于 05-15 08:18

    移植LwIP+uCOS提示 errno沒有定義怎么解決 ?

    請教下,移植 LwIP+uCOS,提示 errno 沒有定義 ? 是哪里沒有配置好哇 ???
    發表于 04-23 07:21

    STM32H743的LwIP移植uCOS-III上,ETH_IRQn中斷沒有反應 是怎么回事?

    請教下,吧 H743 的LwIP 移植uCOS-III 上,ETH_IRQn中斷沒有反應 ? 程序在 FreeRTOS 的系統上運行時可以的,但就是移植uCOS-III 上就
    發表于 04-22 07:09

    請問如何快速移植stm32f1的程序到STM32C0中?

    如何快速移植stm32f1的程序到STM32C0中?
    發表于 03-08 06:54

    stm32必須要移植系統嗎

    電子等。在使用STM32進行開發時,是否需要進行系統移植是一個常見的問題。 系統移植是指將操作系統或者驅動程序從一個硬件平臺移植到另一個硬件平臺的
    的頭像 發表于 01-08 14:17 ?864次閱讀

    stm32移植ucos iii教程

    μC/OS-III是一個實時操作系統,廣泛應用于嵌入式系統開發中。在STM32系列微控制器上移植μC/OS-III可以充分發揮其實時性和多任務處理能力。本篇文章將為您提供一個詳實、細致的STM32
    的頭像 發表于 01-02 16:29 ?1498次閱讀
    主站蜘蛛池模板: 国产三级级在线电影| jj插入bb| 最近中文字幕高清中文字幕MV| 一本道本线中文无码| 37大但人文艺术A级都市天气| 最新国产在线视频在线| 99九九精品国产高清自在线| 99久久精品国产高清一区二区| mm625亚洲人成电影网| 纯肉小黄文高H| 国产在线视频一区二区不卡| 久久国内精品视频| 久久天天综合| 日韩欧美群交P内射捆绑 | 99精品欧美一区二区三区美图| 超嫩校花被灌醉在线观看| 国产精品系列在线一区| 久久精品视在线观看2| 青青久久精品| 亚洲手机在线人成视频| 57PAO强力打造高清免费| 国产精品久久久久久久久久免费| 久草在线福利资站免费视频| 青草在线在线d青草在线| 亚洲狠狠97婷婷综合久久久久| 1a级毛片免费观看| 国产人妻精品无码AV在线五十路| 麻豆官网入口| 亚洲国产五月综合网| 超熟女专门志| 欧美日韩在线亚洲一| 欧美日韩精品不卡在线观看| 国产欧美一区二区精品久久久| 免费光看午夜请高视频| 在线视频网站www色| silk118中文字幕无删减| 快穿之H啪肉| 亚洲精品入口一区二区乱麻豆精品| av淘宝 在线观看| 久青草国产97香蕉在线视频| 亚洲精品无码久久久久A片|