1. include
/* MicroC/OS-II definitions */
#include "includes.h"
NIOS中首选从BSP中修改增减组件。
2. datatype
不使用不确定数据宽度的short,int,long等
需要使用浮点和除法,再看文档
bsp/HAL/inc/alt_types.h
#ifndef ALT_ASM_SRC
typedef signed char alt_8;
typedef unsigned char alt_u8;
typedef signed short alt_16;
typedef unsigned short alt_u16;
typedef signed long alt_32;
typedef unsigned long alt_u32;
typedef long long alt_64;
typedef unsigned long long alt_u64;
#endif
bsp/HAL/inc/os_cpu.h
/* This is the definition for Nios32. */
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U; /* Unsigned 8 bit quantity */
typedef signed char INT8S; /* Signed 8 bit quantity */
typedef unsigned short INT16U; /* Unsigned 16 bit quantity */
typedef signed short INT16S; /* Signed 16 bit quantity */
typedef unsigned long INT32U; /* Unsigned 32 bit quantity */
typedef signed long INT32S; /* Signed 32 bit quantity */
typedef float FP32; /* Single precision floating point */
typedef double FP64; /* Double precision floating point */
typedef unsigned int OS_STK; /* Each stack entry is 32-bits */
3. Clock Tick
时钟节拍是内核为了将任务延时若干整数个单位,以及,当任务等待事件发生时,提供超时信息。一般是10~200ms(考虑);由HAL下sys_clk_timer提供。
#define ALT_SYS_CLK TIMER //system.h
#if OS_TIME_GET_SET_EN > 0 //ucos_ii.h
OS_EXT volatile INT32U OSTime; /* Current value of system time (in ticks) */
#endifOS_EXT是定义的一个宏,ucos_ii.h开始
#ifdef OS_GLOBALS
#define OS_EXT
#else
#define OS_EXT extern
#endif因此,在定义全局变量时,#define OS_GLOBALS就可以;在声明该全局变量时,不使用#define OS_GLOBALS
回到OSTime,这里定义了一个volatile全局变量,对Tick进行计数。

本文主要介绍了MicroC/OS-II实时操作系统的一些关键点,包括数据类型的选择,时钟节拍的设定,中断处理,堆栈管理以及任务创建和管理。时钟节拍通常设置在10到200ms之间,任务使用OSTaskCreate或OSTaskCreateExt进行创建,并通过OSTimeDly系列函数进行延时管理。中断处理强调关中断、处理数据和开中断的顺序。堆栈分配需要注意内存碎片问题,而任务则是以无限循环运行的void类型函数。
最低0.47元/天 解锁文章
1557

被折叠的 条评论
为什么被折叠?



