搜索
bottom↓
回复: 3

求指点,USB虚拟读卡器的问题

[复制链接]

出0入8汤圆

发表于 2015-1-29 10:45:02 | 显示全部楼层 |阅读模式
本帖最后由 qqtfh 于 2015-1-29 10:57 编辑

RTT自带有USB组件,无奈资源有限,找不到大容量存储方面的参考例程。只好去移植ST USB lib了。附件已经实现了SPI SD Card的移植,并验证是可用了。但是ST USB lib移植不成功
第二次进入
void USB_LP_CAN1_RX0_IRQHandler(void)
{
        rt_interrupt_enter();
  USB_Istr();
        rt_interrupt_leave();
}
中断的时候,便不退出了。
求指点。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

 楼主| 发表于 2015-1-30 10:25:00 | 显示全部楼层
发现问题了
usb_conf.h中
#define IMR_MSK (CNTR_CTRM  | CNTR_WKUPM | CNTR_SUSPM | CNTR_ERRM  | CNTR_SOFM \
                 | CNTR_ESOFM | CNTR_RESETM )
对USB中断的定义
替换成
#define IMR_MSK (CNTR_CTRM  | CNTR_RESETM)
参考<<STM32中文参考手册-V1.0>>412页USB控制寄存器(USB_CNTR).
目前已经出现盘符,还有一些问题。

出0入8汤圆

 楼主| 发表于 2015-1-30 13:40:40 | 显示全部楼层
是问题太肤浅了么,大家都不屑于回答。

出0入8汤圆

 楼主| 发表于 2015-1-31 16:49:40 | 显示全部楼层




已经可以正常读取和写入了。
但是仍然有很多疑惑的地方。
运行msdDev->parent.read(&msdDev->parent,Memory_Offset/Mass_Block_Size[0],Readbuff,Transfer_Length/Mass_Block_Size[0]);的时候
result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);

finsh会提示,不允许在ISR中进行rt_mutex_take。
于是似,我把rt_spi_configure和MSD_take_owner中的rt_mutex_take与rt_mutex_release都注释掉,才可以正常识别。
有没其它办法代替rt_mutex?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 07:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表