Other Parts Discussed in Thread: SYSCONFIG
I am using CCS Version 10.1.0, XDCTools version 3.61.01.25, Simplelink SDK Version 4.20.00.35, and am compiling my project with TI v20.2.1.LTS. My OS is 64-bit Windows 10. My target device is CC2652R1F. I am programming it via the JTAG interface on the Launchpad.
I am in the process of developing a Bluetooth application and I have a couple questions about the Simple Peripheral Example provided by the SDK.
I see the file osal_icall_ble.c located in the Startup folder of the project. According to the documentation located here (https://www.ti.com/lit/ug/swru271i/swru271i.pdf -- pages 15-16 and https://processors.wiki.ti.com/images/a/a9/06_-_OSAL_and_HAL.pdf), it seems like the OSAL is some legacy version of TI-RTOS. Is this true? I thought the OSAL, or Operating System Abstraction Layer, was supposed to sit on top of TI-RTOS (or any other RTOS for that matter) and provide abstraction from the OS.
Further, I noticed that the function osal_InitTasks (defined in osal_icall_ble.c) is never actually called by any other function. This is particularly surprising as osal_InitTasks includes a call to ICall_enrollService, which according to the documentation located here (http://software-dl.ti.com/simplelink/esd/simplelink_cc13x0_sdk/2.20.00.38/exports/docs/blestack/software-developers-guide/ble-stack-2.x/index.html#icall-initialization-and-registration), is necessary to enroll the BLE stack service with ICall. If ICall_enrollService is only called in osal_InitTasks, but osal_InitTasks is never actually called, how does ICall function properly? Has ICall_enrollService been replaced by some other function or is it no longer necessary?
What is the advantage of using VIMs to enable the cache? Does this improve execution efficiency/speed? See the code below.
// Enable iCache prefetching VIMSConfigure(VIMS_BASE, TRUE, TRUE); // Enable cache VIMSModeSet(VIMS_BASE, VIMS_MODE_ENABLED);
I also noticed that in the Board_init function called in main, the external flash on the Launchpad is shutdown. Is this simply for power savings?
What does the following code do? Does it set the tick period of the Bluetooth stack and the maximum timeout period for message processing via ICall? The ICall.h file does not comment on the icall_userCfg_t data structure.