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.

[参考译文] LAUNCHXL-F28379D:_system_post_cinit () 0x3FE493 (发生错误:解析前一帧 FP 失败)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194614/launchxl-f28379d-_system_post_cinit-0x3fe493-an-error-occurred-failed-to-parse-the-previous-frame-fp

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件: BOOSTXL-DRV8323RS

您好!  

我使用的是 LAUNCHXL-F28379D。

我想将程序嵌入到闪存中。 编译错误代码表示存储器不适合.cinit。

因此我修改了.text 的存储器位置(它是长的、并且最初位于具有.cinit 的 FLASHB 中)

此链接是我之前的常见问题解答。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1192717/launchxl-f28379d-cinit-flash-memory-issue-error-code-10099-d/4501093#4501093

然后编译器错误代码消失。 但是、当我尝试在器件上播放时、调试窗口中出现了一个新的错误代码。

我不使用看门狗

2.我的项目是 cplusplus 项目。(我想这应该是问题。)

3.我不知道错误的来源是什么(内存位置或我的项目崩溃)

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

    有关更多详细信息、

    堆栈使用情况有3个黄色警报。

    它说"进行间接调用"。

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

    你好,Jungwoo,

    您是否尝试在项目属性中增大堆栈大小? 我将了解团队中的其他人是否也有一些建议。

    最棒的

    Kevin

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

    尊敬的 Kevin:

    我从未尝试过增大堆栈大小!

    我将尝试并回复它。

    谢谢!!!

    此致、

    Jungwoo

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

    我在链接器 cmd 中增加了栈大小。

    我访问了 SECTIONS、并使用更大的存储器修改了.stack 位置。(我合并了 RAM 段。 Ex) RAMGS0_1_2:origin = 0x00C000、length = 0x003000)

    但在调试窗口中出现了相同的错误、并且堆栈使用中出现了黄色警报。

    在"Stack Usage"中、可以看到

    [引用 userid="548906" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194614/launchxl-f28379d-_system_post_cinit-0x3fe493-an-error-occurred-failed-to-parse-the-previous-frame-fp/4502963 #4502963"]"进行间接调用"[/quot]

     240字节中的240。

    是否可以修改最大包含大小(240字节)?

    我需要更多8字节

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

    您是否在堆栈上有很多变量。 您可能希望将它们放在单独的存储器中吗?

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

    你好 Santosh

    是的、我只希望项目正常运行。

    如果可能、我会很高兴。

    此致,Jungwoo

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

    您是否能够共享您的代码? 我们可以看一下吗?  

    您可能需要将变量放置在不同 存储器部分的单独存储器中

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

    当然!

    这是一个很长的项目。

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

    我没有在堆栈中看到过多的变量。 它是否有任何代码阶段在工作?

    您能否单步执行代码并将其缩小? 可以对一些函数进行注释。

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

    您好、Santosh

    main.cpp 第58行:

    PositionSensorAM5147 SPI (16384、0.0、NPP);

    我修复了一个错误、因此我想它至少可以在 main.cpp 中的第58行工作

    有关我的代码的更多详细信息、请参阅以下评论。

    此项目涉及 BLDC 电机控制。(Launchxl-f28379d +电机驱动器(TI 的 Boostxl-DRV8323RS)+编码器(AMS 的 AS5147P)

    我的代码摘要:

    ------------------------

    1.主要功能

    配置电机驱动器的模式和初始化参数(它与 SPI 通信)(函数位于 DRVjw.h 中)

    2.定时器 ISR 启动(无限循环)

    SPI 通信(接收编码器角度值)+ADC (timerISR 中的 ADC 命令、位于 main.cpp 中)(测量电机驱动器外部引脚的电流值)>

    计算(foc.h)>

    ePWM (修改 foc.h 中 ePWM、换向()函数的比较值)>返回 ADC

    --------------------------

    3. CAN 通信中断

    命令(位置、速度、增益和扭矩命令)接收

    4.串行通信中断

    命令(模式命令)接收

    ------------------------------------

     感谢您注意到这不是变量内存问题、我正在搜索另一个问题...  

    此致、

    Jungwoo

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

    您好!

    我不熟悉您的代码、因此我无法评论。 但您的调试方向正确、您应该能够将其缩小。

    此致、Santosh

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

    您好、Santosh

    感谢您引导我找到正确的方向!

    我必须使我的代码变得简单、并找出问题所在。

    谢谢!

    此致、

    Jungwoo

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

    我修复了错误。

    问题是我创建了一个返回回收站值的函数(我只声明了变量、从未初始化)

    谢谢你