Part Number:CC2640R2F
使用CC2640R2F SDK创建新任务,原有SimpleBLEPeripheral_createTask之外,再创建一个用户任务。
我新创建任务,修改全局宏定义 ICALL_MAX_NUM_ENTITIES=7 ICALL_MAX_NUM_TASKS=4,
任务运行能起来,我仿造SimpleBLEPeripheral_createTask,使用
ICall_registerApp(&selfEntity, &syncEvent);
Event_pend(syncEvent, Event_Id_NONE, SBP_ALL_EVENTS,ICALL_TIMEOUT_FOREVER);
也能成功收发事件和队列。
但是在新任务中使用osal_snv_write(0x80, 1, (uint8 *)&data);,会卡死在这个函数出不来,仿真时单步走发现。
此操作放在SimpleBLEPeripheral_Task是可以的。
请教一下,我的配置正确吗,还需要其他配置吗?
// Configure task
Task_Params taskParams;
Task_Params_init(&taskParams);
taskParams.stack = kiwiTaskStack;
taskParams.stackSize = KIWI_TASK_STACK_SIZE;
taskParams.priority = KIWI_TASK_PRIORITY;
Task_construct(&kiwiTask, AppKiwi_taskFxn, &taskParams, NULL);
Alex Zhang:
您好,您这边可以参考我们的官网教程:
https://dev.ti.com/tirex/content/simplelink_academy_cc2640r2sdk_5_30_01_00/modules/blestack/ble_01_custom_profile/ble_01_custom_profile.html
我为您提供了链接,希望可以帮助到您
,
user6303367:
没有看到需要的呢。
主要是 osal_snv_write 什么情况会阻塞,假死,有资料吗?
,
Alex Zhang:
似乎您创建新任务的方式与osal_SNV_WRITE ()函数有关,我建议您阅读用户指南中的专用章节,转到他的应用程序章节, 然后内存管理,最后闪存,你可以找到一个部分使用简单的NV为闪存存储。 如果没有此功能,任务是否正常工作? 您是否能够正确使用堆栈? (您使用的是blestack还是ble5stack?) 您可以使用CCS上的ROV工具来帮助您进行调试,它将帮助您了解正在运行的任务以及您到底在哪里待处理。
,
user6303367:
使用的是blestack,用户指南,哪里有呢
,
Alex Zhang:
https://dev.ti.com/tirex/content/simplelink_cc2640r2_sdk_5_30_00_03/docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/index-cc2640.html
Alex Zhang 说:阅读用户指南中的专用章节
我这边为您提供了链接,我刚刚在给您这边查找,抱歉让您久等了。
,
user6303367:
好的,感谢
,
Alex Zhang:
Alex Zhang 说:CCS上的ROV工具
这个您这边需要吗?我也给你提供资料。
,
Alex Zhang:
https://dev.ti.com/tirex/explore/node?node=A__ACOj6WhXkFLx5hBeJ980nA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST
这个链接提供了查看堆栈大小的方法
Introduction — Runtime Object View documentation
更为细节的是这个 希望可以帮助到您
,
user6303367:
收到,感谢!
,
Alex Zhang:
不客气,有问题随时来论坛交流,您这边有新的问题,需要重新发帖,谢谢。