分享乙個大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到人工智慧的隊伍中來!
我的**:
我的知乎:
ⅰ、
概述ⅱ、
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是專門為系統而設計的。
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_***_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.其他
還有很多與系統其他資源相關的配置,正常的情況下是需要的時候才開啟,不用盡量關閉。一是節約資源,二是減少編譯時間。後期我會將中文注釋在後面。
ⅴ、
訪問密碼
ucos2基於stm32f107的軟體工程包(官網原版):
訪問密碼 1235
標準外設庫:
訪問密碼 60ae
ⅵ、
說明當你掌握ucos在一種平台上的移植,其他平台移植原理類似,請不要侷限某一平台。
以上總結僅供參考,若有不對之處,敬請諒解。
ⅶ、
最後我的**:
uCos在stm32上的移植總結
作業系統 windows xp 開發環境 keil uvision3 mdk 實驗開發板 open103z 一 準備 2 ucos ii 原始碼 移植版本 3 stm32標準外設庫 stm32標準外設庫是stm32全系列晶元的外設驅動 4 jlink 器驅動程式 找不到官網 二 建立工程資料夾結構 ...
STM32F103 UCOSII 移植實驗
ucosii 移植 一 向工程中新增相應資料夾 1 建立相應資料夾 在工程目錄下新建ucosii資料夾,並在ucosii資料夾中另外新建3個資料夾 config core和port,如下圖所示 2 向core資料夾中新增原始碼檔案 2 新增原始碼檔案 向core資料夾中新增cosii原始碼檔案,開啟...
STM32F429移植SQLITE記錄
不知道自己是哪根筋搭錯了還是怎麼回事,一時心血來潮,突發奇想,決定把sqlite移植到stm32f429上。在此記錄一下過程,也確認一下此事可行。先說一下結果 移植後的sqlite可執行,可操作,但是比較耗資源 相對微控制器來說 記憶體小的,就別想了,根本玩不起來的。這是未載入時的記憶體使用情況 這...