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:获取"目标重置"和"软件重置被执行"当我执行"下载和调试&quot 时的消息;

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/594966/tm4c123gh6pm-getting-target-reset-and-software-reset-was-performed-messages-when-i-do-download-and-debug

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

大家好、

请帮助。 我们将感谢您的帮助。

我正在使用的工具:

Tiva C launchpad (TM4C123GH6PM)  

用于 ARM 7.80.4.12495的 IAR 嵌入式工作平台

描述:

我正在处理一个简单的项目、在这个项目中、当按下开关时、LED 应该闪烁(我在 Tiva C launchpad 上使用了 Porte)、并且我能够使 LaunchPad 按预期运行。 但是、我在电路中添加了更多开关、也更改了软件、我很疲惫地在 launchpad 上下载程序。

问题:

我没有收到错误、但我收到"已执行软件复位"和"目标重置"的消息! 每次我单击"Download and Debug"按钮时、似乎都要重置处理器(下面是完整的错误说明)。 此外、我回到了使用一个开关和一个 LED 正常工作的简单项目、它不再工作。

错误消息:

2017年5月11日星期四10:59:19:IAR Embedded Workbench 7.80.4 (armproc.dll)
2017年5月11日10:59:19:加载宏文件:C:\Program Files\IAR Systems\Embedded Workbench 7.5\ARM\config\debugger\TexasInstruments\TM4C123.DMAC
THU 2017年5月11日10:59:19:连接到 TI Stellaris (探头编号:0E21DB10)
截至2017年5月11日10:59:19:JTAG 速度设置为:500kHz
Thu 2017年5月11日10:59:19:JTAG IDCODE     = 0x0BA00477
截至2017年5月11日10:59:19:AHB-AP ID       = 0x00000000
截至2017年5月11日10:59:19:AHB-AP ROM      = 0x00000000
Thu 2017年5月11日10:59:19:ROM 组件 ID = 0x00000000
截至2017年5月11日10:59:19:器件 ID       = 0x00000000 (未知)
Thu 2017年5月11日10:59:19:执行了软件复位
2017年5月11日10:59:19:执行初始复位
截至2017年5月11日10:59:19:已下载并验证512字节(3.57 KB /秒)
2017年5月11日10:59:19:已加载调试:C:\Program Files\IAR Systems\Embedded Workbench 7.5\ARM\config\flashloader\TexasInstruments\FlashLM3SxxxRAM32K/out
2017年5月11日10:59:19:目标复位
截至2017年5月11日10:59:19:已将 C:\Home_Security_System\Home_Security_System_0.1\Debug\EXE\Home_Security_System_0.1.Out 下载到闪存。
Thu 2017年5月11日10:59:19:执行了软件复位
Thu 2017年5月11日10:59:19:524字节下载到闪存并经过验证(0.89 KB /秒)
2017年5月11日10:59:19:加载的调试器:C:\Home_Security_System\Home_Security_System_0.1\Debug\EXE\Home_Security_System_0.1.Out
Thu 2017年5月11日10:59:19:执行了软件复位
2017年5月11日10:59:19:目标复位

--------

我已经阅读过其他人认为与 JTAG 相关的 bin 已经被锁定、需要通过将其设置为高电平来再次解锁!!

还有一些建议使用 LMFlash 编程器的文章! 但我不知道为什么以及如何使用它。  

