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.

DM365 U盘与SD卡之间切换的问题



我使用的主芯片是DM365,内核是2.6.18,dvsdk是2.10.01.18。硬件上我的USB线只给出了USB线中的D-,D+两根线。我现在能够手动切换SD卡存储模式(可以存储数据到SD卡中)和U盘模式(DM365不能存数据到SD卡,只能PC当U盘读写数据),方式如下:

SD卡模式:

rmmod g_file_storage.ko
rmmod musb_hdrc.ko
sync
mount -t vfat /dev/mmcblk0p1 /mnt

U盘模式:

umont /mnt/
insmod musb_hdrc.ko
insmod g_file_storge.ko file=/dev/mmcblk0o1 removable=1 stall =0

上面功能我通过手动切换,功能都正常。但我想知道的是,能否我的USB线插上电脑后,DM365系统能自动知道USB线已插到PC上,然后我在程序中来自动用上面的命令来切换两种模式。

不知有没有人知道怎么解决,谢谢!

  • Zhou cheng,

    DM36x作为usb device接入PC后,DM36x上的Linux驱动里面会有相应的相应,你的应用可以利用这个相应来触发其他的操作。

  • 非常感谢您的回答。

    我的问题的关键是:当SD卡作为DM365的存储设备时,DM365可以读写SD卡, 这时USB口通过线缆连接PC机,不知道用什么方法让DM365的linux系统知道已连接PC机,然后程序开始转换成U盘模式。

    但是在DM365的USB口已经连接PC机的情况下,已经是U盘模式时,通过windows的安全取消U盘的操作之后,DM365的linux系统是能够知道已取消U盘模式,USB线缆即将拔出。

    =================================

    DM36x作为usb device接入PC后,DM36x上的Linux驱动里面会有相应的相应,你的应用可以利用这个相应来触发其他的操作。

    ----- 这里,如果已经切换为USB device,即SD卡用U盘使用,插入PC机时,linux系统是知道的。这点我明白。我的使用方式是,假如我的DM365是一个照像机,当SD卡当作DM365的存储介质用时,它可能用于存储图像,视频等,存完之后,这时我插上USB线连接电脑,这时电脑需要能自动认成U盘,然后拷贝图像到电脑。这个过程就需要当连接电脑时,DM365 linux 系统知道已经连接电脑,然后切换成U盘(切换U盘的命令上面已经列出)。    另外,电脑上安全删除U盘之后DM365 linux系统自动检测已经和电脑断开,自动切换成SD卡模式,然后可以继续拍图像。(DM365读写SD卡和电脑读写SD的U盘不能同时进行)

  • Zhou Cheng,

    你的USB驱动是否配置的usb device only ?

  • 我相当于是mount -t vfat /dev/mmcblk0p1 /mnt ,在SD卡状态时,想知道什么时候USB插入电脑,然后切换到

    umont /mnt/
    insmod musb_hdrc.ko
    insmod g_file_storge.ko file=/dev/mmcblk0o1 removable=1 stall =0

    切换为U盘.

    ==========================================================================

    http://e2e.ti.com/support/embedded/linux/f/354/t/117319

    这个帖子的问题和我的类似。

    ==========================================================================

    我把我的linux内核关于USB的配置贴出吧。