久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 關(guan)于使用(yong)stm32cubemx生(sheng)成代碼后移植Ucos—III的方法(fa)

關于使用(yong)stm32cubemx生成代(dai)碼后移(yi)植Ucos—III的方法 時間:2018-09-21      來源:未知(zhi)

介紹一下Ucos—iii的(de)優(you)點(dian):相(xiang)比(bi)于(yu)Ucos—ii,UCOS-II主要(yao)針對(dui)8位(wei)、16位(wei)機以(yi)及低(di)端32位(wei)機,UCOS-III主要(yao)針對(dui)高端32位(wei)處理器(qi)和64位(wei)處理器(qi),在性能上有了很大的(de)提升,有了不少的(de)提升,例(li)如任(ren)(ren)務(wu)數(shu)沒(mei)有顯(xian)示,不同(tong)的(de)任(ren)(ren)務(wu)可以(yi)擁有相(xiang)同(tong)的(de)優(you)先級,相(xiang)同(tong)優(you)先級的(de)任(ren)(ren)務(wu)調(diao)度采(cai)用(yong)時(shi)間片輪(lun)轉法。對(dui)一些內(nei)核對(dui)象(xiang),例(li)如信(xin)號量,可以(yi)在運行過程(cheng)中創建和刪除,不用(yong)像ucos-ii那樣必須在編譯時(shi)分(fen)配好。內(nei)核對(dui)象(xiang)數(shu)也沒(mei)有限制(zhi)。

Ps:不過如果(guo)芯片(pian)處理能力有限的(de)話,建(jian)議還是量力而(er)為,選擇ucos—ii足夠就沒必要(yao)選擇ucos—iii,ucos-iii顯然適用于更加復雜的(de)系統應用,本身(shen)占(zhan)用的(de)內存空(kong)間也較大,而(er)且代碼顯得比較累贅(zhui)。例如創建(jian)一個(ge)任務,就要(yao)這樣的(de)麻煩

void OSTaskCreate (OS_TCB *p_tcb,

CPU_CHAR *p_name,

OS_TASK_PTR p_task,

void *p_arg,

OS_PRIO prio,

CPU_STK *p_stk_base,

CPU_STK_SIZE stk_limit,

CPU_STK_SIZE stk_size,

OS_MSG_QTY q_size,

OS_TICK time_quanta,

void *p_ext,

OS_OPT opt,

OS_ERR *p_err);

這么多的(de)參數,如果(guo)初學(xue)的(de)話(hua),一個個去弄(nong)懂(dong)也沒必要,但(dan)是如果(guo)不(bu)弄(nong)懂(dong)又學(xue)不(bu)會,所(suo)(suo)以如果(guo)入門(men)ucos操作系統(tong)的(de)話(hua),本人(ren)介(jie)意先學(xue)ucos—ii,學(xue)了(le)(le)ucos—ii在去開(kai)ucos—iii,你(ni)會發現系統(tong)時基,任務創建和調度(du)原理其實是一樣的(de),只(zhi)不(bu)過部(bu)分(fen)功能做(zuo)了(le)(le)優化,通俗點講就是更加(jia)嚴謹了(le)(le),好(hao)了(le)(le),理論只(zhi)是幫助實際應用的(de)東(dong)西,太過于執著(zhu)于理論就鉆了(le)(le)牛(niu)角(jiao)尖了(le)(le),本人(ren)并非老師,只(zhi)是一個普通的(de)研發人(ren)員,所(suo)(suo)以以實際產品(pin)應用為(wei)主,所(suo)(suo)以就說一下實際應用吧。

首(shou)先我們要到網(wang)上下(xia)載ucos—iii的源碼,官網(wang)是://micrium.com/打開看到

點擊紅色框部分,就(jiu)會進(jin)入下載界面

然后就可以下載(zai)了

咱們下載的是(shi)下面這(zhe)個,

下(xia)好(hao)以后,打開相(xiang)關文件夾,將源碼復制到(dao)工(gong)程目錄下(xia)

 然后(hou)打開keil5工(gong)程,在(zai)工(gong)程目(mu)錄里添加源碼(ma),目(mu)錄結構如下:

好(hao)了(le)(le),上面只(zhi)是(shi)(shi)基礎的(de)準備工(gong)(gong)作(zuo),熟(shu)了(le)(le)以后大家可以根據(ju)自己喜好(hao)去(qu)創建工(gong)(gong)程目錄結構,目前來說(shuo)先按作(zuo)者的(de)來就可以了(le)(le),這(zhe)些其實是(shi)(shi)無關緊(jin)要的(de)事情,大家目的(de)是(shi)(shi)為了(le)(le)學習原理并把(ba)它應(ying)用(yong)到實際工(gong)(gong)作(zuo)中嘛。

下面我(wo)們就開始真(zhen)正(zheng)的將這(zhe)個系統(tong)和cpu關聯起(qi)來了,相(xiang)信(xin)大家(jia)熟悉操(cao)(cao)作系統(tong)的都知道(dao)時(shi)(shi)基(ji)(ji)這(zhe)個概(gai)念,ucos操(cao)(cao)作系統(tong)同(tong)樣需要一個時(shi)(shi)基(ji)(ji),正(zheng)好我(wo)們的stm32芯(xin)片都有一個系統(tong)滴答計(ji)時(shi)(shi)器,這(zhe)里我(wo)們將它作為ucos操(cao)(cao)作系統(tong)的時(shi)(shi)基(ji)(ji)剛好,那么(me)怎么(me)做呢(ni),其實是有兩個方法,

大(da)致原理(li)是一(yi)樣的,我們打(da)開startup_stm32f407xx.s文件,看到這里有(you)棧空間申請的代碼

下面(mian)有相關函(han)數(shu)調用(yong)的聲明:

那么(me)這兩個(ge)函數是(shi)做什么(me)的呢?

一(yi)個(ge)是(shi)任務調度函(han)數(shu),一(yi)個(ge)是(shi)systick中(zhong)斷服務函(han)數(shu),我們打(da)開os_cpu_a.asm和os_cpu_c.c,可(ke)以看到源碼

只要相(xiang)(xiang)關(guan)名(ming)字對應(ying)就(jiu)可以了,我這里(li)是(shi)改(gai)(gai)的(de)startup_stm32f407xx.s啟動(dong)文件的(de)相(xiang)(xiang)關(guan)聯部分,不(bu)(bu)希(xi)望修(xiu)改(gai)(gai)ucos—iii源(yuan)碼,但有的(de)人是(shi)不(bu)(bu)希(xi)望修(xiu)改(gai)(gai)stm32cubemx生成的(de)源(yuan)碼,而去修(xiu)改(gai)(gai)ucos—iii的(de)相(xiang)(xiang)應(ying)部分,都可以,只要函數名(ming)一(yi)致就(jiu)可。

Ps:stm32cubemx生成代碼的systick定時器為1ms一(yi)次中斷(duan),如果需要調節,可以再(zai)時鐘配置(zhi)函(han)數里去修改。

上一篇:方法和變量在繼承時的覆蓋和隱藏問題

下一篇:長安.ARM體系結構.七日談

熱(re)點文章推薦
華(hua)清學員(yuan)就(jiu)業榜單(dan)
高薪學員(yuan)經驗分享
熱點新(xin)聞(wen)推(tui)薦
前臺專線:010-82525158 企業培訓(xun)洽談專線:010-82525379 院校合(he)作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部