fI的软件运行在72 the的STM32F303上,有一些非常严密的控制回路,并且已经意识到我的回路运行得不够快。我需要将代码移植到速度更快的216 the STM32F765,但我发现F7系列不支持F3的SPL,只支持较新的HAL。HAL有一个较低层的驱动程序,但如果可以的话,我正在尝试节省几个月的重新编写软件的时间。有没有人知道有什么方法可以将代码移植到F7中,而不涉及几个月的编码?
发布于 2019-11-12 20:06:54
看起来你需要做一些工作。事实上,已经死了,对于这种用例,HAL似乎是的,非常不适合,因为你正在谈论严格的控制循环。
我的建议是切换到HAL,并使用您自己的功能来控制您使用的外围设备。这允许您仍然使用诸如UART_HandleTypeDef之类的typedefs,ST维护该类型定义并与HAL一起处理性能较差的事情。这还允许您快速添加新内容,并在以后进行优化。
同样重要的是:测试你的先入为主的,HAL可能会更慢,因为它更通用,我个人不建议在SPI外围设备上使用它。(我看到HAL在两次传输之间花费的时间超过了必要的时间。就像在三分之二的时间里,线路上的暂停而不是数据。),但是,你的需求是什么?可能HAL就足够了,如果是这样,那么您应该使用它。如果还不够,那么为您的平台实现一个更好、更优化的版本(F7),并针对HAL实现对其进行测试。
发布于 2019-11-13 18:34:46
我刚收到ST的消息--有一个SPL到CUBE LL的迁移指南:
SPL2LL CONVERTER DOCUMENTATION
显然还有一个从SPL到LL的转换工具:
如果有人使用过这些工具,请对这些工具的效率和移植简易性发表评论。
https://stackoverflow.com/questions/58802720
复制相似问题