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.

[参考译文] TIDM-TM4C129XS2E:EK-TM4C1294XL

Guru**** 1109750 points
Other Parts Discussed in Thread: TM4C1294NCPDT, UNIFLASH, EK-TM4C1294XL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/588681/tidm-tm4c129xs2e-ek-tm4c1294xl

器件型号:TIDM-TM4C129XS2E
主题中讨论的其他器件:TM4C1294NCPDTUNIFLASHEK-TM4C1294XL

《在高性能微控制器上构建基于 RTOS 的可配置串行转以太网转换器设计指南》与文档(TIDU951、2015年4月)中所述的完全相同、并收到以下错误:

"C:/ti/TivaWare_C_Series-2.1.4.178/third_party/FreeRTOS/Source/portable/CCS/ARM_CM4F/portmacro.h "、第144行:错误#18:预期值为")"
"C:/ti/TivaWare_C_Series-2.1.4.178/third_party/FreeRTOS/Source/portable/CCS/ARM_CM4F/portmacro.h "、第144行:错误#18:预期值为")"

在编译"./config.c"时检测到2个错误。 (以及许多其他错误)

这一行代码。

#if (configMAX_Priorities > 32)
只有当 CONFIGMAX_Priorities 小于或等于32时、才能将#ERROR CONFIGUSE_PORT_Optimized 任务选择设置为1。 由于共享优先级的任务将会分时片、因此系统需要超过10到15个不同优先级的情况非常罕见。
#endif

请提供指导。