是否有任何简单的方法可以将 Tiva 器件复位为其制造设置?

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

    此外、这是我正在处理的代码:

    #include "tm4c123gh6m.h"
    
    #define SYSCTL_RCGC2_R (*(volatile unsigned long *) 0x400FE108)
    
    unsigned long arm、sensor;
    
    void delayms (unsigned long ms);
    
    int main (void){
    
    unsigned long volatile delay;
    
    sysctl_RCGC2_R |= 0x3F; //端口 E 和 B 时钟(0b00010010)
    
    延迟= SYSCTL_RCGC2_R; //等待3-5个总线周期
    
    GPIO_PORTD_DIR_R |= 0x40; // PD4输出
    
    GPIO_PORTD_DIR_R &=~0x07; // PD2、1、0输入
    
    GPIO_PORTD_AFSEL_R &=~0x47; //非备选
    
    GPIO_PORTD_AMSEL_R &=~0x47; //无模拟
    
    GPIO_PORTD_PCTL_R &= 0x0F000FFF;// PD6、PD2、PD1、PD0
    
    GPIO_PORTD_DEN_R 的位|= 0x47; //在
    
    (1){
    
    ARM = GPIO_PORTD_DATA_R&0x04时启用 PD4、PD2、PD1、PD0; // PD2:如果停用则为 ARM 0、如果激活
    
    传感器则为1 = GPIO_PORTD_DATA_R&0x03;// PD1、PD0:1表示正常、0表示如果
    
    (ARM=0x04)则为磨合{
    
    GPIO_PORTD_DATA_R θ^= 0x40;//0x10;//切换输出 PD4以进行警报
    
    delayms(100);// 100ms 延迟产生5Hz 的周期
    
    }else{
    
    GPIO_PORTD_DATA_R &&~0x40;//如果停用 LED 关闭
    
    }
    
    //while
    
    }//main
    
    //*子例程以1毫秒为单位延迟
    
    输入:延迟
    
    输出的 ms 数:none
    
    */
    
    void delayms (unsigned long ms){
    
    unsigned long count;
    
    while (ms > 0){//在仍有 ms 至延迟
    
    计数的情况下重复计数= 16000;//在80MHz 时延迟1ms
    
    的计数数量 while (计数> 0){
    
    count--;
    
    }//此 while 循环大约需要3个周期
    
    ms--;
    
    }
    
    

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

    Nawar、您好!

    欢迎来到丛林。 您需要在这条道路上实现很多目标、我建议您采取以下步骤:

    1)放弃直接写入寄存器(如 GPIO_PORTD_DIR_R |= 0x40)。 从 www.ti.com/tivaware 下载并安装 Tivaware 库、并替换这些"难以确定"的命令、以实现更方便的功能、例如 GPIOPinTypeGPIOInput (base、PIN);
    您将在 TIvaind/docs 文件夹中看到~5Mb 手册、其中包含许多"简单"的功能、可控制 Tiva 中的所有内容、例如按钮、输出引脚、计时器、UART 通信、 存储器等。 作为开发人员、您的生活将会迅速改变!

    2)学习中断-了解当检测到传感器/按钮被按下时、您希望将代码从主执行转移到处理该按钮的小型专用函数中。

    3) 3)学习计时器、至少了解它的基础知识。 如果您使用 while (x>2000)创建延迟、则 CPU 在延迟期间无法看到或执行任何其他操作-例如、如果按下按钮、系统将不会注意到它。

    4) 4)对于解锁电路板、您会说"我不知道原因"。 嗯、如果您锁定了电路板、则需要将其解锁(通常情况下、如果您对主时钟进行了错误配置或使用了一些特殊引脚使电路板变得混乱...)。 如何解锁? 是的、您已经了解了:下载 LMFlash、然后按照其中一个选项的解锁过程进行操作。 如果需要、有几个帖子会对其进行教学、但它基本上只是关注程序屏幕上的内容并跟随它。 其他"更现代"程序也会执行同样的操作、例如 UniFlash。

    让我们知道情况如何。

    此致

    布鲁诺

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

    布鲁诺的海报提供了很好的建议-特别是建议"远离/快速(过时、速度大大减缓、错误邀请)"直接注册操纵"(DRM)程序编码风格。    您是否可以告诉我们、您采用这种方法的方式和原因?

    [引用 user="Nawar Youssef"]此外,我返回正常工作的简单项目

    这种写操作表明您的"新项目"可能是"用户创建的"项目-是这样吗?    这里的任何相对较新的海报都很不寻常-当他们冒险购买"定制-用户创建的项目"时、他们会成功。   (这是因为"提供的项目"使许多(必要的设置和配置)"自动化"-这通常会挑战(甚至)有经验的用户。   最重要的是、对于这样的"用户创建的项目"、没有什么"回报"!)

    我们还使用 IAR、并且-如果存储器提供-(一些)控制对复位的置位进行控制。   当您的"初始(简单项目)"被报告起作用时-您是否已经在 IAR 配置中更改了某些内容?    在 您报告 "正常工作"后、可以合理地认为 IAR 的"启动"文件已被更改。

    您可以(仍然)下载代码这一事实表明您没有"锁定!"

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

    谢谢你们的快速回答,我厌倦了一次问一个爱特梅尔表格上的问题,一个月多的时间里,有人给我答复,所以现在我感到很惊讶。 此外、我同意您的观点、我肯定会这样做。 但是现在、作为计算机工程的新毕业生、我的目标是深入了解 Cortex-M4以及处理器在单个位级上的确切工作方式、同时还更深入地了解存储器映射。

    我想问:假设有人已经使用 Cortex-M4处理器为特定项目开发了定制板。 您提到的 TivaWare 库函数是否也可用于 Cortex-M4处理器? 还是仅适用于 Tiva-C LaunchPad?

    我问的是、在计算机工程行业、许多公司使用 Cortex-M4处理器、因为它们自己的定制板阻碍了 Cortex-M4处理器的发展。

     

    对于我的问题: 我认为我不熟悉 IAR 工作平台、因为我重新设计了我称为"简单项目"的工作平台、尽管上面的消息仍然显示、但它似乎仍然起作用、因此我假设这些消息是"IAR 下载和调试"过程的一部分。

    谢谢你。

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

    没错、它是用户创建的项目、也是第一个更简单的项目。 现在、正如我在对 Bruno 的答复中提到的、这个简单的项目再次运行良好、问题看起来不是什么样子。

    总之、非常感谢、在我将来遇到新问题时、我一定会考虑并记住您有关 IAR 配置和用户创建项目的信息。

    此外、如果您对我向 Bruno 提出的问题有任何回答或观点、那将会很好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Nawar YousseF"]您提到的 TivaWare 库函数是否也可用于 Cortex-M4处理器?

    是的、IS 可用于您在自己的定制设计中使用的任何德州仪器(TI) TM4C (或 Tivas)。

    实际上、Tivaware 调用执行的操作对于您在其他处理器中也需要执行的操作而言非常常见。 因此、如果您希望将代码移植到其他品牌、则始终需要配置计时器或将特定引脚定义为输出 GPIO。 这意味着、即使将代码移植到完全不同的 IC、从"可读的 Tivaware 代码"开始也比从一组寄存器编号开始更容易!

    祝您的发展顺利、并不断地向您提供最新消息和问题(当然是智能消息!)  ;)

    布鲁诺

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

    [引用 user="Bruno Saraiva"]...it 将更容易从"可读的 Tivaware 代码"开始,而不是从一组寄存器编号开始!

    实际上-虽然寄存器(位)必须正确配置-要求扩展到首先查找 -然后确定(许多寄存器中的哪一个)使用-以及(有时)寄存器编程的正确"序列"。

    我们可以再次问:"为什么您选择这种"DRM"编码风格?"   您写的内容是、您想了解"非常了解"-但 MCU 手册的(翻页)和页面-尝试实现"最简单的功能"是否合理?   是的、您需要了解如何使用寄存器以及选择哪些寄存器、但这一切都可以通过(大大提高效率)使用 API 来实现、并在后台进行"寄存器审阅"。   

    扫描寄存器(可能)数量(我们已经观察到)可能会"让您的注意力不集中"您(更重要的)问题解决和代码策略!   (即、"疲惫的心态"是否会成为特别的警示和创造性?)    为什么在 API 中独家使用 DRM/ASM 的"自然后果"既未提及也未考虑?

    我不认为 IAR -当正常运行时-会在每个"调试启动"时引起一个"复位"。    (像往常一样、我们设置断点并从那里启动、不希望(始终)"返回到复位!"   您的设置不正确...