ever i running example of the BLE cc2540 sample project.
project name is thermometer. and i started analysis thermometer project source code.
there files are each have other related files. and call function and include header file.
so i tracking function, header files, and project files.
first start thermometer_main.c call osal_init_system(), osal_start_system().
osal_init_system(), osal_start_system() are located in the OSAL.C
osal_init_system() is initialize GAP, GATT, HAL, tasks, etc...
osal_start_system() is call osal_run_system().
and i saw osal_run_system().
now i have question, ever using microcontrollers C source code include while().
but can't find while() in this project, also stable sequence, and interrupt signal relate BLE process etc..
It is too difficult for me. i don't understand through read datasheet, manual, btool.
therefore, teach me it sequence flow...
Thanks.
Hi, Choi,
It is a good question to understand the details of OSAL.
Actually it can be found from the OSAL API description that the osal_start_system() is the main loop function of the task system. It repeatedly calls osal_run_system(T) from an infinite loop. This function never returns.
The osal_run_system() makes one pass through the OSAL taskEvents table call the task_event_processor function for the first task that is found with at least one event pending. If there are no pending events, this function puts the process into sleep mode to save energy.