|
最近在做stm32單片機的時候,想讓單片機跑一種輕量級操作系統于是找到CoOS,內核只有974個字節,分享給大家。但是教程是英文哦,英語不好的建議用金山詞霸的畫譯功能輔助閱讀。帶上一個LED使用例子。
0.png (67.81 KB, 下載次數: 240)
下載附件
2017-5-19 15:23 上傳
單片機源程序如下:
- #include <CoOS.h>
- #include "stm32f10x.h"
- OS_STK taskA_stk[128]; //建立一個任務棧A
- OS_STK taskB_stk[128]; //建立一個任務棧B
- void LED_GPIO_Init(void)
- {
-
- GPIO_InitTypeDef Weiqi_GPIO_InitStru;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,ENABLE);
-
- Weiqi_GPIO_InitStru.GPIO_Pin = GPIO_Pin_5;
- Weiqi_GPIO_InitStru.GPIO_Speed = GPIO_Speed_50MHz;
- Weiqi_GPIO_InitStru.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
- GPIO_Init(GPIOB,&Weiqi_GPIO_InitStru);
-
- Weiqi_GPIO_InitStru.GPIO_Pin = GPIO_Pin_5;
- Weiqi_GPIO_InitStru.GPIO_Speed = GPIO_Speed_50MHz;
- Weiqi_GPIO_InitStru.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
- GPIO_Init(GPIOE,&Weiqi_GPIO_InitStru);
-
- GPIO_ResetBits(GPIOB,GPIO_Pin_5);
- GPIO_ResetBits(GPIOE,GPIO_Pin_5);
-
- }
- void TaskA(void* pdata)
- {
- for(;;)
- {
- GPIO_SetBits(GPIOB,GPIO_Pin_5);
- CoTickDelay(10); //延時N個系統節拍 任務進入等待態(TASK_WAITING) 延時是10*100ms 等于1S 就是一秒鐘一次?
- GPIO_ResetBits(GPIOB,GPIO_Pin_5);
- CoTickDelay(10); //延時N個系統節拍 任務進入等待態(TASK_WAITING) 延時是10*100ms 等于1S 就是一秒鐘一次?
- }
- }
- void TaskB(void* pdata)
- {
- for(;;)
- {
- GPIO_SetBits(GPIOE,GPIO_Pin_5);
- CoTickDelay(5); //延時N個系統節拍 任務進入等待態(TASK_WAITING) 延時是5*100ms 等于500 m?
- GPIO_ResetBits(GPIOE,GPIO_Pin_5);
- CoTickDelay(5); //延時N個系統節拍 任務進入等待態(TASK_WAITING) 延時是5*100ms 等于500 m?
- }
- }
- int main(void)
- {
- CoInitOS (); //操作系統初始化
-
- LED_GPIO_Init();
-
- /*
- [IN1]創建任務的函數體
- [IN2]任務函數體的傳入參數列表
- [IN3]任務優先級
- [IN4]任務棧起始地址
- [IN5]任務堆大小
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
源碼:
Coos-LED.zip
(345.94 KB, 下載次數: 156)
2017-5-19 10:20 上傳
點擊文件名下載附件
例程 下載積分: 黑幣 -5
教程:
CooCox-CoOS-User-Guide.pdf
(993.98 KB, 下載次數: 153)
2017-5-19 10:18 上傳
點擊文件名下載附件
教程 下載積分: 黑幣 -5
|
|