Other Parts Discussed in Thread: CC2640
HI,
I have a project utilizing Sensor Controller and Bluetooth. Boot startup time is critical to the application. We need to boot into the sensor controller application quickly and then perform Bluetooth actions at leisure.
However the additional XDC startup functions that are required to initialize components required by Bluetooth are increasing boot time to an unacceptable time.
So my question is how can I stop the XDC startup functions executing before main(), and then manually call these functions after the boot critical code.
I am using IAR workbench8.32.3.20228 , xdctools 3_51_3_28 and simplelink_cc2640r2_sdk_3.02.00.21.
The configuro tool command line is
"$XDC_DIR$\xs" --xdcpath="$PROJ_XDCPATH$" iar.tools.configuro -c "$TOOLKIT_DIR$" --cc "$COMPILER_PATH$" --device "$DEVICE$" --compileOptions $COMPILER_ARGS_ROOT_QUOTED$ --linkOptions $LINKER_ARGS_QUOTED$ --profile release --projFile "$PROJ_PATH$" --cfgArgs "{}" -o $XDC_BUILD_OUTPUT_DIR$ $FILE_PATH$
working on config file app_ble.cfg (content listed below)
utils.importFile("common/cc26xx/kernel/cc2640/config/cc2640_r2_csdk.cfg");
/*
* Extend the cc2640 configuration
*/
/* Set the vector table address correctly */
m3Hwi.resetVectorAddress = 0x00000E00;
/* Set the hwi */
halHwi.create(16, '&ResetButtonCallback');
/* Heap Configuration defines the type of Heap you want to use for the system (application + Stack)
* Only one Heap buffer will be allocated. This heap will be shared by the system and the stack through one manager (HeapMem, HeapMem+HeapTrack or OSAL)
* You can still decide to create several heaps if you want, but at least one heap needs to be created.
* The stack must have a Heap to run.
* The different Heap manager available are :
* OSAL HEAP: legacy Heap manager provided with all BLE sdk. By default, this Heap manager is used.
* HeapMem: heap manager provided by TI-RTOS (see TI-RTOS user guide for properties)
* HeapTrack: module on top of HeapMem allowing an easy debugging of memory allocated through HeapMem.
* The heap manager to use is selected by setting HEAPMGR_CONFIG to the corresponding value (see below)
* 0 = osal Heap manager, size is static.
* 0x80 = osal Heap manager, with auto-size: The remainning RAM (not used by the system) will be fully assign to the Heap.
* 1 = HeapMem with Static size
* 0x81 = HeapMem with auto-size. The remainning RAM (not used by the system) will be fully assign to the Heap.
* 2 = HeapTrack (with HeapMem) with fixe size
* 0x82 = HeapTrack (with HeapMem) with auto-size: The remainning RAM (not used by the system) will be fully assign to the Heap.
*
* If HEAPMGR_CONFIG is not defined, but the configuration file ble_stack_heap.cfg is used, then the value HEAPMGR_CONFIG = 0x80 is assumed.
* If HEAPMGR_CONFIG is not defined, and the file ble_stack_heap.cfg is not used, then the value HEAPMGR_CONFIG = 0x80 is assumed and the default Heap size will be 3072
* unless you define HEAPMGR_SIZE to a different value in the project option (0 meaning auto-size).
*
* From the configuration below, two #define will be created that will be used by the application to setup the Heap:
* #define HEAPMGR_SIZE
* #define HEAPMGR_CONFIG
* In order to use those define, this include line needs to be added: #include <xdc/cfg/global.h>
*
* In order for the auto-size Heap to work, the following symbol needs to be created by the linker:
* heapStart
* heapEnd
*
*/
/* modification of HEAPMGR_CONFIG and HEAPMGR_SIZE value must be done inside the include file bellow (ble_stack_heap.cfg) */
utils.importFile("common/cc26xx/kernel/cc2640/config/ble_stack_heap.cfg");
Thanks