|
經(jīng)典懷舊,今天又看到這個(gè)題目。多年前的作業(yè),仿佛還在眼前。基本上每開始用一個(gè)新的IC,或者語言,幾乎都是這個(gè)題目,好吧我承認(rèn)我就是那即將老去的那一代中的一份子。此次BLE 路程也從這個(gè)題目開始吧,算是開光 。
打開例子似乎是BLE遠(yuǎn)程控制LED的實(shí)現(xiàn)。找到main() , 初始化硬件。 HAL_BOARD_INIT() = 開機(jī)晶體振蕩設(shè)置,32Mhz-》32Khz ,穩(wěn)定后退出。TI一貫做法而已。InitBoard( OB_COLD ); 初始化中斷,按鍵,等等。 基本上和單片機(jī)一樣。
HalDriverInit(); 初始化IC內(nèi)部的外設(shè)部分,A/D,D/A,DMA,UART,SPI等等。 osal_snv_init(); 上電消抖(保護(hù)flash內(nèi)容)。osal_init_system(); 初始化內(nèi)存,電源管理和timer,task等等。 HAL_ENABLE_INTERRUPTS(); 開中斷。InitBoard( OB_READY );
開本次應(yīng)用所要的資源。針對不同的任務(wù)自己改的地方。 osal_pwrmgr_device( PWRMGR_BATTERY ); 是否開啟省電模式。
osal_start_system(); // 開始工作。里面調(diào)用osal_run_system(); 這個(gè)函數(shù)里面就在處理中斷和其他的消息。
我們看看里面是什么。 Hal_ProcessPoll(); 此函數(shù)開啟的是端口,spi , uart , HID ,以及是否睡眠。 后面就是任務(wù)指針處理了。似乎和自己寫的差不多。任務(wù)數(shù)組指針等等。基本等同csr 的messageloop(); 先看看硬件部分,在來看這段代碼會(huì)好點(diǎn)。 |
|