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.

[参考译文] TMS320F28069M:刷写链接器 cmd 文件

Guru**** 2391325 points
Other Parts Discussed in Thread: TMS320F28069, C2000WARE, MOTORWARE, TMS320F28069M, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1211771/tms320f28069m-flash-linker-cmd-file

器件型号:TMS320F28069M
主题中讨论的其他器件:TMS320F28069C2000WAREMOTORWAREcontrolSUITE

您好!

参考"Faq] Flash -如何将应用程序从 RAM 配置修改为闪存配置?" -发表于约3年前。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/878674/faq-flash---how-to-modify-an-application-from-ram-configuration-to-flash-configuration

发帖者开头说:"以下内容适用于 TMS320F2838x、TMS320F2837x、TMS320F2807x、TMS320F28004x、TMS320F28002x、 《TMS320F28M35x、TMS320F28M36x》。

这篇文章中概述的步骤是否 也适用于 TMS320F28069?

如果没有、是否有 TMS320F28069的等效指南?

在任何情况下、我都停留在步骤1;我无法找到 闪存链接器 cmd 文件。

有人能帮忙吗?

谢谢。

Dave Reagan

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

    Dave、您好!

    有关 F2806x 器件、请参阅以下链接:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/758797/faq-f05-flash-how-do-i-convert-a-ram-based-project-to-a-flash-based-project

    对于链接器命令文件、请在 C2000Ware SDK 中查看该文件。

    c:/ti/c2000/C2000Ware_4_03_00_00/device_support/f2806x/common/cmd/F28069.cmd

    此致、Santosh

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

    感谢 Santosh! 我来看看这些。

    此致、

    Dave

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

    尊敬的 Santosh:

    我还有一个有点相关的问题。 我无法将 Memcopy.c 添加到我的项目中。 我已经尝试链接到它并进行复制。 我会收到一个弹出框、里面显示  

    "无法链接:Memcopy.c"我在将其他文件添加到项目时没有遇到问题。 为什么选择这一个?

    谢谢。

    Dave

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

    Dave、您好!

    该文件是来自 C2000Ware 还是您的自定义文件? 我们应该能够添加文件而不会出现任何问题? 添加链接照片时、是否可以共享屏幕截图?  

    此致、Santosh

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

    尊敬的 Santosh:

    文件来自 C:\ti\motorware\motorware_1_01_00_18\sw\modules\Memcopy\src

    屏幕截图如下:

    谢谢。

    Dave

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

    Dave、您好!

    我不知道该文件有什么特别之处。 该文件在物理上可在磁盘上使用、对吧? 它本身不是链接文件、对吗?

    我不熟悉 MotorWare SDK。 我认为它不再得到支持。 我将此主题转发给熟悉 MotorWare SDK 的工程师。

    此致、Santosh

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

    不受支持? 这是否意味着不支持 InstaSpin? TI 是否计划淘汰 InstaSpin?

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

    我认为这个文件没有什么特别之处。 它实际上在磁盘上可用、并且本身不是链接文件。 我无法链接到 Memcopy、无论我从哪里获取。 我几乎可以将其复制并粘贴到项目文件夹中、但 CCS 不会将其添加到项目中。 如果我将文件名更改为 memoCopy.c 或 memoryCopy.c、则会添加文件、但这最终会导致其他链接器问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不受支持? 这是否意味着不支持 InstaSpin? TI 是否计划淘汰 InstaSpin?

    这不是真的。 InstaSPIN 将 继续受 C2000支持。  

    我无法链接到 Memcopy,无论我从何处获取它。

    您可以参考 lab10a 并使用"Flash"构建配置、方法是右键点击实验项目、然后选择"Build Configurations"->"Set Active"->"Flash"。

    如果在 motorWare 中使用 InstaSPIN-FOC 处理电机控制、可以将本示例实验用作启动项目。

    BTW、只有 F28069F 或 F28069M 支持 InstaSPIN-FOC。

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

    谢谢 Yanming。

    他让我担心,说"我认为它不再得到支持。"

    感谢您引导我转到实验10a。 我来看看。

    此致、

    Dave

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

    您好、Yanming:

    我看了实验10a。 这似乎与从闪存运行无关。 我在实验练习中甚至找不到"闪存"这个词。

     正如标题所示、它更关心的是空间矢量过调制。

    您确定您是指实验10a 吗?

    谢谢。

    Dave

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

    尊敬的 Yanming & Santosh:

    我尝试了 "Build Configurations"->"Set Active"->"Flash"。 在没有插入调试器的情况下、我仍然没有可以作为独立单元运行固件的电路板。

    显然、2个引导模式引脚 GPIO37 (我正在使用的微型器件上的引脚70)和 GPIO34 (引脚68)必须连接高电平。 我没有在硬件中执行此操作。  默认情况下、是否可以在内部上拉这2个引脚? 否则、我将需要另一个电路板旋转。

    谢谢。

    Dave

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

    尊敬的 Yanming & Santosh:

    好的-根据 TMS320x2806x 的技术参考、看起来像是:"对于可用作 ePWM 输出引脚的引脚、内部上拉电阻器
    默认情况下禁用电阻器。 所有其它支持 GPIO 的引脚在默认情况下启用了上拉电阻。" 因此、GPIO34和 GPIO37默认都应连接高电平。 这是否意味着我不必使用电阻器将它们上拉? 或者、这种"默认值"可能生效太晚而无法作为引导模式引脚(即在上电复位后)正确评估?

    谢谢。

    Dave

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    、因此默认情况下、GPIO34和 GPIO37都应连接至高电平。 这是否意味着我不必使用电阻器将它们上拉? [/报价]

    最好为这两个引脚添加一个上拉电阻器、以将引导模式设置为"闪存"。 是的、这两个引脚上有一个内部上拉电阻、如果您让这两个引脚悬空而没有将任何信号连接到这两个引脚、则会将引导模式设置为"闪存模式"。

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

    您好、Yanming:

    我安装了上拉电阻器。 电路板现在从闪存启动(向正确方向迈出大步)、但我无法再与 LCD 进行通信。

    我怀疑可能需要将优化级别提升到2 (从调试器运行时、我一直使用0)。

    我正在使用 SCI (端口 B)与 LCD 通信。 从调试器运行时、此方法有效。

    有什么建议吗?

    谢谢。

    Dave

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

    以下是最新的。 它不能完全独立于调试器进行引导。

    如果我对器件进行编程、然后关闭 IDE、但让调试器(XDS110)继续插接、我可以切断电源、然后重新接通电源、电路板以默认 rpm 转速运转电机。 但是、它无法与 LCD 通信、因此我无法更改速度。 如果我移除调试器、电路板会继续使电机旋转。 如果我重新插入调试器、同样的事情-继续旋转电机、但不能与 LCD 通信。

    如果我断开主板的电源、拔下调试器、重新为主板供电、然后重新连接调试器、电机开始旋转、我可以通过 LCD 改变速度。 此时、如果拔下调试器、电路板不会丧失所有这些功能。

    如何将调试器插入电路板以允许其从闪存引导?

    为什么在上电后很长时间连接 XDS110就可以工作通信、而在上电时仅保持 XDS110被插入就不能工作?

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

    您使用的是自己的电路板还是 TI EM 套件?

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

    它是我自己的板。

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

    您好、Yanming:

    在我的电路板上:

    TMS、TDI、TDO 和 GPIO34通过3.3k 电阻器全部连接至高电平。

    TCK 通过一个3.3k 电阻连接至低电平。

    VREGENZn 直接接地。

    XRSn 通过一个2.2k 电阻被拉至高电平。

    TRSTn 有一个1k 上拉电阻器和一个2.7k 下拉电阻器。

    这看起来是合理的设置吗? 或者其中一个或多个是否可能是错误的?

    在 F28069U 控制器卡的 TI 原理图上:

    TMS、TCK 和 TDI 显然未在任一方向拉动。

    TDO 和 GPIO34通过 两个820 Ω 电阻器拉高(在引导模式下)、通过3.3k Ω 电阻器拉低。

    VREGENZn 直接接地。

    XRSn 通过一个2.2k 电阻被拉至高电平。

    TRSTn  通过2.2k 下拉电阻器拉至低电平。

    我应该只是复制所有这些内容、或者我是否可以只更改我的1个或2个上拉/下拉电阻?

    谢谢。

    Dave

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

    好的-我曾尝试针对上述上拉/下拉电阻准确地仿真 F28069U 控制器卡。

    电机旋转、但仅在默认设置为1、000rpm 时运转。 我无法通过 LCD 进行任何更改。

    如果我在 TRSTn 处恢复上拉电阻、那么我可以通过 LCD 与电路板通信、但只有在电路板在没有调试器的情况下启动时、才需要稍后插入调试器(XDS110)。 所以、它似乎希望看到通过插入调试器来提供的一些转换。

    有什么想法、可能会发生什么情况?

    谢谢。

    Dave

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

    这里可能会出什么问题? 为什么从闪存运行执行代码的某些部分、而不执行代码的其他部分?

    它使电机旋转、但不会通过 UART 确认传入的消息。

    我缺少什么?

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

    Dave、

    您能否评论一下您正在用于 C2000的时钟源?  您是使用内部0引脚振荡器、还是切换到外部 X-tal/时钟源?  

    我想知道在插入调试器时看到的内容是否与 TCK 信号与 TRSTn 有关。  TRSTn 预计在正常运行期间保持低电平、我不会期望那个引脚上的转换来校正事情。  

    另一方面、TCK 使用同一 GPIO38作为 XCLKIN 选项。  如果您使用来自 GPIO38的 XCLKIN、此处可能会出现一些时钟问题、JTAG 在插入时会进行修复。

    或者、如果 CCS 已连接/调试、所有操作会以代码方式正常运行、只有在我们尝试独立运行时您发现了问题?  

    我们支持仿真引导模式、通过存储器中的 EMU_BOOT/EMU_KEY 位置来模拟独立模式、在这里可能会很有用、即在连接 CSS 的情况下从闪存仿真引导、并查看是否仍然正常工作。  如果您确认在进行主动调试(不只是插入、而是从 CCS 运行内容)时、这可能是继续进行调试的最佳位置。

    此致!

    Matthew

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

    Matthew、您好!

    我正在使用 连接到 TMS320F28069M 上 X1和 X2 (分别连接到引脚60和59)的20MHz 晶体振荡器。 这在内部提升到一个90MHz 时钟。 GPIO38目前只被用于 TCK。

    是的、当调试器被插入、并且 CCS 控制它时、一切正常运行。 这些问题仅在尝试独立运行时才存在。 奇怪的是、当存在 TRSTn 的上拉电阻器时、只要您启动它、然后插入调试器、它也可以在没有 CCS 的情况下正常工作。

    如何使用  EMU_BOOT/EMU_KEY? 是否有指导我的文档或教程?

    感谢你的帮助。

    此致、

    Dave

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

    Matthew、您好!

    查看技术参考手册后:

    EMU_KEY 设置为0x55AA、 EMU_BMODE 设置为0x0003。 这会 将引导模式配置为 GET_BOOT、这意味着从 OTP_KEY/OTP_BMODE 获取模式。

    OTP_KEY (在地址0x3D7BFB 上)被设置为0xFFFF、我不 知道如何解释。

    手册中显示"如果 OTP_KEY == 0x005A、那么检查 OTP_BMODE 以获得启动模式。" 但不  讨论 OTP_KEY 的其他值。

    即使 OTP_KEY 等于5A、列出的引导模式都不意味着存在"仿真闪存"模式。 它看起来是 实际值 闪存引导模式。 (注:我尝试将 OTP_KEY 更改为005A、但不允许从存储器浏览器中对其进行编辑。)

    我感觉这就是我一直在做的事情、每次使用 CCS 的时候、我都要做的、同时为闪存引导设置所有设置。

    那么、假设是这种情况、我可以从通过 CCS 运行中收集哪些信息(使用它时一切都按预期运行)?

    您能给我一些指导吗?

    谢谢。

    Dave

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

    Dave、

    "对不起,我不小心给弄丢了。"

    我认为 CCS 的某些自动加载功能可能会对我们"有所帮助"、这些功能对调试很有用、但对于独立复制则不是很有用。

    CCS 中的"scripts"菜单项目中有一个针对 emu_boot 至闪存的配置、这将设置 EMUBOOT 和 KEY。

    现在、我们需要在程序加载时禁用自动转到 main、如果转到"Tools->Debugger Options->Auto-load/run"、会在下面突出显示黄色框。  您需要取消选中我以红色突出显示的运行至主选项。

    现在、在您加载代码之后、您需要执行"Reset"、它将带我们到达 BROM 起始地址。  由于调试器已连接、我们选择了闪存 emu 引导、因此应模拟独立条件。  一旦我们"运行"、我们应该会看到您针对 LCD 未响应等情况所做的同样的"不良"行为  此时、我们可以停止代码以查看其位置、然后从此处返回。  您可以在 main 等处设置 BP、以便尝试跟踪出错的地方。

    如果我们没有看到坏的行为,我将不得不重新思考问题可能是什么,因为我们应该是完全相同的独立模式。

    此致!

    Matthew

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

    Matthew、您好!

    我按照您的指示、从(虚拟)闪存运行可调试的系统!

    它的问题与闪存版本相同、我可以放入断点。

    我现在应该能够跟踪它。 非常感谢您的帮助。

    此致、

    Dave

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

    Matthew、您好!

    我对这种情况的根本原因仍然没有更明智的看法。

    能够在从闪存运行时进行调试会有所帮助、但出于某种原因它已经停止工作。 不管怎样、我仍然没有锁定微控制器不响应传送到其 UART 的消息的原因。 我正在使用 SCIB、波特率为19.2k。  

    在主 ISR 中、我有以下代码:

    if (sci_get_rxrdy_flag_il (halHandle->sciBHandle)!= 0)
    {...

    }

    并且根据 Rx 就绪标志的状态完成所有 SCIB 接收处理。

    我在 闪存仿真模式下使用调试器运行固件、而不使用调试器运行固件。

    在 闪存仿真期间、显然当从闪存独立运行时、Rx 从未准备就绪。 以传统方式使用调试器时、它会确认和处理来自 LCD 的大部分传输。

    我比较了在两种模式下运行的寄存器值(使用闪存仿真和不使用闪存仿真进行调试)、我能够辨别的唯一区别是、当通信时、SCICTL2的值为0x00C0 不会 工作、当它处于工作状态时、该值为0x00C1 位置 工作。 也就是说、当 RXBUKINTENA 位被置位时、它工作。

    嗯... 据我所知、我没有使用 Rx 中断。 无论我是否明确使用它、它都会触发-我不确定。 但是、我将从定时中断进行轮询以获取数据。

    幸运的是、您所描述的仿真闪存操作方法的使用时间足够长、使我能够进行寄存器比较。

    回到正常工作的那一刻、当我重置 CPU 时、很显然它刚好到达允许从闪存运行的代码的起始点、没有出现任何狂风、也没有显示消息指示它已经走到哪里。 现在、当我完成以下过程时:

    连接到目标、

    选择 EMU 引导模式选择脚本= EMU_BOOT_FLASH、

    然后取消选中在程序加载或重新启动时运行到符号"main"的复选框、

    然后复位 CPU、

    我在新选项卡上收到以下消息:

    我想它在工作时不会这样做。

    之后、当我单击"Run"图标时、固件的行为就像固件以传统的方式从调试器运行一样(即一切正常、通信正常等)。 我使用了闪存仿真、这两种方法都在昨天下午和今天上午正常工作。 我不知道发生了什么变化、如果有的话。 当然、我尚未更改代码。 不过、我可能无意中点击了某个东西。 我不知道。 我想可能会发生任何情况。

    谢谢。

    Dave

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

    哦、是的-您提到了"我认为 CCS 可能会"帮助"我们实现一些对调试很有用的自动加载功能、但对于复制独立功能则更是如此。" 是否有办法确定这些功能中的哪项是"有帮助"的、并可能 将它们以某种方式添加到闪存中?

    谢谢。

    Dave

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

    Dave、

    在您的第一个帖子中、您将显示"程序代码之外的地址"。  此地址位于引导 ROM 中、如果您转至 C:\ti\c2000\C2000Ware_4_03_00_00\libraries\boot_rom\f2806x\v1_1\ROM_sources\Release、则可以从那里看到的 release.out 加载符号。  这应该能让 CCS 显示代码中卡住的位置。

    我们所做的不同之处在于,CCS 在引导 ROM 中执行 C28x 初始化代码,然后强制跳转到 main()之前。  现在、我们依靠闪存启动流程本身来使我们进入 main、但我们会在某处陷入困境。  这就是我让您禁用的东西。

    如果您安装了 C2000Ware、我希望您导入以下位置的工程:C:\ti\c2000\C2000Ware_4_03_00_00\device_support\f2806x\examples\c28\flash_f28069

    此项目构建为从闪存/闪存引导中运行。  您会注意到、这里包含一个名为"code_start_branch"的.asm 文件、我还会查看一个.cmd 文件、以找到标记为"codestart"的部分。

    您能否看看该.asm 是否是您项目的一部分?  这将调用 c_int00函数,该函数会在从 BROM 调用闪存入口点时设置,然后再进入 main ()

    此致!

    Matthew

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

    Matthew、您好!

    我很抱歉我的无知,但我不知道如何与释放。从... ROM_SOURCES 你提到.. 第一个问题-如何从 release.out 加载符号? 如果我这样做、这如何显示我卡住的位置? 我是否在加载它的同时加载我正在努力工作的程序?

    我还尝试加载和运行你建议的 flash_28069示例项目、但我收到了一组错误消息。

    CodeStartBranch.asm 包含在我的项目中。 它确实会引用 c_int00函数几次。 但我不确定那里发生了什么...

    我应该将我的.asm 文件和与  flash_28069示例工程相关联的文件进行比较、以查看是否有任何错误?

    F28069M.cmd 中也存在如下一行:

    /*取消注释此行以仅包含非 BIOS 应用程序的文件*/
    -l F2806x_Headers_nonBIOS.cmd

    我按照指示取消了它的评论,但似乎无法通过通常的"开放声明"访问它。 我应该明确地在我的项目中包含这个文件、或者至少更新 Code Composer 中 Properties/C2000 Linker 下的文件搜索路径以包含 其存储的文件夹吗? 或者"-l"指令是否涉及这一问题?

    感谢你的帮助。

    此致、

    Dave

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

    Dave、

    对于 release.out、你可以在加载主代码之前或之后加载符号(下面的屏幕截图)。  由于它是 ROM/符号、因此不会覆盖代码中的任何内容;

    您能否附加或 C/C++您用于程序的.cmd 文件、以便我来查看一下?  我可以确认加载地址是否符合预期。  我很确定你为什么不能加载示例文件,如果你可以对该错误文本的尝试我也可以检查。

    您包含的额外.cmd 文件是我们头文件中使用的位字段的信息。  如果代码在仿真器上运行、则这可能不是问题。  我假设您使用的是 motorware?  这不同于我们的 controlSUITE、后者使用该链接器、前提是您运行的 motorware 具有驱动程序与标准 C2000Ware 版本中的位域。

    此致!

    Matthew

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

    Matthew、您好!

    我已经附加了 F28069M.cmd 文件。 必须添加".txt"扩展名。 您的网站不希望我附加".cmd"文件。

    以下是编译 FLASH-F28069项目时的错误屏幕截图:

    很高兴知道我不需要位域信息。 我使用的是 Motorware。

    谢谢。

    Dave

    e2e.ti.com/.../F28069M.cmd.txt

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

    Matthew、您好!

    我已经为 tms320x2806x_boot_rom_gold_release.out 加载了符号。

    首次加载代码时、将出现以下选项卡:

    一旦我加载符号、我就会看到以下内容:

    相同的位置,看起来像相同的汇编程序代码,但缺少标签"main():"。

    然后、当我尝试从闪存仿真引导时、

    复位时、收到以下消息:

    显然正在尝试启用看门狗(不确定我是否还想要……)、但在 C:\work\……中找不到源文件。 这是我的机器上不存在的文件夹。

    请告诉我你的想法。

    谢谢。

    Dave

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

    似乎我们在 ROM 库构建中有一个硬编码路径。  我将通过 E2E 朋友的请求私下与您联系、我们可能需要在论坛外咨询一下、看看我们是否可以更高效地为您提供帮助。  请通过对话框气泡在 E2E 窗口右上角查找通知。

    此致!

    Matthew

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

    听起来我们在某件事上!

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

    您好、Matt、

    我将项目放在  TI 驱动器中。 希望您已经答对了。

    谢谢。

    Dave

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

    是的、我明白了。  让您知道我能找出什么。

    此致!

    Matthew

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

    Dave、

    如果您可以使用 EMU_boot 重复此问题、如果您加载、复位、然后运行到 main、这是否起作用?  如果这可行、您能否为您提供有关代码失败位置的更多详细信息?

    我已经在我的 LaunchPad 上加载/运行等、然后我进入 main、然后继续运行。  我没有连接电机或 LCD 显示屏、因此我无法确认这是否是问题所在。  我看不出代码进入到杂草中、代码仍在运行、我看到它返回到您的主代码等

    我认为这不是未初始化的存储器问题;我在加载.out 之前清除了所有 RAM、我没有看到程序加载写入 RAM、这对于独立类型的项目非常重要。

    此致!

    Matthew

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

    Matthew、您好!

    很遗憾、我是 不会 能够使用 EMU_BOOT 重复该问题(电机运行、但无法通信)。 我唯一看到的情况是完全独立运行时。 除非"问题"是指在插入调试器且 CCS 控制内容时我无法独立仿真。 在这种情况下、我曾尝试使用 EMU_boot、然后再次完成整个仿真设置过程(加载程序、EMU_boot_flash、重置 CPU)、但将"Auto Run Options"设置为"Run to symbol "main"、并选中"On a program load or Restart"复选框。 程序按预期运行(电机旋转、系统响应 LCD 传达的电机转速变化)。 也就是说、它的运行方式与我  取消选中"在程序加载或重新启动时"时完全相同。

    当独立运行时、它似乎不会像我通常想象的那样进入杂草中、因为它继续使电机旋转。 但出于某种原因、它忽略 LCD 发送给它的串行消息。

    谢谢。

    Dave

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

    Dave、

    我误解了上一篇文章、除非这是硬件问题、即未正确驱动引导引脚、否则我们应该能够独立模拟/复制您看到的内容。  通过阅读文章、我认为我们已经检查了、因此应该不会有问题。

    最后要在 CCS 中尝试的操作是、当您连接到目标时、从顶部功能区单击"Tools"、然后选择"GEL Files"

    继续操作、像以前一样调用 EMU 引导模式、然后在上面操作的新对话框中、我希望您右键点击这里、然后"删除" GEL 文件。  这将删除任何其他"文件加载时"、"重置时"自动操作。

    然后重复之前的步骤、加载.out、复位、然后运行。  我们看到的是按预期工作、还是如您所见的那样失败?

    此致!
    Matthew

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

    一定是这么回事! 它以与独立运行相同的方式运行。

    谢谢。

    Dave

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

    Matthew、您好!

    嗯、我现在真的在修理。 我删除了 GEL 文件、并像以前一样运行代码(EMU_BOOT_FLASH、RESET、run……)。 我发现、如果 我将一个断点放置在正确的位置、然后从那里运行、我经常能得到电机控制板来接收来自 LCD 的通信。 在自由运行模式下、什么也不会发生。 出于某种原因(现在让我逃脱)、我决定停止该程序、然后重新加载/重新启动它。 现在、当我尝试再次运行时、它允许我连接并加载程序、但"恢复"按钮是灰色的。 没有可用的脚本、熟悉的工具消失了。 显然、唯一允许我做的是终止。 我已经尝试过、当我再次加载它时、我会得到相同的结果。 我甚至尝试了关闭 CCS、循环通电、然后重新开始-相同的事情。 会发生什么情况? 看起来一切都可能会出错…… 位置。

    谢谢。

    Dave

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

    Matthew、您好!

    好的-我删除了所有断点、所有内容看起来都恢复正常。 我是否只允许在该模式下像一个断点一样工作?

    谢谢。

    Dave

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

    Dave、

    由于代码位于闪存中、因此我们必须使用属于 MCU 的硬件断点。  其中只有2个单元、如果您正在"运行到 main"、将会使用其中一个。  但是、您可以在中断时选择性地添加/删除它们、以保持1空闲。

    这是一个好消息、我们可以重现。  BTW 中、GEL 文件位于以下位置:C:\ti\ccs1000\ccs\ccs_base\emulation\gel、前提是要重新加载它、或者更重要的是仔细查看它。  

    有一个东西在我身上跳出来: Unlock_csm()函数调用。  本质上、对于未锁频器件、您只需读取密码位置即可解锁内容。  如果您的代码从未执行此操作、则读取到安全空间的数据可能会返回0x0000 (可以进行函数调用)。

    OnReset(int nErrorCode)
    {
        if (GEL_IsInRealtimeMode())   /* If in real-time-mode */
        {
        }
        else    /* Put device in C28x mode */
        {
             C28x_Mode();
        }
        Unlock_CSM();
        Device_Cal();
        CLA_Clock_Enable();             /* Enable CLA clock - allows to debugger to set CLA breakpoints after reset */
        
    //  EMU_BOOT_SARAM();               /* Set EMU Boot Variables - Boot to SARAM */
    //  EMU_BOOT_FLASH();               /* Set EMU Boot Variables - Boot to flash */
    }

    此致!

    Matthew

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

    谢谢 Matthew。 如果您愿意、我会告诉您事情是如何产生的。

    此致、

    Dave