From b38aab0040107bd8dafe19a94fd3a1cfc5d1f9ca Mon Sep 17 00:00:00 2001 From: R Date: Sun, 14 Apr 2024 07:36:37 +0100 Subject: [PATCH] works, not ramless --- bootloader.c | 13 ++++++------- linker.lds | 7 ++++++- startup.S | 2 ++ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/bootloader.c b/bootloader.c index c131f9a..4e3829e 100644 --- a/bootloader.c +++ b/bootloader.c @@ -161,13 +161,12 @@ extern volatile uint32_t USB_EP1_IN[32]; #define USB_EP1_IN_OLDOLD(offs) (*(volatile uint32_t *)(0x400060C0 + 2 * (offs))) #define USB_UF2_FIELDS_STASH(offs) (*(uint32_t *)(0x400061d4 + 2 * (offs))) -#define ACTIVE_CONFIG USB_UF2_FIELDS_STASH(12) -#define UF2_BLOCKS_LEFT USB_UF2_FIELDS_STASH(14) -#define CTRL_XFER_STATE USB_UF2_FIELDS_STASH(16) -#define CTRL_XFER_STATE_X USB_UF2_FIELDS_STASH(18) -#define CTRL_XFER_DESC_SZ USB_UF2_FIELDS_STASH(20) -extern volatile uint32_t USB_SECTOR_STASH[128]; -// #define USB_SECTOR_STASH(offs) (*(uint32_t *)(0x40006200 + 2 * (offs))) +extern uint32_t ACTIVE_CONFIG; +extern uint32_t UF2_BLOCKS_LEFT; +extern uint32_t CTRL_XFER_STATE; +extern uint32_t CTRL_XFER_STATE_X; +extern uint32_t CTRL_XFER_DESC_SZ; +extern uint32_t USB_SECTOR_STASH[128]; #define USB_EPTYPE_BULK 0b00 #define USB_EPTYPE_CONTROL 0b01 diff --git a/linker.lds b/linker.lds index f0bef09..52d69fc 100644 --- a/linker.lds +++ b/linker.lds @@ -37,7 +37,12 @@ SECTIONS PROVIDE( USB_EP0_OUT = 0x40006020 ); PROVIDE( USB_EP0_IN = 0x40006030 ); PROVIDE( USB_EP1_OUT = 0x40006040 ); - PROVIDE( USB_EP1_IN = 0x400060C0 ); + PROVIDE( USB_EP1_IN = 0x400060c0 ); + PROVIDE( ACTIVE_CONFIG = 0x400061ec ); + PROVIDE( UF2_BLOCKS_LEFT = 0x400061f0 ); + PROVIDE( CTRL_XFER_STATE = 0x400061f4 ); + PROVIDE( CTRL_XFER_STATE_X = 0x400061f8 ); + PROVIDE( CTRL_XFER_DESC_SZ = 0x400061fc ); PROVIDE( USB_SECTOR_STASH = 0x40006200 ); PROVIDE(_data_lma = .); diff --git a/startup.S b/startup.S index be0bf86..58bf41e 100644 --- a/startup.S +++ b/startup.S @@ -87,6 +87,8 @@ _enter_application_code: _enter_bootloader: sh zero, (a3) + // xxx testing + la sp, 0x20000100 // Set up global pointer .option push .option norelax