您好!
我是一名研究生、正在攻读围绕 MSP430构建的激光系统控制板、该 MSP430用于多所大学的一个项目。 我负责管理固件和硬件、并正在研究以简便的方式将固件更新提供给其他大学的主板。 我发现、我们使用的 MSP430支持通过 USB 上的 BSL 进行固件更新、这非常适合我们的项目、因为我们已经通过 USB 将数据发送到主机、如果同一根线缆可用于固件更新、 这样就无需向每个小组分发调试器或收集电路板来更新它们。
在研究这一点时、我首先发现了 slaa452c、它介绍了如何实现该功能。 不幸的是、其他团队中的一些人使用的是 Mac 计算机、因此 Microsoft Visual Studio 方法与.NET 框架不起作用。 然后我发现这篇文章虽然似乎传达了这种方法不再被支持,并且一个 python 工具现在被支持,而这是跨平台(YAY)。
e2e.ti.com/.../msp430f5529-usb-firmware-update-using-ti-visual-studio-project
然后、我找到了"适用于 MSP430 MCU 的 Python 固件升级工具"文档、该文档位于主机到 MCU 软件的文件夹的 USB 开发人员包中。 在纸上,这似乎正是我们需要的,所以我开始考虑使用它。 我在 Mac 上工作,所以开始这样做,即使我可以访问 Windows 计算机,如果需要. 按照发行说明中的说明操作时、我首先意识到 TargetGUI.py 代码不会随 python3运行、因为打印的语法略有不同、并会引发一系列错误 (我相信还有很多其他的东西使它与 python3不兼容)。 然后我用 pyenv 把我的环境设置为 python2,仍然遇到问题。 似乎是什么是导入 hid 的 hid.py 文件(从 cython-hidapi 我想?)。 下面显示了我遇到的错误。
回溯(最近的调用最后):
文件"TargetGUI.py"、第67行、位于
导入 hid
文件"build/bdist.MacOSX-13.2-x86_64/egg/hid.py"、第7行、位于
在__bootstap__中,文件"build/bdist.MacOSX-13.2-x86_64/egg/hid.py",第6行
init hid 中的文件"hid.pyx",第418行
AttributeError:"module"对象没有属性"finalize"
我已经尝试了这与不同的 python 版本在这一点,我已经安装了 Cython 和 Cython-hidapi 与 pip,以及从他们的 git-hub repo 安装他们(通过干净的卸载和重新安装 python 在之间)。 我还尝试在程序崩溃的行中将 hid 更改为 hid_1、反之亦然、因为终端输出似乎指向这个问题、以及发行说明中的注释说明:
"在调用导入 hid 期间、msp430-python-tools 目录中的 Hid.py 文件名与 cython-hidapi 模块中的 hid.py 文件名冲突。 为了解决此冲突、hid.py 已重新命名为 hid_1.py、并且原始 hid.py 包含在 msp430-python-tools 目录中作为 hid_original.py。"
我还发现了以下帖子并按照他们做的操作、并设法使 python-msp430-tools 运行、但当我按照这些步骤操作时、仍然会收到错误。 我还尝试用从最新 GitHub Commit 中提取的工具替换包含 TI 发布的工具的文件夹、但仍然无法使其正常工作。 说到这一点,现在文档在 python 工具指南的第5.2.3节说:" Python 可用于 MacOS ,但升级程序还没有在 Mac 上测试。",但对我的测试,它实际上不能在 Mac 上工作。 我认为、除非 TI 能够成功地完成这项工作、否则在我的研究中是找不到的、否则将此部分内容留在中会产生误导。
e2e.ti.com/.../msp430f5659-msp430f5659-python-firmware-upgrader-setup-fails-again
然后、我搬到一台 Windows 计算机上以继续工作、并能够使用该文件夹中包含的提供预编译.exe 程序通过 USB 上载、这表明我们的硬件可以工作、并且电路板能够通过 USB 使用 BSL 进行编程。 然后、我尝试在 Windows 上自定义 GUI、并通过尝试使用 python 而不是.exe 来运行 GUI;当在所需的软件包(分发)中运行"python setup.py install"时、我遇到了一些错误。
总体而言、此 Python 固件更新工具的应用报告自2013年起、 我认为从那时起、软件生态系统已经发生了足够的变化、TI 的相关人员应该对其进行研究并更新该文档以及发行说明、以反映当前情况以及为了使其正常工作需要采取哪些步骤。 同时,如果任何人可以提供建议从这里去哪里,那将是很好的。 我们的电路板有5款运行不同固件的 MSP430、其最终目标是通过自定义 GUI 使其能够正确地为每个器件刷写正确的程序、从而消除其他团队的困惑。
谢谢。
-Max Thoburn