Skip to content
Snippets Groups Projects
Commit 82c7b1b1 authored by Damien George's avatar Damien George
Browse files

stmhal: Put a USB structure in ROM; GC doesn't scan the data segment.

parent b14f2a0b
No related branches found
No related tags found
No related merge requests found
...@@ -21,10 +21,9 @@ void gc_collect(void) { ...@@ -21,10 +21,9 @@ void gc_collect(void) {
// start the GC // start the GC
gc_collect_start(); gc_collect_start();
// scan everything in RAM before the heap // We need to scan everything in RAM that can hold a pointer.
// this includes the data and bss segments // The data segment is used, but should not contain pointers, so we just scan the bss.
// TODO possibly don't need to scan data, since all pointers should start out NULL and be in bss gc_collect_root((void**)&_sbss, ((uint32_t)&_ebss - (uint32_t)&_sbss) / sizeof(uint32_t));
gc_collect_root((void**)&_ram_start, ((uint32_t)&_ebss - (uint32_t)&_ram_start) / sizeof(uint32_t));
// get the registers and the sp // get the registers and the sp
machine_uint_t regs[10]; machine_uint_t regs[10];
......
...@@ -28,7 +28,7 @@ void pyb_usb_dev_init(usb_device_mode_t mode, usb_storage_medium_t medium) { ...@@ -28,7 +28,7 @@ void pyb_usb_dev_init(usb_device_mode_t mode, usb_storage_medium_t medium) {
} else { } else {
USBD_SelectMode(USBD_MODE_CDC_HID); USBD_SelectMode(USBD_MODE_CDC_HID);
} }
USBD_Init(&hUSBDDevice, &VCP_Desc, 0); USBD_Init(&hUSBDDevice, (USBD_DescriptorsTypeDef*)&VCP_Desc, 0);
USBD_RegisterClass(&hUSBDDevice, &USBD_CDC_MSC_HID); USBD_RegisterClass(&hUSBDDevice, &USBD_CDC_MSC_HID);
USBD_CDC_RegisterInterface(&hUSBDDevice, (USBD_CDC_ItfTypeDef*)&USBD_CDC_fops); USBD_CDC_RegisterInterface(&hUSBDDevice, (USBD_CDC_ItfTypeDef*)&USBD_CDC_fops);
#if MICROPY_HW_HAS_SDCARD #if MICROPY_HW_HAS_SDCARD
......
extern USBD_DescriptorsTypeDef VCP_Desc; extern const USBD_DescriptorsTypeDef VCP_Desc;
extern USBD_DescriptorsTypeDef MSC_Desc;
...@@ -59,7 +59,7 @@ uint8_t *USBD_VCP_USRStringDesc (USBD_SpeedTypeDef speed, uint8_t idx, uint16_t ...@@ -59,7 +59,7 @@ uint8_t *USBD_VCP_USRStringDesc (USBD_SpeedTypeDef speed, uint8_t idx, uint16_t
#endif /* USB_SUPPORT_USER_STRING_DESC */ #endif /* USB_SUPPORT_USER_STRING_DESC */
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
USBD_DescriptorsTypeDef VCP_Desc = { const USBD_DescriptorsTypeDef VCP_Desc = {
USBD_VCP_DeviceDescriptor, USBD_VCP_DeviceDescriptor,
USBD_VCP_LangIDStrDescriptor, USBD_VCP_LangIDStrDescriptor,
USBD_VCP_ManufacturerStrDescriptor, USBD_VCP_ManufacturerStrDescriptor,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment