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:更新 BOOTCFG 后代码不运行

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/601930/tm4c123gh6pm-code-not-running-after-update-bootcfg

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件:EK-TM4C123GXL

我在 EK-TM4C123GXL LaunchPad 上运行 TivaWare 2.1.3.156闪烁示例的修改版本、尝试使 ROM 引导加载程序正常工作。

我已添加以下内容作为 main()的第一行:

if (HWREG (FLASH_BOOTCFG)& FLASH_BOOTCFG_NW)
{
//尚未提交
HWREG (FLASH_FMD)=(HWREG (FLASH_BOOTCFG)& 0x7fff00ec)|(FLASH_BOOTCFG_PORT_F | FLASH_BOOTCFG_PIN_4 | FLASH_BOOTCFG_KEY | FLASH_BOOTCFG_DBG1);
HWREG (FLASH_FMA)= 0x75100000;
HWREG (FLASH_FMC)= FLASH_FMC_WRKEY | FLASH_FMC_COMT;
while (HWREG (FLASH_FMC)& FLASH_FMC_COMT)
{}
} 

使用调试器、我可以验证 在首次运行程序时将值0x7fffb0fe 写入 BOOTCFG。 在对 LaunchPad 进行下电上电时、将提交对 BOOTCFG 的更改、但 LED 不再闪烁。 (我有一根跳线将 PF4连接到+3.3V;LaunchPad 上没有上拉电阻)。

我不知道主程序为什么不执行。 奇怪的是、如果我将代码更改为使用引脚 PB1、则一切都按预期工作。 PF4不是受保护的引脚、因此这不应受到勘误表 MEM#19的影响。 我不知道为什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Andrew:
    也许我不清楚你的问题。 您使用哪个引脚作为 GPIO 来切换 LED? 您将 PF4配置为引导引脚。 您是否尝试使用 PF4作为 LED 引脚?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    我将 PF3用于 LED。

    出于完整性考虑、我修改了 TivaWare 中的以下示例文件:examples/boards/ek-tm4c123gxl/blinky/blinky.c

    完整差动的计算公式如下(包括行号和):

    27d26
    <#include "inc/hw_flash.h"
    29d27
    <#include "inc/hw_types.h"
    53、62d50
    < if (HWREG (FLASH_BOOTCFG)& FLASH_BOOTCFG_NW)
    < {
    < //尚未提交
    < HWREG (FLASH_FMD)=(HWREG (FLASH_BOOTCFG)& 0x7fff00ec)|(FLASH_BOOTCFG_PORT_F | FLASH_BOOTCFG_PIN_4 | FLASH_BOOTCFG_KEY | FLASH_BOOTCFG_DBG1);
    < HWREG (FLASH_FMA)= 0x75100000;
    < HWREG (FLASH_FMC)= FLASH_FMC_WRKEY | FLASH_FMC_COMT;
    < while (HWREG (FLASH_FMC)& FLASH_FMC_COMT)
    < {}<}
    
    < 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Andrew:
    您可以测量 PF4上的电压吗? 我想知道您是否处于 ROM 引导加载程序模式。 查看您的代码、当 PF4为低电平时、您将处于 ROM 引导加载程序模式、但您将 PF4绑定到3.3V。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    今天、我找到了一些时间来进一步诊断问题。 事实证明、这是该特定 launchpad 板的缺陷。 无论连接到什么、PF4始终读为0。 该代码在另一个 LaunchPad 上运行正常。

    感谢你的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴您确定了根本原因。 问题是如何使 PF4出现缺陷。 它是否在一个时间点工作?