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.

[参考译文] CC3301MOD:需要例行程序崩溃的信息"FwEvent_IRQ_HANDLER"和"init_device_quot;

Guru**** 2837190 points

Other Parts Discussed in Thread: CC3301

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1629347/cc3301mod-require-information-for-program-crash-on-routine-fwevent_irq_handler-and-init_device

器件型号: CC3301MOD
Thread 中讨论的其他器件: CC3301

大家好!

我们移植了适用于 CC3301 的 TI SDK STM32F412ZG。

SDK 使用免费的 RTOS 版本 10.4.3、我们的代码库使用 7.0.1

在执行代码时、我们观察到代码会在以下例程上蠕变。

1)“ FwEvent_IRQ_HANDLER “FW_EVENT_IF.c"中“中的“

  • 在此例程中、程序在执行“ trnspt_RequestSchedule (pFwEvent->uContextId、true)“

2)“int32_t INIT_DEVICE (uint32_t 命令 EventsSizeBTL、uint32_t 命令 EventsSize)“  

  • 内部 IT 呼叫“ CMD_Send “、在内部调用“ trnspt_RequestSchedule (cmdCB->clientID, 0);“

我们的疑问:

1)“init_device"在“在内部处理“ctrlCmd Fw_Container Download “、“ctrlCmd Fw_Download IniParams“等  

  • 我们理解在移植到 STM32 时、我们需要在不做任何更改的情况下使用此函数。 PLZ 确认
  • 请提供有关此功能处理的各种功能的一些信息。

2) 程序在“trnspt_RequestSchedule"上“上崩溃的原因可能是什么。

  • 内部 使用“OSI_SyncObjSignalFromISR",“,"OSI_SyncObjSignal"、"OSI_SyncObjSignal"和“和"pTransport->aClientPending[uClientId]"“"pTransport->aClientPending[uClientId]"的“的"trnspt_RequestSchedule"“"trnspt_RequestSchedule"。“。</s>“  
  •  OSI_SyncObjSignalFromISR“、“OSI_SyncObjSignal"函“函数到底在做什么?何时会崩溃?
  • “osi_freertos.c"的“的此例程部分。 在移植到 STM32 时、我们是否需要处理任何点?
  • 我们发现它在 Free RTOS 的以下例程上崩溃。
  • 它是否与 Free RTOS 版本有任何关系、我们使用的是 7.0.1 而不是 10.4.3

谢谢...

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

    您好、

    1. 此函数逐个块执行、并将 RAM 引导加载程序、固件和 INI 文件下载到芯片中。 一般情况下、您不必触摸它们、因为它们与平台/操作系统无关。 也许 STM 的配置方式是让存储器更改顺序、例如字节序
    2. 有一个主要任务是传输任务。 一些客户端(通过 trnspt_RegisterClient)注册此任务、当他们希望获得服务时、他们只需请求一个计划。 其中一些客户端是事件任务、命令任务、TX 和计时器。 因此,在您的情况下,它会通过  trnspt_RequestSchedule() 从 trasport 线程请求一个调度,该调度应到达传输任务。 在实现中、为了在任务之间发出信号(从而使中断上下文保持较短)、我们使用信号对象。 此信号在传输任务上等待、特别是在 trnspt_Task() 的 while 循环中。 然后、任务调用在 init 期间注册的回调函数。 这也不是您需要移植的东西、但您需要确保在您的操作系统中有信标、信号、队列等 调整在 OSI_freertos.c 文件中完成。 也许 FreeRTOS 版本太旧、我不确定。

    Shlomi