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.

[参考译文] CCS/TM4C123GH6PGE:复位问题

Guru**** 2457760 points
Other Parts Discussed in Thread: TM4C123GH6PGE

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/642036/ccs-tm4c123gh6pge-reset-issue

器件型号:TM4C123GH6PGE
主题中讨论的其他器件: TM4C123

工具/软件:Code Composer Studio

大家下午好、

       我使用 TM4C123GH6PGE 微控制器为我的一个嵌入式应用开发了代码。 我的代码工作正常、但在执行代码后、几秒钟内、编译器(Code Composer Studio V6)会收到复位中断、它会停止调试、然后再次从第一条指令开始。

当复位中断发生时、它会自动转到 STARTUP_CCS.c  、并向我显示如下所示的语句。

无效
ResetISR (空)

//
//跳转到 CCS C 初始化例程。 这将启用
//浮点单元,因此不需要在此处执行此操作。
//
_asm (".global _c_int00\n"
" b.w _c_int00");

 


我请求您告诉我代码中为什么会出现此问题、并建议我如何解决此问题、同时排除代码序列流的干扰。

提前感谢。

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

    "正常工作"能否正确定义生成"不需要的复位?"的代码

    您在 MCU 的复位引脚附近寻找一种解决方案-但提供"对您的代码没有深入了解"或" MCU 硬件实施的处理"。
    可能(两者)都有用?

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

    通常、当您启用了中断但未在 startup_ccs.c 文件内正确路由 ISR 时会发生这种情况。 请分享有关您已启用哪些中断以及您正在为项目使用哪些 ISR 的详细信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢您的回复
    我将使用以下中断及其优先级。

    IntMasterEnable();

    IntPrioritySet (INT_TIMER0A、0x00);

    IntPrioritySet (INT_PWM0_0_TM4C123、0x20);

    IntPrioritySet (INT_PWM0_1_TM4C123、0x40);

    IntPrioritySet (INT_PWM0_2_TM4C123、0x60);

    IntPrioritySet (INT_ADC0SS0_TM4C123、0x80);

    IntPrioritySet (INT_TIMER1A、0xA0);

    IntPrioritySet (INT_HIBERY_TM4C123、0xC0);

    IntPrioritySet (FAULT_SysTick、0xE0);



    我的 startup_ccs.c 文件是

    //
    #Intma DATA_SECTION (g_pfnVectors、".intvecs")
    void (* const g_pfnVectors [])(void)=
    {
    (void (*)(void)(void)(void)(void))((uint32_t)&& stack_top)、
    //初始堆栈指针
    ResetISR、//复位处理程序
    Nisr、/DefaultFHandler
    、/NMI、故障处理程序/缺
    
    省处理程序/缺省处理程序/缺省处理程序/缺省处理
    程序/缺省处理程序/缺省/缺省处理程序 //用法故障处理
    程序0,//保留
    0,//保留
    0,//保留
    0,//保留
    IntDefaultHandler, // SVCall 处理程序
    IntDefaultHandler,//调试监视器处理程序
    0,//保留
    IntDefaultHandler,// PendSV 处理程序
    SysTickIntHandler,// SysTick 处理程序
    IntDefaultHandler,// GPIO 端口 A
    IntDefaultHandler,// GPIO 端口 B
    IntDefaultHandler,// GPIO 端口 C
    IntDefaultHandler,// GPIO 端口 D
    IntDefaultUART,// UDefault0端口
    // UART0 Rx 和 Tx
    IntDefaultHandler、// UART1 Rx 和 Tx
    IntDefaultHandler、// SSI0 Rx 和 Tx
    IntDefaultHandler、// I2C0主控和受控
    IntDefaultHandler、// PWM 故障
    PWM0IntHandler、// PWM 发生器0
    主控模块、// PWM 发生器1
    主控模块、//
    PWM 内部编码
    器2、正交编码器 C00 // ADC Sequence 0
    IntDefaultHandler,// ADC Sequence 1
    IntDefaultHandler,// ADC Sequence 2
    IntDefaultHandler,// ADC Sequence 3
    IntDefaultHandler,//看门狗计时
    器 Timer0IntHandler,//计时器0子计时器 A
    IntDefaultHandler,//计时器0子计时器 B
    Timer1IntHandler,//计时器1子计时器 A
    IntHandler,//默认
    计时器 B 子计时器 //计时器2子计时器 A
    IntDefaultHandler、//计时器2子计时器 B
    IntDefaultHandler、//模拟比较器0
    IntDefaultHandler、//模拟比较器1
    IntDefaultHandler、//模拟比较器2
    IntDefaultHandler、//系统控制(PLL、OSC、BO)
    IntDefaultHandler、//闪存控制
    IntDefaultHandler、// GPIO 端口 F
    IntDefaultHandler
    、IntDefaultGPIO // GPIO 端口 H
    UART2IntHandler、// UART2 Rx 和 Tx
    IntDefaultHandler、// SSI1 Rx 和 Tx
    IntDefaultHandler、//计时器3子计时器 A
    IntDefaultHandler、//计时器3子计时器 B
    IntDefaultHandler、// I2C1主控和从
    控 IntDefaultHandler、//正交编码器1
    IntHandler、// CANDefault0
    
    、保留/ CAN0、CANDefault0、CAN0
    //保留
    IntDefaultHandler, // Hibernate
    IntDefaultHandler,// USB0
    IntDefaultHandler,// PWM 发生器3
    IntDefaultHandler,// UDMA 软件传输
    IntDefaultHandler,// UDMA 错误
    IntDefaultHandler,// ADC1 Sequence 0
    IntDefaultHandler,// ADC1 Sequence 1
    IntDefaultHandler,// ADC1 Sequence 2
    IntDefaultHandler,// ADC1 Sequence 3
    0,//保留
    
    IntDefaultHandler,//保留 // GPIO 端口 J
    IntDefaultHandler、// GPIO 端口 K
    IntDefaultHandler、// GPIO 端口 L
    IntDefaultHandler、// SSI2 Rx 和 Tx
    IntDefaultHandler、// SSI3 Rx 和 Tx
    IntDefaultHandler、// UART3 Rx 和 Tx
    IntDefaultRx、// UART4 Handler 和 Tx
    IntDefaultRx、// UART5和 Tx
    IntHandler、 // UART6 Rx 和 Tx
    IntDefaultHandler、// UART7 Rx 和 Tx
    0、//保留
    0、//保留
    0、//保留
    0、//保留0、//保留
    IntDefaultHandler、 // I2C2主控和受控
    IntDefaultHandler,// I2C3主控和受控
    IntDefaultHandler,//计时器4子计时器 A
    IntDefaultHandler,//计时器4子计时器 B
    0,//保留
    0,//保留
    0,//保留
    0,//保留0,//保留
    0,//保留0,//保留0, //保留
    0、//保留
    0、//保留
    0、//保留
    0、//保留
    0、//保留0、 //保留
    0、//保留
    0、//保留
    0、//保留
    0、//保留
    0、//保留0、 //保留
    0、//保留
    0、//保留
    0、//保留
    0、//保留
    0、//保留0、 //保留
    IntDefaultHandler、// Timer 5子计时器 A
    IntDefaultHandler、// Timer 5子计时器 B
    IntDefaultHandler、//宽计时器0子计时器 A
    IntDefaultHandler、//宽计时器0子计时器 B
    IntDefaultHandler、//宽计时器1子计时器 A
    IntDefaultHandler、//宽计时器1子计时器 B
    IntDefaultHandler、//宽计时器2子
    计时器 A IntDefaultHandler //宽计时器2子计时器 B
    IntDefaultHandler,//宽计时器3子计时器 A
    IntDefaultHandler,//宽计时器3子计时器 B
    IntDefaultHandler,//宽计时器4子计时器 A
    IntDefaultHandler,//宽计时器4子计时器 B
    IntDefaultHandler,//宽计时器5子计时器 A
    IntDefaultHandler,//宽计时器5子计时器 B
    IntDefaultHandler, // FPU
    0、//保留
    0、//保留
    IntDefaultHandler、// I2C4主控和受控
    IntDefaultHandler、// I2C5主控和受控
    IntDefaultHandler、// GPIO 端口 M
    IntDefaultHandler、// GPIO 端口 N
    IntDefaultHandler、// Int正 交编码器2
    0、//保留
    0、//保留
    IntDefaultHandler、// GPIO 端口0、//默认 P0
    // GPIO 端口 P1
    IntDefaultHandler、// GPIO 端口 P2
    IntDefaultHandler、// GPIO 端口 P3
    IntDefaultHandler、// GPIO 端口 P4
    IntDefaultHandler、// GPIO 端口
    DefaultIntDefaultHandler、// GPIO 端口 P6
    IntDefaultHandler、// GPIO 端口 P7 IntDefaultP5
    、// GPIO 端口 Q (摘要或 Q0)
    IntHandler、// GPIO 端口 IntDefaultHandler、// GPIO 端口 Q1
    // GPIO 端口 Q2
    IntDefaultHandler、// GPIO 端口 Q3
    IntDefaultHandler、// GPIO 端口 Q4
    IntDefaultHandler、// GPIO 端口 Q5
    IntDefaultHandler、// GPIO 端口 Q6
    IntDefaultHandler、// GPIO 端口 Q7
    IntDefaultHandler、// GPIO 端口 R
    IntDefaultHandler、// GPIO 端口 S
    IntDefaultHandler、// PWM 1发生器0
    IntDefaultHandler、 // PWM 1发生器1
    IntDefaultHandler、// PWM 1发生器2
    IntDefaultHandler、// PWM 1发生器3
    IntDefaultHandler // PWM 1故障
    };
    
    //
    //
    //这是在处理器首次开始执行
    时调用的代码//在复位事件之后。 只执行绝对必要的设置,
    //之后调用应用程序提供的 entry()例程。 任何花式
    //操作(例如根据复位原因寄存
    
    器做出决策、和//复位该寄存器中的位)都只能由//应用程序控制。
    ////
    *****************
    void
    ResetISR (void)
    {
    //
    //跳转到 CCS C 初始化例程。 这也将启用
    //浮点单元、因此无需在此处执行此操作。
    //
    __asm (".global _c_int00\n"
    b.w _c_int00");
    }
    
    
    




    请建议我如何解决此问题。

    谢谢、
    此致、
    Srinu。

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

    您好 Srinu、

    您是否还为 startup_ccs.c 内的所有 ISR 提供了外部函数定义? 例如:

    extern void PWM0IntHandler (void);
    extern void MainWaveformTick (void);
    extern void MainMillisecondTick (void);
    extern void SysTickIntHandler (void);
    extern void ADC0IntHandler (void);
    extern void Timer0IntHandler (void);
    extern void Timer1IntHandler (void);
    

    此外、我没有看到针对以下内容的任何中断句柄:

    IntPrioritySet (INT_HIBERY_TM4C123、0xC0); 

    最后、看起来您有两个 UART 中断:

    UART0IntHandler
    UART2IntHandler 

    是否正在使用这些器件? 无法清楚说明。 如果不是,则应将其返回 IntDefaultHandler。

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

    您好、Ralph、

    您在这里已经取得了一些进展、但"启动文件"中的"太多"可能已经从无刷电机的 LMI 代码中"借用"了... (或者、它可能已被"重新使用"用于更新的实施(我不知道)、但仍有一个"陷阱"在等待...)

    具体而言,这些行"以电报形式说明这种批款":

    PWM0IntHandler、      // PWM 发生器0
    MainWaveformTick、  // PWM 发生器1 //相当奇怪的名称
    MainMillisecondTick、 // PWM 发生器2 //和其他

    应该注意的是、针对 PWM Gens 1和2采用的代码为"制动"(即 SW 中断)-从 PWM Gen 0启动、这通常会"捕获"不知道的...

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

    哦、真的吗? 之前从未听说过该示例代码。 这似乎是 Srinu 随后要调查的其他事情。 是否有任何解决方法可以避免您知道的此类陷阱? (请原谅我今天在 E2E 上没有进行自我搜索、目前时间很短)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、


    我使用的是 MainWaveformTick、而 MainMillisecTick 是通过 PWM 中断生成中断所使用的函数。
    我将这两个 PWM 中断用于其他用途来调用这两个函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    海先生,


    我在 startup_ccs.c 中声明中断、如下所示


    void ResetISR (void);
    静态空 NmiSR (空);
    静态空 FaultISR (空);
    静态空 IntDefaultHandler (void);
    extern void PWM0IntHandler (void);
    extern void MainWaveformTick (void);
    extern void MainMillisecondTick (void);
    extern void SysTickIntHandler (void);
    extern void Timer0IntHandler (void);
    extern void Timer1IntHandler (void);
    extern void ADC0IntHandler (void);
    extern void Timer0IntHandler (void);
    extern void UART0IntHandler (void);
    extern void RTCHandler (void);
    extern void UART2IntHandler (void);
    extern void HibernateHandler (void);



    此外、我还使用中断 UART0IntHandler 和 UART2IntHandler


    我提到像这样的休眠中断处理程序 HibernateHandler、 //休眠

    我将使用以下中断及其优先级。

    IntMasterEnable();

    IntPrioritySet (INT_TIMER0A、0x00);

    IntPrioritySet (INT_PWM0_0_TM4C123、0x20);

    IntPrioritySet (INT_PWM0_1_TM4C123、0x40);

    IntPrioritySet (INT_PWM0_2_TM4C123、0x60);

    IntPrioritySet (INT_ADC0SS0_TM4C123、0x80);

    IntPrioritySet (INT_TIMER1A、0xA0);

    IntPrioritySet (INT_HIBERY_TM4C123、0xC0);

    IntPrioritySet (FAULT_SysTick、0xE0);

    如果上述指令及其中断优先级有任何错误、请向我提出建议。




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

    未列出针对 MCU 的"看门狗"的中断处理程序。   由于海报的(模型)代码(几乎)确实适用于电机驱动器-而"原始此类代码"包含"看门狗中断"-"没有"此类"看门狗中断"需要调查。

    似乎"合理"的是、"未能提供"看门狗 ISR"-当"高度期望使用此类看门狗(即对于电机应用)会导致海报 MCU 定期(即定期复位)-由于正常/习惯、 "看门狗对注意力不足的反应!"   (在这种情况下-无需注意!)

    "原始代码"("维加斯和我自己"都坚信-"海报代码")确实启用了看门狗-并包含了适当的看门狗 ISR!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许 RESETCAUSE 寄存器内容我的指示 CPU 工作时 CPU 的执行方式或执行者(复位)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、


    您能不能建议我如何根据我的中断优先级在我的代码中写入看门狗中断。
    请向我发送中断代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您从"某处"收集了这样的代码-您没有?
    "收集的代码"是否不可能包含(必要)看门狗管理?

    似乎您(到目前为止)报告的困难是(非常)高冰山的"尖"、而且(很多)需要进一步审查!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我从我的高层收集了代码、代码属于 pump 应用程序。

    但在该代码中、不使用任何看门狗计时器、我采用相同的代码并添加扩展 SD 卡和休眠。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您-缺少此类"保护装置"证明了(不常见)-并且可能会使泵受到严重损坏。
    正如您看到的(清除)、"没有看门狗实现"正在运行"-海报 BP 关于"复位识别"的建议上升到这个线程堆的顶部。

    这是一个新的应用程序-还是(仅)添加了"SD 卡"和"Hibernate (休眠)"、从而产生了您的问题?

    供应商的 Ralph 是否建议您将代码限制为"仅其中一个添加项"、以便更快/更轻松地识别"问题的真正根源"? 您是否这样做过-如果是的话-结果是什么?

    论坛搜索框-在顶部、此页-关键字"通过复位 ISR 识别条目"将进一步阐明系统复位的"原因"...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在前面、代码工作正常。


    现在、我将添加额外的外设 SD_CARD 和 Hibernate 以用于数据存储。

    在上一节中、我们使用 gsm 将数据发送到服务器、现在我要添加 SD_card 以存储数据、同时将数据同时发送到服务器。
    在这里、当我连接 gsm 模块时、所有模块工作正常、没有任何复位问题、如果我未连接我的 gsm、那么我的代码执行将首先转到 GSM 函数、并检查 AT 命令序列的序列。

    如果第一个 gsm 命令未被接受(意味着 gsm 未连接)、我在这里写下了如下代码

    操作

    First++;
    clearbuff ();
    TX ("at\r\n");
    SysCtlDelay (SysCtlClockGet ()/12);
    SysCtlDelay (SysCtlClockGet ()/12);//在解锁时执行 DO 直到从 GPRS 模块获得响应“OK”
    zxc='1';
    if (第一个>5)

    返回;

    } while ((strstrstrstrstr (const char *) m、(const char *)"OK")=NULL);

    然后返回主函数中的前一条指令、并在休眠时执行中的 SD 卡功能。

    在这里、我遇到的问题是、它返回到主函数并使用 while 循环将数据写入 SD_card 5到6次、然后再次出现复位问题。

    每隔5到8次 SD 卡中的数据写入时、都会出现这种类型的问题。

    在这里、我认为休眠可能有问题。

    请向我建议问题所在。


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

    我的朋友-你必须"学习"和"练习"吻-保持你的目标(非常)小而简单-并继续(一次只能)一个"小步骤"。

    相反-您已添加(包括) SD 卡和休眠-此类代码"失败"并不奇怪。   (这是一次一个小步骤的违反-由 Kiss 指导!)

    "强制添加"复数 SD 卡必须有充分的理由。   为什么添加了该内容?    是否不可能出现"问题之前存在"、SD 卡的目的是"更好地了解问题的原因"?   这是一个合理的假设-是不是吗?   请详细解释。

    添加 SD 卡和休眠模式的尝试(很)可能会失败-因为任务太大-并且"通常"证明太难使"一切正常"。   我们要求您简化问题的根源、至少现在可以简化、以便更好地识别问题的根源。   请删除所有对"休眠"的引用-让我们看看是否可以单独添加 SD 卡。

    请尝试此建议-并告诉我们-为什么添加 SD 卡。   (我相当肯定,先前存在的问题--缺乏(任何)看门狗功能引起了关注--"所有事实"是否都收集到--并被置于证据中是令人怀疑的。

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

    从您的言语中、如果不使用休眠、我如何知道数据是在哪一段时间发出的(不坚持如何亲吻、需要站立和亲吻)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的朋友-"您的"方法-同时采用 SD 卡和休眠模式-让您随处可见?

    不要太快地拒绝亲吻-尝试一次做所有事情-不是"最好的继续方式"。

    我会尽最大努力帮助您、但前提是您"遵守/kiss。"    这意味着-"一次只有一场(新的和有限的)战斗。"

     这里的许多人都成功操作了 SD 卡-没有使用休眠功能!     请注意、供应商的 Ralph 和现在的 i 都建议您尝试相同的操作。   (现在避免休眠)  成功实现后-只有这样-我们才能进入"休眠"状态。

    我们注意到、您"完全没有回答"我提出的几个(重要)问题。    如果你试图"引导诊断"-我的努力/经验(最可能远远超出你自己的能力)变得更加受人驱使-需要过多的时间-动力就会减弱。   (消失)   那么-这有什么意义?

    答案和合规性-标准 plaît……    阿尔利斯!

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


    如果我在同一代码上同时使用这两种代码、我将获得如下格式。



    日期和时间S V I F KW D


    2017年12月12日16:40:07 关闭000 0.0 00 0000关闭
    2017年12月12日16:40:12 关闭000 0.0 00 0000关闭
    2017年12月12日16:40:16 关闭000 0.0 00 0000关闭
    2017年12月12日16:40:21星期二 关闭000 0.0 00 0000关闭
    2017年12月12日16:40:25日星期二 关闭000 0.0 00 0000关闭
    2017年12月12日16:40:29日星期二 关闭000 0.0 00 0000关闭

    上述格式在我的代码中正常工作,但问题在于在写入数据5到8次后,它会复位,再次从第一条指令开始执行代码,并继续在 SD_CARD 中写入代码。
    请建议我如何在不使用休眠的情况下获取此格式???


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

    我们的沟通和协调失败-严重。
    你的"拒绝亲吻"和"未提供所需信息"中有20个帖子(现在)迫使我离开。   (其他混凝土墙...)
    祝您好运-当然(其他人)会"急于得到您的帮助..."

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

    因此、只有在您添加 SD 卡功能后才会出现重置问题? 以前从未发生过这种情况? 如果是、您需要开始查看。

    如 BP101所建议的、您可能需要查看 ResetCuse 寄存器的结果。 有一个 TivaWare 函数来读取它是 SysCtlResetCauseGet。 读出"Reset (重置)"发生后、存储该值。

    此外、如果一次添加多个模块并且出现错误、您应该(CB1尝试重复建议)一次只添加一个模块、而不是查看错误来自哪个模块。 然后、您可以启动更有指向的调查。

    此时、我不能提供太多关于您为什么会看到此问题的技术知识。 您需要自己做更多研究、如果您有更有用的发现(例如隔离外设或从 ResetC更加 寄存器进入)、我可以提供有关后续调试步骤的进一步反馈。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    海先生,


    我按照之前建议的 SysCtlResetCauseGet 检查了我的代码、如下所示。

    uint32_t 问题;

    问题= SysCtlResetCauseGet ();

    在调试代码时、我找到了变量"problem"、但它不显示任何值。

    我怀疑我的检查是否正确。如果有问题、请建议我回答。



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

    该代码块能否在复位发生后执行? 它被放置在哪里? 如何在复位后检查变量?

    请注意、上电复位(POR)将擦除复位原因、因此您需要确保不对器件进行下电上电。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    海先生,

    在调试过程中、我得到了软件复位原因。 我连接了快照。 我请求您找到它、并建议我如何解决该问题。

    谢谢、

    此致、

    Srinu。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许您应该删除闪存引导加载程序、直到您的复位问题得到解决。 很可能是它已经消失了、并发出了一条 SW 重置命令。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    按照海报 BP 和供应商的 Ralph 的指示-您(现在)确定了您的重复重置的(可能的)"来源"。

    我认为"建议"您至少运行3次或更多次(每次检查)的"测试程序"(导致此结果)、以确认"这"实际上是"唯一"的复位原因。

    这是否证明了"唯一"原因-您是否会审查 MCU 手册、然后论坛搜索框-在每种情况下都在寻找"软件复位说明/信息"-加强"您的"知识和能力?

    您发现并纠正此类(不需要的)重置的原因、将证明您对这里的许多人感兴趣-因此、这将是"完成此线程"的"理想方法"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

          我随机获得软件复位意味着如果我加载和调试代码、并使用调试器窗口(TM4C123G 开发板)检查其工作状态长达两分钟一次、软件复位再次发生、如果我运行代码、则运行时间长达一分钟、 大约需要3分钟、就像发生这种随机软件复位一样。

       我请求您向我建议如何删除闪存引导加载程序或任何解决此问题的最佳方法。 请将如何停止闪存引导加载程序的屏幕截图发送给我。

    我在实践中使用 TM4C123G 开发板。

    谢谢、

    此致、

    Srinu。  

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

    如果 应用程序加载到偏移量0x0 、则未安装 FBL。

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

    [引用 user="BP101"]在复位问题得到解决之前,也许应该删除闪存引导加载程序。[/quot]

    这似乎是一个"合理"的建议-并导致我返回页(通过所有3个论坛页面)、尝试发现"闪存引导加载程序"是否已安装。    我发现海报的"没有提到"使用或安装了"闪存引导加载程序"。

    为什么您认为安装并存在"闪存引导加载程序"?

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


    我无法理解随机发生此软件复位的原因。


    我认为在设置中断优先级时可能有一些错误。 可以有人检查一下并推荐我吗


    IntMasterEnable();

    IntPrioritySet (INT_TIMER0A、0x00);

    IntPrioritySet (INT_PWM0_0_TM4C123、0x10);

    IntPrioritySet (INT_PWM0_1_TM4C123、0x20);

    IntPrioritySet (INT_PWM0_2_TM4C123、0x30);

    IntPrioritySet (INT_ADC0SS0_TM4C123、0x40); ///for ADC

    IntPrioritySet (INT_TIMER1A、0x50); //用于 LCD 显示

    IntPrioritySet (INT_HIBERY_TM4C123、0x60); //用于休眠

    IntPrioritySet (FAULT_SysTick、0x70);//故障检查


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

    [引用 user="CB1_MOBIST"]为什么您认为安装并存在"闪存启动加载程序"?[/quot]

    应用 中可能存在 INT 0x2C 、会将 SW 复位置为 有效以加载 FBL。  应用 程序似乎具有 调用 FBL 的功能。

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

    复位 用户发布 的代码调用(boot.asm) ,应用程序启动处理程序。

    ;*此模块执行以下操作:
    ;* 1)分配栈并初始化栈指针
    ;* 2)调用自动初始化例程
    ;* 3)调用函数 main 来启动 C++程序
    ;* 4)调用标准退出例程 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其次、如果应用程序是硬件总线故障、则异常处理程序会捕获到无限 while 循环中、以供调试器检查代码。 除非看门狗计时器已配置为在驱动 NMI 异常的第一个超时时时复位 MCU。

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

    [引用 user="BP101"]

    CB1_MOBILE
    为什么您认为安装并存在"闪存引导加载程序"?

    应用 中可能存在 INT 0x2C 、会将 SW 复位置为 有效以加载 FBL。  应用 程序似乎具有 调用 FBL 的功能。  [/报价]

    当然、员工也不是(尚未)要雇用的"闪存启动加载程序"。

    然而-您"相信"安装了"闪存启动加载程序"且"正在运行"-似乎(仍然)不支持或不支持...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从未说过它只是为了检查它是否存在而在发挥作用。 调用 SW 复位的操作只有几个、其中一个是从应用程序发出 INT 0x2C 以调用 FBL。 另一个可能包括 Watchdong NMI 第1个超时事件。 想知道如果应用程序或(startup.ccs.c)中缺少 INTdefaultHandler()并且一个缺省中断源被触发、会发生什么情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不排除 ROM 引导加载程序可能会随机和错误地发出 SW 复位中断。 为了非法访问 ROM BL 地址空间、代码执行必须在 CPU 中处于接合状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    海先生,

    我请求您向我发送一个屏幕截图,说明如何停止软件停止或 CPU 停止。


    谢谢、
    此致、
    Srinu。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将代码加载到控制器板中、加电并使用16x2 LCD 检查结果。 我没有使用调试器来查看结果。 我刚给控制器上电并运行它、它的工作时间长达20分钟或更长时间、并且再次从主函数开始执行。

    请建议我如何解决此问题。 并向我发送一个屏幕截图以解决此问题。

    这会给我造成问题、如果问题得到解决、我的项目就会完成。

    请帮帮我。

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

    [引用 user="Srinu Vakada"]我请求您向我发送一个屏幕截图,说明如何停止软件停止或 CPU 停止。

    这是你的任务。 您必须找到您的问题。 我们不能。

    Robert

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

    您的"高级"在哪里-谁启动了此"泵项目"-然后"将其切换到您?"    为什么他/她"不"来帮助你?    (如果他/她不能或不会提供帮助、为什么要提及?)

    已多次建议您"添加最低限度的新函数"(即仅添加一个函数)、然后"重新运行代码"、并记下结果。     而且(始终)您会抵制-并且您的问题"拖拽"。    (您可能无法通过"您的方式"取得成功-当它持续失败时-(正如50个"后退/后退"会话一样- 这不是吗?)

    您已在您的计划中引入了"变量过多"-(当然)这使"发现"罪犯"成为"徒劳的练习!"

    KISS 是您的答案-在"最后工作代码"中添加个新的小元素(假设已在"隔离区"中放置)、然后运行。    在某种程度上-通过这种经过验证的(kiss)"小、单步执行方法"-您可能会发现"问题的发生位置!"    然后、我们或许能够提供帮助...

    这就是你的目标-不是吗?    "你的回合"是"应要求作出反应"(即停止指示),而不是要求少得多的"帮助艾滋病"----这几乎没有取得成功的机会!

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

    请提供一个屏幕截图、说明如何使 kiss 正常工作 、以便我们完成崩溃项目!

     CB1 建议 Kiss 是 真正的交易。   为什么不执行 baby 步骤 验证调试寄存器结果 、为了便于 kiss、请查看数据表文本。

    您是首席、而不是我们的论坛帮助者、他们在  充满 了漏咖啡杯的坑洼街道上燃烧了类似的午夜油小时。