PSDK在M30中使用遇到断言中止的情况

已完成

评论

5 条评论

  • DJI Developer Support
    M30上请使用PSDK 3.2或最新的PSDK 3.3 FreeRTOS版本,之前的FreeRTOS版本在M30上开启订阅后会有内存溢出问题。
    0
    评论操作 固定链接
  • Jacob

    很抱歉在您回复后才发现问题描述上有一些错误,目前的程序早先是使用3.2版本的,发现上述问题后更新到了3.3版本,经过测试问题仍旧存在。

    根据您的描述,使用消息订阅功能后可能会出现类似情况,我在去除了FcSubscription初始化及订阅部分的内容后进经过反复测试,仍旧存在该问题,且程序中止时的调用栈信息与先前所述的基本一致,也并未观察到其他明显的差异。从情况上看目前我所遇到的问题应当与消息订阅无关。

    烦请再帮忙分析一下,谢谢!

    0
    评论操作 固定链接
  • DJI Developer Support
    不修改代码直接运行PSDK demo是否也同样有问题?若也存在问题,麻烦提供一下demo运行的终端日志,dji_sdk_config.h中截图,以及使用的波特率。
    0
    评论操作 固定链接
  • Jacob

    以下是dji_sdk_config.h中的截图,dji_sdk_app_info.h中设置的波特率为460800

    这几天撇开业务代码从头开始在demo中尝试使用排除法确认这个问题,有如下发现:

    • 在不运行任何功能模块demo的情况下,不会发生所述异常;
    • 在启用DATA_TRANSMISSION功能demo,把不使用的几个数据发送方向及高速传输部分注释掉(只保留了低速通道PSDK发到MSDK的部分),并使用默认数据时亦不会发生所述异常(demo中发送数据为"DJI Data Transmission Test Data.\r\n",加结束符应该是35个字节);
    • 如果将所发送数据长度调整为64字节,则将发生所述异常;
    • 逐步缩小范围,当每次发送的数据长度为52字节时异常不会出现,56字节时会出现(中间长度没有测试);
    • 该问题只在M30上,且使用STM32+FreeRTOS情况下出现,在NX上跑Ubuntu,跑一样的例程不会有问题(其他芯片的板手上没有只测试了NX+Linux和STM32F412+FreeRTOS);
    • 在两台M30上做了测试,都有出现如上所述的异常。

    查阅了文档只提及到命令通道的带宽4KB/s、缓冲区512B和长度超过128会分包的几个情况,看来与此并无关联。烦请再行确认一下是否有类似情况,如有发现也请帮忙指出我这边存在的错处。

    0
    评论操作 固定链接
  • DJI Developer Support
    这边没有412的板子,用的是STM32F407和F429的板子,按照您的描述,分别试了113 byte和295byte,发送数据没有复现到异常。方便更换到407或429的板子开发或测试一下吗? ![](https://djisdksupport.zendesk.com/attachments/token/jkDdncvNOSviAkrlCrmepoKNp/?name=image.png) ![](https://djisdksupport.zendesk.com/attachments/token/PA8fZHgFdJmupR6RDQunuFz5F/?name=image.png)
    0
    评论操作 固定链接

请先登录再写评论。