CC3120驱动移植到MCU,调用sl_start(0,0,0)返回值1,能说明什么问题,该函数有返回值能不能说明MCU与CC3120的SPI接口驱动是通的,还有出现返回值为1,能说明我的驱动那一块有问题,我改排查哪里。
Alvin Chen:
ROLE_RESERVED = 1 ,
这个返回值来自_SlDeviceGetStartResponseConvert().
正常可以返回 STA/AP/P2P , ROLE_RESERVED 只有 async status为 0 o在_SlDeviceGetStartResponseConvert.
这个文档应该来自于你自己移植的平台中如何存储或解释从CC3120收到的数据导致的同步问题。
user6105077:
回复 Alvin Chen:
您认为可能是我移植CC3120驱动的哪一个部分导致的问题,是SPI驱动写的不对导致从CC3120读出的数据错误还是其他的问题导致的,请给点建议,我好排查代码。谢谢。
Alvin Chen:
回复 user6105077:
是不是SPI问题不好说,但是你这个问题是同步问题。
你什么平台?freertos? 你先去用示波器抓一下你的SPI波形看一下是否良好。如果你是FreeRTOS的平台。可以参考我们SDK里面的:
C:\ti\simplelink_sdk_wifi_plugin_2_40_00_22\examples\rtos\MSP_EXP432P401R\demos\network_terminal\freertos
下载和参考这个SDK 需要的工具:
CCS:http://www.ti.com/tool/CCSTUDIO
\simplelink_sdk_wifi_plugin_2_40_00_22:
msp432 SDK :
http://www.ti.com/tool/SIMPLELINK-MSP432-SDK
user6105077:
回复 Alvin Chen:
我单步调试了一下代码,发现在执行sl_start()函数时,会执行SPI_WRITE()写到CC3120的数据是08 00 62 44,接着会执行SPI_READ()从CC3120中读出的数据是20 00 35 d0 问一下SPI读出的数据正常吗,代表什么意思。
Alvin Chen:
回复 user6105077:
你现在的问题是异步处理的问题造成了信息不完整,我们提了MSP432的freertos 例程请去参考处理逻辑。
user6105077:
回复 Alvin Chen:
我就是按照你们给出的例程去移植的代码,你们提供的例程我都参考过,关于异步处理这块哪里出的问题,能给点详细的建议吗,什么错误会导致这类问题?
user6105077:
回复 user6105077:
我参考你们给的程序将你们给的驱动文件中的接口ccpal.c里面的函数都实现了,在应用层的调用上也是参考你们的代码,先创建一个任务运行sl_task任务,接着在执行sl_start函数启动CC3120
Alvin Chen:
回复 user6105077:
这要看你具体移植程序。你现在出现的只能说明是异步处理出现了,只能你自己去检查你的程序。
user6105077:
回复 Alvin Chen:
异步处理 是什么机制,能说详细点吗,是不是我的中断处理的问题。
Alvin Chen:
回复 user6105077:
看下面的code:
关于case SL_OPCODE_DEVICE_INITCOMPLETE:_SlDeviceHandleAsync_InitComplete(pHdr);break;case SL_OPCODE_DEVICE_STOP_ASYNC_RESPONSE:_SlDeviceHandleAsync_Stop(pHdr);break;case SL_OPCODE_DEVICE_RESET_REQUEST_ASYNC_EVENT:dev.ti.com/…/device_8c_source.html