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.

[参考译文] RTOS/EK-TM4C1294XL:Hwi 已定义、EPSR 和指令组合无效

Guru**** 2463330 points
Other Parts Discussed in Thread: CC3100, SYSBIOS, EK-TM4C1294XL, TRF7970A

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/650293/rtos-ek-tm4c1294xl-hwi-already-defined-invalid-epsr-and-instruction-combination

器件型号:EK-TM4C1294XL
主题中讨论的其他部件:CC3100SYSBIOSTRF7970A

工具/软件:TI-RTOS

您好!

在完成 本文中提到的问题后、我遇到了另一个问题、我不确定如何进行故障排除。

我正在运行 CC3100 http 客户端演示、该演示已集成到我自己的应用程序中。

当应用程序启动时、我会收到警告"ti.sysbios.family.arm.m3/Hwi:line 143:e_alreadyDefined:Hwi already defined:intro#88"。

以后,当 http 客户端尝试发布到 HTTP 服务器时,应用程序会崩溃,并出现以下错误:

您是否有任何关于达到此问题底部的提示? 我怀疑 Hwi 的重新定义可能与此相关、但我不确定如何解决此问题!

提前感谢您的帮助!

谢谢、

Tim

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

    愚蠢的问题、我正在使用 EK-TM4C1294XL、我认为它具有 Cortex M4。 这是否意味 着 ti.sysbios.family.arm.m3错误、而  ti.sysbios.family.arm.M4应该改为使用?

    如果有问题,下面是一组来自崩溃的更多屏幕截图:

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

    让我们首先解析重复的 Hwi。 M3是正确的名称。 我们从 Stellaris LM3器件开始、使用"m3"名称、然后我们有点被它卡住了。。。hindsight 为20/20:(

    感谢您发布 ROV 快照。 谁将 GPIOM_intHandler 插入为 Hwi 函数? 如果是您、您是否尝试执行两次? 您能否确认使用 Hwi 模块插入中断、而不是 driverlib 中断模块。 它们之间的相互作用并不好。

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

    您好 Todd、

    感谢您的回复。

    我将使用来自 CC3100 http 客户端和 TRF7970A Wifi NFC 示例的示例代码。

    如果我搜索 GPIOM_intHandler、我会在 CC3100_board.h Debug/configPkgcfg/app_pem4f.c 中找到它


     

    我怀疑我在项目属性中选择了不正确的硬件、或者我遇到了一些基本配置问题。

    考虑到这一点、我确切的硬件是 具有 WIFI Booster Pack (CC3100)和 NFC Booster Pack (TRF7970)的 EK-TM4C1294XL 板。

    在工程属性中、工程配置中与 EK-TM4C1294XL 最接近的部分如下所示。 无论我选择哪三个接近匹配项、"复制 twi"和崩溃仍然会发生。

    其他可能很重要的内容如下、您能否确认看起来是否正常?

    感谢您迄今的帮助、如果我取得任何进展、我将继续进行故障排除并发布更新。

    谢谢、

    Tim

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

    您是否已将其投入使用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不幸的是,我还没有遇到崩溃问题。 我怀疑问题可能是由于我选择的硬件变体造成的,您能否在我的上一个帖子中确认我使用的是 corrrect 吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Tim Roadley)]不幸的是,我还没有遇到崩溃问题。 我怀疑问题可能是由于我选择的硬件变体造成的,您能否在我的上一篇文章中确认我正在使用 corrrect 1?

    该变体更与 MCU 的闪存大小相关。 Todd 提到 M3模块 HWI 实例处理程序在使用 Tivaware 时播放效果不佳。  您可能需要 将 (startup_ccs.c)中断弃用到 M3 HWI 模块中、 并从项目构建中删除。   

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

    我们禁用 此代码 、因为  没有 WiFi 模块附加到 booster 头、 编译器发出警告等...  

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

    如果 proveWiFiCC3X00Lib 设置为 false、我会感到惊讶。 我的硬件就是 这个 、我正在运行的项目就是 这个、它都可以工作(包括 wifi)。

    当我尝试使用 SDK 中的 http 客户端代码增强此项目时、问题就会开始出现。 我现在遇到了上面的路径中描述的'uplicate hwi'错误、当我尝试发布任何内容时、应用程序现在崩溃、这也是上面描述的。

    在哪里可以找到您在上面的屏幕截图中显示的 mwConfig? 在 我的项目中找不到对 provideWiFiCC3X00Lib 的任何引用。

    提前感谢您的帮助!

    谢谢、

    Tim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何将 startup_ccs.c 中断弃用到 M3 HWI 模块? 我在我的项目中找不到这个文件(正如我提到过的、这个文件基于来自这里的 Tiva_WIFI_NFC_ap 示例代码项目: www.ti.com/.../tidcav8

    这是在 EK_TM4C1294XL.h、EK_TM4C1294XL.c 中还是在其他地方完成?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    未收到此主题的电子邮件~

    您认为这是一个您厌倦了迁移到 RTOS 的 Tivaware WiFi 示例。 如果是 RTOS 以其开头、则它不会有启动中断向量。 在这种情况下、您的所有硬件中断 都可能 在 HWI 模块中注册。

    RTOS WiFi 模块 发布了多 个编译器警告、因此我将其设置为 false、这样它将停止加载模块标头。 不确定您的 WiFi 代码 使用的是相同的库、但值得一看。

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

    啊、好的、老实说、我对这些东西有点不深!

    我会在哪里停止 RTOS WiFi 模块加载模块头?

    感谢您的耐心!

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我需要在 EK_TM4C1294XL.c 中注释以下内容、因为现在处理的是 CC3100中间件。

    GPIO_PinConfig gpioPinConfigs[]={
    /*输入引脚*/
    /* EK_TM4C1294XL_USR_SW1 */
    GPIOTIVA_PJ_0 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_NONE、
    /* EK_TM4C1294XL_USR_SW2 */
    GPIOTIVA_PJ_1 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_NONE、
    /* TRF7970A IRQ (上升沿)*/
    GPIOTIVA_PC_7 | GPIO_CFG_INPUT| GPIO_CFG_IN_INT_INT_RISING、
    /* CC3100 IRQ (上升沿)*/
    //GPIOTIVA_PM_7 | GPIO_CFG_IN_INT_RISING |//这会导致 ti.sysbios.family.arm.m3/Hwi:第143行:e_alreadyDefined:Hwi 已定义:INTR# 88

    /*输出引脚*/
    /* EK_TM4C1294XL_USR_D1 */
    GPIOTIVA_PN_1 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* EK_TM4C1294XL_USR_D2 */
    GPIOTIVA_PN_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* EK_TM4C1294XL_USR_D3 */
    GPIOTIVA_PF_4 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* EK_TM4C1294XL_USR_D4 */
    GPIOTIVA_PF_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* TRF7970A EN (高电平有效)*/
    GPIOTIVA_PB_3 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_HIGH、
    /* TRF7970A CS (低电平有效)*/
    GPIOTIVA_PB_2 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_HIGH、
    /* CC3100 EN (高电平有效)*/
    //GPIOTIVA_PD_4 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* CC3100 CS (低电平有效)*/
    //GPIOTIVA_PP_5 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_HIGH、
    };


    此外、还需要更新 EK_TM4C1294XL.h:

    typedef 枚举 EK_TM4C1294XL_GPIOName{
    EK_TM4C1294XL_USR_SW1 = 0、
    EK_TM4C1294XL_USR_SW2、
    EK_TM4C1294XL_TRF7970A_IRQ、
    //EK_TM4C1294XL_CC3100_IRQ、
    EK_TM4C1294XL_D1、
    EK_TM4C1294XL_D2、
    EK_TM4C1294XL_D3、
    EK_TM4C1294XL_D4、
    EK_TM4C1294XL_TRF7970A_EN、
    EK_TM4C1294XL_TRF7970A_CS、
    ///EK_TM4C1294XL_CC3100_EN、
    ///EK_TM4C1294XL_CC3100_CS、

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

    因此、TI-RTOS 在    您的 WiFi 示例 配置的基础上加载3100 WiFi 中间件、 这是可疑的几篇文章。

    很高兴看到您通过  这项努力中的认真调查工作使其发挥作用。

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

    认为您可能无意中发现了 RTOS 的新问题(ti_mw_Config.provideWiFiCC3X00Lib = false;)。 CCS 链接器仍然尝试查找符号(如下) EK_TM4C1294XL.C. 回想一下、编译器可能尝试在早期版本 RTOS 2.16.0.08中找到多个 WiFi3100符号。  RTOS 配置文件将会超过 STOP Symbol 错误 、但 在周末和今天发现的情况下、不再具有任何控制权。

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

    请查看本文、这是我对该问题的解决方案进行全面记录的地方: 请注意、我已启用中间件 ti_mw_Config.provideWiFiCC3X00Lib = true;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    注意:我的 initWiFi 代码正常工作、您还需要在 Board.h 中选择正确的 SPI、如上面的文章中所述。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我发现您终于在其他线程中修改了 GPIO SPI 端口、但当尝试通过 RTOS Config (ti.MW)禁用 WiFi 库时、它无法这样做。 这一点根本不好。 因此、您实际上最终禁用了 WiFiCC3100示例 GPIO/SPI 配置、这与您先前尝试的情况稍有不同。

    BTW:在 EK_TM4C1294XL.c 中,如果您修改了 BP2的 SPI Data0/1端口,我看不到上面的帖子,这可能会给您带来麻烦。 WiFiCC3100模块似乎没有从(ti.MW)库获取 SPI 配置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    啊、我看到、

    查看随附的文件、希望能让我更清楚地解决此问题。

    • Board.h
      • Board_WIFI_SPI 更新 为 EK_TM4C1294XL_SPI3
    • EM_TM4C1294XL.h
      • 更新  EK_TM4C1294XL_GPIOName 以排除对 CC3100的引用
    • EM_TM4C1294XL.c
      • 将  wiCC3100HWAttrs 更新为插槽2
      • 将  EK_TM4C1294XL_initWiFi 更新到插槽2
    • app.cfg
      • 更新  mwConfig.provideWiFiCC3X00Lib = true;

    我能问您为什么不希望中间件处理 CC3100吗?

    e2e.ti.com/.../Move_5F00_CC3100_5F00_to_5F00_Slot2.zip

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

    [报价用户="Tim Roadley"]我能否问您为什么不希望中间件处理 CC3100

    我也同意您 的非 RTOS 项目 WiFi GPIO 配置与 EK_TM4C1294XL.c HWI 冲突。 这 似乎 是 您最初发布 的 GPIO 配置问题、似乎没有从上面的 RTOS 平台复制。  似乎 错过 了先前对 使用 BP2与 BP1的需求、但这实际上是否最终导致了 HWI 问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    同一 WiFi 问题的多个线程导致我的部分混淆。