Pārlūkot izejas kodu

refactor: revise get_next_pma() function

Dmitry 8 gadi atpakaļ
vecāks
revīzija
65a5039574

+ 1 - 5
src/usbd_stm32f103_devfs.c

@@ -153,11 +153,7 @@ static uint16_t get_next_pma(uint16_t sz) {
         if ((tbl->tx.addr) && (tbl->tx.addr < _result)) _result = tbl->tx.addr;
         if ((tbl->rx.addr) && (tbl->rx.addr < _result)) _result = tbl->rx.addr;
     }
-    if ( _result < (4 * sizeof(pma_table) + sz)) {
-        return 0;
-    } else {
-        return _result - sz;
-    }
+    return (_result < (0x020 + sz)) ? 0 : (_result - sz);
 }
 
 uint32_t getinfo(void) {

+ 1 - 1
src/usbd_stm32f103_devfs_asm.S

@@ -610,7 +610,7 @@ _get_next_pma:
     bne     .L_gnp_chkaddr
     subs    r0, r3, r2
     blo     .L_gnp_exit
-    cmp     r0, #0x40       //check for the pma table overlap
+    cmp     r0, #0x20       //check for the pma table overlap
 .L_gnp_exit:
     pop     {r1, r3, r4, pc}
 

+ 1 - 5
src/usbd_stm32l052_devfs.c

@@ -89,11 +89,7 @@ static uint16_t get_next_pma(uint16_t sz) {
         if ((tbl->rx.addr) && (tbl->rx.addr < _result)) _result = tbl->rx.addr;
         if ((tbl->tx.addr) && (tbl->tx.addr < _result)) _result = tbl->tx.addr;
     }
-    if ( _result < (8 * sizeof(pma_table) + sz)) {
-        return 0;
-    } else {
-        return _result - sz;
-    }
+    return (_result < (0x020 + sz)) ? 0 : (_result - sz);
 }
 
 uint32_t getinfo(void) {

+ 1 - 1
src/usbd_stm32l052_devfs_asm.S

@@ -553,7 +553,7 @@ _get_next_pma:
     bhs     .L_gnp_chkaddr
     subs    r0, r3, r2
     blo     .L_gnp_exit
-    cmp     r0, #0x40       //check for the pma table overlap
+    cmp     r0, #0x20       //check for the pma table overlap
 .L_gnp_exit:
     pop     {r1, r3, r4, pc}
     .size   _get_next_pma, . - _get_next_pma

+ 1 - 5
src/usbd_stm32l100_devfs.c

@@ -90,11 +90,7 @@ static uint16_t get_next_pma(uint16_t sz) {
         if ((tbl->tx.addr) && (tbl->tx.addr < _result)) _result = tbl->tx.addr;
         if ((tbl->rx.addr) && (tbl->rx.addr < _result)) _result = tbl->rx.addr;
     }
-    if ( _result < (4 * sizeof(pma_table) + sz)) {
-        return 0;
-    } else {
-        return _result - sz;
-    }
+    return (_result < (0x020 + sz)) ? 0 : (_result - sz);
 }
 
 uint32_t getinfo(void) {

+ 1 - 1
src/usbd_stm32l100_devfs_asm.S

@@ -545,7 +545,7 @@ _get_next_pma:
     bne     .L_gnp_chkaddr
     subs    r0, r3, r2
     blo     .L_gnp_exit
-    cmp     r0, #0x40       //check for the pma table overlap
+    cmp     r0, #0x20       //check for the pma table overlap
 .L_gnp_exit:
     pop     {r1, r3, r4, pc}