TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F作为pheripheral, 总是和主机配对失败

用CC2640R2F自己做的板子,主要用途是向主机发送sensor的数据,在TI的simple_peripheral 实例的基础上加了三个non-ICALL task。但是现在不能和电脑配对,总显示配对失败,不知道是哪里的问题,每次运行都会abort。我是使用XDS110连接的,用了ROV看task 发现优先级低的task根本进不去,如下图:

程序就停留在iCall_taskentry这里,BIOS显示的错误也很不具体。

我猜测可能是因为task的优先级冲突了,就把iCall_taskentry的优先级改为了6,但是改了之后就根本不能被主机发现了,ROV如下图:

一旦把优先级改了,程序就会直接running到task0,BIOS给了两个错误,地址是在Timer和Semaphore里,但是我怎么样才能找到具体的错误呢?有没有什么更好的办法debug?

(我没法用sniffer抓包,因为不是TI的开发板,是我自己做的板子用了CC2640R2F,board的文件信息都已经配置好了,应该不是板子的问题)

我用的是

TI SimpleLink CC2640R2 Software Development Kit (Version 1.50.00.58)

TI Code Composer Studio: CCS-9

TI Code Generation Tools for ARM: 16.09.03.LTS

XDCTools: 3.50.03.33

Alvin Chen:

simple_peripheral的你的task不能高于BLE stack的优先级。如果你的sensor 建议你用Util_constructClock定时器。

Shuang Ni:

回复 Alvin Chen:

谢谢您的回复.

Icall_taskEntry是最高优先级6,gapRole_taskFxn是5,SimpleBLEPeripheral_taskFxn是4,我自己加的non-icall task放在优先级3及以下,对于pheripheral设备来说,这种task优先级的安排是否合理?

我用的是Util_constructClock。 

BIOS里能看到的这些错误,看起来是memory或者pointer的问题,该怎样排查到底是哪一块出了问题呢?

Alvin Chen:

回复 Shuang Ni:

你的sensor任务是否开辟了大的数组或者内存没有释放,建议你增大应用heap size试试。

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F作为pheripheral, 总是和主机配对失败
分享到: 更多 (0)