UCOSIII入門 移植驗證

2021-10-16 21:10:51 字數 1651 閱讀 9960

#include "sys.h"

#include "delay.h"

#include "usart.h"

#include "led.h"

#include "includes.h"

#define start_task_prio 3

#define start_stk_size 512

cpu_stk start_task_stk[start_stk_size];

os_tcb start_task_tcb;

void start_task(void *params);

#define led0_task_prio 4

#define led0_stk_size 128

cpu_stk led0_task_stk[led0_stk_size];

os_tcb led0_task_tcb;

void led0_task(void *params);

#define led1_task_prio 5

#define led1_stk_size 128

cpu_stk led1_task_stk[led1_stk_size];

os_tcb led1_task_tcb;

void led1_task(void *params);

#define float_task_prio 6

#define float_stk_size 128

__align(8) cpu_stk float_task_stk[float_stk_size];//__align(8)對齊

os_tcb float_task_tcb;

void float_task(void *params);

void start_task(void *params)

void led0_task(void *params)

}void led1_task(void *params) }

void float_task(void *params)

}int main(void)

1、os_opt opt引數

os_opt opt引數

os_opt_time_hmsm_strict

嚴格模式

os_opt_time_hmsm_non_strict

非嚴格模式

下面示例用法錯誤,os_opt_time_hmsm_strict模式下,cpu_int32u   milli 引數範圍0~999

#if後面需要是乙個表示式,如果表示式為1則編譯#if下面的**。

#ifdef後面需要的只是這個值,有沒有用#define定義,並不關心define的這個值是0還是1。

(cpu_stk_size) float_task_stk / 10,   ===>錯,錯,錯

(cpu_stk_size) float_task_stk,        ===>錯,錯,錯

uCOSIII移植補充

上篇寫到ucosiii的移植,由於移植的是教程寫好的檔案到開發板,沒發現到一些問題。今天移植到另乙個開發板的時候出現系統卡死在osstarthighrdy 函式的問題。現在就再次分析一下移植過程。我們將rct6開發板上的ucosiii移植到c8t6的板子上時,會發現系統一直沒有啟動,led沒用閃爍。...

UCOSIII 移植筆記(一)

這篇博文為本人ucosiii移植筆記第一篇 先說一下ucosiii micrium在2009年推出了ucosiii,相對於之前的ucosii版本,在效能上有了進一步的提公升,主要是支援時間片輪排程,極短的關中斷事件等。可剝奪多工管理 什麼是可剝奪多工管理呢?查相關資料,意思就是這個系統總是在執行當前...

UCOSIII中系統時鐘的移植

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