======我的项目====== 31 Aug 2019 : 我的第一个项目涉及<[[wp>ARM_architecture|ARM]], [[wp>ARM_Cortex-M|Cortex-M3]], [[wp>STM32|STM32]], [[https://arm-software.github.io/CMSIS_5/DAP/html/index.html|CMSIS-DAP]], [[wp>JTAG|JTAG]] probe, [[wp>GNU_Debugger|Debugger]], [[http://www.openocd.org|OpenOCD]]> * [[cmsis-dap|STM32F103C8芯片上实现CMSIS-DAP调试器]] [[cmsis-dap|{{common:continue.ico?16x16}}]] 如果你打算在一些现代化的单片机上开发嵌入式软件,你一定需要一个JTAG调试器连接你所用的芯片和你的调试软件。对于ARM单片机来说,[[https://www.segger.com/products/debug-probes/j-link/|J-Link]]是一个很知名的设备,可以连接到主机的USB端口上为你的调试软件提供JTAG协议通信。CMSIS-DAP是一个类似的设备,但它是由ARM公司自己设计并发布的。与J-Link的主要区别在于CMSIS-DAP是完全开源的而J-Link是商用产品[[:zh:usb_express:cmsis-dap|[...read more]]] ---- 02 Oct 2019 : 我的第二个项目涉及 <[[wp>ARM_architecture|ARM]], [[wp>ARM_Cortex-M|Cortex-M3]], [[wp>STM32|STM32]], [[wp>USB_mass_storage_device_class|USB mass storage device]], [[wp>CD-ROM|CD-ROM]], [[wp>ISO_9660|ISO9660]], [[https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi|SetupAPI]]> * [[usb-cdrom|在STM32F103C8芯片上模拟一个USB CDROM]] [[usb-cdrom|{{common:continue.ico?16x16}}]] [[https://www.st.com/content/st_com/en.html|STMicroelectronics公司]]给他们流行的STM32芯片提供的源代码中包含了一个USB mass storage device class示例. 我对这个示例源码做了一些增强,用以模拟一个微型的USB-CDROM。我只接了一颗512KB spi flash芯片做为光盘盘片并且向其中写入了一个很小的ISO9660映像文件。这就是为什么我称其为“微型”CDROM。[[usb-cdrom|[...read more]]] ---- 10 Sep 2020 : 我的第三个项目涉及 <[[wp>USB|USB]], [[wp>Human_interface_device|HID]], [[https://www.microchip.com/design-centers/16-bit|Microchip 16bit MCU & DSC]], [[https://www.obdev.at/products/vusb/index.html|V-USB]], [[https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi|SetupAPI]], C & Assembly language> * [[ya-vusb|一个基于固件的软USB设备]] [[ya-vusb|{{common:continue.ico?16x16}}]] 我们能在一个很简单的没有任何USB接口的MCU上实现一个USB设备吗?在这个项目中我会给你一个肯定的答案。事实上多年以前就有一个名为[[https://www.obdev.at/products/vusb/powerswitch.html|PowerSwitch]]的项目发布在互联网上。其作者用了一个[[https://www.microchip.com/design-centers/8-bit/avr-mcus/device-selection|AVR]]芯片制作了一个USB设备。这几天我创建了一个类似的项目,在另一种MCU上实现了另一种USB设备。[[ya-vusb|...read more]]