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.

[参考译文] TMS570……UINT32 NT 对齐异常

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1305648/tms570-uint32-nt-aligned-exception

器件型号:TMS570LS3137

您好  

在一个压缩结构体转换后、我有一个 uint32变量  

内存位置、如图片

当我尝试使用该变量时、执行过程会创建一个异常、  

在 PC=0x10时通过调用复位。

我认为有一个选项来解决这个例外...

谢谢

法比奥

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

    尊敬的 Fabio:

    您能否说明结构和变量声明以及您是如何使用的?

    请粘贴您的代码?

    --
    谢谢。此致、
    Jagadish。

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

    谢谢

    iniminated 结构是

    PACK_STRUCT_BEGIN
    结构 igmp_msg{
    PACK_STRUCT_FIELD (u8_t igmp_msgtype);
    PACK_STRUCT_FIELD (u8_t IGMP_maxRESP);
    PACK_STRUCT_FIELD (u16_t IGMP_CHECKSUM);
    PACK_STRUCT_FIELD (ip_addr_p_t igmp_group_address);
    } PACK_STRUCT_STRUCT;
    电池组结构结束

    该字段会创建例外  IGMP_GROUP_ADDRESS、

    PACK_STRUCT_BEGIN
    结构 ip_addr_packed{
    PACK_STRUCT_FIELD (u32_t addr);
    } PACK_STRUCT_STRUCT;
    电池组结构结束

    声明  

    struct igmp_msg*  igmp ;

    当您尝试检查 addr 值

    如果(0!=igmp -> igmp_group_address.addr)

    执行崩溃

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

    尊敬的 Fabio:

    首先,对不起延误,我休假了一个星期。

    我仍然无法完全理解您的代码。 如果可能、您能否创建一个最简单的工程并将其共享给我、以便我在结束时触发和调试问题。

    --
    谢谢。此致、
    Jagadish。

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

    您好

    这段代码来自 GitHub 上的 lwip 栈、且包含文件为 igmp.c  

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

    您好!

    检查此代码时、它将从编译中排除。

    我不知道您是如何启用编译的、也不知道您是如何添加变量的。

    因此、如果可能、请共享一个代码、该代码对我而言有助于轻松进行调试。

    甚至您也可以通过私人消息发送。

    --
    谢谢。此致、
    Jagadish。

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

    感谢您的努力  Jagadish

    lwip 堆栈是自定义在我的大项目,它是不是很容易得出一部分...

    但我可以告诉您的是、在我的 igmp.c 中有一个 include、

    /*
    -------------------------------------------------------
    ---------------- IGMP 选项-------------------------------------------------------
    -------------------------------------------------------
    */
    /**
    * LWIP_IGMP=1:打开 IGMP 模块
    */
    #ifndef LWIP_IGMP
    #define LWIP_IGMP 1
    #endif

    从而使部件能够报废、

    谢谢

    法比奥

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

    感谢 Fabio、我现在将尝试。

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

    尊敬的 Fabio:

    对于延迟、很抱歉、我仍在尝试重现此问题、但尚未成功。

    --
    谢谢。此致、
    Jagadish。

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

    好吧,不用担心  

    谢谢

    法比奥

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

    对不起,我被其他问题困扰了。 我明天肯定会解决这一问题。

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

    尊敬的 Fabio:

    e2e.ti.com/.../4527.Ethernet_5F00_Bootlader_5F00_RM57.zip

    在上面的项目中、我成功启用了 IGMP 模块

    但现在我无法创建您提到的异常、您能否根据您正在谈论的问题修改中的上述项目?

    --
    谢谢。此致、
    Jagadish。

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

     Jagadish、您好!

    对不起延迟...老实说、如果收到 IGMP 消息、我没有进行任何修改、我的应用程序崩溃。

    我做了一个补丁用 memcpy (在一个新的结构),即使是一个铸造...

    非常感谢

    法比奥