This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

abort() / loader_exit() occurs when adding service

Hi,

I've taken the SimpleBLEPeripheral and added sensorTag.c and the humidity service from the sensor tag project. This is because the sensortag has a bit better functionality as far as supporting multiple services/tasks.

Of course I had to rip out references to other services and I have a custom board definition (custom board.h and board.c).

In main I have the calls to create task for sensortag and for the Humidity task. Running just the sensortag task itself  without SensorTagHum_createTask works without any issues. But as soon as I add SensorTAgHum_createTask(); everything fails .

The SimpleBLEPeripheral_CreateTask() has been removed becaus eit's not used.


/* Initialize ICall module */
ICall_init();

/* Start tasks of external images - Priority 5 */
ICall_createRemoteTasks();

/* Kick off profile - Priority 3 */
GAPRole_createTask();

//SimpleBLEPeripheral_createTask();

SensorTag_createTask();
SensorTagHum_createTask();

I've tracked down the failure point to  Humidity_addService(); which is in the sensorTaskInit in SensorTag_Hum.c.
As soon as this function is called, this fails.

I doubt the humidity service is itself the issue. It's a configuration issue or something else:

1) I've increased task # and entity # to what sensor tag has (a bit overkill since sensortag and humidity are only tasks)

2) I've matched up other defines as needed

I'm missing something but not sure what it is.

  • Hi JW,

    Whats happening is that ICALL is not setup to handle as many tasks as you have added, so it is triggering an RTOS exception.
    There are other defines that must be changed to add more ICALL tasks which are explained here:
    processors.wiki.ti.com/.../Adding_Custom_RTOS_Task

    However, there are only rare use cases that require the creation of many RTOS tasks, I would suggest that if at all possible you integrate the sensortag functionality you need into the simpleBLEPeripheral task. The software dev guide in the RTOS section explains why this is not advised.