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.

[参考译文] TM4C1290NCPDT:通过使用 TI RTOS、TM4C129DNCPDT 上 Hwi_switchFromBootStack () 处的 SYS/BIOS 崩溃

Guru**** 2773115 points

Other Parts Discussed in Thread: TM4C129DNCPDT, SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1614619/tm4c1290ncpdt-sys-bios-crash-at-hwi_switchfrombootstack-on-tm4c129dncpdt-whileusing-ti-rtos

器件型号: TM4C1290NCPDT
Thread 中讨论的其他器件: TM4C129DNCPDTSYSBIOS

我们正在尝试使用代码合成器 studio 在 TM4C129DNCPDT 控制器中调试 TI RTOS、当我们尝试调试它时、 它在主函 数 Hwi_switchFromBootStack 处崩溃  。它在 startAppbios () 函数之前退出、但一旦到达 startAppbios ()、在 startAppbios () 中;它正在执行所有 BIOS 的初始化、然后在 hwi_fc 文件崩溃、它会在 hwi.c 文件中到达 hfc。  
我们试图调试它在这一点上抛出错误。 崩溃。  startAppBIOS() 启动后、它将全部初始化并崩溃。 我们的 ram 是 256 KB 所以我们增加了栈大小和堆大小,我们也检查分配给每个任务的大小和理解的任务有足够的栈大小 ,但我们仍然无法找到为什么它崩溃,我需要有关这个主题的帮助。 然后,我评论任务在主要,也是崩溃在那一点。  
我们甚至评论说,系统在耳机提及点崩溃。 我们始终删除了 CCS Studio 属性、并将堆和栈大小设为 0。 我不希望它从配置文件的属性中获取。 我们需要帮助、以确定如何在调试模式下运行此驱动程序。         RTOS_Files.zip 、Firmware_Optimization .cfg 、 main.c、rtos_task.h 

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

    您好 Sarath、

    崩溃是仅在调试模式下发生、还是在调试之外发生?

    谢谢、

    -Eric Rentschler

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

    它是在调试模式下进行的。  我附加了链接器脚本。 e2e.ti.com/.../linker.cmd

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

    它仅在调试模式下发生。 我还附加了链接器脚本。  e2e.ti.com/.../linker.cmd 

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

    它是在调试模式下进行的。  我附加了链接器文件的内容、可在下面进行检查。  

      /*
     *请勿修改此文件;它是从模板自动生成的
     * ti.platforms.tiva 软件包中的 linkcmd.xdt 将被覆盖。
     */

    /*
     *在路径周围放置“",“,因为、因为没有此项、链接器
     *将“-"作为“作为减号运算符,而不是文件名字符。
     */


    -l“/home/sK/mainApp/Debug/configPkg/package/cfg/OptimizedCode_4_pem4f.oem4f
    -l“/home/sK // mainApp/sysbioss/sysbios.aem4f“ src
    -l“/home/sK/ti/bios_6_83_00_18/packages/ti/catalog/arm/cortexm4/tiva/ce/lib/Boot.aem4f
    -l“/home/sK/ti/bios_6_83_00_18/packages/ti/targets/arm/rtsarm/lib/ti.targets.arm.rtsarm.aem4f
    -l“/home/sK /ti/bios_6_83_00_18/packages/ti/targets/arm/rtsarm/lib/boot.aem4f
    -l“/home/sK/ti/bios_6_83_00_18/packages/ti/targets/arm/rtsarm/lib/auto_init.aem4f
    -l“/home/sK /xdctools_3_62_01_16_core/packages/xdC/ROV/runtime/lib/xdc.rov.runtime.aem4f“

    -retain=“*(XDC.meta)"</s>“

    /* C6x Elf 符号*/
    --symbol_map _TI_STACK_SIZE=__STACK_SIZE
    --symbol_map _TI_STACK_BASE=___STACK
    --symbol_map _stack=___stack


    -args 0x0
    -heap 0x0
    -stack 0x1800

    /*
     *链接器命令文件来自所有加载的软件包:
     */

    /* xdc.services.global 中的内容(空):*/

    /*来自 XDC 的内容(空):*/

    /*来自 xdc.corevers 的内容(空):*/

    /* XDC.ROV 中的内容(空):*/

    /* xdc.runtime 中的内容(空):*/

    /* xdc.rov.runtime 中的内容(空):*/

    /* XDC.SHELF 中的内容(空):*/

    /* xdc.services.spec 中的内容(空):*/

    /* xdc.services.intern.xsr 中的内容(空):*/

    /* xdc.services.intern.gen 中的内容(空):*/

    /* xdc.services.intern.cmd 中的内容(空):*/

    /* XDC.Bld 中的内容(空):*/

    /* ti.targets 中的内容(空):*/

    /* ti.targets.arm.elf 中的内容(空值):*/

    /* xdc.services.getset 中的内容(空):*/

    /* ti.targets.arm.rtsarm 中的内容(空):*/

    /* ti.sysbios.interfaces 中的内容(空):*/

    /* ti.sysbios.family 中的内容(空):*/

    /* ti.sysbios.family.arm (ti/sysbios/family/arm/linkcmd.xdt) 中的内容:*/

    /* ti.sysbios.rts 中的内容(空):*/

    /* xdc.runtime.knl 中的内容(空):*/

    /* ti.catalog.arm.peripherals.timers 中的内容(空):*/

    /* ti.catalog.arm.cortexm4 中的内容(空):*/

    /* ti.catalog 中的内容(空):*/

    /* ti.catalog.peripherals.hdvicp2 中的内容(空):*/

    /* xdc.platform 中的内容(空):*/

    /* xdc.cfg 中的内容(空):*/

    /* ti.catalog.arm.cortexm3 中的内容(空):*/

    /* ti.catalog.arm.cortexm4.tiva.ce 中的内容(空):*/

    /* ti.platforms.tiva 中的内容(空):*/

    /* ti.sysbios.hal 中的内容(空):*/

    /* ti.sysbios.family.arm.lm4 中的内容(空):*/

    /* ti.sysbios.family.arm.m3 中的内容 (ti/sysbios/family/arm/m3/linkcmd.xdt):*/
    -u _c_int00
    --保留“*(.resetVecs)
    -retain “*(.vecs)“
    TI_SYSBIOS_FAMILY_m3_Hwi_NVIC = 0xe000e000;

    /* ti.sysbios.KNL 中的内容(空):*/

    /* ti.sysbios 中的内容(空):*/

    /* ti.sysbios.utils 中的内容(空):*/

    /* ti.sysbios.gates 的内容(空):*/

    /* ti.sysbios.packs 中的内容(空):*/

    /* ti.sysbios.xdcruntime 中的内容(空):*/

    /* configPkg 中的内容(空):*/

    /* xdc.services.io 中的内容(空):*/

    /* ti.sysbios.family.c28 中的内容(空):*/



    /*
     *静态实例对象的符号别名
     */
    XDC_RUNTIME_Startup___EXECFXN__C = 1;
    XDC_RUNTIME_Startup__RESETFXN__C = 1;
    XDC_ROV_RUNTIME_MON_CHECKSUM = 1;
    XDC_ROV_RUNTIME_MON__WRITE = 1;


    很重要

      .bootVecs: type = DSECT
      .resetVecs:load > 0xc000
      .vecs:load > 0x20000000、type = noLoad



      xdc.meta:类型=复制
    }

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

    您好 Sarath、

    调试之外是否也会发生崩溃?

    谢谢、

    -Eric Rentschler

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

    是的,当我们尝试调试这个问题时  ,我们到达 Hwi_initStacks 然后,它在它到达内存 0xFFFF FFFC 后崩溃

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

    您好 Sarath、

    这种 Hwi_initStacks 方法有什么作用?  如果它在到达存储器 0xFFFF FFFC 后崩溃、则我怀疑您正在创建堆栈溢出。

    谢谢、

    -Eric Rentschler

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

    我们在 TIRTOS 中有一个任务、其中有一个函数。 如果我们在该函数中添加一行(只是将一些数据复制到缓冲区中) 、当我们认为代码正常时、我们会 在该函数中计算和设置 DAC。 包含一些复杂计算的 DAC。  失调电压         “ usprintf (AdcvalueBuff、“\NPR D=%d %d “、abc、efg);“一切正常。 如果我们消除意外行为 、我们如何解决这一问题。 我们检查了栈使用情况、所有内容都仅限量程。 上面附加的.cfg 文件中、您可以检查配置和堆栈分配。 这是一项高优先级任务。 我们正在使用 Segger J liink 进行代码刷新,它是否会产生任何问题? 我们在这个数据分配之后调用一个与 i2c 相关的函数。 当我们使用该数据分配功能时、文本段值也会发生变化、这是否会导致此问题? 这条线是在函数的开始。 请将其视为一个高度优先的问题、并向我们提供必要的指示。

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

    您好 Sarath、  

    您是否对编译器使用任何优化? 这可能会改变行为。

    谢谢、

    -Eric Rentschler

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

    是的、 我们正在 CCS Studio 中使用编译器优化。 请检查我所附的图像。  

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

    您好 Sarath、  

    请将优化拖放到 0、然后查看这是否修复了行为更改。

    谢谢、

    -Eric Rentschler