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.

[参考译文] TMS320F28388D:在 CM 内核上的 FTP 服务器应用程序中读取 USB 文件时出现硬故障错误 (0x1624)

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1631755/tms320f28388d-hard-fault-error-0x1624-during-usb-file-read-in-ftp-server-application-on-cm-core

器件型号: TMS320F28388D

尊敬的先生:

在此控制器中、我实现了具有 USB 存储访问权限的 FTP 服务器应用程序。 我要将 CSV 文件传输到客户端、其中 USB 在读取模式下运行、并f_read使用该函数访问该文件。

我遇到的问题是、在读取文件时、代码会运行一段时间、然后会卡住、最终导致硬故障错误。 系统将故障地址报告为 0x1624

以太网和 USB 功能均在 CM 内核内处理。

您能否帮助确定此问题的可能原因并建议解决方案?

谢谢、
Savan

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

    Savan

    硬故障 通常是由存储器访问违例引起的。  

     它可以由 tstack 溢出、未对齐的内存访问或中断优先级冲突来触发。  
    可能的修复  

    1.增加堆栈大小

    2. 确保传递到的缓冲区f_read为 4 字节对齐、因为 如果在未进行 4 字节对齐的地址上尝试 32 位加载/存储、CM 可以触发硬故障

    此致

    Siddharth

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

    我尝试增加堆栈大小,也我的缓冲区结构是  

    typedef 结构__attribute__((packed))

    uint32_t app_data_len;
    uint8_t app_queue_data[1460];
    uint32_t dummy;
    uint32_t dummy1;
    } App_Queue Data_t;

    这是缓冲区  APP_QUEUE_DATA[1460]数据、  我的栈大小是 4096。