1 / 10
文档名称:

书蓝牙协议栈.docx

格式:docx   大小:20KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

书蓝牙协议栈.docx

上传人:rsqcpza 2018/11/10 文件大小:20 KB

下载得到文件列表

书蓝牙协议栈.docx

文档介绍

文档介绍:书蓝牙协议栈
篇一:第十五节 BLE蓝牙协议栈启动分析
第十五节 BLE蓝牙
协议栈启动分析
2541器件可以单芯片实现BLE蓝牙协议栈结构图的所有组件,包括应用程序。从这章开始我们来剖析协议栈源码,我们选用
SimpleBLEPeripheral工程开刀,这是一个从机的例程,基本的工作是对外广播,等待主机来连接,读写展示的属性。
首先打开工程文件,打开后可以看到整个工程的结构。
我们按照系统的启动顺序来一步一步走,我们都知道在C代码中,一般启动的首个函数为main,这个函数在SimpleBLEPeripheral_中,打开文件,可以看到这个文件只有一个main函数和一个函数的申明,我们暂时不理会那个申明的函数,先看main都做了些什么工作:
1
2
3
4
5
6
7
8
9
10
11
12
13 Int main(void) { /* Initialize hardware */ HAL_BOARD_INIT(); // 硬件初始化// Initialize board I/O InitBoard( OB_COLD );// 板级初始化/* Initialze the HAL driver */ HalDriverInit(); // Hal驱动初始化/* Initialize NV system */ osal_snv_init(); // Flash存储SNV初始化/* Initialize LL */ /* Initialize the operating system */ osal_init_system(); // OSAL初始化
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34} /* Enable interrupts */ HAL_ENABLE_INTERRUPTS();// 使能总中断// Final board initialization InitBoard( OB_READY ); // 板级初始化#if defined ( POWER_SAVING ) osal_pwrmgr_device( PWRMGR_BATTERY );// 低功耗管理#endif /* Start OSAL */ osal_start_system(); // No Return from here 启动OSAL return 0;
通过代码我们可以看到,系统启动的过程,主要是做了一些初始化,如果开启了低功耗,则还需要开启低功耗管理。我们先不去理会初始化做了什么,但是我们知道在main函数的最后启动了OSAL,那么我们就进去看看OSAL是如何运作的。
在IAR中如果需要跳转到某个函数或变量的定义,可以在此函数名中右击然后选择Go To Definition……就可以调到相应的定义。
1
2
3
4
5
6
7
8
9 void osal_start_system( void ) { #i