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.

[参考译文] TMS320F28388D:更新 SYS/BIOS 中 CM 的固件

Guru**** 2533870 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios

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

您好!

我的目标是更新基于 RTOS 的工程(SYS/BIOS)中 CM 的固件。 我在处理非 RTOS 项目时成功完成了这一操作。 我是说我使用硬编码应用程序更新了 CM 的固件、该应用程序已存储在 CM 存储器中。 但是、当我在 RTOS 项目中运行固件更新代码时、我可以在内存浏览器中看到应用程序已成功复制到闪存中。 但是、它不能跳转到复制应用程序的入口点地址。

更具体地说、在这个 RTOS 项目中、我有一个线程、我正在调用我的闪存编程函数来复制 CM 闪存中的应用。 然后、我调用以下 代码来跳转至已在闪存中复制的应用程序的应用程序入口点地址:

uint32_t entryAddress;
entryAddress = 0x002000001;
((((void (*)(void)entryAddress)();

当我在非 RTOS 工程中执行此操作时、此方案会正常工作、但在 RTOS 工程中、我遇到了上述问题。   

是否有人可以解释为什么会发生这种情况?我应该采取什么措施来解决这个问题?  


谢谢、
Alex

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

    当您尝试跳转到该地址时会发生什么情况? 某种故障、比如它尝试执行无效指令?

    您是否能够在 CCS 的"Disassembly"窗口中查看该地址并确认其包含有效代码?

    惠特尼

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

    您能否比较正在运行的非 BIOS 项目和出现故障的 SYS/BIOS 项目之间的.map 文件、并查看该入口点周围有哪些差异?

    惠特尼

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

    当我运行代码时、它会复制闪存上新固件的所有部分。 但是、当它到达以下代码时、程序会暂停。 在以下代码中、"entryAddres"变量是复制新固件的起始地址。 在闪存上复制固件后、程序应跳转到该地址。

    uint32_t entryAddress;
    entryAddress = 0x002000001;
    ((((void (*)(void)entryAddress)();

    下图是代码停止时的函数跟踪:

    下图是代码停止时控制台窗口的屏幕截图:

    下图是 代码停止时"Disassembly"窗口的屏幕截图:

    谢谢、

    Alex

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

    我比较了两个项目之间的.map 文件。 以下行是 SYS/BIOS 工程的.map 文件中的入口点:

    入口点符号:"_c_int00" 地址:002580a1

    以下行是 非 RTOS 工程的.map 文件中的入口点:

    入口点符号:"_c_int00_noargs" 地址:002103bd

    我将 SYS/BIOS 项目.map 文件中入口点地址的值从 002580a1更改为 002103bd。 但问题仍然存在。

    谢谢、

    Alex

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

    0x002000001是有效的闪存地址吗? 是否有额外的0或我缺少什么? 根据映射文件、实际位于那里的是什么?

    惠特尼

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

    哦、感谢您的关注。 是的、你是对的。 这是我写错的、很抱歉。 它实际上是 0x00200001、现在我正在重试。 我看到新固件已复制到闪存上、但仍然没有跳转到 0x00200001。 但是,这次我没有收到我上面提到的任何 abort()或故障。

    谢谢、

    Alex  

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

    当我在非 RTOS 项目中运行固件更新代码时、我可以在内存浏览器(位于地址 0x00200001)中看到以下图片:

    但是、当我在 RTOS 项目中运行固件更新代码时、我可以在内存浏览器(位于地址 0x00200001中)中看到以下图片:

    在这两种情况下、我都可以在 CCS 中看到"存储器分配"、它已填充新固件。 但是、新固件在非 RTOS 工程中成功运行、而在 RTOS 工程中未运行。

    我希望这种解释能更好地解决问题。

    谢谢、

    Alex

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

    感谢您共享内存浏览器。 我认为这看起来不错。 SYS/BIOS 通常会插入其自己的复位矢量、因此显示不同的符号名称是合理的。 代码本身的外观实际上与屏幕截图中显示的内容相同。

    您说您不再遇到故障、但它仍然不会跳转到0x200001。 因此、它至少必须跳转到有效地址和指令。 相反、它会发生在哪里? 如果你运行然后停止、它会在哪里卡住?

    单步执行跳转至0x200001会发生什么情况? 如果在使用"Step into (步进)"时不清楚跳转、请尝试使用"Assembly Step into (汇编步骤进入)"、并在"Disassembly"(拆卸)窗口中观察行为。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805109 #3805109">感谢您共享内存浏览器。 我认为这看起来不错。 SYS/BIOS 通常会插入其自己的复位矢量、因此显示不同的符号名称是合理的。 代码本身的外观实际上与屏幕截图中显示的内容相同。

    为了确保我们都在同一页上、我有一个解释。 我将 使用 存储在 CM 存储器中的新简单固件(LED 闪烁)更新 CM 固件。 我在两个不同的项目上执行此操作、这两个项目是基于 RTOS 的项目和非 RTOS 项目。 那么、我的问题是、在固件更新过程之后、这两个屏幕截图不应该相同? 实际上、我认为第二次屏幕捕获应该像第一次屏幕捕获一样。 因为 LED 闪烁的新固件不是基于 RTOS 的项目。 我是对的、还是缺少什么?

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805109 #3805109">您说您不再遇到故障、但它仍然不会跳转到0x200001。 因此、它至少必须跳转到有效地址和指令。 相反、它会发生在哪里? 如果您运行然后停止、它在哪里?

    没错。 下图是运行代码时的"Disassembly"窗口。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805109 #3805109">单步执行跳转至0x200001时会发生什么情况? 如果在使用"步骤进入"时不清楚跳转、请尝试改用"汇编步骤进入"、并在"Disassembly"窗口中观察行为。

    实际上、我在代码中执行"单步执行"或任何移动操作时遇到问题。 每当我在接收到这条消息的代码的任何一行中放置一个断点时、我都不知道应该如何解决这个问题。

    我正在使用的 RTOS 项目是您的"tcpEchoF28388x"示例。 我想知道您能否指导我如何解决这个问题。

    谢谢、

    Alex

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="475471" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805199 #3805199"]、因为 LED 闪烁的新固件不是基于 RTOS 的工程。 我是对的、还是遗漏了什么?[/引述]

    好的、好的一点。 由于您尚未为闪烁项目加载符号、CCS 仍显示 SYS/BIOS 项目中的旧符号。 没关系。 重要的是、代码本身与工作设置相匹配。

    [引用 userid="475471" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805199 #3805199"]下图是运行代码时的"Disassembly"窗口。

    从地址来看、这看起来像 CM 引导 ROM、因此它可能会被重置。 让我们修复断点问题、看看单步执行汇编中的跳转会告诉我们...

    [引用 userid="475471" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805199 #3805199"]每当我在接收到此消息的代码的任何一行中放入断点时,我都不知道应该如何解决该问题。

    查看是否使用其中的某些选项为您释放一些断点: https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/489225/c28xx-autorun-target-not-run-as-breakpoint-could-not-be-set-error-enabling-this-function-this-task-cannot-be-accomplished-with-the-existing-aet-resources/1766863#1766863

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805451 #3805451]RIGHT、Ok Point。 由于您尚未为闪烁项目加载符号、CCS 仍显示 SYS/BIOS 项目中的旧符号。 没关系。 重要的是代码本身与工作设置相匹配。

    谢谢。 知道这一点很好。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3805451 #3805451">请参阅如果使用其中的某些选项、会为您释放一些断点: https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/489225/c28xx-autorun-target-not-run-as-breakpoint-could-not-be-set-error-enabling-this-function-this-task-cannot-be-accomplished-with-the-existing-aet-resources/1766863#1766863

    谢谢。 它解决了断点问题。 现在、我可以放置断点并浏览代码。

    正如您在之前的消息中提到的、我 尝试使用"Assembly Step into (汇编步骤进入)"、并在"Disassembly"窗口中观察到该行为。 当我这么做时、令人惊讶的是一切都正常、新固件成功运行。 但是、只要我以普通方式运行代码(打开调试会话并单击绿色按钮以运行代码)、就无法运行新固件。 您能不能确切地说发生了什么? 我如何解决它?

    谢谢、

    Alex

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

    尊敬的惠特尼:

    我无法找到这一问题的发生原因以及解决方法。 可以帮助我解决这个问题吗?

    谢谢、

    Alex

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

    好的、那么单步进入新应用程序就行了、但让它运行就不起作用了? 您是否可以使用断点来查看单步执行时它会达到多远? 您能告诉我们它是否正在到达新加载的应用程序的 main()吗? 您可能需要为新应用加载符号、以使 CCS 允许您在其中放置断点。

    正如我说过的、似乎您正在进行复位。 您能否查看复位原因寄存器(CMRESC)以了解导致它的原因?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3806993 #3806993)]好的、单步进入新应用程序就可以正常工作、但让它运行就不能了? 您是否可以使用断点来查看单步执行时它会达到多远? 您能告诉我们它是否正在到达新加载的应用程序的 main()吗? 您可能需要为新应用加载符号、以获取 CCS、让您在其中放入断点。

    您能告诉我如何为新应用程序加载符号吗? 我不知道如何在将加载的新应用程序中跟踪断点?

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3806993 #3806993">正如我所说,您似乎正在进行重置。 您能否查看复位原因寄存器(CMRESC)以了解导致它的原因?[/引述]

    以下屏幕截图是 CMRESC 寄存器的值:

    谢谢、

    Alex

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

    我还使用了断点来查看单步执行时它会达到多远。

    在浏览第687行(在上图中)后、程序获得以下代码(第2231行):

    谢谢、

    Alex

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

    您可以通过转至 Run -> Load -> Load symbols...来加载符号。 然后将其定向到您的新应用的.out。 执行加载符号可让 CCS 加载调试信息、这样您就可以在不加载程序本身的情况下正确调试新应用程序。

    我希望、一旦为新应用程序加载了符号、它将不再显示 ti_sysbios_*_resetISR 函数、但将显示新加载应用程序的实际复位代码。

    惠特尼

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

    感谢您的详细解释。 我加载了您提到的符号。 下图是新加载应用的存储器映射、这是 CM 的一个简单的 LED 闪烁项目。

    谢谢、

    Alex

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

    如果您用加载的符号单步执行它、您会看到它进入 resetISR、然后进入_cint00? 它是否允许您在 main()的开头设置一个断点,然后点击“恢复”,查看是否达到该断点?

    惠特尼

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

    实际上、每当第一个应用程序运行并且我加载新应用程序时、第一个应用程序将无法访问、我将无法再跟踪它。 如何在运行第一个应用程序时在新加载的应用程序的存储器映射中添加断点?  

    每当我加载符号(对于新应用程序)时、程序都会退出。

    谢谢、

    Alex

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

    您可以尝试执行"添加符号"而不是"加载符号"。 我认为这会阻止删除初始应用程序中的符号、尽管我不确定如果符号的位置存在某些重叠会发生什么情况。

    为新应用程序加载符号后、是否可以打开"Disassembly"窗口并搜索要放置断点的任何位置-例如搜索"_cint00"或"main"并在"Disassembly"窗口中放置断点?

    惠特尼

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

    我尝试"添加符号"。 但是、这里的问题是、当我添加符号时、"Memory Browser"窗口会随着我在以前的消息中发送的图片而发生变化。 但是、"Disassembly"窗口保持不变。 我是说"Disassembly"窗口显示了第一个应用程序的汇编、即使我添加了新应用程序的符号。 因此、我无法在新应用程序中的"_cint00"或"main"上放置断点。 我们只能访问第一个应用程序的汇编。

    此外、在这种情况下、当 我添加新应用程序的符号时、我尝试运行第一个应用程序。 但是、只有当我在第一个应用程序的汇编中单步执行时、新应用程序才会运行。 当我以普通方式运行它时、它不能运行(打开调试会话并单击绿色按钮来运行代码)。

    谢谢、

    Alex

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

    关闭并重新打开"Disassembly"窗口是否会使其更新? 我想您可以使用存储器浏览器或.map 文件至少查找 main 的地址、以便您可以将断点放置在该地址的"Disassembly"窗口中。 Disassembly 应该基于存储器中的内容、因此即使 CCS 使用错误的符号对其进行标记、所示的指令也应该是真实的符号。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3807411 #3807411"]关闭并重新打开"Disassembly"窗口是否会使其更新?

    否、我关闭并重新打开"Disassembly"窗口、但它不会更新。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3807411 #3807411"]我想您可以使用内存浏览器或.map 文件至少查找 main 的地址,以便您可以将断点放置在该地址的"Disassembly"窗口中。 Disassembly 应该基于存储器中的内容、因此即使 CCS 使用错误的符号对其进行标记、所示的指令也应该是真实的符号。

    我执行了上述操作、但我仍然无法在新加载的应用程序的汇编中放置断点。 我在"Disassembly"窗口中看到的所有 内容都是 我在第一个应用中编写的汇编指令和 C 函数。 这个问题背后的原因、我认为、当我调用以下代码行跳转到新应用的开始时、程序会卡在其中一个汇编指令中。 以下行是我用于跳转到地址的 C 代码:

    entryAddress = 0x00200001;
    ((((void (*)(void)entryAddress)();

    下图是运行上述代码的"Disassembly"窗口的屏幕截图:

    问题是、当程序到达汇编代码中的"1ffe22"行时、我无法再跟随它。 这就是为什么我无法看到新加载的应用程序的汇编、即使我使用"添加符号"将新应用程序的.out 文件添加到"内存浏览器"窗口中也是如此。

    我想知道这两条简单的线在非 RTOS 项目中如何良好地工作、而在 RTOS 项目中它一直具有挑战性。

    我希望这解释清楚,有助更好地找出问题。

    谢谢、

    Alex

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

    我还尝试 在非 RTOS 项目中运行相同的代码、并在 C 语言和汇编语言中使用单步执行代码。 一切正常、新应用程序将成功运行。 程序在到达行"((((void (*.)(void)entryAddress)());"后进入以下函数。 此函数写入"startup_cm.c"文件中。

      

    但是、它会卡在 RTOS 工程中的以下函数中。 此函数写入"tcpEchoF2838x"示例中的"tcpecho_pem4.c"文件中。

    我真的想知道、当它卡在基于 RTOS 的工程中的复位 ISR 中时、它如何在非 RTOS 工程中进行复位。

    我希望这能为您提供额外的信息和线索、帮助您找到解决方案。

    谢谢、

    Alex

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

    我不确定你的意思是"它会卡住"。 如果您尝试越过该线路、调试器是否会停止响应? 假设反汇编代码与该 C 文件中的代码匹配、它只是对_c_int00的函数调用。

    在跳转到新应用程序之前、您是否在 SYS/BIOS 项目中执行任何操作来禁用中断或退出任务? 我正在尝试思考可能会从 RTOS 中挥之不去的、从而导致此问题的原因。 在设置函数以跳转到新应用程序作为 exit 函数后,对 BIOS_exit()的调用可能会有所帮助

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3808512 #3808512"]如果您尝试单步执行该行,调试器是否会停止响应?

    当我在汇编语言中执行单步操作时、新应用程序将成功运行。 但是、当我在 C 代码中执行单步执行时、新应用程序不会运行。 这就是为什么我说"它卡住了"(如果我错了、请纠正我)。 实际上、调试器会执行单步执行(因为绿色图标(恢复图标)和其他图标(如单步执行)将被隐藏)、但新应用程序不会运行。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3808512 #3808512"]在跳转到新应用程序之前,您是否在 SYS/BIOS 项目中执行任何操作来禁用中断或退出任务

    我在项目的.cfg 文件中禁用了 Hwi、Swi 和时钟模块、但问题仍然存在。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028626/tms320f28388d-updating-the-firmware-of-cm-in-sys-bios/3808512 #3808512"]设置函数以跳转到新应用程序作为 退出函数后,调用 BIOS_exit()可能会有所帮助

    感谢您分享相关主题。 在设置函数以跳转到新应用程序作为 EXIT 函数后、我还尝试添加 BIOS_EXIT (0)和 BIOS_Exit (1)、但问题仍然存在。

    谢谢、

    Alex

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

    如果您认为以更快速的方式解决问题很有帮助、我可以私下向您发送我的代码。

    谢谢、

    Alex

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

    当然、我愿意尝试自己运行它。 我将向您发送一个朋友请求、以便您可以向我发送一封私人邮件。

    惠特尼

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

    当然、谢谢。 我已将代码发送给您。

    最棒的

    Alex

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

    只是一个线程的更新,以防有人在后面遇到类似问题时遇到这个问题-- 问题似乎是 SYS/BIOS 应用程序中的一个持续中断(ROV 中可以看到时钟节拍的计时器中断)导致新应用程序滞留在 startup_cm.c 中的默认 ISR 中 一旦我们确认禁用中断、就会再次更新。

    惠特尼

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

    感谢 Whitney 帮助我解决这个问题。

    是的、正如您在  SYS/BIOS 中提到的(调用 Interrupt_disable (FAULT_SysTick)函数)、我禁用了中断。 现在、新应用程序已成功运行、固件已更新。

     

    谢谢、

    Alex