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.

[参考译文] TM4C123GH6PM:在闪存中运行第2个程序

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1159001/tm4c123gh6pm-running-2nd-program-in-flash

器件型号:TM4C123GH6PM
主题中讨论的其他器件: LMFLASHPROGRAMR

大家好、

我需要一些建议。  我有两个程序文件(.bin)。  我也可以使用 LMFlashProgrammer 并在定制板上运行、其中 TM4C123GH6PM 芯片将偏移位置设置为0x0000。

为简单起见、请致电 programA.bin 和 programB.bin

使用 LMFlashProgrammer、我可以成功将 Programmama @ 0x0 和 programb @ 0x20000 (  128K 位置)放置在   这两个程序都非常相似,是使用 CSS 创建的。

我希望程序 A 具有在运行时加载程序 B 的逻辑。  (程序 B 的作用就像它在0x0000被编程并且系统正在重新启动一样。  程序 B 不会退出或返回程序 A。)

我是否可以使用任何函数调用来实现此目的?  (基本上运行在0x20000位置加载的.bin 文件。   我想从程序 A 调用0x20001、但我认为.bin 文件开头有不会执行的开销信息。  我需要对此进行更深入的研究。)

非常感谢您的任何建议、链接或示例。   请注意、二进制文件已经在闪存中、因此我认为尝试执行 ROM 引导加载程序路由是 overkill。

Bob

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

    Bob、您好!

    我们基本上已经使用闪存引导加载程序和 boot_demo1 / boot_demo2示例项目来演示这一点。

    闪存引导加载程序 boot_serial 加载到位置0x0000处的存储器中、然后您可以将 APP_START_ADDRESS 设置为0x20000 、这是页边界处的有效选择。 然后、引导加载程序将能够对您的主应用程序进行编程、在本示例中、我们会说 boot_dem1位于存储器位置0x20000。 与本演示不同的是、您只需取消跳回到引导加载程序的功能、这是完全可以的、这只是为了向您展示一下。

    加载这两个文件后、器件将始终加电、最初启动引导加载程序、并且每次都按您的需要在0x20000处立即调用主应用程序。

    此致、

    Ralph Jacobi

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

    谢谢。  我认为我缺少设置 APP_START_ADDRESS。

    Bob