Parcourir la source

fix some bugs in ASM drivers.

issue#105
Dmitry Filimonchuk il y a 4 ans
Parent
commit
da829b9f6d

+ 6 - 7
src/usbd_stm32f103_devfs_asm.S

@@ -390,16 +390,15 @@ _ep_isstalled:
     lsls    r2, r0, #28
     lsrs    r2, #26
     ldr     r1, [r1, r2]
-    lsls    r1, #17
+    lsls    r1, #18
     cmp     r0, #0x80
-    bhs     .L_eis_check
+    blo     .L_eis_check
     lsls    r1, #8
 .L_eis_check:
-    lsrs    r1, r1, #28
-    subs    r1, #0x01
-    subs    r0, r1, #0x01
-    sbcs    r1, r1
-    rsbs    r0, r1, #0
+    lsrs    r0, r1, #30
+    subs    r0, #0x01
+    subs    r1, r0, #0x01
+    sbcs    r0, r0
     bx      lr
     .size  _ep_isstalled, . - _ep_isstalled
 

+ 6 - 7
src/usbd_stm32l052_devfs_asm.S

@@ -363,16 +363,15 @@ _ep_isstalled:
     lsls    r2, r0, #28
     lsrs    r2, #26
     ldr     r1, [r1, r2]
-    lsls    r1, #17
+    lsls    r1, #18
     cmp     r0, #0x80
-    bhs     .L_eis_check
+    blo     .L_eis_check
     lsls    r1, #8
 .L_eis_check:
-    lsrs    r1, r1, #28
-    subs    r1, #0x01
-    subs    r0, r1, #0x01
-    sbcs    r1, r1
-    rsbs    r0, r1, #0
+    lsrs    r0, r1, #30
+    subs    r0, #0x01
+    subs    r1, r0, #0x01
+    sbcs    r0, r0
     bx      lr
     .size  _ep_isstalled, . - _ep_isstalled
 

+ 7 - 8
src/usbd_stm32l100_devfs_asm.S

@@ -326,16 +326,15 @@ _ep_isstalled:
     lsls    r2, r0, #28
     lsrs    r2, #26
     ldr     r1, [r1, r2]
-    lsls    r1, #17
+    lsls    r1, #18
     cmp     r0, #0x80
-    bhs     .L_eis_check
+    blo     .L_eis_check
     lsls    r1, #8
 .L_eis_check:
-    lsrs    r1, r1, #28
-    subs    r1, #0x01
-    subs    r0, r1, #0x01
-    sbcs    r1, r1
-    rsbs    r0, r1, #0
+    lsrs    r0, r1, #30
+    subs    r0, #0x01
+    subs    r1, r0, #0x01
+    sbcs    r0, r0
     bx      lr
     .size  _ep_isstalled, . - _ep_isstalled
 
@@ -683,7 +682,7 @@ _ep_deconfig:
     ldr     r2, =USB_EPBASE
     ldr     r3, =USB_PMABASE
     adds    r2, r1
-    lsls    r1, #1
+    lsls    r1, #2
     adds    r3, r1
 /* clearing endpoint register */
     ldr     r1, =EP_NOTOG