ARM mbed
我测试了ARM mbed的USB CDC固件,但是无论是Windows还是Linux都偶尔抽疯,无法访问,或者出现休克假死的现象。甚至在MDKV4环境中自带的Demo程序也会出现此类现象。一度还得此类USB CDC固件无法在低版本Ubuntu和OpenWRT中使用的结论。
前一阵测试OpenWRT的时候,发现该固件会得到不同的错误码,包括-62/-71等,和总线时钟超时有关。所以总觉得和MCU内部的RCC配置有关联。
MDK V5
昨天,总算使用最新的STM32CubeMX和STM32F1_lib_1.6.1,在十分钟内,下载到MCU中,可以在Ubuntu和OpenWRT中可以正常驱动。
源码对比
ARM mbed的源码底层驱动依然来自STM,只不过版本和源码树结构存在较大差异。所以,需要仔细用心对比。实在不行,就把SX127X的驱动叠加在STM32CubeMX之上。
接下来,双路USB CDC可以作为另外的代码基础。
都忘记了当初为Freescale KL25Z开发USB DFU bootloader的经历了。