Tri 2021/5/21组会报告

本周工作

  • 撰写毕业设计论文。

  • 在之前的PP控制板上移植STM32duino-FreeRTOS,但是有几个问题:

(1) 创建message handle任务,发送消息回复deserialize error,如下图所示。报错类型是NoMemery,调用Serial.println(getStr.c_str())看传递到deserializeJson(jsonDoc,getStr)的getStr参数,是正确的,如图中的[0,1,2,3,4,5]所示。 getMessage

(2) 创建message handle任务后无法debug,如下图所示。 cannotDebug

正常状态下控制台信息应该是: normalDebug1 normalDebug

两者不同在于前者少了.isr_vector,.fini_array等.elf文件中的信息。.pioinit:15:表示platformIO给系统初始化失败,初步怀疑与DynamicJsonDocument jsonDoc(500)有关。另外裸机系统也不存在这个问题,所以有可能与加入FreeRTOS组件后系统堆栈空间不足有关。

更新:另外发现使用的芯片STM32F103C8T6的板载Flash仅64KB,而Debug模式下编译出的代码量超出64KB约2344Bytes,无法调试可能因为.elf文件中的.rodata缺失一部分而无法完成初始化,使得初始化失败,调试终止。不调试时由于编译选项为release,代码量约41KB。

下周工作

  • 本周末继续写毕业论文,准备毕业答辩等事情。

  • PP控制板那边暂时不修改,因为目前版本虽然基于裸机,但是仍有很好的运行效果,不继续折腾了。移植FreeRTOS为写论文使用,后续会搜集资料看该问题出现的真正原因。

  • 采集卡相关:目前模块与FPGA间采用SPI通讯,需要先熟悉SPI协议的FPGA代码编写,否则无法读取数据。


本文章使用limfx的vscode插件快速发布