ucosii在stm32上的移植详解4
时间:11-19
来源:互联网
点击:
启动SysTick定时器。
RCC_GetClocksFreq()用来获取系统时钟。
SysTick_Config()初始化并使能SysTick定时器。
这里要注意的是OS_TICKS_PER_SEC,它是每秒钟的ticks数,如果为1000,就是1s中1000个ticks,也就是说1ms就会产生一个SysTick中断。系统的时间片为1ms。
在邵老师的书中3.11节已有明确说明,必须在调用OSStart()之后,才能开启时钟节拍器(SysTick)。一般会把它放在第一个任务(启动任务)中。
startup_task()用来创建其他应用任务,创建完其他任务后,就会自己删除自己。
文件中的STARTUP_TASK_STK_SIZE,STARTUP_TASK_PRIO需要在app_cfg.h中定义。代码如下:
/* task priority */
#define STARTUP_TASK_PRIO 4
/* task stack size */
#define STARTUP_TASK_STK_SIZE 80
在stm32f10x_it.c中,还需要添加SysTick中断的处理代码:
void SysTick_Handler(void)
{
OSIntEnter();
OSTimeTick();
OSIntExit();
}
这个代码是仿照OS_CPU_SysTickHandler()中代码的,在邵老师书的3.11节亦有说明。这里就不解释。
至此ucosii在stm32上的移植已全部完成。
ucosiistm32移 相关文章:
- ucosii在stm32上的移植详解1(11-09)
- ucosii在stm32上的移植详解5(11-09)
- ucosii在stm32上的移植详解3(11-09)
- ucosii在stm32上的移植详解2(11-09)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)