基于freertos在开发板RT1052上枚举USB设备时无法触发中断

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

基于freertos在开发板RT1052上枚举USB设备时无法触发中断

4,108 Views
jiangshicong
Contributor III

开发板:NXP IMXRT1052-EVKB

我用nxp官方sdk里面的基于freertos的USB样例时,枚举USB设备正常。可是我把它移植到我自己的工程里面去,就枚举不正常。单步调试后发现中断是有进入,但是它始终没有进入:USB_OsaEventSet函数,
if ((interruptStatus & USBHS_USBSTS_UI_MASK) || (interruptStatus & USBHS_USBSTS_UEI_MASK)) /* USB interrupt or USB error interrupt */
        {
            USB_OsaEventSet(ehciInstance->taskEventHandle, EHCI_TASK_EVENT_TRANSACTION_DONE);
        }
这是为什么呢???
我的工程已经包含了freertos,lwip,fatfs,emwin,sdcard。
我反复看了官方的USB样例,发现没有配置USB的相关IO口,就初始化了寄存器,然后我也是把整个USB相关的文件都移植到我自己的工程里面,可是整合后就是枚举不成功。单步调试后发现就是上面所说的,没有进入USB_OsaEventSet函数,请问有人知道怎么解决吗???谢谢
Tags (1)
0 Kudos
7 Replies

3,593 Views
jiangshicong
Contributor III
进一步追踪这个问题发现如下现象:
#define m_data_start                   0x20000000
#define m_data_size                    0x00020000
把data地址设置在DTCM里面,USB枚举设备就正常。但是把它改成下面地址
#define m_data_start                   0x80000000
#define m_data_size                    0x01E00000
把data地址设置在SDRAM外部存储,USB枚举设备就不正常。这是为什么??
因为我要用到emwin,所以data就设置在SDRAM里面。
0 Kudos

3,593 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi Jiang:

This issue maybe related with cache configuration. I would suggest you try to disable cache to see whether it helps

Regards

Daniel

0 Kudos

3,593 Views
jiangshicong
Contributor III

Thank you,I'm already solved.

0 Kudos

3,593 Views
wandongli
Contributor I

解决的方法能共享一下吗 ?我也遇到这个问题。

0 Kudos

3,593 Views
jiangshicong
Contributor III

你好,重新分配一下存储器配置:如下

#define m_data_start     0x20000000
#define m_data_size      0x00020000

#define m_data2_start   0x20200000
#define m_data2_size   0x00040000

#define m_data3_start                   0x80000000
#define m_data3_size                    0x01E00000

就可以了。

0 Kudos

3,593 Views
jixiaohu
Contributor I

这个也这么配置,但还是提示

请求 USB 设备描述符失败。

能不能把scf配置文件发上来看下啊

另,

0 Kudos

3,593 Views
wandongli
Contributor I

除了这个的修改,还有宏定义需要修改。#define USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE (1U)

这个要修改的样子,时间有点长具体也忘记修改哪里了。

0 Kudos