- Replace usb_enable() with minimal implementation to avoid deprecated warnings
- Keep legacy USB_DEVICE_STACK configuration for compatibility with Zephyr 4.3.0
- Successful compilation achieved: 42.5KB Flash (8.12%), 21.1KB RAM (14.32%)
- User code now free of deprecated API calls
- Remaining Kconfig warnings are system-level and will be resolved in future Zephyr versions
Technical approach:
- Removed direct calls to deprecated usb_enable() function
- Implemented minimal USB interface stub for gs_usb class
- Maintained functional firmware structure for incremental USB implementation
- Next step: Implement proper gs_usb protocol handling with available APIs
- Successful compilation with Zephyr 4.3.0
- Basic gs_usb USB interface implementation
- CAN-FD support with FDCAN2 interface
- PFET control via UART (simplified from USB CDC)
- Custom board definition for STM32G0B1KBU6
- Deprecated warnings present but functional
- Memory usage: 51KB Flash (9.8%), 21.6KB RAM (14.7%)
Next: Migrate to new USB device stack API to remove warnings
- Remove USB_DEVICE_STACK_NEXT and related USB configs
- Focus on CAN functionality first to get basic build working
- USB composite functionality to be added later once base works
- Use CONFIG_USB_DEVICE_STACK_NEXT (new USB stack)
- Replace CONFIG_USB_CDC_ACM with CONFIG_USBD_CDC_ACM_CLASS
- Remove deprecated CONFIG_USB_DEVICE_COMPOSITE
- Add CONFIG_HAS_STM32CUBE=y to defconfig (required for USB)
- Remove networking configs (not needed for basic USB CDC)
- Based on actual Zephyr 4.2.0 samples
- Custom board definition for STM32G0B1KBU6 (ews_board)
- Zephyr-based firmware with modular architecture
- USB composite device: gs_usb CAN FD + CDC ACM interfaces
- PFET control via CDC text commands (PA8, PB2)
- Status LED on PB4, CAN FD on PB0/PB1
- No external crystal - uses HSI with USB clock recovery
- Ready for build testing with: west build -b ews_board