The following steps show you how to create a new task in TI RTOS to use ICall service like osal_snv_write and osal_snv_read. I will use ProjectZero in TI BLE Stack 2.2.1 as an example running on LAUNCHXL-CC2650 to do it.
1. Increase OSAL_MAX_NUM_PROXY_TASKS in BLE Stack project osal.c and rebuild Stack project to download it to your LAUNCHXL-CC2650.
2. Increase ICALL_MAX_NUM_TASKS and ICALL_MAX_NUM_ENTITIES in ProjectZero application Predefined Symbols.
3. Add the following Test_createTask function in ProjectZero.c and claim function prototype "extern void Test_createTask(void);" in ProjectZero.h
// Task configuration
#define TEST_TASK_STACK_SIZE 800
Task_Struct testTask;
Char testTaskStack[TEST_TASK_STACK_SIZE ];
void Test_createTask(void)
{
Task_Params taskParams;
// Configure task
Task_Params_init(&taskParams);
taskParams.stack = testTaskStack;
taskParams.stackSize = TEST_TASK_STACK_SIZE ;
taskParams.priority = 2;
Task_construct(&testTask, TestFunction, &taskParams, NULL);
}
4. Add the following TestFunction function in ProjectZero.c
// Entity ID globally used to check for source and/or destination of messages
static ICall_EntityID testEntity;
// Semaphore globally used to post events to the application thread
static ICall_Semaphore testsem;
uint8 status_snv;
uint8 write_buffer[10];
uint8 read_buffer[10];
static void TestFunction(UArg a0, UArg a1)
{
ICall_registerApp(&testEntity, &testsem);
while(1)
{
write_buffer[0] = 0x12;
write_buffer[1] = 0x12;
write_buffer[2] = 0x12;
write_buffer[3] = 0x12;
status_snv = osal_snv_write(0x80,10, (uint8_t *)write_buffer );
//Do ADC Polling and Data processing
read_buffer[0] = 0x0;
read_buffer[1] = 0x0;
read_buffer[2] = 0x0;
read_buffer[3] = 0x0;
status_snv = osal_snv_read(0x80,10, (uint8_t *)read_buffer );
}
5. Call "Test_createTask();" right after "ProjectZero_createTask();" to create TestFunction task to use ICall service for osal_snv_write/osal_snv_read.
sir if i follow this method i am getting this error please help me out
ReplyDeleteDescription Resource Path Location Type
#130-D a block-scope function may only have extern storage class ProjectZero.c /ProjectZeroApp_CC2650LAUNCHXL/Application line 329 C/C++ Problem