谢谢你。

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

    我修改了宏以删除括号。  仍然不确定为什么括号应该出现错误(编译器问题?  我正在使用 Code Composer)

    我注意到两个头文件之间存在相互依存关系、但这不是错误的原因。

    纠正此错误后、将暴露其他错误。  我将逐一完成这些工作。  完成后、我将提供一个列表。

    此致、

    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    另一份串口转以太网应用手册 www.ti.com/.../spma072.pdf 中提供了软件示例作为配套资料的一部分。 我还会将您的帖子分配给编写应用手册的 SME、以防您仍遇到错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Charles。

    我已成功修复了问题。

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

    您好!

    我们计划使用串口转以太网示例作为我们为 TM4C1294NCPDT 开发的应用的基础。  我注意到正在从 USER_REG0和 USER_REG1检索 MAC 地址。  是否所有 TM4C1294NCPDT 器件都随附了存储在这些寄存器中的 MAC 地址?  如果没有、是否可以使用编程到这两个寄存器中的 MAC 地址来对它们进行排序?

    谢谢、

    Brian

    LG 创新

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已开始进一步讨论。
    尊敬的、
    Brian McGinley
    LG 创新。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    LaunchPad 将预编程 MAC 地址、该地址从分配给 TI 的 MAC 地址池中分配。 发货给客户的新器件在 USER_REG0/1中没有 MAC 地址。 MAC 地址必须来自分配给您的组织/公司的 MAC 地址池。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复 Charles。

    您是否使用标准过程将 MAC 地址编程到 USER_REG0/1? 我想把它纳入我们的进程。

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

    您好 Brian、

     我希望 这篇文章 能帮助回答您的问题。 请注意、您还可以使用 LM 闪存编程器或 Uniflash 工具对 MAC 地址进行编程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Charles。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、
    很抱歉、您很快又麻烦了。 但是、这些器件是否总是随外设库一起提供并烧录到 ROM 中?
    谢谢、
    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    是的、外设库被刻录到 ROM 中。 但请注意、某些基于 ROM 的 API 已被弃用。 调用函数时请使用例如 map_xyz() API。 如果支持基于 ROM 的 API,它将自动解析为使用 ROM_xyz();如果不再支持相应的 ROM 版本,它将自动解析为使用基于闪存的 xyz()。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复 Charles。

    在购买芯片时是否提供了最新版本的 rom.h 和 rom_map.h? 我希望确保不使用过时的头文件。

    此致、
    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    根据最新的 TivaWare 2.1.4.178版本、rom.h 和 rom_map.h 是最新版本。 如果您使用的是最新版本、则可以正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Charles。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 CB1、

     我收到了您的电子邮件通知、询问有关此帖子的后续问题。 但是、我在论坛上似乎再也找不到它了。 无论如何、我将再次在这里发布您的问题。  以下是您编写的内容。

    蔡国荣

    根据最新的 TivaWare 2.1.4.178版本、rom.h 和 rom_map.h 是最新版本。

    虽然这可能是真的-我相信海报询问(或打算询问) 嵌入在 MCU ROM 中的 API 代码的"货币"。

    我不认为 MCU 的 ROM 在任何 MCU 制造商处都可以"跟上"基于(更有效)闪存的函数的变化!

    当海报向 ROM (不可避免)发出的(过去) API 代码-不是最新的!

    作为外部人员-但不会超过"半巨型"设计和销售管理。 经验-我认为我的陈述是正确的。   您是否愿意进行确认?   谢谢你。

    您的理解是正确的。 每次发布新的 TivaWare 版本时、ROM 都不会更新。 ROM 更新将意味着硅的另一个旋转、即使涉及的粒子(掩膜)可能只是一层(接触层)、但成本为$和制造提前期。  

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

    我有另一个问题。 TivaWare 库中是否有用于将浮点数转换为字符串的函数? 我无法找到它。

    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    我们有一个名为 usprintf()的 sprintf()的简化版本。 请在 ustdlib.c 中查看它,但是,usprintf()不处理浮点。 您需要使用 sprintf(),但要确保为它分配足够的栈。

    另请查看此帖子。
    e2e.ti.com/.../199796
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答 Charles。

    您在回复中指出的另一个帖子
    e2e.ti.com/.../199796
    参考工具链的工具链和工具链的实施手册。 我正在使用 TI 的 Code Composer Studio。 我假设这是使用 C:\ti\ccsv7\tools\compiler\ti-cgt-arm_16.9.3.LTS 作为编译器。

    我是否可以假设编译器的手册如下?
    downloads.ti.com/.../
    它将版本列出为 v17.3.0.STS

    谢谢、
    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    您参考的手册是最新版本。 v17.3.0 deontes 2017年3月版。 您目前使用的版本稍旧、为2016年9月。 但从手动的角度来看、这两者都很好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    我使用的是应用报告 SPMA072中提供的串口转以太网示例(Enet_s2E)。  我在 EK-TM4C1294XL 评估板上运行它。

    TI 是否实现了使用 UDP 数据报而非 Telnet (TCP/IP)的串行转以太网应用?  

    如果答案是否定的、TI 是否有人对本示例的源代码足够熟悉、可以指导我修改源代码以使其使用 UDP?

    谢谢、

    Brian

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

    您好 Brian、

     否、我们没有 S2E 示例的 UDP 实现。

     下面的帖子建议使用 utils 文件夹下的 locator 实用程序。 定位器在 UDP 中实现。

     

    您还可以在 TI-RTOS 中找到一些 UDP 示例。 请参见下面的。 请注意、这些示例不基于 LWiP、而是基于 TI 的 NDK。

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

    您好!

    我正在查看串行转以太网转换器示例的代码。  我们的项目是以这为基础的。

    我注意到 GPIO 端口基址的定义与 TM4C1294NCPDT 数据表不匹配。

    我已检查勘误表、但未看到任何此差异的迹象。

    我是否缺少一些转换步骤?  数据表中的值是否不正确?

    hw_memmap.h

    #define GPIO_Porta_base 0x4000// GPIO 端口 A
    #define GPIO_PORTB_BASE 0x40005000 // GPIO 端口 B
    #define GPIO_PORTC_BASE 0x40006000 // GPIO 端口 C
    #define GPIO_PORTD_base 0x40007000 // GPIO 端口 D

    数据表

    GPIO 端口 A (AHB):0x4005.8000
    GPIO 端口 B (AHB):0x4005.9000
    GPIO 端口 C (AHB):0x4005.A000
    GPIO 端口 D (AHB):0x4005.B000

    谢谢、

    Brian

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

    这是紧急情况。

    是否有人可以提供有关如何从串行转以太网转换器示例中删除 Web 服务的指导? 我们迫切需要将此应用程序剥离并进行修改以用于相关用途。

    谢谢、
    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    我会将您的问题传递给 S2E 专家。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、
    我没有看到专家的答复。 我错过了吗?
    此致、
    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    很抱歉、我目前已不上班两周。 我将再次向 S2E 专家发送消息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    除了从 S2E 示例中删除 Web 服务器及其使用的所有额外内存的指导之外、您能否请专家提供一些关于设置系统以读取9个单独的单端 A/D 输入的指导?  我有一些想法、但可以使用指南确保正确解释外设库 API。

    谢谢、

    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉。 问题尚未完全解决。 请参阅上一帖子。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、

    对于9个 ADC 输入、您可以同时设置 SS3 (用于1个采样)和 SS0 (用于8个采样)序列发生器。 您可能需要考虑为 SS3序列发生器提供比 SS0更高的优先级。 TivaWare 库中包含一些 ADC 示例。 单端示例使用 SS3序列发生器。 您可以扩展该示例以包括 SS0、总共9个 ADC 输入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Charles。

    示例在配置序列步骤时设置 ADC_CTL_IE 选项。 由于它们仅显示单个测量值、然后仅显示忙等待中断状态更改、因此我不清楚此选项的用途。

    是否应仅为序列中的最后一步进行设置?
    该位置位是否需要提供中断处理程序、或者仅当使用 ADCIntEnable 启用 ADC 中断时才需要中断处理程序?

    最后、是否同时捕获和转换 SS0序列的8个采样、或者它们是一个接一个地完成的? 完整的 SS0序列需要多长时间才能完成?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ADC 时钟是否具有默认配置? 需要显式设置它吗? 如果它有默认值、它们是什么?

    再次感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    您认为 ADC_CTL_IE 在示例上下文中没有作用是正确的、因为它会轮询状态标志。 本示例中可能已将其删除。 但是、如果您打算使用中断方法、则需要启用中断以及 ADCIntEnable。 您将需要为其提供中断模式处理程序。 您可以将处理程序添加到在 startup_ccs.c 中定义的矢量中

    如果您使用 SS0、则8个输入将逐个转换。 每个通道转换的时间量由 ADC 时钟频率以及采样保持时间决定。 数据表中显示为 Fconv = 1 /(nsh + 12)* Tadc)、其中 nsh 是采样保持时间、12是转换位数、Tadc 是 ADC 时钟频率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    默认情况下、PIOSC (16MHz)用作提供接近1Msps 的 ADC 时钟源。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    感谢您迄今提供的所有支持。  它非常有帮助。

    我们已经收到了松散地基于 EK-TM4C1294XL 评估板的定制硬件。  我们认为、我们可能已经在闪存中放置了一个程序、该程序会干扰 XDS200调试探针。  我查看了一些其他提到我们问题的文章、它们都倾向于建议擦除闪存。

    如果我无法使用 JTAG 连接到电路板、如何擦除闪存?

    顺便说一下、我们遇到的错误是:

    1) 连接到目标时出错:(错误- 1063@0x0)无法识别设备 ID ...

    2) 连接到目标时出错:(错误- 1170@0x0)无法访问 DAP。 …

    谢谢、

    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    您是否尝试使用 Uniflash 擦除闪存?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。  我们收到了错误1063消息。

    我们还同时探讨了可能的 HDW 问题。

    但是、我有兴趣了解如何使用其他文章中提到的 DAP 执行闪存擦除。  我没有任何 GEL 脚本或任何名为 Factory Reset 的脚本。

    谢谢。

    这是其中一个帖子。

    e2e.ti.com/.../1471606

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    您提到的是 MSP 器件、该脚本不能用于 TM4C。 这是两种不同的 CPU 架构。

    请按照本应用手册中的第5.3.2节来解锁 MCU。
    www.ti.com/.../spma075.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Charles。 我感谢您提到应用程序 注释。
    我认为我们发现了一个硬件问题。 我们让它现在工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    自定义硬件出现另一个问题。 简单测试切换 LED。 发现我用于 GPIO 端口基址的定义无效。 找到了基址的另一个定义、并且能够从调试环境中切换 LED。 我知道一个地址用于 APB 访问、另一个地址用于 AHB 访问。 AHB 就是那个工作的人。

    为什么 APB 不起作用?
    它们不应该同时起作用? 我在 TI 示例代码中看到两者的用法。
    一个是优于另一个? 只要在任何地方使用 AHB、是否安全?

    非常感谢您对此提供的一些指导。 我们正在广泛使用 GPIO、并且确实需要快速启动和运行 GPIO。

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

    hw_memmap.h

    #define GPIO_Porta_base 0x4000// GPIO 端口 A
    #define GPIO_PORTB_BASE 0x40005000 // GPIO 端口 B
    #define GPIO_PORTC_BASE 0x40006000 // GPIO 端口 C
    #define GPIO_PORTD_base 0x40007000 // GPIO 端口 D



    #define GPIO_PORta_AHB_BASE 0x40058000 // GPIO 端口 A (高速)
    #define GPIO_PORTB_AHB_BASE 0x40059000 // GPIO 端口 B (高速)
    #define GPIO_PORTC_AHB_BASE 0x4005A000 // GPIO 端口 C (高速)
    #define GPIO_PORTD_AHB_BASE 0x4005B000 // GPIO 端口 D (高速)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    请勿再使用 APB。 APB 旨在提供与较早一代 MCU 的兼容性。 我们尝试通过删除 GPIOHBCTL 寄存器来弃用数据表中的 APB、该寄存器可通过编程选择 APB 或 AHB。 我想、这种做法不够清晰、不足以误导用户、使他们认为 APB 仍然可行。

    与 APB 相比、AHB 在访问 GPIO 数据方面更高效、因此使用 APB 没有优势。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Charles 的指导。

    我看到 GPIO.c 中的 GPIOPinConfigure()仍然引用 SYSCTL_GPIOHBCTL 来选择 APB 或 AHB。 在函数的 ROM 版本中是否更正了这一点?

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

    您好、Charles、

    我们正在尝试通过串行和以太网获取引导加载以正常工作。  关于不同的指南以及基于闪存与基于 ROM 的使用、我已经阅读了一些相互冲突的内容。  我们希望获得基于 ROM 的版本、并让其与 LM 闪存编程器配合使用。  您能提供一些指导吗?

    我们正处于紧张的时间安排之中、需要快速启动并运行。

    谢谢、

    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、
    基于 ROM 的引导加载仅限于 UART0、SSI0、I2C0和 USB。 如果需要使用其他外设实例或其他串行通信方式进行引导加载、则需要通过仿真器将引导加载程序加载到闪存中。