基于TI_BLE协议栈_ZStack协议栈解析.doc

上传人:白大夫 文档编号:3416362 上传时间:2019-08-23 格式:DOC 页数:3 大小:20KB
返回 下载 相关 举报
基于TI_BLE协议栈_ZStack协议栈解析.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于TI_BLE协议栈_ZStack协议栈解析.doc》由会员分享,可在线阅读,更多相关《基于TI_BLE协议栈_ZStack协议栈解析.doc(3页珍藏版)》请在三一文库上搜索。

1、基于TI_BLE协议栈_ZStack协议栈解析基于STM32的虚拟多线程,可以很好的用于裸机程序中,用于模拟小型操作系统的多线程概念。本实例参考TI_BLE协议栈_ZStack协议栈。#include “Hal_Led/Hal_Led.h”#include “Hal_delay/delay.h”#include “Hal_Key/Hal_Key.h”#include “ringbuffer.h”#define APP_LED2_BLINK_EVENT 0x0001#define HAL_LED1_BLINK_EVENT 0x0001#define TASK_NO_TASK_RUNNING 0x

2、FFunsigned short Hal_ProcessEvent( unsigned char task_id, unsigned short events );unsigned short App_ProcessEvent( unsigned char task_id, unsigned short events );typedef unsigned short uint16;typedef unsigned char uint8;#define TASK_CNT 2 /定义线程的个数/定义函数指针typedef unsigned short (*pTaskEventHandlerFn)(

3、 unsigned char task_id, unsigned short events );/线程函数表const pTaskEventHandlerFn tasksArr =Hal_ProcessEvent,App_ProcessEvent;const unsigned char tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr0 );/uint16 *tasksEvents;uint16 tasksEventsTASK_CNT = 0; /每个线程有16位位域空间用于设置事件staTIc uint8 acTIveTaskID = 0xFF

4、; /当前任务ID,指示作用#define SUCCESS 0x00#define FAILURE 0x01#define INVALID_TASK 0x02uint8 osal_set_event( uint8 task_id, uint16 event_flag )if ( task_id tasksCnt )tasksEventstask_id |= event_flag; / Stuff the event bit(s)return ( SUCCESS );elsereturn ( INVALID_TASK );/* brief 程序入口* param none* return non

5、e*/int main(void)unsigned short taskID = 0;uint8 idx = 0;SystemInit(); /系统时钟初始化delayInit(72); /滴答定时器初始化Led_Init(); /LED初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);osal_set_event(0, HAL_LED1_BLINK_EVENT);osal_set_event(1, APP_LED2_BLINK_EVENT);while(1)doif(tasksEventsidx) /轮训获知哪个线程有事件需要进行处理break;while (+idx tasksCnt);if (idx tasksCnt)uint16 events;events = tasksEventsidx;tasksEventsidx = 0; / 清除事件数组中的事件acTIveTaskID = idx;events = (tasksArridx)( idx, events ); /调用线程函数acTIveTaskID = TASK_NO_TASK_RUNNING;tasksEventsidx |= events; / 添加未处理的事件到本线程的事件组中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1