CoooS是Cortex-M3定制的操作系统,感觉有点像uC ,当然也支持STM32
先完成STM32的串口编程用于打印信息
在Keil中编写3任务
//点亮开发板上的LED 表示系统在运行
void Sys_Run_Led_Task(void* pdata)
{
while(1)
{
GPIO_SetBits(GPIOD,RUN_LED);
Delay(0xAFFFF);
GPIO_ResetBits(GPIOD,RUN_LED);
Delay(0xAFFFF);
Uart_printf("Sys_Run_Led_Task!\n");
// printf("hhh\n");
CoTickDelay (10);
}
}
void Test1_Task(void* pdata)
{
while(1)
{
Uart_printf("------------------Test1_Task!------------------\n");
CoTickDelay (50);
}
}
void Test2_Task(void* pdata)
{
while(1)
{
Uart_printf("------------------Test2_Task!-------------------\n");
CoTickDelay (50);
}
}
主函数
int main(void)
{
CoInitOS (); //系统初始化
Uart_Init();//串口初始化
Uart_printf("---------------CoOS Test------------------\n");
Uart_printf("---------------2012-11-14------------------\n");
Uart_printf("---------------DCH-------------------------\n");
Uart_printf("input:");
getxx = get_char();
put_char(getxx);
Uart_printf("\nEnter any key continu!\n");
getxx = get_char();
Uart_printf("\n");
GPIO_Sys_Init();
/*创建3个任务*/
CoCreateTask (Sys_Run_Led_Task,0,1,&task_Led_Run_stk[128-1],128);
CoCreateTask (Test1_Task,0,12,&test1_stk[128-1],128);
CoCreateTask (Test2_Task,0,13,&test2_stk[128-1],128);
Uart_printf("OS Start!\n");
CoStartOS ();//运行任务
while (1);
}
用J-link调试
板子上的LED闪烁,通过串口打印信息如下 :
相关的源码已上传
目录结构如下