Other Parts Discussed in Thread: CC2654P10, , CC2652R, CC1354R10, CC2674R10
Tool/software:
hello everyone
I am trying to create my project for CC2654P10 using FreeRTOS and the GCC compiler.
I am using the "simple_peripheral" project for "LP_EM_CC1354P10_1" as a base.
I use the files generated for the project (ti_driver_config, ti_device_config, etc.). In general, everything works fine, i.e. I create tasks that work.
But I can't initialize BLE. I see that the execution reaches the osal_run_system function (from the ble5stack_flash folder), inside which the first function is called. Apparently, this is LL_ProcessEvent.
HAL_ENTER_CRITICAL_SECTION(intState); events = tasksEvents[idx]; tasksEvents[idx] = 0; // Clear the Events for this task. HAL_EXIT_CRITICAL_SECTION(intState); activeTaskID = idx; events = (tasksArr[idx])( idx, events ); activeTaskID = TASK_NO_TASK; HAL_ENTER_CRITICAL_SECTION(intState); tasksEvents[idx] |= events; // Add back unprocessed events to the current task. HAL_EXIT_CRITICAL_SECTION(intState);
Since this is a closed stack, I can't keep track of exactly what is being executed. But somewhere inside this function, an error occurs, and the execution of the entire project ends with a faultISR error.
I'm not sure if the error occurs in the same place. But definitely somewhere in the process of performing this function. I can't figure out what the reason might be, since the project with "simple_peripheral" and ti rtos is working more or less correctly. I tried to find additional information in the CPU_SCS registers when I got into faultISR. For example, I see 0x100 in the CFSR register and 0x40000000 in the HFSR register, but I'm not sure if this contains useful information.
Is there a mistake in setting up FreeRTOS? Perhaps the stack size is insufficient? But how to prove it? I tried increasing the heap size in the FreeRTOS configuration file, but it didn't help. I tried to increase the stack size for the RF task, but it didn't help either.
Maybe it's about configuring the RF task? But in the ti rtos example, this does not lead to a critical error.
Maybe in css studio you can track where I'm leaving from in a critical interruption? The usual call stack in debugging does not show such information.
thanks for any help.