This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28069:使用 TMS320F28069上的 SYS/BIOS 来引入外设(SPI、UART)。

Guru**** 2564410 points
Other Parts Discussed in Thread: TMS320F28069, SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/849090/tms320f28069-bringing-up-peripherals-spi-uart-using-sys-bios-on-tms320f28069

器件型号:TMS320F28069
Thread 中讨论的其他器件: SYSBIOS

尊敬的马阿姆爵士,

         我想将电机驱动器从 STM 转移到 TMS320F28069。 出于 POC 目的、我购买了 DRV8312-69M-KIT、并能够运行裸机代码来运行电机。 现在、我想使用 SYS/BIOS 运行相同的代码。 为此,我需要启动 SPI、UART、PWM 等外设 但 TI-RTOS 驱动程序库不适用于 TMS320F28069。

那么、我如何在 SYS/BIOS 中启动控制器呢?  

需要执行哪些步骤?  

如果一个外设有任何示例、请分享。

此外、如果有任何参考文档/链接/博客/示例、请分享。

此致、

Digvijay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的外设代码与非 SysBIOS 项目中的代码看起来大致相同。 您只需要进行一些调整、例如更改中断以使用 SysBIOS Hwi 模块或添加之前在 while 循环中等待设置标志的信标或门函数等。

    提供培训材料。 此帖子中有一些建议 、SYSBIOS 包含内核功能示例。 您还可以查看外设驱动程序的实现、这些驱动程序可用于获取有关如何组织自己的想法。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的马阿姆爵士,

          通过遵循上述链接、我尝试将 SPI 裸机代码添加到 SYS/BIOS 中。 但它为外设寄存器提供了错误。  

          那么、我需要修改.cmd 文件吗?  

    我也知道 SYS/BIOS 的概念,就像我在 Tiva C 上所做的那样。我唯一想理解的是,在寄存器级别上如何工作??

    我需要做什么来启用中断(UART RX)?   

    此致、

    Digvijay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以尝试帮助您解决您看到的构建错误。 您是否向寄存器头文件所在的 common/include 和 headers/include 目录添加了 include 路径? 您是否将 F2806x_GlobalVariableDefs.c 添加到了您的项目中? 如果您已经执行了该操作、但仍遇到错误、您能告诉我具体的错误消息吗?

    可能需要进行一些.cmd 文件更改、是的。 首先需要将 F2806X_Headers_nonBIOS.cmd 交换为 F2806X_Headers_BIOS.cmd。 在我的脑海中、我不知道您是否需要对其他.cmd 文件进行其他修改。 如果遇到链接器错误、则是的。

    如果你以前使用过 Tiva C SYS/BIOS、你可能有设置 Hwi 的经验-对于 F2806x、它应该非常相似。 我们有一个 wiki 页面、其中包含一些可能有所帮助的信息。

    http://processors.wiki.ti.com/index.php/SYS/BIOS_for_the_28x#Handling_28x_Interrupts_with_SYS.2FBIOS

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的马阿姆爵士,

          感谢您的快速回复。

          我已添加您上面提到的所有文件。 我遇到链接器错误,但我通过修改.cmd 文件来解决这些错误。 现在、我能够构建项目并下载二进制文件。

          但程序未正常运行。 它不打印 system_printf 调用。 此外、它会进入一些中断并卡在那里。 我非常确信,我错误地映射了内存。  

           由于我不在办公室,我无法进一步试验。 tommorow、我将共享我的.cmd 文件和 b车 程序的快照。  

           同时、如果您发现任何有用的(.cmd for SPI)、请共享。

            再次感谢您的回复。

    此致、

    Digvijay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的马阿姆爵士,

             请尽快回复。我已附上已更改的.cmd 文件。 我仍然没有收到 System_printf()调用。 那么、您能否指出.CMD 文件中的错误。

    e2e.ti.com/.../F2806x_5F00_Headers_5F00_BIOS.txt

    此致、

    Digvijay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在构建项目时、您是否收到任何警告?

    System_printf()使用哪种模式? 如果您使用的是 SysMin,请记住它只是缓冲消息,直到执行 System_flush()。 您可以在此处查看更多信息:

    除了 System_printf 之外、应用程序是否正常运行? 如果您单步执行代码或放置断点、一切似乎都可以吗?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

            [引用 USER="Whitney Dewey"]System_printfs 中的内容、应用程序是否正常运行? 如果您单步执行代码或设置断点、一切似乎都正常吗?

          否、代码无法正常工作。 它会进入一些随机中断和存根。

    此致、

    Digvijay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    何时发生中断? 是否能够运行到 main()? 您是否能够运行至 BIOS_start? 如果您单步执行代码、您能找到导致中断的行吗?

    这是什么中断? 非法指令中断?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../spi_5F00_ti_5F00_forum.zip

    您好!

        我已附加了我当前正在处理的项目。 我已通过对与中断相关的函数进行注释来删除中断错误。 现在、程序不会进入中断。 我仍然没有收到系统 printf 消息。 此外、我无法在调试模式下查看变量。 它表示无法识别变量。 此外、SPI 回送无法正常工作、您能不能调试项目并指出错误?  

    谢谢、

    Digvijay。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我无法为您调试代码、但我可以尝试帮助指导您自己的调试。 你能回答我在上一篇帖子中的问题吗--你运行应用程序时是否能够到达 BIOS_start()? 如果您在任务中放置一个断点、您是否遇到了该断点?

    如果您查看 ROV、您是否看到任何错误、例如检测到堆栈溢出?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我能够到达 BIOS_start(),我能够通过输入断点来完成任务。 ROV 中没有堆栈溢出。 您能帮我解决这个问题吗?

    谢谢、

    Digvijay。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我浏览过您的应用、发现了一些可能会有所不同的东西。 首先、您打开了优化-因此、您说过未在表达 式窗口中显示的变量可能会得到优化。 我猜测 RDATA 尤其会成为一个问题、因为您实际上不会对其设置值执行任何操作。 将其声明为易失性、以便在"Expressions"窗口中查看。

    关于 System_printf(),我看到的唯一 System_flush()位于 taskFxn()的末尾,但由于它位于 for (;)循环之后,它永远不会运行。 如果您将清除放入一些实际执行的代码中、您应该会看到消息。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ma'am:

         感谢你的答复。 我将尝试您建议的解决方案。  另外,.cmd 文件中没有更正,对吧? 因为这是我最大的担心。

    此致、

    Digvijay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不、我没有注意到与.cmd 文件相关的任何问题。

    惠特尼