diff options
author | Dmitry Filimonchuk <dmitrystu@gmail.com> | 2021-01-26 17:34:01 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-26 17:34:01 +0300 |
commit | a9836043879ec60c205644bedf2982548b639ae6 (patch) | |
tree | 3cd12b104bae526aa7afc6ba7f859c5665d9d382 | |
parent | 5eb622d781a9dc4b2c9afe3290aaf383bc348d8c (diff) |
Fix/wpedantic (#78)
* fix some warnings with -Wpedantic option
* fix ldr macro
-rw-r--r-- | demo/cdc_loop.c | 5 | ||||
-rw-r--r-- | inc/usbd_core.h | 4 | ||||
-rw-r--r-- | src/usbd_core.c | 36 | ||||
-rw-r--r-- | src/usbd_stm32f103_devfs_asm.S | 89 | ||||
-rw-r--r-- | src/usbd_stm32l052_devfs_asm.S | 88 | ||||
-rw-r--r-- | src/usbd_stm32l100_devfs_asm.S | 88 |
6 files changed, 159 insertions, 151 deletions
diff --git a/demo/cdc_loop.c b/demo/cdc_loop.c index c12277a..7ab09a4 100644 --- a/demo/cdc_loop.c +++ b/demo/cdc_loop.c @@ -298,7 +298,7 @@ static usbd_respond cdc_getdesc (usbd_ctlreq *req, void **address, uint16_t *len *address = (void*)desc; *length = len; return usbd_ack; -}; +} static usbd_respond cdc_control(usbd_device *dev, usbd_ctlreq *req, usbd_rqc_callback *callback) { @@ -514,12 +514,13 @@ void main(void) { } } #else -void main(void) { +int main(void) { cdc_init_usbd(); usbd_enable(&udev, true); usbd_connect(&udev, true); while(1) { usbd_poll(&udev); } + return 0; } #endif diff --git a/inc/usbd_core.h b/inc/usbd_core.h index 7f065b3..b22fce9 100644 --- a/inc/usbd_core.h +++ b/inc/usbd_core.h @@ -105,7 +105,7 @@ #if !defined(__ASSEMBLER__) #include <stdbool.h> - +#include <stddef.h> /** @brief USB device machine states */ enum usbd_machine_state { @@ -348,7 +348,7 @@ inline static void usbd_init(usbd_device *dev, const struct usbd_driver *drv, dev->status.ep0size = ep0size; dev->status.data_ptr = buffer; dev->status.data_buf = buffer; - dev->status.data_maxsize = bsize - __builtin_offsetof(usbd_ctlreq, data); + dev->status.data_maxsize = bsize - offsetof(usbd_ctlreq, data); } /**\brief Polls USB for events diff --git a/src/usbd_core.c b/src/usbd_core.c index 4637666..919b27c 100644 --- a/src/usbd_core.c +++ b/src/usbd_core.c @@ -209,7 +209,7 @@ static void usbd_process_eptx(usbd_device *dev, uint8_t ep) { case usbd_ctl_txdata: _t = _MIN(dev->status.data_count, dev->status.ep0size); dev->driver->ep_write(ep, dev->status.data_ptr, _t); - dev->status.data_ptr += _t; + dev->status.data_ptr = (uint8_t*)dev->status.data_ptr + _t; dev->status.data_count -= _t; /* if all data is not sent */ if (0 != dev->status.data_count) break; @@ -224,7 +224,8 @@ static void usbd_process_eptx(usbd_device *dev, uint8_t ep) { break; case usbd_ctl_statusin: dev->status.control_state = usbd_ctl_idle; - return usbd_process_callback(dev); + usbd_process_callback(dev); + break; default: /* unexpected TX completion */ /* just skipping it */ @@ -243,7 +244,8 @@ static void usbd_process_eprx(usbd_device *dev, uint8_t ep) { case usbd_ctl_idle: /* read SETUP packet, send STALL_PID if incorrect packet length */ if (0x08 != dev->driver->ep_read(ep, req, dev->status.data_maxsize)) { - return usbd_stall_pid(dev, ep); + usbd_stall_pid(dev, ep); + return; } dev->status.data_ptr = req->data; dev->status.data_count = req->wLength; @@ -251,7 +253,8 @@ static void usbd_process_eprx(usbd_device *dev, uint8_t ep) { if ((req->bmRequestType & USB_REQ_DEVTOHOST) || (0 == req->wLength)) break; /* checking available memory for DATA OUT stage */ if (req->wLength > dev->status.data_maxsize) { - return usbd_stall_pid(dev, ep); + usbd_stall_pid(dev, ep); + return; } /* continue DATA OUT stage */ dev->status.control_state = usbd_ctl_rxdata; @@ -262,11 +265,12 @@ static void usbd_process_eprx(usbd_device *dev, uint8_t ep) { if (dev->status.data_count < _t) { /* if received packet is large than expected */ /* Must be error. Let's drop this request */ - return usbd_stall_pid(dev, ep); + usbd_stall_pid(dev, ep); + return; } else if (dev->status.data_count != _t) { /* if all data payload was not received yet */ dev->status.data_count -= _t; - dev->status.data_ptr += _t; + dev->status.data_ptr = (uint8_t*)dev->status.data_ptr + _t; return; } break; @@ -274,10 +278,12 @@ static void usbd_process_eprx(usbd_device *dev, uint8_t ep) { /* fake reading STATUS OUT */ dev->driver->ep_read(ep, 0, 0); dev->status.control_state = usbd_ctl_idle; - return usbd_process_callback(dev); + usbd_process_callback(dev); + return; default: /* unexpected RX packet */ - return usbd_stall_pid(dev, ep); + usbd_stall_pid(dev, ep); + return; } /* usb request received. let's handle it */ dev->status.data_ptr = req->data; @@ -294,8 +300,7 @@ static void usbd_process_eprx(usbd_device *dev, uint8_t ep) { /* ZLP maybe wanted */ dev->status.control_state = usbd_ctl_ztxdata; } - return usbd_process_eptx(dev, ep | 0x80); - + usbd_process_eptx(dev, ep | 0x80); } else { /* confirming by ZLP in STATUS_IN stage */ dev->driver->ep_write(ep | 0x80, 0, 0); @@ -306,7 +311,8 @@ static void usbd_process_eprx(usbd_device *dev, uint8_t ep) { dev->status.control_state = usbd_ctl_statusin; break; default: - return usbd_stall_pid(dev, ep); + usbd_stall_pid(dev, ep); + break; } } @@ -321,9 +327,11 @@ static void usbd_process_ep0 (usbd_device *dev, uint8_t event, uint8_t ep) { dev->status.control_state = usbd_ctl_idle; dev->complete_callback = 0; case usbd_evt_eprx: - return usbd_process_eprx(dev, ep); + usbd_process_eprx(dev, ep); + break; case usbd_evt_eptx: - return usbd_process_eptx(dev, ep); + usbd_process_eptx(dev, ep); + break; default: break; } @@ -352,5 +360,5 @@ static void usbd_process_evt(usbd_device *dev, uint8_t evt, uint8_t ep) { } __attribute__((externally_visible)) void usbd_poll(usbd_device *dev) { - return dev->driver->poll(dev, usbd_process_evt); + dev->driver->poll(dev, usbd_process_evt); } diff --git a/src/usbd_stm32f103_devfs_asm.S b/src/usbd_stm32f103_devfs_asm.S index ae1e0c5..ee7bcf2 100644 --- a/src/usbd_stm32f103_devfs_asm.S +++ b/src/usbd_stm32f103_devfs_asm.S @@ -204,7 +204,7 @@ _connect: #define GPIO_CRx GPIO_CRH #define DP_PIN (4 * (USBD_DP_PIN - 8)) #endif - ldr r3, =#USBD_DP_PORT + ldr r3, =USBD_DP_PORT ldr r2, [r3, #GPIO_CRx] movs r1, #0x0F bics r2, r2, r1, LSL #DP_PIN @@ -218,7 +218,7 @@ _connect: orrs r2, r2, r1, LSL #DP_PIN str r2, [r3, #GPIO_CRx] #elif defined(USBD_DP_PORT) && defined(USBD_DP_PIN) && defined(STM32F3) - ldr r3, =#USBD_DP_PORT + ldr r3, =USBD_DP_PORT ldr r2, [r3, #GPIO_MODER] movs r1, #0x03 bics r2, r2, r1, LSL #(2 * USBD_DP_PIN) @@ -237,7 +237,7 @@ _connect: .thumb_func .type _setaddr, %function _setaddr: - ldr r1, =#USB_REGBASE + ldr r1, =USB_REGBASE adds r0, #0x80 strh r0, [r1, #USB_DADDR] //USB->DADDR bx lr @@ -246,7 +246,7 @@ _setaddr: .thumb_func .type _get_frame, %function _get_frame: - ldr r0, =#USB_REGBASE + ldr r0, =USB_REGBASE ldrh r0, [r0, #USB_FNR] //FNR lsls r0, #21 lsrs r0, #21 @@ -256,7 +256,7 @@ _get_frame: .thumb_func .type _enable, %function _enable: - ldr r2, =#RCC_BASE //RCC + ldr r2, =RCC_BASE //RCC movs r1, #0x01 lsls r3, r1, #23 //USBEN or USBRST cbz r0, .L_disable @@ -274,7 +274,7 @@ _enable: orrs r0, r1 str r0, [r2, #RCC_APB2ENR] #endif - ldr r1, =#USB_REGBASE + ldr r1, =USB_REGBASE ldr r0, [r2, #RCC_APB1ENR] orrs r0, r3 str r0, [r2, #RCC_APB1ENR] //RCC->APB1ENR |= USBEN @@ -309,13 +309,13 @@ _enable: .type _getinfo, %function _getinfo: movs r0, #0 - ldr r2, =#RCC_BASE + ldr r2, =RCC_BASE ldr r1, [r2, #RCC_APB1ENR] lsrs r1, #24 //USBEN -> CF bcc .L_getinfo_end adds r0, #USBD_HW_ENABLED #if defined(USBD_DP_PORT) && defined(USBD_DP_PIN) - ldr r2, =#USBD_DP_PORT + ldr r2, =USBD_DP_PORT ldr r1, [r2, #GPIO_IDR] lsrs r1, #USBD_DP_PIN //USBD_DP_PIN -> CF bcc .L_getinfo_end @@ -335,7 +335,7 @@ _ep_setstall: push {r4, lr} lsls r2, r0, #28 lsrs r2, #26 - ldr r3, =#USB_EPBASE + ldr r3, =USB_EPBASE adds r3, r2 // epr -> r3 movs r2, 0x30 // TX_STAT_MASK -> r2 ldrh r4, [r3] @@ -346,25 +346,25 @@ _ep_setstall: cmp r0, #0x80 blo .L_eps_rx .L_eps_tx: - ldr r0, =#TX_STALL //stall TX + ldr r0, =TX_STALL //stall TX cmp r1, #0x00 bne .L_eps_reg_set .L_eps_tx_unstall: - ldr r0, =#DTX_USTALL //unstall dblbulk or iso TX (VALID and clr DTOG_TX & SWBUF_TX) + ldr r0, =DTX_USTALL //unstall dblbulk or iso TX (VALID and clr DTOG_TX & SWBUF_TX) cmp r4, #0x01 // if doublebuffered bulk endpoint beq .L_eps_reg_set - ldr r0, =#TX_USTALL // unstall other TX (NAKED + clr DTOG_TX) + ldr r0, =TX_USTALL // unstall other TX (NAKED + clr DTOG_TX) b .L_eps_reg_set .L_eps_rx: lsls r2, #8 // RX_STAT_MASK -> R2 - ldr r0,=#RX_STALL //stall RX + ldr r0,=RX_STALL //stall RX cmp r1, #0x00 bne .L_eps_reg_set .L_eps_rx_unstall: - ldr r0, =#DRX_USTALL //unstall dblbulk or iso (VALID. clr DTOG_RX set SWBUF_RX) + ldr r0, =DRX_USTALL //unstall dblbulk or iso (VALID. clr DTOG_RX set SWBUF_RX) cmp r4, #0x01 // if dblbulk beq .L_eps_reg_set - ldr r0, =#RX_USTALL // unstall other RX (VALID + clr + ldr r0, =RX_USTALL // unstall other RX (VALID + clr /* R0 - mask and toggle bits * R2 - mask for STAT bits * R3 - endpoint register pointer @@ -386,7 +386,7 @@ _ep_setstall: .type _ep_isstalled, %function /* bool ep_isstalled(uint8t ep) */ _ep_isstalled: - ldr r1, =#USB_EPBASE + ldr r1, =USB_EPBASE lsls r2, r0, #28 lsrs r2, #26 ldr r1, [r1, r2] @@ -414,8 +414,8 @@ _ep_isstalled: */ _ep_read: push {r4, r5, r6, lr} - ldr r3, =#USB_EPBASE - ldr r6, =#USB_PMABASE + ldr r3, =USB_EPBASE + ldr r6, =USB_PMABASE lsls r0, #28 add r3, r3, r0, LSR #26 //*EPR -> R3 add r4, r6, r0, LSR (28 - EPT_SHIFT) //*EPT -> R4 @@ -441,7 +441,7 @@ _ep_read: eors r0, r5, r5, LSR #8 lsrs r0, #7 // SW_RX ^ DTOG_RX -> CF bcs .L_epr_notog // jmp if SW_RX != DTOG_RX (VALID) - ldr r0, =#EP_NOTOG + ldr r0, =EP_NOTOG ands r5, r0 adds r5, #EP_RX_SWBUF strh r5, [r3] // toggling SW_RX @@ -459,7 +459,6 @@ _ep_read: strh r5, [r4, #RXCOUNT] eors r0, r5 // r0 &= 0x3FF (RX count) ldrh r5, [r4, #RXADDR] -// ldr r4, =USB_PMABASE adds r5, r4, r5, LSL (EPT_SHIFT - 3) cmp r2, r0 blo .L_epr_read @@ -484,7 +483,7 @@ _ep_read: beq .L_epr_exit // ep is iso. no needs to set it to valid cmp r1, #0x01 beq .L_epr_exit // ep is dblbulk. no needs to set it to valid - ldr r2, =#TGL_SET(EP_RX_STAT , EP_RX_VAL) + ldr r2, =TGL_SET(EP_RX_STAT , EP_RX_VAL) eors r5, r2 and r5, r5, r2, LSR #16 strh r5, [r3] // set ep to VALID state @@ -503,8 +502,8 @@ _ep_read: */ _ep_write: push {r4, r5, r6, lr} - ldr r3, =#USB_EPBASE - ldr r6, =#USB_PMABASE + ldr r3, =USB_EPBASE + ldr r6, =USB_PMABASE lsls r0, #28 add r3, r3, r0, LSR #26 //*EPR -> R3 add r4, r6, r0, LSR (28 - EPT_SHIFT) //*EPT -> R4 @@ -555,10 +554,10 @@ _ep_write: lsrs r1, #29 cmp r1, #0x04 beq .L_epw_exit // isochronous ep. do nothing - ldr r2, =#TGL_SET(EP_TX_STAT, EP_TX_VAL) + ldr r2, =TGL_SET(EP_TX_STAT, EP_TX_VAL) cmp r1, #0x01 bne .L_epw_setstate // NOT a doublebuffered bulk - ldr r2, =#TGL_SET(EP_TX_SWBUF, EP_TX_SWBUF) + ldr r2, =TGL_SET(EP_TX_SWBUF, EP_TX_SWBUF) bics r5, r2 // clear TX_SWBUF .L_epw_setstate: eors r5, r2 @@ -577,8 +576,8 @@ _ep_write: _get_next_pma: push {r1, r3, r4, lr} movs r1, #16 - ldr r3, =#USB_PMASZ - ldr r0, =#USB_PMABASE + ldr r3, =USB_PMASZ + ldr r0, =USB_PMABASE .L_gnp_chkaddr: ldrh r4, [r0, #0] //txaddr tst r4, r4 @@ -628,14 +627,14 @@ _ep_config: ands r4, r0 orrs r3, r4 lsls r4, #2 - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE strh r3, [r5, r4] //setup EPTYPE EPKIND EPADDR cmp r1, #0x00 // is a control ep ? beq .L_epc_setuptx cmp r0, #0x80 blo .L_epc_setuprx .L_epc_setuptx: - ldr r5, =#USB_PMABASE + ldr r5, =USB_PMABASE adds r5, r5, r4, LSL (EPT_SHIFT - 2) bl _get_next_pma bcc .L_epc_fail @@ -644,18 +643,18 @@ _ep_config: strh r0, [r5, #TXCOUNT] //store txcnt cmp r1, #0x06 // is DBLBULK beq .L_epc_txdbl - ldr r3, =#TX_USTALL //set state NAKED , clr DTOG_TX + ldr r3, =TX_USTALL //set state NAKED , clr DTOG_TX cmp r1, #0x01 // is ISO bne .L_epc_txsetstate // .L_epc_txdbl: - ldr r3, =#DTX_USTALL //set state VALID clr DTOG_TX & SWBUF_TX + ldr r3, =DTX_USTALL //set state VALID clr DTOG_TX & SWBUF_TX bl _get_next_pma bcc .L_epc_fail strh r0, [r5, #TXADDR1] //store txaddr1 movs r0, #0x00 strh r0, [r5, #TXCOUNT1] //store txcnt .L_epc_txsetstate: - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE ldrh r0, [r5, r4] eors r0, r3 lsrs r3, #16 @@ -674,14 +673,14 @@ _ep_config: adds r3, #0x3E .L_epc_rxbb: lsls r3, #9 - ldr r5, =#USB_PMABASE + ldr r5, =USB_PMABASE adds r5, r5, r4, LSL (EPT_SHIFT - 2) /* RX or RX1 */ bl _get_next_pma bcc .L_epc_fail strh r0, [r5, #RXADDR] strh r3, [r5, #RXCOUNT] - ldr r0, =#RX_USTALL + ldr r0, =RX_USTALL /* check if doublebuffered */ cmp r1, 0x06 //if dblbulk beq .L_epc_rxdbl @@ -692,9 +691,9 @@ _ep_config: bcc .L_epc_fail strh r0, [r5, #RXADDR0] //store rxaddr0 strh r3, [r5, #RXCOUNT0] //store rxcnt0 - ldr r0, =#DRX_USTALL + ldr r0, =DRX_USTALL .L_epc_rxsetstate: - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE ldrh r3, [r5, r4] eors r3, r0 lsrs r0, #16 @@ -719,12 +718,12 @@ _ep_config: _ep_deconfig: lsls r1, r0, #28 lsrs r1, #26 - ldr r2, =#USB_EPBASE - ldr r3, =#USB_PMABASE + ldr r2, =USB_EPBASE + ldr r3, =USB_PMABASE adds r2, r1 adds r3, r3, r1, LSL (EPT_SHIFT - 2) /* clearing endpoint register */ - ldr r1, =#EP_NOTOG + ldr r1, =EP_NOTOG ldrh r0, [r2] bics r0, r1 strh r0, [r2] @@ -750,7 +749,7 @@ _ep_deconfig: /*void evt_poll(usbd_device *dev, usbd_evt_callback callback)*/ _evt_poll: push {r0, r1, r4, r5} - ldr r3, =#USB_REGBASE + ldr r3, =USB_REGBASE ldrh r0, [r3, #4] //USB->ISTR -> R2 /* ep_index -> R2 */ movs r2, 0x07 @@ -776,7 +775,7 @@ _evt_poll: .L_ep_ctrm: movs r5, #0x80 // CTR_TX mask to R5 - ldr r0,=#USB_EPBASE + ldr r0,=USB_EPBASE add r0, r0, r2, LSL #2 // R0 ep register address ldrh r4, [r0] // R4 EPR valur lsrs r3, r4, #8 // CTR_TX -> CF @@ -794,7 +793,7 @@ _evt_poll: movs r1, #usbd_evt_epsetup .L_ep_clr_ctr: bics r4, r5 //clear CTR flag - ldr r5, =#EP_NOTOG + ldr r5, =EP_NOTOG ands r4, r5 strh r4, [r0] // store b .L_ep_callback @@ -829,9 +828,9 @@ _evt_poll: /* do reset routine */ .L_ep_resetm: movs r1, #7 - ldr r2, =#USB_EPBASE - ldr r0, =#USB_PMABASE - ldr r5, =#EP_NOTOG + ldr r2, =USB_EPBASE + ldr r0, =USB_PMABASE + ldr r5, =EP_NOTOG .L_ep_reset_loop: ldrh r4, [r2] bics r4, r5 diff --git a/src/usbd_stm32l052_devfs_asm.S b/src/usbd_stm32l052_devfs_asm.S index 0bc10c3..a5a0ab4 100644 --- a/src/usbd_stm32l052_devfs_asm.S +++ b/src/usbd_stm32l052_devfs_asm.S @@ -162,7 +162,7 @@ _get_serial_desc: .thumb_func .type _connect, %function _connect: - ldr r3, =#USB_REGBASE + ldr r3, =USB_REGBASE movs r1, #0x03 //BCDEN + DCDEN movs r2, #usbd_lane_dsc strh r1, [r3, #USB_BCDR] @@ -206,7 +206,7 @@ _setaddr: .thumb_func .type _get_frame, %function _get_frame: - ldr r0, =#USB_REGBASE + ldr r0, =USB_REGBASE ldrh r0, [r0, #USB_FNR] //FNR lsls r0, #21 lsrs r0, #21 @@ -216,8 +216,8 @@ _get_frame: .thumb_func .type _enable, %function _enable: - ldr r1, =#USB_REGBASE //USB->CNTR - ldr r2, =#RCC_BASE //RCC + ldr r1, =USB_REGBASE //USB->CNTR + ldr r2, =RCC_BASE //RCC movs r3, #0x01 lsls r3, #RCC_USBEN //USBEN or USBRST tst r0, r0 @@ -238,7 +238,7 @@ _enable: orrs r0, r3 str r0, [r2, #RCC_APB2ENR] //RCC->APB2ENR |= RCC_APB2ENR_SYSCFGCOMPEN - ldr r2, =#SYSCFG_BASE //SYSCFG->CFGR1 + ldr r2, =SYSCFG_BASE //SYSCFG->CFGR1 ldr r0, [r2] lsls r3, #SYSCFG_USBREMAP orrs r0, r3 @@ -273,12 +273,12 @@ _enable: .type _getinfo, %function _getinfo: movs r0, #USBD_HW_BC - ldr r2, =#RCC_BASE + ldr r2, =RCC_BASE ldr r1, [r2, #RCC_APB1ENR] lsrs r1, #24 //USBEN -> CF bcc .L_getinfo_end adds r0, #USBD_HW_ENABLED - ldr r2, =#USB_REGBASE + ldr r2, =USB_REGBASE ldr r1, [r2, #USB_BCDR] lsrs r1, #15 //DPPU -> CF bcc .L_getinfo_end @@ -297,7 +297,7 @@ _ep_setstall: push {r4, lr} lsls r2, r0, #28 lsrs r2, #26 - ldr r3, =#USB_EPBASE + ldr r3, =USB_EPBASE adds r3, r2 // epr -> r3 movs r2, 0x30 // TX_STAT_MASK -> r2 ldrh r4, [r3] @@ -308,25 +308,25 @@ _ep_setstall: cmp r0, #0x80 blo .L_eps_rx .L_eps_tx: - ldr r0, =#TX_STALL //stall TX + ldr r0, =TX_STALL //stall TX cmp r1, #0x00 bne .L_eps_reg_set .L_eps_tx_unstall: - ldr r0, =#DTX_USTALL //unstall dblbulk or iso TX (VALID and clr DTOG_TX & SWBUF_TX) + ldr r0, =DTX_USTALL //unstall dblbulk or iso TX (VALID and clr DTOG_TX & SWBUF_TX) cmp r4, #0x01 // if doublebuffered bulk endpoint beq .L_eps_reg_set - ldr r0, =#TX_USTALL // unstall other TX (NAKED + clr DTOG_TX) + ldr r0, =TX_USTALL // unstall other TX (NAKED + clr DTOG_TX) b .L_eps_reg_set .L_eps_rx: lsls r2, #8 // RX_STAT_MASK -> R2 - ldr r0,=#RX_STALL //stall RX + ldr r0,=RX_STALL //stall RX cmp r1, #0x00 bne .L_eps_reg_set .L_eps_rx_unstall: - ldr r0, =#DRX_USTALL //unstall dblbulk or iso (VALID. clr DTOG_RX set SWBUF_RX) + ldr r0, =DRX_USTALL //unstall dblbulk or iso (VALID. clr DTOG_RX set SWBUF_RX) cmp r4, #0x01 // if dblbulk beq .L_eps_reg_set - ldr r0, =#RX_USTALL // unstall other RX (VALID + clr + ldr r0, =RX_USTALL // unstall other RX (VALID + clr /* R0 - mask and toggle bits * R2 - mask for STAT bits * R3 - endpoint register pointer @@ -348,7 +348,7 @@ _ep_setstall: .type _ep_isstalled, %function /* bool ep_isstalled(uint8t ep) */ _ep_isstalled: - ldr r1, =#USB_EPBASE + ldr r1, =USB_EPBASE lsls r2, r0, #28 lsrs r2, #26 ldr r1, [r1, r2] @@ -376,8 +376,8 @@ _ep_isstalled: */ _ep_read: push {r4, r5, lr} - ldr r3, =#USB_EPBASE - ldr r4, =#USB_PMABASE + ldr r3, =USB_EPBASE + ldr r4, =USB_PMABASE lsls r0, #28 lsrs r0, #26 adds r3, r0 // *EPR -> R3 @@ -408,7 +408,7 @@ _ep_read: eors r0, r5 lsrs r0, #7 // SW_RX ^ DTOG_RX -> CF bcs .L_epr_notog // jmp if SW_RX != DTOG_RX (VALID) - ldr r0, =#EP_NOTOG + ldr r0, =EP_NOTOG ands r5, r0 adds r5, #EP_RX_SWBUF strh r5, [r3] // toggling SW_RX @@ -427,7 +427,7 @@ _ep_read: lsls r0, #22 lsrs r0, #22 // r0 &= 0x3FF (RX count) ldrh r5, [r4, #RXADDR] - ldr r4, =#USB_PMABASE + ldr r4, =USB_PMABASE adds r5, r4 // R5 now has a physical address cmp r2, r0 blo .L_epr_read @@ -452,7 +452,7 @@ _ep_read: beq .L_epr_exit // ep is iso. no needs to set it to valid cmp r1, #0x01 beq .L_epr_exit // ep is dblbulk. no needs to set it to valid - ldr r2, =#TGL_SET(EP_RX_STAT , EP_RX_VAL) + ldr r2, =TGL_SET(EP_RX_STAT , EP_RX_VAL) eors r5, r2 lsrs r2, #16 ands r5, r2 @@ -473,8 +473,8 @@ _ep_read: */ _ep_write: push {r4, r5, r6, lr} - ldr r3, =#USB_EPBASE - ldr r4, =#USB_PMABASE + ldr r3, =USB_EPBASE + ldr r4, =USB_PMABASE lsls r0, #28 lsrs r0, #26 adds r3, r0 // *EPR -> R3 @@ -509,7 +509,7 @@ _ep_write: strh r2, [r4, #TXCOUNT] mov r0, r2 // save count for return ldrh r5, [r4, #TXADDR] - ldr r4, =#USB_PMABASE + ldr r4, =USB_PMABASE adds r5, r4 // PMA BUFFER -> R5 .L_epw_write: cmp r2, #1 @@ -531,10 +531,10 @@ _ep_write: lsrs r1, #29 cmp r1, #0x04 beq .L_epw_exit // isochronous ep. do nothing - ldr r2, =#TGL_SET(EP_TX_STAT, EP_TX_VAL) + ldr r2, =TGL_SET(EP_TX_STAT, EP_TX_VAL) cmp r1, #0x01 bne .L_epw_setstate // NOT a doublebuffered bulk - ldr r2, =#TGL_SET(EP_TX_SWBUF, EP_TX_SWBUF) + ldr r2, =TGL_SET(EP_TX_SWBUF, EP_TX_SWBUF) bics r5, r2 // clear TX_SWBUF .L_epw_setstate: eors r5, r2 @@ -554,7 +554,7 @@ _get_next_pma: movs r1, #0x3C movs r3, #1 lsls r3, #10 //R3 MAX_PMA_SIZE - ldr r0, =#USB_PMABASE + ldr r0, =USB_PMABASE .L_gnp_chkaddr: ldrh r4, [r0, r1] tst r4, r4 @@ -604,14 +604,14 @@ _ep_config: lsrs r4, #28 orrs r3, r4 lsls r4, #2 - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE strh r3, [r5, r4] //setup EPTYPE EPKIND EPADDR cmp r1, #0x00 // is a control ep ? beq .L_epc_setuptx cmp r0, #0x80 blo .L_epc_setuprx .L_epc_setuptx: - ldr r5, =#USB_PMABASE + ldr r5, =USB_PMABASE lsls r4, #1 adds r5, r4 /* setup buffer table */ @@ -623,19 +623,19 @@ _ep_config: strh r0, [r5, #TXCOUNT] //store txcnt cmp r1, #0x06 // is DBLBULK beq .L_epc_txdbl - ldr r3, =#TX_USTALL //set state NAKED , clr DTOG_TX + ldr r3, =TX_USTALL //set state NAKED , clr DTOG_TX cmp r1, #0x01 bne .L_epc_txsetstate //if single buffered .L_epc_txdbl: /* TX1 */ - ldr r3, =#DTX_USTALL //set state VALID clr DTOG_TX & SWBUF_TX + ldr r3, =DTX_USTALL //set state VALID clr DTOG_TX & SWBUF_TX bl _get_next_pma bcc .L_epc_fail strh r0, [r5, #TXADDR1] //store txaddr1 movs r0, #0x00 strh r0, [r5, #TXCOUNT1] //store txcnt .L_epc_txsetstate: - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE lsrs r4, #1 ldrh r0, [r5, r4] eors r0, r3 @@ -657,7 +657,7 @@ _ep_config: adds r3, #0x3E .L_epc_rxbb: lsls r3, #9 - ldr r5, =#USB_PMABASE + ldr r5, =USB_PMABASE lsls r4, #1 adds r5, r4 /* setup buffer table */ @@ -666,7 +666,7 @@ _ep_config: /* set RX or RX1 */ strh r0, [r5, #RXADDR] strh r3, [r5, #RXCOUNT] - ldr r0, =#RX_USTALL + ldr r0, =RX_USTALL /* check if doublebuffered */ cmp r1, 0x06 //if dblbulk beq .L_epc_rxdbl @@ -677,9 +677,9 @@ _ep_config: bcc .L_epc_fail strh r0, [r5, #RXADDR0] //store rxaddr0 strh r3, [r5, #RXCOUNT0] //store rxcnt0 - ldr r0, =#DRX_USTALL + ldr r0, =DRX_USTALL .L_epc_rxsetstate: - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE lsrs r4, #1 ldrh r3, [r5, r4] eors r3, r0 @@ -705,13 +705,13 @@ _ep_config: _ep_deconfig: lsls r1, r0, #28 lsrs r1, #26 - ldr r2, =#USB_EPBASE - ldr r3, =#USB_PMABASE + ldr r2, =USB_EPBASE + ldr r3, =USB_PMABASE adds r2, r1 lsls r1, #1 adds r3, r1 /* clearing endpoint register */ - ldr r1, =#EP_NOTOG + ldr r1, =EP_NOTOG ldrh r0, [r2] bics r0, r1 strh r0, [r2] @@ -734,7 +734,7 @@ _ep_deconfig: /*void evt_poll(usbd_device *dev, usbd_evt_callback callback)*/ _evt_poll: push {r0, r1, r4, r5} - ldr r3, =#USB_REGBASE + ldr r3, =USB_REGBASE ldrh r0, [r3, #4] //USB->ISTR -> R2 /* ep_index -> R2 */ movs r2, 0x07 @@ -760,7 +760,7 @@ _evt_poll: .L_ep_ctrm: movs r5, #0x80 // CTR_TX mask to R5 - ldr r0,=#USB_EPBASE + ldr r0,=USB_EPBASE lsrs r0, #2 adds r0, r2 lsls r0, #2 // R0 ep register address @@ -780,7 +780,7 @@ _evt_poll: movs r1, #usbd_evt_epsetup .L_ep_clr_ctr: bics r4, r5 //clear CTR flag - ldr r5, =#EP_NOTOG + ldr r5, =EP_NOTOG ands r4, r5 strh r4, [r0] // store b .L_ep_callback @@ -814,9 +814,9 @@ _evt_poll: /* do reset routine */ .L_ep_resetm: movs r1, #7 - ldr r2, =#USB_EPBASE - ldr r0, =#USB_PMABASE - ldr r5, =#EP_NOTOG + ldr r2, =USB_EPBASE + ldr r0, =USB_PMABASE + ldr r5, =EP_NOTOG .L_ep_reset_loop: ldrh r4, [r2] bics r4, r5 diff --git a/src/usbd_stm32l100_devfs_asm.S b/src/usbd_stm32l100_devfs_asm.S index 956d942..dc3c48b 100644 --- a/src/usbd_stm32l100_devfs_asm.S +++ b/src/usbd_stm32l100_devfs_asm.S @@ -161,7 +161,7 @@ _get_serial_desc: .thumb_func .type _connect, %function _connect: - ldr r1, =#SYSCFG_BASE + ldr r1, =SYSCFG_BASE movs r3, #0x01 ldr r2, [r1, #SYSCFG_PMC] bics r2, r3 @@ -177,12 +177,12 @@ _connect: .type _getinfo, %function _getinfo: movs r0, 0 - ldr r2, =#RCC_BASE + ldr r2, =RCC_BASE ldr r1, [r2, #RCC_APB1ENR] lsrs r1, #24 //USBEN -> CF bcc .L_getinfo_end adds r0, #USBD_HW_ENABLED - ldr r2, =#SYSCFG_BASE + ldr r2, =SYSCFG_BASE ldr r1, [r2, #SYSCFG_PMC] lsrs r1, #1 //PU -> CF bcc .L_getinfo_end @@ -203,7 +203,7 @@ _setaddr: .thumb_func .type _get_frame, %function _get_frame: - ldr r0, =#USB_REGBASE + ldr r0, =USB_REGBASE ldrh r0, [r0, #USB_FNR] //FNR lsls r0, #21 lsrs r0, #21 @@ -213,13 +213,13 @@ _get_frame: .thumb_func .type _enable, %function _enable: - ldr r2, =#RCC_BASE //RCC + ldr r2, =RCC_BASE //RCC movs r3, #0x01 lsls r3, #23 //USBEN or USBRST cbz r0, .L_disable .L_enable: /* enabling and resetting USB peripheral */ - ldr r1, =#USB_REGBASE + ldr r1, =USB_REGBASE ldr r0, [r2, #RCC_APB1ENR] orrs r0, r3 str r0, [r2, #RCC_APB1ENR] //RCC->APB1ENR |= USBEN @@ -251,7 +251,7 @@ _enable: str r0, [r2, #RCC_APB1ENR] /* disabling USB_PU in SYSCFG_PMC */ movs r3, #0x01 - ldr r1, =#SYSCFG_BASE + ldr r1, =SYSCFG_BASE ldr r0, [r1, #SYSCFG_PMC] bics r0, r3 str r0, [r1, #SYSCFG_PMC] @@ -271,7 +271,7 @@ _ep_setstall: push {r4, lr} lsls r2, r0, #28 lsrs r2, #26 - ldr r3, =#USB_EPBASE + ldr r3, =USB_EPBASE adds r3, r2 // epr -> r3 movs r2, 0x30 // TX_STAT_MASK -> r2 ldrh r4, [r3] @@ -282,25 +282,25 @@ _ep_setstall: cmp r0, #0x80 blo .L_eps_rx .L_eps_tx: - ldr r0, =#TX_STALL //stall TX + ldr r0, =TX_STALL //stall TX cmp r1, #0x00 bne .L_eps_reg_set .L_eps_tx_unstall: - ldr r0, =#DTX_USTALL //unstall dblbulk or iso TX (VALID and clr DTOG_TX & SWBUF_TX) + ldr r0, =DTX_USTALL //unstall dblbulk or iso TX (VALID and clr DTOG_TX & SWBUF_TX) cmp r4, #0x01 // if doublebuffered bulk endpoint beq .L_eps_reg_set - ldr r0, =#TX_USTALL // unstall other TX (NAKED + clr DTOG_TX) + ldr r0, =TX_USTALL // unstall other TX (NAKED + clr DTOG_TX) b .L_eps_reg_set .L_eps_rx: lsls r2, #8 // RX_STAT_MASK -> R2 - ldr r0,=#RX_STALL //stall RX + ldr r0,=RX_STALL //stall RX cmp r1, #0x00 bne .L_eps_reg_set .L_eps_rx_unstall: - ldr r0, =#DRX_USTALL //unstall dblbulk or iso (VALID. clr DTOG_RX set SWBUF_RX) + ldr r0, =DRX_USTALL //unstall dblbulk or iso (VALID. clr DTOG_RX set SWBUF_RX) cmp r4, #0x01 // if dblbulk beq .L_eps_reg_set - ldr r0, =#RX_USTALL // unstall other RX (VALID + clr + ldr r0, =RX_USTALL // unstall other RX (VALID + clr /* R0 - mask and toggle bits * R2 - mask for STAT bits * R3 - endpoint register pointer @@ -322,7 +322,7 @@ _ep_setstall: .type _ep_isstalled, %function /* bool ep_isstalled(uint8t ep) */ _ep_isstalled: - ldr r1, =#USB_EPBASE + ldr r1, =USB_EPBASE lsls r2, r0, #28 lsrs r2, #26 ldr r1, [r1, r2] @@ -350,8 +350,8 @@ _ep_isstalled: */ _ep_read: push {r4, r5, lr} - ldr r3, =#USB_EPBASE - ldr r4, =#USB_PMABASE + ldr r3, =USB_EPBASE + ldr r4, =USB_PMABASE lsls r0, #28 lsrs r0, #26 adds r3, r0 // *EPR -> R3 @@ -382,7 +382,7 @@ _ep_read: eors r0, r5 lsrs r0, #7 // SW_RX ^ DTOG_RX -> CF bcs .L_epr_notog // jmp if SW_RX != DTOG_RX (VALID) - ldr r0, =#EP_NOTOG + ldr r0, =EP_NOTOG ands r5, r0 adds r5, #EP_RX_SWBUF strh r5, [r3] // toggling SW_RX @@ -401,7 +401,7 @@ _ep_read: lsls r0, #22 lsrs r0, #22 // r0 &= 0x3FF (RX count) ldrh r5, [r4, #RXADDR] - ldr r4, =#USB_PMABASE + ldr r4, =USB_PMABASE lsls r5, #0x01 adds r5, r4 // R5 now has a physical address cmp r2, r0 @@ -427,7 +427,7 @@ _ep_read: beq .L_epr_exit // ep is iso. no needs to set it to valid cmp r1, #0x01 beq .L_epr_exit // ep is dblbulk. no needs to set it to valid - ldr r2, =#TGL_SET(EP_RX_STAT , EP_RX_VAL) + ldr r2, =TGL_SET(EP_RX_STAT , EP_RX_VAL) eors r5, r2 lsrs r2, #16 ands r5, r2 @@ -447,8 +447,8 @@ _ep_read: */ _ep_write: push {r4, r5, r6, lr} - ldr r3, =#USB_EPBASE - ldr r4, =#USB_PMABASE + ldr r3, =USB_EPBASE + ldr r4, =USB_PMABASE lsls r0, #28 lsrs r0, #26 adds r3, r0 // *EPR -> R3 @@ -483,7 +483,7 @@ _ep_write: strh r2, [r4, #TXCOUNT] mov r0, r2 // save count for return ldrh r5, [r4, #TXADDR] - ldr r4, =#USB_PMABASE + ldr r4, =USB_PMABASE lsls r5, #1 adds r5, r4 // PMA BUFFER -> R5 .L_epw_write: @@ -506,10 +506,10 @@ _ep_write: lsrs r1, #29 cmp r1, #0x04 beq .L_epw_exit // isochronous ep. do nothing - ldr r2, =#TGL_SET(EP_TX_STAT, EP_TX_VAL) + ldr r2, =TGL_SET(EP_TX_STAT, EP_TX_VAL) cmp r1, #0x01 bne .L_epw_setstate // NOT a doublebuffered bulk - ldr r2, =#TGL_SET(EP_TX_SWBUF, EP_TX_SWBUF) + ldr r2, =TGL_SET(EP_TX_SWBUF, EP_TX_SWBUF) bics r5, r2 // clear TX_SWBUF .L_epw_setstate: eors r5, r2 @@ -531,7 +531,7 @@ _get_next_pma: movs r1, #16 movs r3, #1 lsls r3, #9 //R3 MAX_PMA_SIZE 512b - ldr r0, =#USB_PMABASE + ldr r0, =USB_PMABASE .L_gnp_chkaddr: ldrh r4, [r0, #0] //txaddr tst r4, r4 @@ -585,14 +585,14 @@ _ep_config: lsrs r4, #28 orrs r3, r4 lsls r4, #2 - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE strh r3, [r5, r4] //setup EPTYPE EPKIND EPADDR cmp r1, #0x00 // is a control ep ? beq .L_epc_setuptx cmp r0, #0x80 blo .L_epc_setuprx .L_epc_setuptx: - ldr r5, =#USB_PMABASE + ldr r5, =USB_PMABASE lsls r4, #2 adds r5, r4 bl _get_next_pma @@ -602,18 +602,18 @@ _ep_config: strh r0, [r5, #TXCOUNT] //store txcnt cmp r1, #0x06 // is DBLBULK beq .L_epc_txdbl - ldr r3, =#TX_USTALL //set state NAKED , clr DTOG_TX + ldr r3, =TX_USTALL //set state NAKED , clr DTOG_TX cmp r1, #0x01 // is ISO bne .L_epc_txsetstate // .L_epc_txdbl: - ldr r3, =#DTX_USTALL //set state VALID clr DTOG_TX & SWBUF_TX + ldr r3, =DTX_USTALL //set state VALID clr DTOG_TX & SWBUF_TX bl _get_next_pma bcc .L_epc_fail strh r0, [r5, #TXADDR1] //store txaddr1 movs r0, #0x00 strh r0, [r5, #TXCOUNT1] //store txcnt .L_epc_txsetstate: - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE lsrs r4, #2 ldrh r0, [r5, r4] eors r0, r3 @@ -633,7 +633,7 @@ _ep_config: adds r3, #0x3E .L_epc_rxbb: lsls r3, #9 - ldr r5, =#USB_PMABASE + ldr r5, =USB_PMABASE lsls r4, #2 adds r5, r4 /* RX or RX1 */ @@ -641,7 +641,7 @@ _ep_config: bcc .L_epc_fail strh r0, [r5, #RXADDR] strh r3, [r5, #RXCOUNT] - ldr r0, =#RX_USTALL + ldr r0, =RX_USTALL /* check if doublebuffered */ cmp r1, 0x06 //if dblbulk beq .L_epc_rxdbl @@ -652,9 +652,9 @@ _ep_config: bcc .L_epc_fail strh r0, [r5, #RXADDR0] //store rxaddr0 strh r3, [r5, #RXCOUNT0] //store rxcnt0 - ldr r0, =#DRX_USTALL + ldr r0, =DRX_USTALL .L_epc_rxsetstate: - ldr r5, =#USB_EPBASE + ldr r5, =USB_EPBASE lsrs r4, #2 ldrh r3, [r5, r4] eors r3, r0 @@ -680,13 +680,13 @@ _ep_config: _ep_deconfig: lsls r1, r0, #28 lsrs r1, #26 - ldr r2, =#USB_EPBASE - ldr r3, =#USB_PMABASE + ldr r2, =USB_EPBASE + ldr r3, =USB_PMABASE adds r2, r1 lsls r1, #1 adds r3, r1 /* clearing endpoint register */ - ldr r1, =#EP_NOTOG + ldr r1, =EP_NOTOG ldrh r0, [r2] bics r0, r1 strh r0, [r2] @@ -712,7 +712,7 @@ _ep_deconfig: /*void evt_poll(usbd_device *dev, usbd_evt_callback callback)*/ _evt_poll: push {r0, r1, r4, r5} - ldr r3, =#USB_REGBASE + ldr r3, =USB_REGBASE ldrh r0, [r3, #4] //USB->ISTR -> R2 /* ep_index -> R2 */ movs r2, 0x07 @@ -738,7 +738,7 @@ _evt_poll: .L_ep_ctrm: movs r5, #0x80 // CTR_TX mask to R5 - ldr r0,=#USB_EPBASE + ldr r0,=USB_EPBASE lsrs r0, #2 adds r0, r2 lsls r0, #2 // R0 ep register address @@ -758,7 +758,7 @@ _evt_poll: movs r1, #usbd_evt_epsetup .L_ep_clr_ctr: bics r4, r5 //clear CTR flag - ldr r5, =#EP_NOTOG + ldr r5, =EP_NOTOG ands r4, r5 strh r4, [r0] // store b .L_ep_callback @@ -793,9 +793,9 @@ _evt_poll: /* do reset routine */ .L_ep_resetm: movs r1, #7 - ldr r2, =#USB_EPBASE - ldr r0, =#USB_PMABASE - ldr r5, =#EP_NOTOG + ldr r2, =USB_EPBASE + ldr r0, =USB_PMABASE + ldr r5, =EP_NOTOG .L_ep_reset_loop: ldrh r4, [r2] bics r4, r5 |