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.

[参考译文] CCS/TM4C129CNCPDT:编译器错误读取代码、并跳过行。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/718348/ccs-tm4c129cncpdt-compiler-wrong-read-the-code-and-jumps-through-lines

器件型号:TM4C129CNCPDT
主题中讨论的其他器件: TM4C129ENCPDTTM4C1294NCPDTEK-TM4C1294XL

工具/软件:Code Composer Studio


大家好、我们 为评估板 EK-TMC129EXl Rev A 编写了自己的固件、其中安装了 CPU TM4C129ENCPT13。 我使用了自己的.cmd 文件、我更改了、而不是自定义(tm4c129encpdt)。 该评估板工作良好。 当我使用此固件并在安装 CPU TM4C129CNCPDT 的其他主板上启动此固件时,我会遇到任何问题。  我更改了 CCS 设置中的 CPU 编号、编译器工作错误、读取代码行错误、跳过块代码。
这些问题是什么? 您能帮我说我必须检查哪些部分设置吗?

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

    您如何假设编译器读取的代码行不正确?

    关于跳过代码、根据编译器优化级别、可以看到这种行为、尤其是在能够设置断点时。 如果应用了编译器优化、并非所有代码行都可以在它们上发出断点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anton:

    请尝试按最优先的顺序解释您自己定制 PCB 的任何问题。 对于 TM4C129CNCPDT、您应该在 CCS 项目中真正选择 TM4C1294NCPDT。 必须针对 GPIO 端口等修改 CCS 工程。您的自定义 PCB 使用或整个工程会导致 m-any 问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    每次调试电路板时,我都会选择此 CPU 编号,这是我自己的电路板与 TM4C129CNCPDT CPU 一起使用的。 另一位男士、更改评估板的固件 boot_dem1、我想在自己的板上使用此固件。 1) 1)第一个问题编译器不会进入正确的周期块。 此外、此代码管理的 CPU 可通过 uart0获取命令、并导致引导加载程序模式、但在"realtime watch (实时观察)"中、CPU 显示其他值、与我发送的值不同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Anton、

    让我们稍微简化一下这个问题。

    引导加载程序可能很复杂、如果对正确编译和执行代码有疑问、这不是开始的地方。

    首先、您是否有任何可在自定义电路板上轻松测试的功能、而无需引导加载程序? 例如、使 LED 闪烁、通过 UART 向 UART 终端发送数据等。?

    如果是、请测试该功能、以便您确信问题不是编译器与您的电路板不兼容。

    从这里、我们可以解决您对引导加载程序所做的工作、并找出实现是否存在任何错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我已经检查了编译器、它是否正常。 编译器分步执行正确的行。 但我还有其他问题。 我使用 UART0并发送十六进制命令。 程序接收命令、使原因当我使用评估板(带 CPU TM4C129ENCPDT)时、它工作正常、程序运行某个过程、然后发送十六进制应答消息。 当我使用自己的器件(CPU TM4C129CNCPDT)时、程序不发送十六进制消息、它会发送一些符号、错误消息。 什么可以打破这一过程?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    诚然-英语证明是一种(最)难理解和掌握的语言。

    话虽如此- 报告的(之前)和

    • "编译器读取代码错误、并跳过行!"

    最新的:

    • "我已经检查了编译器、isit (它是)可以。  编译器分步执行正确的行。"

    您的帮助者(正确的)可以问-哪项陈述证明(现在)正确?    和... 这份(最新)报告"程序不发送十六进制消息"是否也可能(大幅变化)?

    如此突然-报告发生了如此巨大的变化(编译器失败-然后正常工作!) -减去(任何)解释-让您的帮助者产生很大的疑问。

    至您的(最新)问题"这一过程有哪些可能会中断?"  您是否确认:

    • 您的 MCU 和(未识别)远程设备之间的波特率是否正确匹配?
    • 不需要的符号可能表示 ms (bit)已设置- ASCII 通常仅使用(较低) 7位。   (请注意、不相等的波特率-也可能导致此情况)
    • 连同波特率-是否已检查(并确认)所有其它“串行协议元素”以匹配?   (即数据位、奇偶校验、停止位和硬件"握手"(即流控))

    您的系统测试/验证-和报告-加快并简化您的"成功之路"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    UART0如何连接到计算机串行控制台或仅使用 CCS 控制台? 如果是计算机、应引线什么硬件、请连接该部件的原理图! 确保 MOSC 振荡适当的频率或 PIOSC 我们如何知道您对硬件所做的操作。 我们需要更多信息来帮助您、但 Ralph 建议您修改测试代码以匹配定制 PCB、除非布局与 EK-TM4C1294XL 完全相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    UART0连接到蓝牙发送器、我使用串行控制台。 我将检查波特率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请注意-我建议检查波特率、还指示"检查重要(其他)协议设置"-(也必须)匹配!

    为了更好地说明:

    同样、您必须确保  上面列出的"所有这5个设置"都在您的 MCU 和远程设备之间"匹配"。

    流控制 "不可能" 创建(不需要的)符号-但可能会"阻碍(甚至)防止"串行数据传输。  (流控制可能假定硬件(CTS/RTS)或软件(Xon/Xoff)-为简单起见(在开发的这个阶段)、最好指定"无/关闭"。)

    必须遵循 kiss -以实现最佳和最快的成功。   任何使用引导加载程序都会增加 任务的复杂性(以及调试时间/工作量)!  

    我本人和其他人强烈认为(任何)引导加载尝试应推迟。  (直到您确认程序运行正常为止!)

    JTAG 是您的朋友 (当然/扎实-并且轻松!)   引导加载程序最常证明是延迟和混乱的因素-必须询问...  这意味着什么?  (为什么引导加载程序被视为重要?)