马上注册,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
×
Dialog的协议栈在出厂时已经固化在ROM中,对于应用层的代码,并没有真正的主函 入口,是通过一个跳转表jump_table_base将函数指针放到某个固定的位置。
图1
上面的宏BLE_APP_PRESENT表示的是整个应用是同一个芯片中完成,不需要用到GTL(Generic Transport Layer) (通用传输层)。所以一般这个宏是需要打开的。这个表是将内核和应用用到的函数指针放到这里,当应用或者内核需要使用时,可以通过数组调用某个函数,例如当系统启动时,需要运行应用的主函数int main_func(void),这个函数也在这个表中(249行),当然这个调用是在协议中的主函数启动之后进行调用的: PtrFunc= (my_function)(jump_table_struct[main_pos]); 上面实际上就是调用应用层的main_func()函数了。当然在应用层也可以进行这样的调用,例如图2:
|