Thread 中讨论的其他器件: controlSUITE、 C2000WARE
我要将一个非常旧的 TMS320F2812项目从 CCS 2移植到 CCS 10、然后我遇到了一个小问题。 该产品包含两个单独的应用程序映像、它们通过固定位置跳转表进行连接。
较小的映像是一个 POST 和引导加载程序、最初与 rts2800_ml.lib 和 Flash2812_API_V100.lib 链接、然后是 V210替代产品。
更大的图像是执行运动、传感器和器件控制的应用。 它与 rts2800_ml.lib 和 IQmath.lib 链接。
我最初将 CCS 10中构建的映像与2003年和2005年的原始库链接在一起、几乎一切都正常。 我注意到的一个差异是使用%s 转换指定符调用标准库函数 sprintf()不起作用。 %s 的字符串没有出现,后面也没有任何其他参数。
最后、我发现、如果我使用 CCS 10附带的 rst2800_ml.lib 或等效的 libc.a、则缺少的输出重新出现。 这是一个足够简单的解决方案、尽管它让我感到困惑了一段时间。
但现在我还有另一个问题。 没有更新版本的2812闪存 API 或 IQmath 库。 我们必须使用2003年和2005年的原始版本、没有其他选择。 如果存在任何兼容性问题、我们可能会遇到什么问题?
到目前为止、闪存 API 库在链接到 CCS 10构建时能够完美地工作。 我已经对片上闪存进行了数十次擦除和重新编程、没有任何错误。 我们永远不会以不同的方式使用它、因此我不会担心这一点。
但 IQmath 库呢? 当前版本的 controlSUITE 具有32个 IQmath.h C 头和三个不同的库。 它们都不支持2812。
我实际上不理解 sprintf()问题的根本原因。 从两个不同版本的 SPRU514中可以看到、SPRU514是一个初始版本、从2001年8月开始没有版本字母、从2020年8月开始稍微更新了 SPRU514U、调用惯例的描述、即使是在可变参数函数上、也是一样的。 然而、它们显然不是。
因此、我需要知道我是否可以从2002年6月开始使用 IQmath 库的1.4b 版。 或至少我应该注意的内容。