UCOSIII 機智雲協議的移植筆記

2021-10-02 23:06:16 字數 2026 閱讀 4370

以上工作漫天的教程…

-1、移植是,先知道自己用的mcu是否支援fpu浮點運算,如果支援,在.s檔案裡面,需要新增一段話:

reset_handler    proc

export reset_handler [weak]

import systeminit

import __main

;從這開始

ldr r0,

=systeminit

blx r0

if !="softvfp"

; enable floating point support at reset for fpu

ldr.w r0,

=0xe000ed88

; load address of cpacr register

ldr r1,

[r0]

; read value at cpacr

orr r1, r1, #(

0xf<<20)

; set bits 20

-23 to enable cp10 and cp11 coprocessors

; write back the modified cpacr value

str r1,

[r0]

; wait for store to complete

dsb; disable automatic fp register content

; disable lazy context switch

ldr.w r0,

=0xe000ef34

; load address to fpccr register

ldr r1,

[r0]

and r1, r1, #(

0x3fffffff

); clear the lspen and aspen bits

str r1,

[r0]

isb ; reset pipeline now the fpu is enabled

endif

;到這結束,就上面這段

ldr r0,

=systeminit

blx r0

ldr r0,

=__main

bx r0

endp

確定好了之後,在有中斷的地方,加上中斷保護函式:

void

tim7_irqhandler

(void)}

osintexit()

;}

用osintenter()和osintexit(),完成之後,單獨為機智雲建立乙個任務

void

gizwitshand_task

(void

*p_arg)

}

#define gizwits_task_prio                           4

#define gizwits_task_size 256

os_tcb gizwits_task_tcb;

cpu_stk gizwits_task_stk[gizwits_task_size]

;void

gizwits_task_creat

(void

)

完成後,試試?反正我就可以了。

值得注意的是,

#define os_cfg_obj_type_chk_en          1u
需要將這個置1。

在gizwitshandle()這個函式執行時,需要加入osschedlock()和osschedunlock()給排程器上鎖,傳送期間不能因排程被打斷。

UCOSIII中系統時鐘的移植

freertos的 寫得真的像是一坨坨的 我一點看的慾望都沒有。相比之下,ucosiii的 寫得就好看多了,我看著看著就看回了ucosiii,今天我重點看了移植部分與滴答定時器有關的內容,下面我就來表達一下我是如何理解這個部分內容的,本篇文章主要分為如下兩個部分 systick 是一 個 24 位的...

機智雲與奧克斯簽署合作協議,推進智慧型化戰略部署

5月13日,中國空調行業領導品牌奧克斯 aux 與物聯網雲服務第一品牌機智雲在奧克斯集團總部簽定商業合作協議,正式啟動 奧克斯智慧型空調雲平台 專案部署工作,雙方將立足各自技術優勢和服務優勢展開深度合作,共同打造奧克斯中國智慧型空調第一品牌,重構中國智慧型空調產業新格局,推進奧克斯基於網際網路智慧型...

雲計算2 0時代,你的企業上雲了嗎? 中機智庫

經過十餘年的發展,雲計算的應用服務範圍正日益擴大,影響力也持續增強。回顧雲計算發展歷程,主要經歷了兩大發展階段。cloud1.0階段,網際網路公司利用雲計算實現了資源共享,創造了顛覆性的商業模式。業內認為當前雲計算已經全面進入2.0時代,在cloud2.0發展階段,晶元 軟體和硬體都進行了進一步創新...