Estoy intentando conectarme recientemente a programar microcontroladores STM32 bajo macOS, y utilicé mi interfaz compatible con CMSIS-DAP para flashear el microcontrolador.
Normalmente, una interfaz CMSIS-DAP aparecería como un dispositivo compuesto USB: contiene un dispositivo HID que se utiliza para acceder al puerto de depuración en STM32, y otro como puerto serial USB CDC ACM (desde el cual puedes acceder a un puerto serial físico en la interfaz).
Bajo macOS, se supone que los puertos seriales de CDC se reconocen como /dev/tty.usbmodemXXX
, pero no aparecerían en mi Mac en absoluto. Más tarde descubrí que en realidad se reconocía como un módem de marcación (en la pestaña de Red de las preferencias del sistema):
Por supuesto, no me gustó lo que hizo macOS, así que intenté eliminar el dispositivo de la pestaña de Red y elegí "No" cuando me preguntó si quería que volviera a aparecer la próxima vez que lo enchufara, con la esperanza de que me permitiera acceder al dispositivo de puerto serial crudo cuando los servicios de red no intentaban ocuparlo, y no funcionó. Los dispositivos de puerto serial siguen sin aparecer. Más tarde descubrí que Apple no dejó ninguna forma de deshacer eso, por lo que no puedo restaurar mi computadora a cómo se comportaba al principio.
Del resultado de ioreg
(después de eliminarlo de la red e investigar un poco más sobre cómo mostrar la jerarquía de dispositivos de macOS) puedo ver que el controlador CDC ACM está recogiendo la parte del puerto serial CDC del dispositivo compuesto, pero aparentemente IOSerialBSDClient
no está presente, lo que significa que, por supuesto, el puerto serial no está disponible.
| | | | | +-o USB2.1 Hub@00100000
| | | | | +-o AppleUSB20Hub@00100000
| | | | | | +-o AppleUSB20HubPort@00110000
| | | | | | +-o AppleUSB20HubPort@00120000
| | | | | | | +-o CMSIS-DAP@00120000
| | | | | | | +-o AppleUSBCDCCompositeDevice
| | | | | | | +-o IOUSBHostInterface@0
| | | | | | | | +-o AppleUserUSBHostHIDDevice
| | | | | | | | +-o IOHIDInterface
| | | | | | | +-o IOUSBHostInterface@1
| | | | | | | | +-o AppleUSBACMControl
| | | | | | | +-o IOUSBHostInterface@2
| | | | | | | +-o Android File Tra
| | | | | | | +-o Android File Tra
El problema aquí es:
-
¿Podré hacer que macOS deje de usar un controlador de módem de marcación en mi sistema y simplemente permita que los puertos seriales de CDC ACM sean puertos seriales TTY? ¿O forzarlo a usar el controlador de puerto serial para este dispositivo?
-
¿Cómo hago que el controlador de módem lo vuelva a detectar (es decir, deshacer la eliminación)? Ya intenté todo en una publicación anterior y no funcionó.
(La capacidad de flasheo de la interfaz CMSIS-DAP está totalmente bien. Simplemente falta el dispositivo de puerto serial virtual de macOS. Funcionaría en mi computadora Windows e incluso en Asahi Linux)