在最高层级,CC2640蓝牙软件环境由三部分组成:一个实时操作系统(RTOS),一个应用映射,一个栈映射。TI-RTOS是一个实时的,抢占式的,多线程的操作系统,可以利用软件保证任务同步。应用和蓝牙协议栈作为单独的任务存在RTOS中,但是蓝牙协议栈具有更高的优先级。消息机制架构,直接调用被用来使用为了确保应用和协议栈之间线程安全同步。具体架构如下所示:
1. 协议栈映射,包含内容,上文已提到过。
2. 应用映射,包含相关配置文件,应用代码,驱动,直接调用模型。
标准工程任务层次
所有的工程最少包含三个RTOS任务。按照优先级列出,其中优先级数目越大,优先级越高。像simpleBLEPeripheral工程,他们的任务是:
1:蓝牙协议栈任务
2:GapRole任务
3:应用任务(simpleBLEPeripheral)
int main()
{
PIN_init(BoardGpioInitTable);
#ifndef POWER_SAVING
/* Set constraints for Standby, powerdown and idle mode */
Power_setConstraint(Power_SB_DISALLOW);
Power_setConstraint(Power_IDLE_PD_DISALLOW);
#endif // POWER_SAVING
/* Initialize ICall module */
ICall_init();
/* Start tasks of external images - Priority 5 */
ICall_createRemoteTasks();
/* Kick off profile - Priority 3 */
GAPRole_createTask();
/* Kick off profile - Priority 1*/
//这个是SimpleBLEPeripheral.c中的函数,建立SimpleBLEPeripheral任务所有的任务均//在此处建立
SimpleBLEPeripheral_createTask();
BIOS_start(); //操作系统开始跑
return 0;
}
本主函数就是一个典型代表。