接上文,USB已经正常使用,但是怎么自定义USB的相关描述,这自然是跟USB底层相关。MF的移植目前还没有多少的教程,大部分都是阅读MF的源码来摸索,这里用到Source Insight这个强大的工具来托管整个MF的源码,以便检索代码中的关键字。这里用设设备名iMXS_a7e70ea2中的a7e70ea2做为关键词,检索出来下面的文件都包含关键词。
再查TinyCLR.proj文件
<ItemGroup>
<RequiredProjects Include="$(SPOCLIENT)\DeviceCode\Drivers\Stubs\USB_Config\dotNetMF.proj" />
<DriverLibs Include="usb_pal_config_stub.$(LIB_EXT)" />
</ItemGroup>
就可以定位到MF的USB配置文件。复制USB_Config到自己的Solutions的DeviceCode下,修改TinyCLR.proj文件中usb_config_stub的编译链接地址,还有USB_Config下的dotNetMF.proj文件,这样只要修改自己Solutions下的文件。打开usb_config_stub.cpp文件,
就可以看到之前电脑识别出来的描述字符窜,开动剪刀手开始修改
这里可以看到VENDOR_ID和PRODUCT_ID跟MFUSB.inf中对应上,所以驱动可以直接用。
修改下面的字符窜
保存后重新编译MF,下载固件到目标板。再修改MFUSB.inf的DeviceDesc与底层的对应。重新安装目标板的USB驱动。在设备管理器中就可以看到修改后DeviceDesc。
用MFDeploy软件跟目标板通信,一切正常,可以看到设备名已经显示我自己定义的,连接USB也可以接收到MF启动的DEBUG信息,终于可以把串口给抛弃了。
MFDeploy正常,用VS部署C#代码自然没有问题,按F5调试就可以看到目标板的LED灯开始闪烁。
文章评论(0条评论)
登录后参与讨论