经典怀旧,今天又看到这个题目。多年前的作业,仿佛还在眼前。基本上每开始用一个新的IC,或者语言,几乎都是这个题目,好吧我承认我就是那即将老去的那一代中的一份子。此次BLE 路程也从这个题目开始吧,算是开光 。
打开例子似乎是BLE远程控制LED的实现。找到main() , 初始化硬件。 HAL_BOARD_INIT() = 开机晶体振荡设置,32Mhz-》32Khz ,稳定后退出。TI一贯做法而已。InitBoard( OB_COLD ); 初始化中断,按键,等等。 基本上和单片机一样。
HalDriverInit(); 初始化IC内部的外设部分,A/D,D/A,DMA,UART,SPI等等。 osal_snv_init(); 上电消抖(保护flash内容)。osal_init_system(); 初始化内存,电源管理和timer,task等等。 HAL_ENABLE_INTERRUPTS(); 开中断。InitBoard( OB_READY );
开本次应用所要的资源。针对不同的任务自己改的地方。 osal_pwrmgr_device( PWRMGR_BATTERY ); 是否开启省电模式。
osal_start_system(); // 开始工作。里面调用osal_run_system(); 这个函数里面就在处理中断和其他的消息。
我们看看里面是什么。 Hal_ProcessPoll(); 此函数开启的是端口,spi , uart , HID ,以及是否睡眠。 后面就是任务指针处理了。似乎和自己写的差不多。任务数组指针等等。基本等同csr 的messageloop(); 先看看硬件部分,在来看这段代码会好点。 |