|
|
0x00002cca in ?? ()
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00002cca ? b.n 0x2cca
|
|
|
0x00002ccc ? movs r3, #217 ; 0xd9
|
|
|
0x00002cce ? movs r0, r0
|
|
|
0x00002cd0 ? cmp r4, #21
|
|
|
0x00002cd2 ? movs r0, r0
|
|
|
0x00002cd4 ? movs r3, #137 ; 0x89
|
|
|
0x00002cd6 ? movs r0, r0
|
|
|
0x00002cd8 ? push {r4, lr}
|
|
|
0x00002cda ? ldr r3, [pc, #4] ; (0x2ce0)
|
|
|
0x00002cdc ? blx r3
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00002c15 r2 0x41005000
|
|
|
r3 0x200002ec r4 0x000023d9 r5 0x00000003
|
|
|
r6 0x00000008 r7 0x0000000c r8 0xf67fffb9
|
|
|
r9 0x3f7fddf9 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xfee5ffdf sp 0x20002398 lr 0x00002ccb
|
|
|
pc 0x00002cca xPSR 0x61000000 msp 0x20002398
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002cca
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002cca
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2444 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2444
|
|
|
Start address 0x00000000, load size 9388
|
|
|
Transfer rate: 10 KB/sec, 4694 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00000000 in exception_table ()
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00000000 ? movs r3, #192 ; 0xc0
|
|
|
0x00000002 ? movs r0, #0
|
|
|
0x00000004 ? lsls r1, r0, #4
|
|
|
0x00000006 ? movs r0, r0
|
|
|
0x00000008 ? lsls r5, r7, #3
|
|
|
0x0000000a ? movs r0, r0
|
|
|
0x0000000c ? lsls r5, r7, #3
|
|
|
0x0000000e ? movs r0, r0
|
|
|
0x00000010 ? movs r0, r0
|
|
|
0x00000012 ? movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000000 r2 0x00000000
|
|
|
r3 0x00000000 r4 0x00000000 r5 0x00000000
|
|
|
r6 0x00000000 r7 0x00000000 r8 0x00000000
|
|
|
r9 0x00000000 r10 0x00000000 r11 0x00000000
|
|
|
r12 0x00000000 sp 0x00000000 lr 0x00000000
|
|
|
pc 0x00000000 xPSR 0x00000000 msp 0x00000000
|
|
|
psp 0x00000000 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000000 in exception_table
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000000 in exception_table
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
122 }
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in usb_d_ep_register_callback+74 at ../hal/src/hal_usb_device.c:579
|
|
|
[2] from 0xefdcfdfe
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25a4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25a4
|
|
|
Start address 0x00000000, load size 9740
|
|
|
Transfer rate: 10 KB/sec, 4870 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x0000140a in cdcd_acm_example () at ../usb_start.c:109
|
|
|
109 };
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
0x00001404 cdcd_acm_example+0 push {r4, lr}
|
|
|
0x00001406 cdcd_acm_example+2 ldr r3, [pc, #16] ; (0x1418 <cdcd_acm_example+20>)
|
|
|
0x00001408 cdcd_acm_example+4 blx r3
|
|
|
0x0000140a cdcd_acm_example+6 cmp r0, #0
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000140b
|
|
|
pc 0x0000140a xPSR 0x61000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
99 * - Connect the DEBUG USB on XPLAINED board to PC for program download.
|
|
|
100 * - Connect the TARGET USB on XPLAINED board to PC for running program.
|
|
|
101 * The application will behave as a virtual COM.
|
|
|
102 * - Open a HyperTerminal or other COM tools in PC side.
|
|
|
103 * - Send out a character or string and it will echo the content received.
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000140a in cdcd_acm_example+6 at ../usb_start.c:109
|
|
|
[1] from 0x00001baa in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000140a in cdcd_acm_example+6 at ../usb_start.c:109
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25a4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25a4
|
|
|
Start address 0x00000000, load size 9740
|
|
|
Transfer rate: 10 KB/sec, 4870 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
122 }
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001baa in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25a4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25a4
|
|
|
Start address 0x00000000, load size 9740
|
|
|
Transfer rate: 10 KB/sec, 4870 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001baa in main+30 at ../main.c:13
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25a4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25a4
|
|
|
Start address 0x00000000, load size 9740
|
|
|
Transfer rate: 10 KB/sec, 4870 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25a4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25a4
|
|
|
Start address 0x00000000, load size 9740
|
|
|
Transfer rate: 10 KB/sec, 4870 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 10 KB/sec, 4876 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 10 KB/sec, 4876 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001416 in cdc_device_acm_init () at ../usb_start.c:92
|
|
|
92 usbdc_attach();
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdc_device_acm_init+44 beq.n 0x1406 <cdc_device_acm_init+38>
|
|
|
0x0000140e cdc_device_acm_init+46 movs r0, #3
|
|
|
0x00001410 cdc_device_acm_init+48 ldr r1, [pc, #8] ; (0x141c <cdc_device_acm_init+60>)
|
|
|
0x00001412 cdc_device_acm_init+50 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example>)
|
|
|
0x00001414 cdc_device_acm_init+52 blx r3
|
|
|
0x00001416 cdc_device_acm_init+54 b.n 0x1416 <cdc_device_acm_init+54>
|
|
|
0x00001418 cdc_device_acm_init+56 lsls r5, r3, #18
|
|
|
0x0000141a cdc_device_acm_init+58 movs r0, r0
|
|
|
0x0000141c cdc_device_acm_init+60 asrs r5, r2, #14
|
|
|
0x0000141e cdc_device_acm_init+62 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
82 */
|
|
|
83 void cdc_device_acm_init(void)
|
|
|
84 {
|
|
|
85 /* usb stack init */
|
|
|
86 usbdc_init(ctrl_buffer);
|
|
|
87
|
|
|
88 /* usbdc_register_funcion inside */
|
|
|
89 while(cdcdf_acm_init() != ERR_NONE);
|
|
|
90 usbdc_detach();
|
|
|
91 usbdc_start(single_desc);
|
|
|
92 usbdc_attach();
|
|
|
93 }
|
|
|
94
|
|
|
95 /**
|
|
|
96 * Example of using CDC ACM Function.
|
|
|
97 * \note
|
|
|
98 * In this example, we will use a PC as a USB host:
|
|
|
99 * - Connect the DEBUG USB on XPLAINED board to PC for program download.
|
|
|
100 * - Connect the TARGET USB on XPLAINED board to PC for running program.
|
|
|
101 * The application will behave as a virtual COM.
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdc_device_acm_init+54 at ../usb_start.c:92
|
|
|
[1] from 0x00001b9a in usb_d_ep_register_callback+50 at ../hal/src/hal_usb_device.c:575
|
|
|
[2] from 0x0000000c in exception_table
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdc_device_acm_init+54 at ../usb_start.c:92
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25e4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25e4
|
|
|
Start address 0x00000000, load size 9804
|
|
|
Transfer rate: 10 KB/sec, 4902 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001428 cdcd_acm_example+8 beq.n 0x1422 <cdcd_acm_example+2>
|
|
|
0x0000142a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000142c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1438 <cdcd_acm_example+24>)
|
|
|
0x0000142e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x143c <cdcd_acm_example+28>)
|
|
|
0x00001430 cdcd_acm_example+16 blx r3
|
|
|
0x00001432 cdcd_acm_example+18 b.n 0x1432 <cdcd_acm_example+18>
|
|
|
0x00001434 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001436 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001438 cdcd_acm_example+24 asrs r5, r4, #14
|
|
|
0x0000143a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x000013a5 r2 0x000013a5
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001432 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001432 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001432 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25e4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25e4
|
|
|
Start address 0x00000000, load size 9804
|
|
|
Transfer rate: 10 KB/sec, 4902 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001428 cdcd_acm_example+8 beq.n 0x1422 <cdcd_acm_example+2>
|
|
|
0x0000142a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000142c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1438 <cdcd_acm_example+24>)
|
|
|
0x0000142e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x143c <cdcd_acm_example+28>)
|
|
|
0x00001430 cdcd_acm_example+16 blx r3
|
|
|
0x00001432 cdcd_acm_example+18 b.n 0x1432 <cdcd_acm_example+18>
|
|
|
0x00001434 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001436 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001438 cdcd_acm_example+24 asrs r5, r4, #14
|
|
|
0x0000143a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x000013a5 r2 0x000013a5
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001432 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001432 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001432 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25e4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25e4
|
|
|
Start address 0x00000000, load size 9804
|
|
|
Transfer rate: 10 KB/sec, 4902 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001432 in cdcd_acm_example () at ../usb_start.c:113
|
|
|
113 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001428 cdcd_acm_example+12 beq.n 0x1422 <cdcd_acm_example+6>
|
|
|
0x0000142a cdcd_acm_example+14 movs r0, #3
|
|
|
0x0000142c cdcd_acm_example+16 ldr r1, [pc, #8] ; (0x1438 <cdcd_acm_example+28>)
|
|
|
0x0000142e cdcd_acm_example+18 ldr r3, [pc, #12] ; (0x143c <usb_init>)
|
|
|
0x00001430 cdcd_acm_example+20 blx r3
|
|
|
0x00001432 cdcd_acm_example+22 b.n 0x1432 <cdcd_acm_example+22>
|
|
|
0x00001434 cdcd_acm_example+24 lsls r5, r3, #18
|
|
|
0x00001436 cdcd_acm_example+26 movs r0, r0
|
|
|
0x00001438 cdcd_acm_example+28 asrs r5, r4, #14
|
|
|
0x0000143a cdcd_acm_example+30 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x000013a5 r2 0x000013a5
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001432 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
103 */
|
|
|
104 void cdcd_acm_example(void)
|
|
|
105 {
|
|
|
106 while (!cdcdf_acm_is_enabled()) {
|
|
|
107 // wait cdc acm to be installed
|
|
|
108 };
|
|
|
109
|
|
|
110 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
111
|
|
|
112 while (1) {
|
|
|
113 }
|
|
|
114 }
|
|
|
115
|
|
|
116 void usb_init(void)
|
|
|
117 {
|
|
|
118
|
|
|
119 cdc_device_acm_init();
|
|
|
120 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001432 in cdcd_acm_example+22 at ../usb_start.c:113
|
|
|
[1] from 0x00001bc2 in main+18 at ../main.c:10
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001432 in cdcd_acm_example+22 at ../usb_start.c:113
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25e0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25e0
|
|
|
Start address 0x00000000, load size 9800
|
|
|
Transfer rate: 10 KB/sec, 4900 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:113
|
|
|
113 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001424 cdcd_acm_example+8 beq.n 0x141e <cdcd_acm_example+2>
|
|
|
0x00001426 cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001428 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1434 <cdcd_acm_example+24>)
|
|
|
0x0000142a cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1438 <cdcd_acm_example+28>)
|
|
|
0x0000142c cdcd_acm_example+16 blx r3
|
|
|
0x0000142e cdcd_acm_example+18 b.n 0x142e <cdcd_acm_example+18>
|
|
|
0x00001430 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001432 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001434 cdcd_acm_example+24 asrs r5, r4, #14
|
|
|
0x00001436 cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x000013a5 r2 0x000013a5
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x0000142e xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
103 */
|
|
|
104 void cdcd_acm_example(void)
|
|
|
105 {
|
|
|
106 while (!cdcdf_acm_is_enabled()) {
|
|
|
107 // wait cdc acm to be installed
|
|
|
108 };
|
|
|
109
|
|
|
110 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
111
|
|
|
112 while (1) {
|
|
|
113 }
|
|
|
114 }
|
|
|
115
|
|
|
116 void usb_init(void)
|
|
|
117 {
|
|
|
118
|
|
|
119 cdc_device_acm_init();
|
|
|
120 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000142e in cdcd_acm_example+18 at ../usb_start.c:113
|
|
|
[1] from 0x00001bbe in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000142e in cdcd_acm_example+18 at ../usb_start.c:113
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25e0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25e0
|
|
|
Start address 0x00000000, load size 9800
|
|
|
Transfer rate: 10 KB/sec, 4900 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x0000142e in usb_init () at ../usb_start.c:118
|
|
|
118 cdc_device_acm_init();
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001424 usb_init+0 beq.n 0x141e <cdcd_acm_example+26>
|
|
|
0x00001426 usb_init+2 movs r0, #3
|
|
|
0x00001428 usb_init+4 ldr r1, [pc, #8] ; (0x1434 <_sysctrl_init_sources+4>)
|
|
|
0x0000142a usb_init+6 ldr r3, [pc, #12] ; (0x1438 <_sysctrl_init_sources+8>)
|
|
|
0x0000142c usb_init+8 blx r3
|
|
|
0x0000142e usb_init+10 b.n 0x142e <usb_init+10>
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x000013a5 r2 0x000013a5
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x0000142e xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
108
|
|
|
109 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
110
|
|
|
111 while (1) {
|
|
|
112 }
|
|
|
113 }
|
|
|
114
|
|
|
115 void usb_init(void)
|
|
|
116 {
|
|
|
117
|
|
|
118 cdc_device_acm_init();
|
|
|
119 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000142e in usb_init+10 at ../usb_start.c:118
|
|
|
[1] from 0x00001bbe in main+50 at ../main.c:12
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000142e in usb_init+10 at ../usb_start.c:118
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 10 KB/sec, 4876 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcdf_acm_is_enabled () at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000049c cdcdf_acm_is_enabled+0 ldr r3, [pc, #4] ; (0x4a4 <cdcdf_acm_is_enabled+8>)
|
|
|
0x0000049e cdcdf_acm_is_enabled+2 ldrb r0, [r3, #5]
|
|
|
0x000004a0 cdcdf_acm_is_enabled+4 bx lr
|
|
|
0x000004a2 cdcdf_acm_is_enabled+6 nop ; (mov r8, r8)
|
|
|
0x000004a4 cdcdf_acm_is_enabled+8 lsls r4, r0, #2
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000 r3 0x0000049d r4 0x00000029
|
|
|
r5 0x0000000c r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0xffe5ffdf sp 0x200023a0 lr 0x0000140b
|
|
|
pc 0x0000049c xPSR 0x61000000 msp 0x200023a0 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000049c in cdcdf_acm_is_enabled+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x0000140a in cdcd_acm_example+6 at ../usb_start.c:107
|
|
|
[2] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000049c in cdcdf_acm_is_enabled+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 10 KB/sec, 4876 bytes/write.
|
|
|
Breakpoint 1 at 0x1394: file ../usb_start.c, line 68.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, usb_device_cb_state_c (state=...) at ../usb_start.c:68
|
|
|
68 if (state.rs232.DTR) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001394 usb_device_cb_state_c+0 push {r0, r1, r2, r4, r5, lr}
|
|
|
0x00001396 usb_device_cb_state_c+2 movs r5, #1
|
|
|
0x00001398 usb_device_cb_state_c+4 add r3, sp, #4
|
|
|
0x0000139a usb_device_cb_state_c+6 strh r0, [r3, #0]
|
|
|
0x0000139c usb_device_cb_state_c+8 tst r5, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x410050ff r2 0x00000003 r3 0x00001395 r4 0x2000031c
|
|
|
r5 0x20000084 r6 0x00001fd9 r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x0000003f sp 0x200022d0 lr 0x0000028d
|
|
|
pc 0x00001394 xPSR 0x01000017 msp 0x200022d0 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
!68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
74 }
|
|
|
75
|
|
|
76 /* No error. */
|
|
|
77 return false;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001394 in usb_device_cb_state_c+0 at ../usb_start.c:68
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001ebe in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002000 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x00001862 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011f6 in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011f6 in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011f6 in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001394 in usb_device_cb_state_c+0 at ../usb_start.c:68
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 0,modem = {dte_present = 0 '\000',carrier_ctrl = 0 '\000'},rs232 = {DTR = 0 '\000',RTS = 0…
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001396 usb_device_cb_state_c+2 movs r5, #1
|
|
|
0x00001398 usb_device_cb_state_c+4 add r3, sp, #4
|
|
|
0x0000139a usb_device_cb_state_c+6 strh r0, [r3, #0]
|
|
|
0x0000139c usb_device_cb_state_c+8 tst r5, r0
|
|
|
0x0000139e usb_device_cb_state_c+10 beq.n 0x13b6 <usb_device_cb_state_c+34>
|
|
|
0x000013a0 usb_device_cb_state_c+12 ldr r1, [pc, #24] ; (0x13bc <usb_device_cb_state_c+40>)
|
|
|
0x000013a2 usb_device_cb_state_c+14 ldr r4, [pc, #28] ; (0x13c0 <usb_device_cb_state_c+44>)
|
|
|
0x000013a4 usb_device_cb_state_c+16 movs r0, #0
|
|
|
0x000013a6 usb_device_cb_state_c+18 blx r4
|
|
|
0x000013a8 usb_device_cb_state_c+20 ldr r1, [pc, #24] ; (0x13c4 <usb_device_cb_state_c+48>)
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x410050ff r2 0x00000003 r3 0x200022bc r4 0x2000031c
|
|
|
r5 0x00000001 r6 0x00001fd9 r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x0000003f sp 0x200022b8 lr 0x0000028d
|
|
|
pc 0x000013a0 xPSR 0x01000017 msp 0x200022b8 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
56 /* Echo data. */
|
|
|
57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
!68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
74 }
|
|
|
75
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000013a0 in usb_device_cb_state_c+12 at ../usb_start.c:66
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001ebe in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002000 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x00001862 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011f6 in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011f6 in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011f6 in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000013a0 in usb_device_cb_state_c+12 at ../usb_start.c:66
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 3,modem = {dte_present = 3 '\003',carrier_ctrl = 0 '\000'},rs232 = {DTR = 1 '\001',RTS = 1…
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
77 return false;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000013ac usb_device_cb_state_c+24 blx r4
|
|
|
0x000013ae usb_device_cb_state_c+26 movs r1, #64 ; 0x40
|
|
|
0x000013b0 usb_device_cb_state_c+28 ldr r0, [pc, #20] ; (0x13c8 <usb_device_cb_state_c+52>)
|
|
|
0x000013b2 usb_device_cb_state_c+30 ldr r3, [pc, #24] ; (0x13cc <usb_device_cb_state_c+56>)
|
|
|
0x000013b4 usb_device_cb_state_c+32 blx r3
|
|
|
0x000013b6 usb_device_cb_state_c+34 movs r0, #0
|
|
|
0x000013b8 usb_device_cb_state_c+36 pop {r1, r2, r3, r4, r5, pc}
|
|
|
0x000013ba usb_device_cb_state_c+38 nop ; (mov r8, r8)
|
|
|
0x000013bc usb_device_cb_state_c+40 asrs r5, r7, #13
|
|
|
0x000013be usb_device_cb_state_c+42 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000025 r3 0x00000040 r4 0x00000465
|
|
|
r5 0x00000001 r6 0x00001fd9 r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x200022b8 lr 0x0000104f
|
|
|
pc 0x000013b6 xPSR 0x41000017 msp 0x200022b8 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
67 {
|
|
|
!68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
74 }
|
|
|
75
|
|
|
76 /* No error. */
|
|
|
77 return false;
|
|
|
78 }
|
|
|
79
|
|
|
80 /**
|
|
|
81 * \brief CDC ACM Init
|
|
|
82 */
|
|
|
83 void cdc_device_acm_init(void)
|
|
|
84 {
|
|
|
85 /* usb stack init */
|
|
|
86 usbdc_init(ctrl_buffer);
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000013b6 in usb_device_cb_state_c+34 at ../usb_start.c:77
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001ebe in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002000 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x00001862 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011f6 in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011f6 in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011f6 in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000013b6 in usb_device_cb_state_c+34 at ../usb_start.c:77
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 3,modem = {dte_present = 3 '\003',carrier_ctrl = 0 '\000'},rs232 = {DTR = 1 '\001',RTS = 1…
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usbdc_request_handler (ep=ep@entry=0 '\000', req=req@entry=0x2000031c <usb_d_inst+12>, stage=stage@entry=USB_SETUP_STAGE) at ../usb/device/usbdc.c:648
|
|
|
648 if (0 == rc) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001eb4 usbdc_request_handler+28 b.n 0x1ea4 <usbdc_request_handler+12>
|
|
|
0x00001eb6 usbdc_request_handler+30 movs r2, r7
|
|
|
0x00001eb8 usbdc_request_handler+32 movs r1, r6
|
|
|
0x00001eba usbdc_request_handler+34 movs r0, r5
|
|
|
0x00001ebc usbdc_request_handler+36 blx r3
|
|
|
0x00001ebe usbdc_request_handler+38 cmp r0, #0
|
|
|
0x00001ec0 usbdc_request_handler+40 beq.n 0x1ecc <usbdc_request_handler+52>
|
|
|
0x00001ec2 usbdc_request_handler+42 adds r0, #10
|
|
|
0x00001ec4 usbdc_request_handler+44 beq.n 0x1eb2 <usbdc_request_handler+26>
|
|
|
0x00001ec6 usbdc_request_handler+46 movs r0, #1
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000003 r2 0x41000003 r3 0x00000003 r4 0x20000000
|
|
|
r5 0x00000000 r6 0x2000031c r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x200022f8 lr 0x0000104f
|
|
|
pc 0x00001ebe xPSR 0x41000017 msp 0x200022f8 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
638
|
|
|
639 /** Invoke all registered request callbacks until request handled. */
|
|
|
640 static int32_t usbdc_request_handler(uint8_t ep, struct usb_req *req, enum usb_ctrl_stage stage)
|
|
|
641 {
|
|
|
642 struct usbdc_req_handler *h = (struct usbdc_req_handler *)usbdc.handlers.req_list.head;
|
|
|
643 int32_t rc;
|
|
|
644
|
|
|
645 while (h != NULL) {
|
|
|
646 if (NULL != h->cb) {
|
|
|
647 rc = h->cb(ep, req, stage);
|
|
|
648 if (0 == rc) {
|
|
|
649 return true;
|
|
|
650 } else if (ERR_NOT_FOUND != rc) {
|
|
|
651 return -1;
|
|
|
652 }
|
|
|
653 }
|
|
|
654 h = h->next;
|
|
|
655 }
|
|
|
656 return false;
|
|
|
657 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001ebe in usbdc_request_handler+38 at ../usb/device/usbdc.c:648
|
|
|
[1] from 0x00002000 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[2] from 0x00001862 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[3] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[4] from 0x000011f6 in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[5] from 0x000011f6 in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[6] from 0x000011f6 in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x000011f6 in USB_Handler+302 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001ebe in usbdc_request_handler+38 at ../usb/device/usbdc.c:648
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 0 '\000', req = 0x2000031c <usb_d_inst+12>: {bmRequestType = 33 '!',bRequest = 34 '"',{wValue = 3,wValueB…, stage = USB_SETUP_STAGE
|
|
|
loc h = 0x20000000 <cdcdf_acm_req_h>: {next = 0x0 <exception_table>,cb = 0x1d5 <cdcdf_acm_req>}, rc = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_dev_handle_setup (ept=ept@entry=0x2000011c <dev_inst+20>) at ../hpl/usb/hpl_usb.c:1231
|
|
|
1231 return;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000050c _usb_d_dev_handle_setup+32 movs r1, #16
|
|
|
0x0000050e _usb_d_dev_handle_setup+34 strb r1, [r2, #7]
|
|
|
0x00000510 _usb_d_dev_handle_setup+36 ldr r2, [pc, #72] ; (0x55c <_usb_d_dev_handle_setup+112>)
|
|
|
0x00000512 _usb_d_dev_handle_setup+38 adds r3, r3, r2
|
|
|
0x00000514 _usb_d_dev_handle_setup+40 strb r1, [r3, #9]
|
|
|
0x00000516 _usb_d_dev_handle_setup+42 pop {r4, r5, r6, pc}
|
|
|
0x00000518 _usb_d_dev_handle_setup+44 movs r5, #64 ; 0x40
|
|
|
0x0000051a _usb_d_dev_handle_setup+46 tst r4, r5
|
|
|
0x0000051c _usb_d_dev_handle_setup+48 beq.n 0x52c <_usb_d_dev_handle_setup+64>
|
|
|
0x0000051e _usb_d_dev_handle_setup+50 movs r6, #128 ; 0x80
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x2000031c r2 0x410050ff r3 0x2000011c r4 0x00000000
|
|
|
r5 0x00000008 r6 0x00000000 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002350 lr 0x0000104f
|
|
|
pc 0x00000516 xPSR 0x21000017 msp 0x20002350 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1221 */
|
|
|
1222 static void _usb_d_dev_handle_setup(struct _usb_d_dev_ep *ept)
|
|
|
1223 {
|
|
|
1224 uint8_t epn = USB_EP_GET_N(ept->ep);
|
|
|
1225 bool is_ctrl = _usb_d_dev_ep_is_ctrl(ept);
|
|
|
1226
|
|
|
1227 if (!is_ctrl) {
|
|
|
1228 /* Should never be here! */
|
|
|
1229 _usbd_ep_ack_setup(epn);
|
|
|
1230 _usbd_ep_stop_setup(epn);
|
|
|
1231 return;
|
|
|
1232 }
|
|
|
1233 /* Control transfer:
|
|
|
1234 * SETUP transaction will terminate IN/OUT transaction,
|
|
|
1235 * and start new transaction with received SETUP packet.
|
|
|
1236 */
|
|
|
1237 if (_usb_d_dev_ep_is_busy(ept)) {
|
|
|
1238 ept->flags.bits.is_busy = 0;
|
|
|
1239
|
|
|
1240 /* Stop transfer on either direction. */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000516 in _usb_d_dev_handle_setup+42 at ../hpl/usb/hpl_usb.c:1231
|
|
|
[1] from 0x000011f6 in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[2] from 0x000011f6 in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[3] from 0x000011f6 in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[4] from 0x000011f6 in USB_Handler+302 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[5] from 0xfffffff9
|
|
|
[6] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[7] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000516 in _usb_d_dev_handle_setup+42 at ../hpl/usb/hpl_usb.c:1231
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ept = 0x2000011c <dev_inst+20>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…
|
|
|
loc epn = <optimized out>, is_ctrl = <optimized out>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_dev_handler () at ../hpl/usb/hpl_usb.c:1431
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x2000031c r2 0x410050ff r3 0x2000011c r4 0x2000011c
|
|
|
r5 0x00000001 r6 0x00000000 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x21000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 1 '\001', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x2000031c r2 0x410050ff r3 0x2000011c r4 0x20000130
|
|
|
r5 0x00000001 r6 0x00000001 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x20000130 <dev_inst+40>: {trans_buf = 0x20000290 <usbd_cdc_buffer> "",trans_size = 64,tr…, i = 1 '\001', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
0x000011b8 _usb_d_dev_handler+238 lsls r2, r3
|
|
|
0x000011ba _usb_d_dev_handler+240 ldr r1, [sp, #4]
|
|
|
0x000011bc _usb_d_dev_handler+242 tst r1, r2
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x2000031c r2 0x410050ff r3 0x00000001 r4 0x20000130
|
|
|
r5 0x00000001 r6 0x00000001 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011b4 xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
1443 static void _usb_d_dev_reset_epts(void)
|
|
|
1444 {
|
|
|
1445 uint8_t i;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011b4 in _usb_d_dev_handler+234 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[1] from 0x000011b4 in USB_Handler+236 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011b4 in _usb_d_dev_handler+234 at ../hpl/usb/hpl_usb.c:1436
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x20000130 <dev_inst+40>: {trans_buf = 0x20000290 <usbd_cdc_buffer> "",trans_size = 64,tr…, i = 1 '\001', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x00000001 r4 0x20000130
|
|
|
r5 0x00000001 r6 0x00000001 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x41000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 2 '\002', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x00000001 r4 0x20000144
|
|
|
r5 0x00000001 r6 0x00000002 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x20000144 <dev_inst+60>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, i = 2 '\002', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x000000ff r4 0x20000144
|
|
|
r5 0x00000001 r6 0x00000002 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x61000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 3 '\003', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x000000ff r4 0x20000158
|
|
|
r5 0x00000001 r6 0x00000003 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x20000158 <dev_inst+80>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, i = 3 '\003', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
0x000011b8 _usb_d_dev_handler+238 lsls r2, r3
|
|
|
0x000011ba _usb_d_dev_handler+240 ldr r1, [sp, #4]
|
|
|
0x000011bc _usb_d_dev_handler+242 tst r1, r2
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x00000081 r4 0x20000158
|
|
|
r5 0x00000001 r6 0x00000003 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011b4 xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
1443 static void _usb_d_dev_reset_epts(void)
|
|
|
1444 {
|
|
|
1445 uint8_t i;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011b4 in _usb_d_dev_handler+234 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[1] from 0x000011b4 in USB_Handler+236 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011b4 in _usb_d_dev_handler+234 at ../hpl/usb/hpl_usb.c:1436
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x20000158 <dev_inst+80>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, i = 3 '\003', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x00000001 r4 0x20000158
|
|
|
r5 0x00000001 r6 0x00000003 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x41000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 4 '\004', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x00000001 r4 0x2000016c
|
|
|
r5 0x00000001 r6 0x00000004 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x2000016c <dev_inst+100>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count …, i = 4 '\004', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
0x000011b8 _usb_d_dev_handler+238 lsls r2, r3
|
|
|
0x000011ba _usb_d_dev_handler+240 ldr r1, [sp, #4]
|
|
|
0x000011bc _usb_d_dev_handler+242 tst r1, r2
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000002 r3 0x00000082 r4 0x2000016c
|
|
|
r5 0x00000001 r6 0x00000004 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011b4 xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
1443 static void _usb_d_dev_reset_epts(void)
|
|
|
1444 {
|
|
|
1445 uint8_t i;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011b4 in _usb_d_dev_handler+234 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[1] from 0x000011b4 in USB_Handler+236 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011b4 in _usb_d_dev_handler+234 at ../hpl/usb/hpl_usb.c:1436
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x2000016c <dev_inst+100>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count …, i = 4 '\004', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x00000002 r4 0x2000016c
|
|
|
r5 0x00000001 r6 0x00000004 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x41000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 5 '\005', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x00000002 r4 0x20000180
|
|
|
r5 0x00000001 r6 0x00000005 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x20000180 <dev_inst+120>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count …, i = 5 '\005', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x000000ff r4 0x20000180
|
|
|
r5 0x00000001 r6 0x00000005 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x61000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 6 '\006', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x000000ff r4 0x20000194
|
|
|
r5 0x00000001 r6 0x00000006 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x20000194 <dev_inst+140>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count …, i = 6 '\006', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x000000ff r4 0x20000194
|
|
|
r5 0x00000001 r6 0x00000006 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x61000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 7 '\a', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x000000ff r4 0x200001a8
|
|
|
r5 0x00000001 r6 0x00000007 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x200001a8 <dev_inst+160>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count …, i = 7 '\a', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x000000ff r4 0x200001a8
|
|
|
r5 0x00000001 r6 0x00000007 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x61000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 8 '\b', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000011a4 _usb_d_dev_handler+218 b.n 0x1136 <USB_Handler+110>
|
|
|
0x000011a6 _usb_d_dev_handler+220 movs r6, #0
|
|
|
0x000011a8 _usb_d_dev_handler+222 movs r7, #15
|
|
|
0x000011aa _usb_d_dev_handler+224 movs r5, #1
|
|
|
0x000011ac _usb_d_dev_handler+226 ldr r4, [pc, #232] ; (0x1298 <USB_Handler+464>)
|
|
|
0x000011ae _usb_d_dev_handler+228 ldrb r3, [r4, #18]
|
|
|
0x000011b0 _usb_d_dev_handler+230 cmp r3, #255 ; 0xff
|
|
|
0x000011b2 _usb_d_dev_handler+232 beq.n 0x1226 <USB_Handler+350>
|
|
|
0x000011b4 _usb_d_dev_handler+234 movs r2, r5
|
|
|
0x000011b6 _usb_d_dev_handler+236 ands r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x000000ff r4 0x200001bc
|
|
|
r5 0x00000001 r6 0x00000008 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x000011ae xPSR 0x81000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
1441 * \brief Reset all endpoint software instances
|
|
|
1442 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
[1] from 0x000011ae in USB_Handler+230 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000011ae in _usb_d_dev_handler+228 at ../hpl/usb/hpl_usb.c:1433
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ept = 0x200001bc <dev_inst+180>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count …, i = 8 '\b', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000121c _usb_d_dev_handler+338 bpl.n 0x1230 <USB_Handler+360>
|
|
|
0x0000121e _usb_d_dev_handler+340 movs r1, r5
|
|
|
0x00001220 _usb_d_dev_handler+342 movs r0, r4
|
|
|
0x00001222 _usb_d_dev_handler+344 ldr r3, [pc, #132] ; (0x12a8 <USB_Handler+480>)
|
|
|
0x00001224 _usb_d_dev_handler+346 blx r3
|
|
|
0x00001226 _usb_d_dev_handler+348 adds r6, #1
|
|
|
0x00001228 _usb_d_dev_handler+350 adds r4, #20
|
|
|
0x0000122a _usb_d_dev_handler+352 cmp r6, #9
|
|
|
0x0000122c _usb_d_dev_handler+354 bne.n 0x11ae <USB_Handler+230>
|
|
|
0x0000122e _usb_d_dev_handler+356 b.n 0x10f0 <USB_Handler+40>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000080 r1 0x00000001 r2 0x00000004 r3 0x000000ff r4 0x200001bc
|
|
|
r5 0x00000001 r6 0x00000008 r7 0x0000000f r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0x00000020 sp 0x20002360 lr 0x0000104f
|
|
|
pc 0x00001226 xPSR 0x61000017 msp 0x20002360 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1421 Usb * hw = USB;
|
|
|
1422 uint8_t i;
|
|
|
1423
|
|
|
1424 uint16_t epint = hw->DEVICE.EPINTSMRY.reg;
|
|
|
1425 if (0 == epint) {
|
|
|
1426 if (_usb_d_dev_handle_nep()) {
|
|
|
1427 return;
|
|
|
1428 }
|
|
|
1429 }
|
|
|
1430 /* Handle endpoints */
|
|
|
1431 for (i = 0; i < USB_D_N_EP; i++) {
|
|
|
1432 struct _usb_d_dev_ep *ept = &dev_inst.ep[i];
|
|
|
1433 if (ept->ep == 0xFF) {
|
|
|
1434 continue;
|
|
|
1435 }
|
|
|
1436 _usb_d_dev_handle_eps(epint, ept);
|
|
|
1437 }
|
|
|
1438 }
|
|
|
1439
|
|
|
1440 /**
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
[1] from 0x00001226 in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[2] from 0xfffffff9
|
|
|
[3] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[4] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001226 in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1431
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc i = 9 '\t', epint = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
cdcd_acm_example () at ../usb_start.c:112
|
|
|
112 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395 r3 0x20000084 r4 0x00000029
|
|
|
r5 0x0000000c r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
102 */
|
|
|
103 void cdcd_acm_example(void)
|
|
|
104 {
|
|
|
105 while (!cdcdf_acm_is_enabled()) {
|
|
|
106 // wait cdc acm to be installed
|
|
|
107 };
|
|
|
108
|
|
|
109 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
110
|
|
|
111 while (1) {
|
|
|
112 }
|
|
|
113 }
|
|
|
114
|
|
|
115 void usb_init(void)
|
|
|
116 {
|
|
|
117
|
|
|
118 cdc_device_acm_init();
|
|
|
119 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
cdcd_acm_example () at ../usb_start.c:112
|
|
|
112 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001394 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395 r3 0x20000084 r4 0x00000029
|
|
|
r5 0x0000000c r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9 r9 0x3f7fddfb
|
|
|
r10 0xe7fffd53 r11 0xffef7fff r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
102 */
|
|
|
103 void cdcd_acm_example(void)
|
|
|
104 {
|
|
|
105 while (!cdcdf_acm_is_enabled()) {
|
|
|
106 // wait cdc acm to be installed
|
|
|
107 };
|
|
|
108
|
|
|
109 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
110
|
|
|
111 while (1) {
|
|
|
112 }
|
|
|
113 }
|
|
|
114
|
|
|
115 void usb_init(void)
|
|
|
116 {
|
|
|
117
|
|
|
118 cdc_device_acm_init();
|
|
|
119 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:112
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+8 beq.n 0x1406 <cdcd_acm_example+2>
|
|
|
0x0000140e cdcd_acm_example+10 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001412 cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x1420 <cdcd_acm_example+28>)
|
|
|
0x00001414 cdcd_acm_example+16 blx r3
|
|
|
0x00001416 cdcd_acm_example+18 b.n 0x1416 <cdcd_acm_example+18>
|
|
|
0x00001418 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+24 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+14 at ../main.c:8
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2588 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2588
|
|
|
Start address 0x00000000, load size 9712
|
|
|
Transfer rate: 10 KB/sec, 4856 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001416 in cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x0000140c cdcd_acm_example+12 beq.n 0x1406 <cdcd_acm_example+6>
|
|
|
0x0000140e cdcd_acm_example+14 movs r0, #3
|
|
|
0x00001410 cdcd_acm_example+16 ldr r1, [pc, #8] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001412 cdcd_acm_example+18 ldr r3, [pc, #12] ; (0x1420 <usb_init>)
|
|
|
0x00001414 cdcd_acm_example+20 blx r3
|
|
|
0x00001416 cdcd_acm_example+22 b.n 0x1416 <cdcd_acm_example+22>
|
|
|
0x00001418 cdcd_acm_example+24 lsls r5, r3, #18
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
0x0000141c cdcd_acm_example+28 asrs r5, r2, #14
|
|
|
0x0000141e cdcd_acm_example+30 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001395 r2 0x00001395
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001416 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001416 in cdcd_acm_example+22 at ../usb_start.c:114
|
|
|
[1] from 0x00001b9a in main+26 at ../main.c:12
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001416 in cdcd_acm_example+22 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 10 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b8e in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 10 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcdf_acm_is_enabled () at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000049c cdcdf_acm_is_enabled+0 ldr r3, [pc, #4] ; (0x4a4 <cdcdf_acm_is_enabled+8>)
|
|
|
0x0000049e cdcdf_acm_is_enabled+2 ldrb r0, [r3, #5]
|
|
|
0x000004a0 cdcdf_acm_is_enabled+4 bx lr
|
|
|
0x000004a2 cdcdf_acm_is_enabled+6 nop ; (mov r8, r8)
|
|
|
0x000004a4 cdcdf_acm_is_enabled+8 lsls r4, r0, #2
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000
|
|
|
r3 0x0000049d r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x00001407
|
|
|
pc 0x0000049c xPSR 0x61000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000049c in cdcdf_acm_is_enabled+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x00001406 in cdcd_acm_example+6 at ../usb_start.c:109
|
|
|
[2] from 0x00001b8e in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000049c in cdcdf_acm_is_enabled+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 10 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x000004a0 in cdcdf_acm_is_enabled () at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000049c cdcdf_acm_is_enabled+0 ldr r3, [pc, #4] ; (0x4a4 <cdcdf_acm_is_enabled+8>)
|
|
|
0x0000049e cdcdf_acm_is_enabled+2 ldrb r0, [r3, #5]
|
|
|
0x000004a0 cdcdf_acm_is_enabled+4 bx lr
|
|
|
0x000004a2 cdcdf_acm_is_enabled+6 nop ; (mov r8, r8)
|
|
|
0x000004a4 cdcdf_acm_is_enabled+8 lsls r4, r0, #2
|
|
|
0x000004a6 cdcdf_acm_is_enabled+10 movs r0, #0
|
|
|
~
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x00001407
|
|
|
pc 0x000004a0 xPSR 0x61000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x00001406 in cdcd_acm_example+6 at ../usb_start.c:109
|
|
|
[2] from 0x00001b8e in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 10 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b8e in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 10 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b8e in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 10 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001406 in cdcd_acm_example () at ../usb_start.c:109
|
|
|
109 };
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
0x00001400 cdcd_acm_example+0 push {r4, lr}
|
|
|
0x00001402 cdcd_acm_example+2 ldr r3, [pc, #16] ; (0x1414 <cdcd_acm_example+20>)
|
|
|
0x00001404 cdcd_acm_example+4 blx r3
|
|
|
0x00001406 cdcd_acm_example+6 cmp r0, #0
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fddfb r10 0xe7fffd53 r11 0xffef7fff
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x00001407
|
|
|
pc 0x00001406 xPSR 0x61000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
99 * - Connect the DEBUG USB on XPLAINED board to PC for program download.
|
|
|
100 * - Connect the TARGET USB on XPLAINED board to PC for running program.
|
|
|
101 * The application will behave as a virtual COM.
|
|
|
102 * - Open a HyperTerminal or other COM tools in PC side.
|
|
|
103 * - Send out a character or string and it will echo the content received.
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001406 in cdcd_acm_example+6 at ../usb_start.c:109
|
|
|
[1] from 0x00001b8e in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001406 in cdcd_acm_example+6 at ../usb_start.c:109
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 10 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
scripts/push.gdb:5: Error in sourced command file:
|
|
|
localhost:3333: Connection timed out.
|
|
|
Quit
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xbe7fffb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001b8e in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 9 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001412 in cdcd_acm_example () at ../usb_start.c:111
|
|
|
warning: Source file is more recent than executable.
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+4 beq.n 0x1402 <cdc_device_acm_init+50>
|
|
|
0x0000140a cdcd_acm_example+6 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+8 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+20>)
|
|
|
0x0000140e cdcd_acm_example+10 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+24>)
|
|
|
0x00001410 cdcd_acm_example+12 blx r3
|
|
|
0x00001412 cdcd_acm_example+14 b.n 0x1412 <cdcd_acm_example+14>
|
|
|
0x00001414 cdcd_acm_example+16 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+18 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+20 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+22 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xf5bffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x200023a0 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x200023a0
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
101 * The application will behave as a virtual COM.
|
|
|
102 * - Open a HyperTerminal or other COM tools in PC side.
|
|
|
103 * - Send out a character or string and it will echo the content received.
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+14 at ../usb_start.c:111
|
|
|
[1] from 0x00001b8e in usb_d_ep_register_callback+26 at ../hal/src/hal_usb_device.c:570
|
|
|
[2] from 0xefdcfdfe
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+14 at ../usb_start.c:111
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b8 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b8
|
|
|
Start address 0x00000000, load size 9760
|
|
|
Transfer rate: 9 KB/sec, 4880 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcdf_acm_is_enabled () at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
warning: Source file is more recent than executable.
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000049c cdcdf_acm_is_enabled+0 ldr r3, [pc, #4] ; (0x4a4 <cdcdf_acm_is_enabled+8>)
|
|
|
0x0000049e cdcdf_acm_is_enabled+2 ldrb r0, [r3, #5]
|
|
|
0x000004a0 cdcdf_acm_is_enabled+4 bx lr
|
|
|
0x000004a2 cdcdf_acm_is_enabled+6 nop ; (mov r8, r8)
|
|
|
0x000004a4 cdcdf_acm_is_enabled+8 lsls r4, r0, #2
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000
|
|
|
r3 0x0000049d r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xf5bffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000140b
|
|
|
pc 0x0000049c xPSR 0x61000000 msp 0x20002628
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000049c in cdcdf_acm_is_enabled+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x0000140a in cdcd_acm_example+6 at ../usb_start.c:109
|
|
|
[2] from 0x00001bce in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000049c in cdcdf_acm_is_enabled+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b8 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b8
|
|
|
Start address 0x00000000, load size 9760
|
|
|
Transfer rate: 9 KB/sec, 4880 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x000004a0 in cdcdf_acm_is_enabled () at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
warning: Source file is more recent than executable.
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000049c cdcdf_acm_is_enabled+0 ldr r3, [pc, #4] ; (0x4a4 <cdcdf_acm_is_enabled+8>)
|
|
|
0x0000049e cdcdf_acm_is_enabled+2 ldrb r0, [r3, #5]
|
|
|
0x000004a0 cdcdf_acm_is_enabled+4 bx lr
|
|
|
0x000004a2 cdcdf_acm_is_enabled+6 nop ; (mov r8, r8)
|
|
|
0x000004a4 cdcdf_acm_is_enabled+8 lsls r4, r0, #2
|
|
|
0x000004a6 cdcdf_acm_is_enabled+10 movs r0, #0
|
|
|
~
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xf5bffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000140b
|
|
|
pc 0x000004a0 xPSR 0x61000000 msp 0x20002628
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x0000140a in cdcd_acm_example+10 at ../usb_start.c:109
|
|
|
[2] from 0x00001bce in main+26 at ../main.c:12
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 9 KB/sec, 4876 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
warning: Source file is more recent than executable.
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xf5bffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x20002628
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 9 KB/sec, 4876 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
warning: Source file is more recent than executable.
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xf5bffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x20002628
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
warning: Source file is more recent than executable.
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xf5bffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x20002628
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
warning: Source file is more recent than executable.
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xf5bffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fdff9 r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x20002628
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
warning: Source file is more recent than executable.
|
|
|
114 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7ffbb9
|
|
|
r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b
|
|
|
pc 0x00001412 xPSR 0x41000000 msp 0x20002628
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
warning: Source file is more recent than executable.
|
|
|
114 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdbffebf
|
|
|
r8 0xfe7ffbb9 r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b pc 0x00001412
|
|
|
xPSR 0x41000000 msp 0x20002628 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
Breakpoint 1 at 0x1bc2: file ../main.c, line 11.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:11 for main.c:11
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdbffebf
|
|
|
r8 0xfe7ffbb9 r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b pc 0x00001412
|
|
|
xPSR 0x41000000 msp 0x20002628 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
warning: Source file is more recent than executable.
|
|
|
114 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdbffebf
|
|
|
r8 0xfe7ffbb9 r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b pc 0x00001412
|
|
|
xPSR 0x41000000 msp 0x20002628 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
Breakpoint 1 at 0x1bc2: file ../main.c, line 11.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
cdcd_acm_example () at ../usb_start.c:114
|
|
|
114 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:11 for main.c:11
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdbffebf
|
|
|
r8 0xfe7ffbb9 r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b pc 0x00001412
|
|
|
xPSR 0x41000000 msp 0x20002628 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112
|
|
|
113 while (1) {
|
|
|
114 }
|
|
|
115 }
|
|
|
116
|
|
|
117 void usb_init(void)
|
|
|
118 {
|
|
|
119
|
|
|
120 cdc_device_acm_init();
|
|
|
121 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:114
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001412 in cdcd_acm_example () at ../usb_start.c:111
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001408 cdcd_acm_example+8 beq.n 0x1402 <cdcd_acm_example+2>
|
|
|
0x0000140a cdcd_acm_example+10 movs r0, #3
|
|
|
0x0000140c cdcd_acm_example+12 ldr r1, [pc, #8] ; (0x1418 <cdcd_acm_example+24>)
|
|
|
0x0000140e cdcd_acm_example+14 ldr r3, [pc, #12] ; (0x141c <cdcd_acm_example+28>)
|
|
|
0x00001410 cdcd_acm_example+16 blx r3
|
|
|
0x00001412 cdcd_acm_example+18 b.n 0x1412 <cdcd_acm_example+18>
|
|
|
0x00001414 cdcd_acm_example+20 lsls r5, r3, #18
|
|
|
0x00001416 cdcd_acm_example+22 movs r0, r0
|
|
|
0x00001418 cdcd_acm_example+24 asrs r1, r2, #14
|
|
|
0x0000141a cdcd_acm_example+26 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdbffebf
|
|
|
r8 0xfe7ffbb9 r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002628 lr 0x0000048b pc 0x00001412
|
|
|
xPSR 0x41000000 msp 0x20002628 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
101 * The application will behave as a virtual COM.
|
|
|
102 * - Open a HyperTerminal or other COM tools in PC side.
|
|
|
103 * - Send out a character or string and it will echo the content received.
|
|
|
104 */
|
|
|
105 void cdcd_acm_example(void)
|
|
|
106 {
|
|
|
107 while (!cdcdf_acm_is_enabled()) {
|
|
|
108 // wait cdc acm to be installed
|
|
|
109 };
|
|
|
110
|
|
|
111 cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c);
|
|
|
112 }
|
|
|
113
|
|
|
114 void usb_init(void)
|
|
|
115 {
|
|
|
116
|
|
|
117 cdc_device_acm_init();
|
|
|
118 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:111
|
|
|
[1] from 0x00001bc2 in main+14 at ../main.c:9
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001412 in cdcd_acm_example+18 at ../usb_start.c:111
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
Breakpoint 1 at 0x1bc2: file ../main.c, line 11.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, main () at ../main.c:11
|
|
|
11 cdcdf_acm_write("Hello World", sizeof("Hello World"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bb8 main+4 blx r3
|
|
|
0x00001bba main+6 ldr r3, [pc, #20] ; (0x1bd0 <main+28>)
|
|
|
0x00001bbc main+8 blx r3
|
|
|
0x00001bbe main+10 ldr r3, [pc, #20] ; (0x1bd4 <main+32>)
|
|
|
0x00001bc0 main+12 blx r3
|
|
|
!0x00001bc2 main+14 movs r1, #12
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #16] ; (0x1bd8 <main+36>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 b.n 0x1bca <main+22>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:11 for main.c:11 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdbffebf
|
|
|
r8 0xfe7ffbb9 r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002630 lr 0x0000048b pc 0x00001bc2
|
|
|
xPSR 0x41000000 msp 0x20002630 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
1 #include <atmel_start.h>
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 cdc_device_acm_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
!11 cdcdf_acm_write("Hello World", sizeof("Hello World"));
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bc2 in main+14 at ../main.c:11
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bc2 in main+14 at ../main.c:11
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
14 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bc0 main+12 blx r3
|
|
|
!0x00001bc2 main+14 movs r1, #12
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #16] ; (0x1bd8 <main+36>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 b.n 0x1bca <main+22>
|
|
|
0x00001bcc main+24 subs r5, r3, #1
|
|
|
0x00001bce main+26 movs r0, r0
|
|
|
0x00001bd0 main+28 asrs r5, r1, #15
|
|
|
0x00001bd2 main+30 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:11 for main.c:11 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000c r2 0x0000256c r3 0x00000000
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdbffebf
|
|
|
r8 0xfe7ffbb9 r9 0x3f7fddf1 r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002630 lr 0x00000f7b pc 0x00001bca
|
|
|
xPSR 0x81000000 msp 0x20002630 psp 0xef58def4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 cdc_device_acm_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
!11 cdcdf_acm_write("Hello World", sizeof("Hello World"));
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bca in main+22 at ../main.c:14
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bca in main+22 at ../main.c:14
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:14
|
|
|
14 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001bc0 main+12 blx r3
|
|
|
0x00001bc2 main+14 movs r1, #12
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #16] ; (0x1bd8 <main+36>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 b.n 0x1bca <main+22>
|
|
|
0x00001bcc main+24 subs r5, r3, #1
|
|
|
0x00001bce main+26 movs r0, r0
|
|
|
0x00001bd0 main+28 asrs r5, r1, #15
|
|
|
0x00001bd2 main+30 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000c r2 0x0000256c
|
|
|
r3 0x00000000 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdfffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002630 lr 0x00000f7b
|
|
|
pc 0x00001bca xPSR 0x81000000 msp 0x20002630
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 cdc_device_acm_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 cdcdf_acm_write("Hello World", sizeof("Hello World"));
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bca in main+22 at ../main.c:14
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bca in main+22 at ../main.c:14
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25cc lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25cc
|
|
|
Start address 0x00000000, load size 9780
|
|
|
Transfer rate: 9 KB/sec, 4890 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001bca in main () at ../main.c:13
|
|
|
13 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001bc0 main+12 blx r3
|
|
|
0x00001bc2 main+14 movs r1, #12
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #16] ; (0x1bd8 <_gpio_set_pin_function+8>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #20] ; (0x1bdc <_gpio_set_pin_function+12>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 b.n 0x1bca <main+22>
|
|
|
0x00001bcc main+24 subs r5, r3, #1
|
|
|
0x00001bce main+26 movs r0, r0
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000c r2 0x0000256c
|
|
|
r3 0x00000000 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdfffebf r8 0xfe7fffb9
|
|
|
r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002630 lr 0x00000f7b
|
|
|
pc 0x00001bca xPSR 0x81000000 msp 0x20002630
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 /* Replace with your application code */
|
|
|
12 while (1) {
|
|
|
13 }
|
|
|
14 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bca in main+22 at ../main.c:13
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bca in main+22 at ../main.c:13
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 9 KB/sec, 4876 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:13
|
|
|
13 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bb8 main+4 blx r3
|
|
|
0x00001bba main+6 ldr r3, [pc, #12] ; (0x1bc8 <main+20>)
|
|
|
0x00001bbc main+8 blx r3
|
|
|
0x00001bbe main+10 ldr r3, [pc, #12] ; (0x1bcc <main+24>)
|
|
|
0x00001bc0 main+12 blx r3
|
|
|
0x00001bc2 main+14 b.n 0x1bc2 <main+14>
|
|
|
0x00001bc4 main+16 subs r5, r1, #1
|
|
|
0x00001bc6 main+18 movs r0, r0
|
|
|
0x00001bc8 main+20 asrs r1, r4, #16
|
|
|
0x00001bca main+22 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084
|
|
|
r4 0x00000029 r5 0x0000000c r6 0x00000005 r7 0xfdfffebf
|
|
|
r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0xffe5ffdf sp 0x20002630 lr 0x0000048b pc 0x00001bc2
|
|
|
xPSR 0x41000000 msp 0x20002630 psp 0xef5adef4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 /* Replace with your application code */
|
|
|
12 while (1) {
|
|
|
13 }
|
|
|
14 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 9 KB/sec, 4876 bytes/write.
|
|
|
Breakpoint 1 at 0x1360: file ../usb_start.c, line 57.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, usb_device_cb_bulk_in (ep=129 '\201', rc=USB_XFER_DONE, count=1) at ../usb_start.c:57
|
|
|
57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001360 usb_device_cb_bulk_in+0 push {r4, lr}
|
|
|
0x00001362 usb_device_cb_bulk_in+2 movs r1, #64 ; 0x40
|
|
|
0x00001364 usb_device_cb_bulk_in+4 ldr r0, [pc, #8] ; (0x1370 <usb_device_cb_bulk_in+16>)
|
|
|
0x00001366 usb_device_cb_bulk_in+6 ldr r3, [pc, #12] ; (0x1374 <usb_device_cb_bulk_in+20>)
|
|
|
0x00001368 usb_device_cb_bulk_in+8 blx r3
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000081 r1 0x00000000 r2 0x00000001 r3 0x00001361
|
|
|
r4 0x200004d8 r5 0x20000478 r6 0x200004d8 r7 0x00000000
|
|
|
r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x20002590 lr 0x000017d5 pc 0x00001360
|
|
|
xPSR 0x01000017 msp 0x20002590 psp 0xef5adef4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
47 /* No error. */
|
|
|
48 return false;
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
55 {
|
|
|
56 /* Echo data. */
|
|
|
!57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001360 in usb_device_cb_bulk_in+0 at ../usb_start.c:57
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x00000876 in _usb_d_dev_in_next+310 at ../hpl/usb/hpl_usb.c:1089
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001360 in usb_device_cb_bulk_in+0 at ../usb_start.c:57
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201', rc = USB_XFER_DONE, count = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
60 return false;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001360 usb_device_cb_bulk_in+0 push {r4, lr}
|
|
|
0x00001362 usb_device_cb_bulk_in+2 movs r1, #64 ; 0x40
|
|
|
0x00001364 usb_device_cb_bulk_in+4 ldr r0, [pc, #8] ; (0x1370 <usb_device_cb_bulk_in+16>)
|
|
|
0x00001366 usb_device_cb_bulk_in+6 ldr r3, [pc, #12] ; (0x1374 <usb_device_cb_bulk_in+20>)
|
|
|
0x00001368 usb_device_cb_bulk_in+8 blx r3
|
|
|
0x0000136a usb_device_cb_bulk_in+10 movs r0, #0
|
|
|
0x0000136c usb_device_cb_bulk_in+12 pop {r4, pc}
|
|
|
0x0000136e usb_device_cb_bulk_in+14 nop ; (mov r8, r8)
|
|
|
0x00001370 usb_device_cb_bulk_in+16 lsls r0, r7, #15
|
|
|
0x00001372 usb_device_cb_bulk_in+18 movs r0, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000025 r3 0x00000040
|
|
|
r4 0x200004d8 r5 0x20000478 r6 0x200004d8 r7 0x00000000
|
|
|
r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x00000020 sp 0x20002588 lr 0x00001053 pc 0x0000136a
|
|
|
xPSR 0x41000017 msp 0x20002588 psp 0xef5adef4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
55 {
|
|
|
56 /* Echo data. */
|
|
|
!57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000136a in usb_device_cb_bulk_in+10 at ../usb_start.c:60
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x00000876 in _usb_d_dev_in_next+310 at ../hpl/usb/hpl_usb.c:1089
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000136a in usb_device_cb_bulk_in+10 at ../usb_start.c:60
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = <optimized out>, rc = <optimized out>, count = <optimized out>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Breakpoint 1, usb_device_cb_bulk_in (ep=129 '\201', rc=USB_XFER_DONE, count=1) at ../usb_start.c:57
|
|
|
57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001360 usb_device_cb_bulk_in+0 push {r4, lr}
|
|
|
0x00001362 usb_device_cb_bulk_in+2 movs r1, #64 ; 0x40
|
|
|
0x00001364 usb_device_cb_bulk_in+4 ldr r0, [pc, #8] ; (0x1370 <usb_device_cb_bulk_in+16>)
|
|
|
0x00001366 usb_device_cb_bulk_in+6 ldr r3, [pc, #12] ; (0x1374 <usb_device_cb_bulk_in+20>)
|
|
|
0x00001368 usb_device_cb_bulk_in+8 blx r3
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000081 r1 0x00000000 r2 0x00000001 r3 0x00001361
|
|
|
r4 0x200004d8 r5 0x20000478 r6 0x200004d8 r7 0x00000000
|
|
|
r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x20002590 lr 0x000017d5 pc 0x00001360
|
|
|
xPSR 0x01000017 msp 0x20002590 psp 0xef5adef4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
47 /* No error. */
|
|
|
48 return false;
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
55 {
|
|
|
56 /* Echo data. */
|
|
|
!57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001360 in usb_device_cb_bulk_in+0 at ../usb_start.c:57
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x00000876 in _usb_d_dev_in_next+310 at ../hpl/usb/hpl_usb.c:1089
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001360 in usb_device_cb_bulk_in+0 at ../usb_start.c:57
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201', rc = USB_XFER_DONE, count = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
60 return false;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001360 usb_device_cb_bulk_in+0 push {r4, lr}
|
|
|
0x00001362 usb_device_cb_bulk_in+2 movs r1, #64 ; 0x40
|
|
|
0x00001364 usb_device_cb_bulk_in+4 ldr r0, [pc, #8] ; (0x1370 <usb_device_cb_bulk_in+16>)
|
|
|
0x00001366 usb_device_cb_bulk_in+6 ldr r3, [pc, #12] ; (0x1374 <usb_device_cb_bulk_in+20>)
|
|
|
0x00001368 usb_device_cb_bulk_in+8 blx r3
|
|
|
0x0000136a usb_device_cb_bulk_in+10 movs r0, #0
|
|
|
0x0000136c usb_device_cb_bulk_in+12 pop {r4, pc}
|
|
|
0x0000136e usb_device_cb_bulk_in+14 nop ; (mov r8, r8)
|
|
|
0x00001370 usb_device_cb_bulk_in+16 lsls r0, r7, #15
|
|
|
0x00001372 usb_device_cb_bulk_in+18 movs r0, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000025 r3 0x00000040
|
|
|
r4 0x200004d8 r5 0x20000478 r6 0x200004d8 r7 0x00000000
|
|
|
r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x00000020 sp 0x20002588 lr 0x00001053 pc 0x0000136a
|
|
|
xPSR 0x41000017 msp 0x20002588 psp 0xef5adef4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
55 {
|
|
|
56 /* Echo data. */
|
|
|
!57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000136a in usb_device_cb_bulk_in+10 at ../usb_start.c:60
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x00000876 in _usb_d_dev_in_next+310 at ../hpl/usb/hpl_usb.c:1089
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000136a in usb_device_cb_bulk_in+10 at ../usb_start.c:60
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = <optimized out>, rc = <optimized out>, count = <optimized out>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Breakpoint 2 at 0x1378: file ../usb_start.c, line 45.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Breakpoint 2, usb_device_cb_bulk_out (ep=1 '\001', rc=USB_XFER_DONE, count=1) at ../usb_start.c:45
|
|
|
45 cdcdf_acm_write((uint8_t *)usbd_cdc_buffer, count);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001378 usb_device_cb_bulk_out+0 push {r4, lr}
|
|
|
0x0000137a usb_device_cb_bulk_out+2 movs r1, r2
|
|
|
0x0000137c usb_device_cb_bulk_out+4 ldr r0, [pc, #8] ; (0x1388 <usb_device_cb_bulk_out+16>)
|
|
|
0x0000137e usb_device_cb_bulk_out+6 ldr r3, [pc, #12] ; (0x138c <usb_device_cb_bulk_out+20>)
|
|
|
0x00001380 usb_device_cb_bulk_out+8 blx r3
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57
|
|
|
[2] break at 0x00001378 in ../usb_start.c:45 for usb_start.c:45 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000000 r2 0x00000001 r3 0x00001379
|
|
|
r4 0x200004b8 r5 0x20000478 r6 0x200004b8 r7 0x00000000
|
|
|
r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x00000020 sp 0x20002590 lr 0x000017d5 pc 0x00001378
|
|
|
xPSR 0x01000017 msp 0x20002590 psp 0xef5adef4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
35 static uint32_t usbd_cdc_buffer[CDCD_ECHO_BUF_SIZ / 4];
|
|
|
36
|
|
|
37 /** Ctrl endpoint buffer */
|
|
|
38 static uint8_t ctrl_buffer[64];
|
|
|
39
|
|
|
40 /**
|
|
|
41 * \brief Callback invoked when bulk OUT data received
|
|
|
42 */
|
|
|
43 static bool usb_device_cb_bulk_out(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
44 {
|
|
|
!45 cdcdf_acm_write((uint8_t *)usbd_cdc_buffer, count);
|
|
|
46
|
|
|
47 /* No error. */
|
|
|
48 return false;
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001378 in usb_device_cb_bulk_out+0 at ../usb_start.c:45
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x000009c4 in _usb_d_dev_out_next+288 at ../hpl/usb/hpl_usb.c:1192
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001378 in usb_device_cb_bulk_out+0 at ../usb_start.c:45
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 1 '\001', rc = USB_XFER_DONE, count = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────
|
|
|
48 return false;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001378 usb_device_cb_bulk_out+0 push {r4, lr}
|
|
|
0x0000137a usb_device_cb_bulk_out+2 movs r1, r2
|
|
|
0x0000137c usb_device_cb_bulk_out+4 ldr r0, [pc, #8] ; (0x1388 <usb_device_cb_bulk_out+16>)
|
|
|
0x0000137e usb_device_cb_bulk_out+6 ldr r3, [pc, #12] ; (0x138c <usb_device_cb_bulk_out+20>)
|
|
|
0x00001380 usb_device_cb_bulk_out+8 blx r3
|
|
|
0x00001382 usb_device_cb_bulk_out+10 movs r0, #0
|
|
|
0x00001384 usb_device_cb_bulk_out+12 pop {r4, pc}
|
|
|
0x00001386 usb_device_cb_bulk_out+14 nop ; (mov r8, r8)
|
|
|
0x00001388 usb_device_cb_bulk_out+16 lsls r0, r7, #15
|
|
|
0x0000138a usb_device_cb_bulk_out+18 movs r0, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57
|
|
|
[2] break at 0x00001378 in ../usb_start.c:45 for usb_start.c:45 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120
|
|
|
r4 0x200004b8 r5 0x20000478 r6 0x200004b8 r7 0x00000000
|
|
|
r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x20002588 lr 0x00001053 pc 0x00001382
|
|
|
xPSR 0x41000017 msp 0x20002588 psp 0xef5adef4 primask 0x00
|
|
|
basepri 0x00 faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────
|
|
|
38 static uint8_t ctrl_buffer[64];
|
|
|
39
|
|
|
40 /**
|
|
|
41 * \brief Callback invoked when bulk OUT data received
|
|
|
42 */
|
|
|
43 static bool usb_device_cb_bulk_out(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
44 {
|
|
|
!45 cdcdf_acm_write((uint8_t *)usbd_cdc_buffer, count);
|
|
|
46
|
|
|
47 /* No error. */
|
|
|
48 return false;
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
55 {
|
|
|
56 /* Echo data. */
|
|
|
!57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001382 in usb_device_cb_bulk_out+10 at ../usb_start.c:48
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x000009c4 in _usb_d_dev_out_next+288 at ../hpl/usb/hpl_usb.c:1192
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001382 in usb_device_cb_bulk_out+10 at ../usb_start.c:48
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = <optimized out>, rc = <optimized out>, count = <optimized out>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Breakpoint 1, usb_device_cb_bulk_in (ep=129 '\201', rc=USB_XFER_DONE, count=1) at ../usb_start.c:57
|
|
|
57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001360 usb_device_cb_bulk_in+0 push {r4, lr}
|
|
|
0x00001362 usb_device_cb_bulk_in+2 movs r1, #64 ; 0x40
|
|
|
0x00001364 usb_device_cb_bulk_in+4 ldr r0, [pc, #8] ; (0x1370 <usb_device_cb_bulk_in+16>)
|
|
|
0x00001366 usb_device_cb_bulk_in+6 ldr r3, [pc, #12] ; (0x1374 <usb_device_cb_bulk_in+20>)
|
|
|
0x00001368 usb_device_cb_bulk_in+8 blx r3
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57 hit 1 time
|
|
|
[2] break at 0x00001378 in ../usb_start.c:45 for usb_start.c:45 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000081 r1 0x00000000 r2 0x00000001 r3 0x00001361 r4 0x200004d8 r5 0x20000478 r6 0x200004d8
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x20002590
|
|
|
lr 0x000017d5 pc 0x00001360 xPSR 0x01000017 msp 0x20002590 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
47 /* No error. */
|
|
|
48 return false;
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
55 {
|
|
|
56 /* Echo data. */
|
|
|
!57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001360 in usb_device_cb_bulk_in+0 at ../usb_start.c:57
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x00000876 in _usb_d_dev_in_next+310 at ../hpl/usb/hpl_usb.c:1089
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001360 in usb_device_cb_bulk_in+0 at ../usb_start.c:57
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201', rc = USB_XFER_DONE, count = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Breakpoint 2, usb_device_cb_bulk_out (ep=1 '\001', rc=USB_XFER_DONE, count=1) at ../usb_start.c:45
|
|
|
45 cdcdf_acm_write((uint8_t *)usbd_cdc_buffer, count);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001378 usb_device_cb_bulk_out+0 push {r4, lr}
|
|
|
0x0000137a usb_device_cb_bulk_out+2 movs r1, r2
|
|
|
0x0000137c usb_device_cb_bulk_out+4 ldr r0, [pc, #8] ; (0x1388 <usb_device_cb_bulk_out+16>)
|
|
|
0x0000137e usb_device_cb_bulk_out+6 ldr r3, [pc, #12] ; (0x138c <usb_device_cb_bulk_out+20>)
|
|
|
0x00001380 usb_device_cb_bulk_out+8 blx r3
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001360 in ../usb_start.c:57 for usb_start.c:57 hit 1 time
|
|
|
[2] break at 0x00001378 in ../usb_start.c:45 for usb_start.c:45 hit 2 times
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000000 r2 0x00000001 r3 0x00001379 r4 0x200004b8 r5 0x20000478 r6 0x200004b8
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002590
|
|
|
lr 0x000017d5 pc 0x00001378 xPSR 0x01000017 msp 0x20002590 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
35 static uint32_t usbd_cdc_buffer[CDCD_ECHO_BUF_SIZ / 4];
|
|
|
36
|
|
|
37 /** Ctrl endpoint buffer */
|
|
|
38 static uint8_t ctrl_buffer[64];
|
|
|
39
|
|
|
40 /**
|
|
|
41 * \brief Callback invoked when bulk OUT data received
|
|
|
42 */
|
|
|
43 static bool usb_device_cb_bulk_out(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
44 {
|
|
|
!45 cdcdf_acm_write((uint8_t *)usbd_cdc_buffer, count);
|
|
|
46
|
|
|
47 /* No error. */
|
|
|
48 return false;
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001378 in usb_device_cb_bulk_out+0 at ../usb_start.c:45
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x000009c4 in _usb_d_dev_out_next+288 at ../hpl/usb/hpl_usb.c:1192
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001378 in usb_device_cb_bulk_out+0 at ../usb_start.c:45
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 1 '\001', rc = USB_XFER_DONE, count = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
usb_device_cb_bulk_out (ep=1 '\001', rc=USB_XFER_DONE, count=1) at ../usb_start.c:45
|
|
|
45 cdcdf_acm_write((uint8_t *)usbd_cdc_buffer, count);
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00001378 usb_device_cb_bulk_out+0 push {r4, lr}
|
|
|
0x0000137a usb_device_cb_bulk_out+2 movs r1, r2
|
|
|
0x0000137c usb_device_cb_bulk_out+4 ldr r0, [pc, #8] ; (0x1388 <usb_device_cb_bulk_out+16>)
|
|
|
0x0000137e usb_device_cb_bulk_out+6 ldr r3, [pc, #12] ; (0x138c <usb_device_cb_bulk_out+20>)
|
|
|
0x00001380 usb_device_cb_bulk_out+8 blx r3
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000000 r2 0x00000001
|
|
|
r3 0x00001379 r4 0x200004b8 r5 0x20000478
|
|
|
r6 0x200004b8 r7 0x00000000 r8 0xfe7fffb9
|
|
|
r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x00000020 sp 0x20002590 lr 0x000017d5
|
|
|
pc 0x00001378 xPSR 0x01000017 msp 0x20002590
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
35 static uint32_t usbd_cdc_buffer[CDCD_ECHO_BUF_SIZ / 4];
|
|
|
36
|
|
|
37 /** Ctrl endpoint buffer */
|
|
|
38 static uint8_t ctrl_buffer[64];
|
|
|
39
|
|
|
40 /**
|
|
|
41 * \brief Callback invoked when bulk OUT data received
|
|
|
42 */
|
|
|
43 static bool usb_device_cb_bulk_out(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
44 {
|
|
|
45 cdcdf_acm_write((uint8_t *)usbd_cdc_buffer, count);
|
|
|
46
|
|
|
47 /* No error. */
|
|
|
48 return false;
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Callback invoked when bulk IN data received
|
|
|
53 */
|
|
|
54 static bool usb_device_cb_bulk_in(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count)
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001378 in usb_device_cb_bulk_out+0 at ../usb_start.c:45
|
|
|
[1] from 0x000017d4 in _usb_d_cb_trans_done+152 at ../hal/src/hal_usb_device.c:271
|
|
|
[2] from 0x000005b2 in _usb_d_dev_trans_done+30 at ../hpl/usb/hpl_usb.c:1858
|
|
|
[3] from 0x000009c4 in _usb_d_dev_out_next+288 at ../hpl/usb/hpl_usb.c:1192
|
|
|
[4] from 0x0000122a in _usb_d_dev_trans_in_isr+36 at ../hpl/usb/hpl_usb.c:1342
|
|
|
[5] from 0x0000122a in _usb_d_dev_handle_eps+126 at ../hpl/usb/hpl_usb.c:1408
|
|
|
[6] from 0x0000122a in _usb_d_dev_handler+348 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x0000122a in USB_Handler+350 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001bc2 in main+14 at ../main.c:13
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001378 in usb_device_cb_bulk_out+0 at ../usb_start.c:45
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
arg ep = 1 '\001', rc = USB_XFER_DONE, count = 1
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25b0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25b0
|
|
|
Start address 0x00000000, load size 9752
|
|
|
Transfer rate: 9 KB/sec, 4876 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001bc2 in main () at ../main.c:6
|
|
|
6 atmel_start_init();
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00001bc0 main+0 blx r3
|
|
|
0x00001bc2 main+2 b.n 0x1bc2 <main+2>
|
|
|
0x00001bc4 main+4 subs r5, r1, #1
|
|
|
0x00001bc6 main+6 movs r0, r0
|
|
|
0x00001bc8 main+8 asrs r1, r4, #16
|
|
|
0x00001bca main+10 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0x00000000 r8 0xfe7fffb9
|
|
|
r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x00000020 sp 0x20002630 lr 0x0000048b
|
|
|
pc 0x00001bc2 xPSR 0x41000000 msp 0x20002630
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
1 #include <atmel_start.h>
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 /* Replace with your application code */
|
|
|
12 while (1) {
|
|
|
13 }
|
|
|
14 }
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bc2 in main+2 at ../main.c:6
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bc2 in main+2 at ../main.c:6
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25c8 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25c8
|
|
|
Start address 0x00000000, load size 9776
|
|
|
Transfer rate: 9 KB/sec, 4888 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001bce in main () at ../main.c:14
|
|
|
14 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001bc4 main+16 blx r3
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #12] ; (0x1bd4 <main+32>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 ldr r3, [pc, #12] ; (0x1bd8 <main+36>)
|
|
|
0x00001bcc main+24 blx r3
|
|
|
0x00001bce main+26 b.n 0x1bce <main+26>
|
|
|
0x00001bd0 main+28 subs r1, r3, #1
|
|
|
0x00001bd2 main+30 movs r0, r0
|
|
|
0x00001bd4 main+32 asrs r5, r5, #16
|
|
|
0x00001bd6 main+34 movs r0, r0
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x0000139d r2 0x0000139d
|
|
|
r3 0x20000084 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0x00000000 r8 0xfe7fffb9
|
|
|
r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x00000020 sp 0x20002630 lr 0x0000048b
|
|
|
pc 0x00001bce xPSR 0x41000000 msp 0x20002630
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
11
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bce in main+26 at ../main.c:14
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bce in main+26 at ../main.c:14
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc ret = 405
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25d0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25d0
|
|
|
Start address 0x00000000, load size 9784
|
|
|
Transfer rate: 9 KB/sec, 4892 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:14
|
|
|
14 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bc2 main+14 movs r1, #13
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #24] ; (0x1be0 <main+44>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 str r0, [sp, #4]
|
|
|
0x00001bcc main+24 b.n 0x1bcc <main+24>
|
|
|
0x00001bce main+26 nop ; (mov r8, r8)
|
|
|
0x00001bd0 main+28 subs r1, r4, #1
|
|
|
0x00001bd2 main+30 movs r0, r0
|
|
|
0x00001bd4 main+32 asrs r1, r4, #16
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002570 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002628
|
|
|
lr 0x00000f7b pc 0x00001bcc xPSR 0x81000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
11
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bcc in main+24 at ../main.c:14
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bcc in main+24 at ../main.c:14
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = -19
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25d0 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25d0
|
|
|
Start address 0x00000000, load size 9784
|
|
|
Transfer rate: 9 KB/sec, 4892 bytes/write.
|
|
|
Breakpoint 1 at 0x1bc2: file ../main.c, line 10.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, main () at ../main.c:10
|
|
|
10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bb8 main+4 blx r3
|
|
|
0x00001bba main+6 ldr r3, [pc, #24] ; (0x1bd4 <main+32>)
|
|
|
0x00001bbc main+8 blx r3
|
|
|
0x00001bbe main+10 ldr r3, [pc, #24] ; (0x1bd8 <main+36>)
|
|
|
0x00001bc0 main+12 blx r3
|
|
|
!0x00001bc2 main+14 movs r1, #13
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #24] ; (0x1be0 <main+44>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 str r0, [sp, #4]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002628
|
|
|
lr 0x0000048b pc 0x00001bc2 xPSR 0x41000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
1 #include <atmel_start.h>
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
!10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
11
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bc2 in main+14 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bc2 in main+14 at ../main.c:10
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
14 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001bc2 main+14 movs r1, #13
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #24] ; (0x1be0 <main+44>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 str r0, [sp, #4]
|
|
|
0x00001bcc main+24 b.n 0x1bcc <main+24>
|
|
|
0x00001bce main+26 nop ; (mov r8, r8)
|
|
|
0x00001bd0 main+28 subs r1, r4, #1
|
|
|
0x00001bd2 main+30 movs r0, r0
|
|
|
0x00001bd4 main+32 asrs r1, r4, #16
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002570 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002628
|
|
|
lr 0x00000f7b pc 0x00001bcc xPSR 0x81000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
!10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
11
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bcc in main+24 at ../main.c:14
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bcc in main+24 at ../main.c:14
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = -19
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Breakpoint 1, main () at ../main.c:10
|
|
|
10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bb8 main+4 blx r3
|
|
|
0x00001bba main+6 ldr r3, [pc, #24] ; (0x1bd4 <main+32>)
|
|
|
0x00001bbc main+8 blx r3
|
|
|
0x00001bbe main+10 ldr r3, [pc, #24] ; (0x1bd8 <main+36>)
|
|
|
0x00001bc0 main+12 blx r3
|
|
|
!0x00001bc2 main+14 movs r1, #13
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #24] ; (0x1be0 <main+44>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 str r0, [sp, #4]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001391 r2 0x00001391 r3 0x20000084 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002628
|
|
|
lr 0x0000048b pc 0x00001bc2 xPSR 0x41000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
1 #include <atmel_start.h>
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
!10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
11
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bc2 in main+14 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bc2 in main+14 at ../main.c:10
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
cdcdf_acm_write (buf=buf@entry=0x2570 "HELLO WORLD\n", size=size@entry=13) at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000043c cdcdf_acm_write+0 push {r4, lr}
|
|
|
0x0000043e cdcdf_acm_write+2 ldr r3, [pc, #28] ; (0x45c <cdcdf_acm_write+32>)
|
|
|
0x00000440 cdcdf_acm_write+4 movs r2, r1
|
|
|
0x00000442 cdcdf_acm_write+6 ldrb r1, [r3, #5]
|
|
|
0x00000444 cdcdf_acm_write+8 movs r4, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00002570 r1 0x0000000d r2 0x00001391 r3 0x0000043d r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002628
|
|
|
lr 0x00001bcb pc 0x0000043c xPSR 0x01000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000043c in cdcdf_acm_write+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000043c in cdcdf_acm_write+0 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg buf = 0x2570 "HELLO WORLD\n": 72 'H', size = 13
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
320 return usbdc_xfer(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX], buf, size, true);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000440 cdcdf_acm_write+4 movs r2, r1
|
|
|
0x00000442 cdcdf_acm_write+6 ldrb r1, [r3, #5]
|
|
|
0x00000444 cdcdf_acm_write+8 movs r4, r0
|
|
|
0x00000446 cdcdf_acm_write+10 cmp r1, #0
|
|
|
0x00000448 cdcdf_acm_write+12 beq.n 0x456 <cdcdf_acm_write+26>
|
|
|
0x0000044a cdcdf_acm_write+14 movs r1, r4
|
|
|
0x0000044c cdcdf_acm_write+16 ldrb r0, [r3, #3]
|
|
|
0x0000044e cdcdf_acm_write+18 ldr r4, [pc, #16] ; (0x460 <cdcdf_acm_write+36>)
|
|
|
0x00000450 cdcdf_acm_write+20 movs r3, #1
|
|
|
0x00000452 cdcdf_acm_write+22 blx r4
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00002570 r1 0x00000001 r2 0x0000000d r3 0x20000084 r4 0x00002570 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002620
|
|
|
lr 0x00001bcb pc 0x0000044a xPSR 0x21000000 msp 0x20002620 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
310 }
|
|
|
311
|
|
|
312 /**
|
|
|
313 * \brief USB CDC ACM Function Write Data
|
|
|
314 */
|
|
|
315 int32_t cdcdf_acm_write(uint8_t *buf, uint32_t size)
|
|
|
316 {
|
|
|
317 if (!cdcdf_acm_is_enabled()) {
|
|
|
318 return ERR_DENIED;
|
|
|
319 }
|
|
|
320 return usbdc_xfer(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX], buf, size, true);
|
|
|
321 }
|
|
|
322
|
|
|
323 /**
|
|
|
324 * \brief USB CDC ACM Stop the data transfer
|
|
|
325 */
|
|
|
326 void cdcdf_acm_stop_xfer(void)
|
|
|
327 {
|
|
|
328 /* Stop transfer. */
|
|
|
329 usb_d_ep_abort(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX]);
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000044a in cdcdf_acm_write+14 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[1] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000044a in cdcdf_acm_write+14 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg buf = 0x2570 "HELLO WORLD\n": 72 'H', size = 13
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usbdc_xfer (ep=129 '\201', buf=buf@entry=0x2570 "HELLO WORLD\n", size=size@entry=13, zlp=zlp@entry=true) at ../usb/device/usbdc.c:804
|
|
|
804 struct usb_d_transfer xfer = {(uint8_t *)buf, size, ep, zlp};
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00001ff8 usbdc_xfer+0 push {r0, r1, r2, r3, r4, lr}
|
|
|
0x00001ffa usbdc_xfer+2 str r2, [sp, #8]
|
|
|
0x00001ffc usbdc_xfer+4 mov r2, sp
|
|
|
0x00001ffe usbdc_xfer+6 strb r0, [r2, #12]
|
|
|
0x00002000 usbdc_xfer+8 strb r3, [r2, #13]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000081 r1 0x00002570 r2 0x0000000d r3 0x00000001 r4 0x00001ff9 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002620
|
|
|
lr 0x00000455 pc 0x00001ff8 xPSR 0x21000000 msp 0x20002620 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
794 default:
|
|
|
795 break;
|
|
|
796 }
|
|
|
797 }
|
|
|
798
|
|
|
799 /**
|
|
|
800 * \brief Issue USB device transfer
|
|
|
801 */
|
|
|
802 int32_t usbdc_xfer(uint8_t ep, uint8_t *buf, uint32_t size, bool zlp)
|
|
|
803 {
|
|
|
804 struct usb_d_transfer xfer = {(uint8_t *)buf, size, ep, zlp};
|
|
|
805 return usb_d_ep_transfer(&xfer);
|
|
|
806 }
|
|
|
807
|
|
|
808 /**
|
|
|
809 * \brief Register the handler
|
|
|
810 */
|
|
|
811 void usbdc_register_handler(enum usbdc_handler_type type, const struct usbdc_handler *h)
|
|
|
812 {
|
|
|
813 switch (type) {
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001ff8 in usbdc_xfer+0 at ../usb/device/usbdc.c:804
|
|
|
[1] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[2] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001ff8 in usbdc_xfer+0 at ../usb/device/usbdc.c:804
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201', buf = 0x2570 "HELLO WORLD\n": 72 'H', size = 13, zlp = true
|
|
|
loc xfer = {buf = 0x1 <exception_table> "&",size = 32,ep = 203 '\313',zlp = 27 '\033'}
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
805 return usb_d_ep_transfer(&xfer);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001ff8 usbdc_xfer+0 push {r0, r1, r2, r3, r4, lr}
|
|
|
0x00001ffa usbdc_xfer+2 str r2, [sp, #8]
|
|
|
0x00001ffc usbdc_xfer+4 mov r2, sp
|
|
|
0x00001ffe usbdc_xfer+6 strb r0, [r2, #12]
|
|
|
0x00002000 usbdc_xfer+8 strb r3, [r2, #13]
|
|
|
0x00002002 usbdc_xfer+10 add r0, sp, #4
|
|
|
0x00002004 usbdc_xfer+12 ldr r3, [pc, #8] ; (0x2010 <usbdc_xfer+24>)
|
|
|
0x00002006 usbdc_xfer+14 str r1, [sp, #4]
|
|
|
0x00002008 usbdc_xfer+16 blx r3
|
|
|
0x0000200a usbdc_xfer+18 add sp, #20
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000081 r1 0x00002570 r2 0x20002608 r3 0x00000001 r4 0x00001ff9 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002608
|
|
|
lr 0x00000455 pc 0x00002002 xPSR 0x21000000 msp 0x20002608 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
795 break;
|
|
|
796 }
|
|
|
797 }
|
|
|
798
|
|
|
799 /**
|
|
|
800 * \brief Issue USB device transfer
|
|
|
801 */
|
|
|
802 int32_t usbdc_xfer(uint8_t ep, uint8_t *buf, uint32_t size, bool zlp)
|
|
|
803 {
|
|
|
804 struct usb_d_transfer xfer = {(uint8_t *)buf, size, ep, zlp};
|
|
|
805 return usb_d_ep_transfer(&xfer);
|
|
|
806 }
|
|
|
807
|
|
|
808 /**
|
|
|
809 * \brief Register the handler
|
|
|
810 */
|
|
|
811 void usbdc_register_handler(enum usbdc_handler_type type, const struct usbdc_handler *h)
|
|
|
812 {
|
|
|
813 switch (type) {
|
|
|
814 case USBDC_HDL_SOF:
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002002 in usbdc_xfer+10 at ../usb/device/usbdc.c:805
|
|
|
[1] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[2] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002002 in usbdc_xfer+10 at ../usb/device/usbdc.c:805
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201', buf = 0x2570 "HELLO WORLD\n": 72 'H', size = 13, zlp = true
|
|
|
loc xfer = {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usb_d_ep_transfer (xfer=xfer@entry=0x2000260c) at ../hal/src/hal_usb_device.c:428
|
|
|
428 int8_t ep_index = _usb_d_find_ep(xfer->ep);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00001a14 usb_d_ep_transfer+0 push {r4, r5, r6, r7, lr}
|
|
|
0x00001a16 usb_d_ep_transfer+2 ldrb r3, [r0, #8]
|
|
|
0x00001a18 usb_d_ep_transfer+4 movs r4, r0
|
|
|
0x00001a1a usb_d_ep_transfer+6 sub sp, #44 ; 0x2c
|
|
|
0x00001a1c usb_d_ep_transfer+8 movs r0, r3
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x2000260c r1 0x00002570 r2 0x20002608 r3 0x00001a15 r4 0x00001ff9 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002608
|
|
|
lr 0x0000200b pc 0x00001a14 xPSR 0x21000000 msp 0x20002608 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
418 {
|
|
|
419 int8_t ep_index = _usb_d_find_ep(ep);
|
|
|
420 if (ep_index < 0) {
|
|
|
421 return NULL;
|
|
|
422 }
|
|
|
423 return usb_d_inst.ep[ep_index].xfer.req;
|
|
|
424 }
|
|
|
425
|
|
|
426 int32_t usb_d_ep_transfer(const struct usb_d_transfer *xfer)
|
|
|
427 {
|
|
|
428 int8_t ep_index = _usb_d_find_ep(xfer->ep);
|
|
|
429 struct usb_d_ep * ept = &usb_d_inst.ep[ep_index];
|
|
|
430 bool dir = USB_EP_GET_DIR(xfer->ep), zlp = xfer->zlp;
|
|
|
431 uint32_t len = xfer->size;
|
|
|
432 int32_t rc;
|
|
|
433 volatile uint8_t state;
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a14 in usb_d_ep_transfer+0 at ../hal/src/hal_usb_device.c:428
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a14 in usb_d_ep_transfer+0 at ../hal/src/hal_usb_device.c:428
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = <optimized out>, zlp = <optimized out>, len = <optimized out>, rc = <optimized out>, state = 0 '\000', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_find_ep (ep=ep@entry=129 '\201') at ../hal/src/hal_usb_device.c:120
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x000016d8 _usb_d_find_ep+0 movs r2, r0
|
|
|
0x000016da _usb_d_find_ep+2 movs r1, #15
|
|
|
0x000016dc _usb_d_find_ep+4 movs r0, #0
|
|
|
0x000016de _usb_d_find_ep+6 push {r4, r5, lr}
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000081 r1 0x00002570 r2 0x20002608 r3 0x000016d9 r4 0x2000260c r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a25 pc 0x000016d8 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
110
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016d8 in _usb_d_find_ep+0 at ../hal/src/hal_usb_device.c:120
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016d8 in _usb_d_find_ep+0 at ../hal/src/hal_usb_device.c:120
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 0 '\000'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016da _usb_d_find_ep+2 movs r1, #15
|
|
|
0x000016dc _usb_d_find_ep+4 movs r0, #0
|
|
|
0x000016de _usb_d_find_ep+6 push {r4, r5, lr}
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
0x000016e2 _usb_d_find_ep+10 ands r1, r2
|
|
|
0x000016e4 _usb_d_find_ep+12 ldrb r4, [r3, #1]
|
|
|
0x000016e6 _usb_d_find_ep+14 cmp r4, r2
|
|
|
0x000016e8 _usb_d_find_ep+16 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x00000081 r3 0x20000478 r4 0x2000260c r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016e4 xPSR 0x21000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
130 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 0 '\000'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
0x000016e2 _usb_d_find_ep+10 ands r1, r2
|
|
|
0x000016e4 _usb_d_find_ep+12 ldrb r4, [r3, #1]
|
|
|
0x000016e6 _usb_d_find_ep+14 cmp r4, r2
|
|
|
0x000016e8 _usb_d_find_ep+16 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
0x000016ee _usb_d_find_ep+22 bne.n 0x16f4 <_usb_d_find_ep+28>
|
|
|
0x000016f0 _usb_d_find_ep+24 cmp r4, r1
|
|
|
0x000016f2 _usb_d_find_ep+26 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x00000081 r3 0x20000478 r4 0x00000000 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016ea xPSR 0x81000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
130 }
|
|
|
131
|
|
|
132 /**
|
|
|
133 * \brief Start transactions
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016ea in _usb_d_find_ep+18 at ../hal/src/hal_usb_device.c:124
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016ea in _usb_d_find_ep+18 at ../hal/src/hal_usb_device.c:124
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 0 '\000'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
0x000016ee _usb_d_find_ep+22 bne.n 0x16f4 <_usb_d_find_ep+28>
|
|
|
0x000016f0 _usb_d_find_ep+24 cmp r4, r1
|
|
|
0x000016f2 _usb_d_find_ep+26 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016f4 _usb_d_find_ep+28 adds r0, #1
|
|
|
0x000016f6 _usb_d_find_ep+30 uxtb r4, r0
|
|
|
0x000016f8 _usb_d_find_ep+32 adds r3, #32
|
|
|
0x000016fa _usb_d_find_ep+34 sxtb r0, r0
|
|
|
0x000016fc _usb_d_find_ep+36 cmp r4, #13
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x00000081 r3 0x20000478 r4 0x00000000 r5 0x00000000 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016f4 xPSR 0x81000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
110
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016f4 in _usb_d_find_ep+28 at ../hal/src/hal_usb_device.c:120
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016f4 in _usb_d_find_ep+28 at ../hal/src/hal_usb_device.c:120
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 0 '\000'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016da _usb_d_find_ep+2 movs r1, #15
|
|
|
0x000016dc _usb_d_find_ep+4 movs r0, #0
|
|
|
0x000016de _usb_d_find_ep+6 push {r4, r5, lr}
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
0x000016e2 _usb_d_find_ep+10 ands r1, r2
|
|
|
0x000016e4 _usb_d_find_ep+12 ldrb r4, [r3, #1]
|
|
|
0x000016e6 _usb_d_find_ep+14 cmp r4, r2
|
|
|
0x000016e8 _usb_d_find_ep+16 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000081 r3 0x20000498 r4 0x00000001 r5 0x00000000 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016e4 xPSR 0x81000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
130 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 1 '\001'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
0x000016e2 _usb_d_find_ep+10 ands r1, r2
|
|
|
0x000016e4 _usb_d_find_ep+12 ldrb r4, [r3, #1]
|
|
|
0x000016e6 _usb_d_find_ep+14 cmp r4, r2
|
|
|
0x000016e8 _usb_d_find_ep+16 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
0x000016ee _usb_d_find_ep+22 bne.n 0x16f4 <_usb_d_find_ep+28>
|
|
|
0x000016f0 _usb_d_find_ep+24 cmp r4, r1
|
|
|
0x000016f2 _usb_d_find_ep+26 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000081 r3 0x20000498 r4 0x00000082 r5 0x00000000 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016ea xPSR 0x21000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
130 }
|
|
|
131
|
|
|
132 /**
|
|
|
133 * \brief Start transactions
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016ea in _usb_d_find_ep+18 at ../hal/src/hal_usb_device.c:124
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016ea in _usb_d_find_ep+18 at ../hal/src/hal_usb_device.c:124
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 1 '\001'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
0x000016ee _usb_d_find_ep+22 bne.n 0x16f4 <_usb_d_find_ep+28>
|
|
|
0x000016f0 _usb_d_find_ep+24 cmp r4, r1
|
|
|
0x000016f2 _usb_d_find_ep+26 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016f4 _usb_d_find_ep+28 adds r0, #1
|
|
|
0x000016f6 _usb_d_find_ep+30 uxtb r4, r0
|
|
|
0x000016f8 _usb_d_find_ep+32 adds r3, #32
|
|
|
0x000016fa _usb_d_find_ep+34 sxtb r0, r0
|
|
|
0x000016fc _usb_d_find_ep+36 cmp r4, #13
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000081 r3 0x20000498 r4 0x00000082 r5 0x00000003 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016f4 xPSR 0x21000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
110
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016f4 in _usb_d_find_ep+28 at ../hal/src/hal_usb_device.c:120
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016f4 in _usb_d_find_ep+28 at ../hal/src/hal_usb_device.c:120
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 1 '\001'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016da _usb_d_find_ep+2 movs r1, #15
|
|
|
0x000016dc _usb_d_find_ep+4 movs r0, #0
|
|
|
0x000016de _usb_d_find_ep+6 push {r4, r5, lr}
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
0x000016e2 _usb_d_find_ep+10 ands r1, r2
|
|
|
0x000016e4 _usb_d_find_ep+12 ldrb r4, [r3, #1]
|
|
|
0x000016e6 _usb_d_find_ep+14 cmp r4, r2
|
|
|
0x000016e8 _usb_d_find_ep+16 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000002 r1 0x00000001 r2 0x00000081 r3 0x200004b8 r4 0x00000002 r5 0x00000003 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016e4 xPSR 0x81000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
130 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 2 '\002'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
0x000016e2 _usb_d_find_ep+10 ands r1, r2
|
|
|
0x000016e4 _usb_d_find_ep+12 ldrb r4, [r3, #1]
|
|
|
0x000016e6 _usb_d_find_ep+14 cmp r4, r2
|
|
|
0x000016e8 _usb_d_find_ep+16 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
0x000016ee _usb_d_find_ep+22 bne.n 0x16f4 <_usb_d_find_ep+28>
|
|
|
0x000016f0 _usb_d_find_ep+24 cmp r4, r1
|
|
|
0x000016f2 _usb_d_find_ep+26 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000002 r1 0x00000001 r2 0x00000081 r3 0x200004b8 r4 0x00000001 r5 0x00000003 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016ea xPSR 0x81000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
130 }
|
|
|
131
|
|
|
132 /**
|
|
|
133 * \brief Start transactions
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016ea in _usb_d_find_ep+18 at ../hal/src/hal_usb_device.c:124
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016ea in _usb_d_find_ep+18 at ../hal/src/hal_usb_device.c:124
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 2 '\002'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
0x000016ee _usb_d_find_ep+22 bne.n 0x16f4 <_usb_d_find_ep+28>
|
|
|
0x000016f0 _usb_d_find_ep+24 cmp r4, r1
|
|
|
0x000016f2 _usb_d_find_ep+26 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016f4 _usb_d_find_ep+28 adds r0, #1
|
|
|
0x000016f6 _usb_d_find_ep+30 uxtb r4, r0
|
|
|
0x000016f8 _usb_d_find_ep+32 adds r3, #32
|
|
|
0x000016fa _usb_d_find_ep+34 sxtb r0, r0
|
|
|
0x000016fc _usb_d_find_ep+36 cmp r4, #13
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000002 r1 0x00000001 r2 0x00000081 r3 0x200004b8 r4 0x00000001 r5 0x00000002 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016f4 xPSR 0x21000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
110
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016f4 in _usb_d_find_ep+28 at ../hal/src/hal_usb_device.c:120
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016f4 in _usb_d_find_ep+28 at ../hal/src/hal_usb_device.c:120
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 2 '\002'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000016da _usb_d_find_ep+2 movs r1, #15
|
|
|
0x000016dc _usb_d_find_ep+4 movs r0, #0
|
|
|
0x000016de _usb_d_find_ep+6 push {r4, r5, lr}
|
|
|
0x000016e0 _usb_d_find_ep+8 ldr r3, [pc, #36] ; (0x1708 <_usb_d_find_ep+48>)
|
|
|
0x000016e2 _usb_d_find_ep+10 ands r1, r2
|
|
|
0x000016e4 _usb_d_find_ep+12 ldrb r4, [r3, #1]
|
|
|
0x000016e6 _usb_d_find_ep+14 cmp r4, r2
|
|
|
0x000016e8 _usb_d_find_ep+16 beq.n 0x1704 <_usb_d_find_ep+44>
|
|
|
0x000016ea _usb_d_find_ep+18 ldrb r5, [r3, #0]
|
|
|
0x000016ec _usb_d_find_ep+20 cmp r5, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x00000001 r2 0x00000081 r3 0x200004d8 r4 0x00000003 r5 0x00000002 r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025bc
|
|
|
lr 0x00001a25 pc 0x000016e4 xPSR 0x81000000 msp 0x200025bc psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
111 /** \brief Find the endpoint.
|
|
|
112 * \param[in] ep Endpoint address.
|
|
|
113 * \return Index of endpoint descriptor.
|
|
|
114 * \retval >=0 The index.
|
|
|
115 * \retval <0 Not found (endpoint is not initialized).
|
|
|
116 */
|
|
|
117 static int8_t _usb_d_find_ep(const uint8_t ep)
|
|
|
118 {
|
|
|
119 int8_t i;
|
|
|
120 for (i = 0; i < CONF_USB_D_NUM_EP_SP; i++) {
|
|
|
121 if (usb_d_inst.ep[i].xfer.hdr.ep == ep) {
|
|
|
122 return i;
|
|
|
123 }
|
|
|
124 if (usb_d_inst.ep[i].xfer.hdr.type == USB_EP_XTYPE_CTRL
|
|
|
125 && (ep & USB_EP_N_MASK) == usb_d_inst.ep[i].xfer.hdr.ep) {
|
|
|
126 return i;
|
|
|
127 }
|
|
|
128 }
|
|
|
129 return -1;
|
|
|
130 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
[1] from 0x00001a24 in usb_d_ep_transfer+16 at ../hal/src/hal_usb_device.c:428
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000016e4 in _usb_d_find_ep+12 at ../hal/src/hal_usb_device.c:121
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 129 '\201'
|
|
|
loc i = 3 '\003'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usb_d_ep_transfer (xfer=xfer@entry=0x2000260c) at ../hal/src/hal_usb_device.c:430
|
|
|
430 bool dir = USB_EP_GET_DIR(xfer->ep), zlp = xfer->zlp;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a1e usb_d_ep_transfer+10 str r3, [sp, #4]
|
|
|
0x00001a20 usb_d_ep_transfer+12 ldr r3, [pc, #200] ; (0x1aec <usb_d_ep_transfer+216>)
|
|
|
0x00001a22 usb_d_ep_transfer+14 blx r3
|
|
|
0x00001a24 usb_d_ep_transfer+16 ldrb r3, [r4, #9]
|
|
|
0x00001a26 usb_d_ep_transfer+18 subs r6, r0, #0
|
|
|
0x00001a28 usb_d_ep_transfer+20 ldr r5, [r4, #4]
|
|
|
0x00001a2a usb_d_ep_transfer+22 str r3, [sp, #8]
|
|
|
0x00001a2c usb_d_ep_transfer+24 blt.n 0x1ae6 <usb_d_ep_transfer+210>
|
|
|
0x00001a2e usb_d_ep_transfer+26 ldr r3, [pc, #192] ; (0x1af0 <usb_d_ep_transfer+220>)
|
|
|
0x00001a30 usb_d_ep_transfer+28 add r0, sp, #24
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x00000001 r2 0x00000081 r3 0x00000001 r4 0x2000260c r5 0x0000000c r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a25 pc 0x00001a28 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
420 if (ep_index < 0) {
|
|
|
421 return NULL;
|
|
|
422 }
|
|
|
423 return usb_d_inst.ep[ep_index].xfer.req;
|
|
|
424 }
|
|
|
425
|
|
|
426 int32_t usb_d_ep_transfer(const struct usb_d_transfer *xfer)
|
|
|
427 {
|
|
|
428 int8_t ep_index = _usb_d_find_ep(xfer->ep);
|
|
|
429 struct usb_d_ep * ept = &usb_d_inst.ep[ep_index];
|
|
|
430 bool dir = USB_EP_GET_DIR(xfer->ep), zlp = xfer->zlp;
|
|
|
431 uint32_t len = xfer->size;
|
|
|
432 int32_t rc;
|
|
|
433 volatile uint8_t state;
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
438 }
|
|
|
439
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a28 in usb_d_ep_transfer+20 at ../hal/src/hal_usb_device.c:430
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a28 in usb_d_ep_transfer+20 at ../hal/src/hal_usb_device.c:430
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = 3 '\003', ept = 0x200004d8 <usb_d_inst+96>: {xfer = {hdr = {type = 2 '\002',ep = 129 '\201',state = 1 '\0…, dir = true, zlp = <optimized out>, len = <optimized out>, rc = <optimized out>, state = 0 '\000', flags = 32
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
436 if (ep_index < 0) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a22 usb_d_ep_transfer+14 blx r3
|
|
|
0x00001a24 usb_d_ep_transfer+16 ldrb r3, [r4, #9]
|
|
|
0x00001a26 usb_d_ep_transfer+18 subs r6, r0, #0
|
|
|
0x00001a28 usb_d_ep_transfer+20 ldr r5, [r4, #4]
|
|
|
0x00001a2a usb_d_ep_transfer+22 str r3, [sp, #8]
|
|
|
0x00001a2c usb_d_ep_transfer+24 blt.n 0x1ae6 <usb_d_ep_transfer+210>
|
|
|
0x00001a2e usb_d_ep_transfer+26 ldr r3, [pc, #192] ; (0x1af0 <usb_d_ep_transfer+220>)
|
|
|
0x00001a30 usb_d_ep_transfer+28 add r0, sp, #24
|
|
|
0x00001a32 usb_d_ep_transfer+30 blx r3
|
|
|
0x00001a34 usb_d_ep_transfer+32 lsls r3, r6, #5
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x00000001 r2 0x00000081 r3 0x00000001 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a25 pc 0x00001a2c xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
426 int32_t usb_d_ep_transfer(const struct usb_d_transfer *xfer)
|
|
|
427 {
|
|
|
428 int8_t ep_index = _usb_d_find_ep(xfer->ep);
|
|
|
429 struct usb_d_ep * ept = &usb_d_inst.ep[ep_index];
|
|
|
430 bool dir = USB_EP_GET_DIR(xfer->ep), zlp = xfer->zlp;
|
|
|
431 uint32_t len = xfer->size;
|
|
|
432 int32_t rc;
|
|
|
433 volatile uint8_t state;
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
438 }
|
|
|
439
|
|
|
440 atomic_enter_critical(&flags);
|
|
|
441 state = ept->xfer.hdr.state;
|
|
|
442 if (state == USB_EP_S_IDLE) {
|
|
|
443 ept->xfer.hdr.state = USB_EP_S_X_DATA;
|
|
|
444 atomic_leave_critical(&flags);
|
|
|
445 } else {
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a2c in usb_d_ep_transfer+24 at ../hal/src/hal_usb_device.c:436
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a2c in usb_d_ep_transfer+24 at ../hal/src/hal_usb_device.c:436
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = 3 '\003', ept = 0x200004d8 <usb_d_inst+96>: {xfer = {hdr = {type = 2 '\002',ep = 129 '\201',state = 1 '\0…, dir = true, zlp = true, len = 13, rc = <optimized out>, state = 0 '\000', flags = 32
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
440 atomic_enter_critical(&flags);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a24 usb_d_ep_transfer+16 ldrb r3, [r4, #9]
|
|
|
0x00001a26 usb_d_ep_transfer+18 subs r6, r0, #0
|
|
|
0x00001a28 usb_d_ep_transfer+20 ldr r5, [r4, #4]
|
|
|
0x00001a2a usb_d_ep_transfer+22 str r3, [sp, #8]
|
|
|
0x00001a2c usb_d_ep_transfer+24 blt.n 0x1ae6 <usb_d_ep_transfer+210>
|
|
|
0x00001a2e usb_d_ep_transfer+26 ldr r3, [pc, #192] ; (0x1af0 <usb_d_ep_transfer+220>)
|
|
|
0x00001a30 usb_d_ep_transfer+28 add r0, sp, #24
|
|
|
0x00001a32 usb_d_ep_transfer+30 blx r3
|
|
|
0x00001a34 usb_d_ep_transfer+32 lsls r3, r6, #5
|
|
|
0x00001a36 usb_d_ep_transfer+34 str r3, [sp, #0]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x00000001 r2 0x00000081 r3 0x00000001 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a25 pc 0x00001a2e xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
430 bool dir = USB_EP_GET_DIR(xfer->ep), zlp = xfer->zlp;
|
|
|
431 uint32_t len = xfer->size;
|
|
|
432 int32_t rc;
|
|
|
433 volatile uint8_t state;
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
438 }
|
|
|
439
|
|
|
440 atomic_enter_critical(&flags);
|
|
|
441 state = ept->xfer.hdr.state;
|
|
|
442 if (state == USB_EP_S_IDLE) {
|
|
|
443 ept->xfer.hdr.state = USB_EP_S_X_DATA;
|
|
|
444 atomic_leave_critical(&flags);
|
|
|
445 } else {
|
|
|
446 atomic_leave_critical(&flags);
|
|
|
447 switch (state) {
|
|
|
448 case USB_EP_S_HALTED:
|
|
|
449 return USB_HALTED;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a2e in usb_d_ep_transfer+26 at ../hal/src/hal_usb_device.c:440
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a2e in usb_d_ep_transfer+26 at ../hal/src/hal_usb_device.c:440
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = 3 '\003', ept = 0x200004d8 <usb_d_inst+96>: {xfer = {hdr = {type = 2 '\002',ep = 129 '\201',state = 1 '\0…, dir = true, zlp = true, len = 13, rc = <optimized out>, state = 0 '\000', flags = 32
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
atomic_enter_critical (atomic=atomic@entry=0x200025e0) at ../hal/src/hal_atomic.c:46
|
|
|
46 *atomic = __get_PRIMASK();
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00002440 atomic_enter_critical+0 mrs r3, PRIMASK
|
|
|
0x00002444 atomic_enter_critical+4 str r3, [r0, #0]
|
|
|
0x00002446 atomic_enter_critical+6 cpsid i
|
|
|
0x00002448 atomic_enter_critical+8 dmb sy
|
|
|
0x0000244c atomic_enter_critical+12 bx lr
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00002441 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00002440 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
36 /**
|
|
|
37 * \brief Driver version
|
|
|
38 */
|
|
|
39 #define DRIVER_VERSION 0x00000001u
|
|
|
40
|
|
|
41 /**
|
|
|
42 * \brief Disable interrupts, enter critical section
|
|
|
43 */
|
|
|
44 void atomic_enter_critical(hal_atomic_t volatile *atomic)
|
|
|
45 {
|
|
|
46 *atomic = __get_PRIMASK();
|
|
|
47 __disable_irq();
|
|
|
48 __DMB();
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Exit atomic section
|
|
|
53 */
|
|
|
54 void atomic_leave_critical(hal_atomic_t volatile *atomic)
|
|
|
55 {
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002440 in atomic_enter_critical+0 at ../hal/src/hal_atomic.c:46
|
|
|
[1] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:440
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002440 in atomic_enter_critical+0 at ../hal/src/hal_atomic.c:46
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg atomic = 0x200025e0: 32
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
__get_PRIMASK () at ../CMSIS/Core/Include/cmsis_gcc.h:386
|
|
|
386 __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00002440 __get_PRIMASK+0 mrs r3, PRIMASK
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00002441 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00002440 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
376
|
|
|
377 /**
|
|
|
378 \brief Get Priority Mask
|
|
|
379 \details Returns the current state of the priority mask bit from the Priority Mask Register.
|
|
|
380 \return Priority Mask value
|
|
|
381 */
|
|
|
382 __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
|
|
|
383 {
|
|
|
384 uint32_t result;
|
|
|
385
|
|
|
386 __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
|
|
|
387 return(result);
|
|
|
388 }
|
|
|
389
|
|
|
390
|
|
|
391 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
|
|
|
392 /**
|
|
|
393 \brief Get Priority Mask (non-secure)
|
|
|
394 \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state.
|
|
|
395 \return Priority Mask value
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002440 in __get_PRIMASK+0 at ../CMSIS/Core/Include/cmsis_gcc.h:386
|
|
|
[1] from 0x00002440 in atomic_enter_critical+0 at ../hal/src/hal_atomic.c:46
|
|
|
[2] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:440
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002440 in __get_PRIMASK+0 at ../CMSIS/Core/Include/cmsis_gcc.h:386
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc result = <optimized out>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
atomic_enter_critical (atomic=atomic@entry=0x200025e0) at ../CMSIS/Core/Include/cmsis_gcc.h:387
|
|
|
387 return(result);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00002440 atomic_enter_critical+0 mrs r3, PRIMASK
|
|
|
0x00002444 atomic_enter_critical+4 str r3, [r0, #0]
|
|
|
0x00002446 atomic_enter_critical+6 cpsid i
|
|
|
0x00002448 atomic_enter_critical+8 dmb sy
|
|
|
0x0000244c atomic_enter_critical+12 bx lr
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00002444 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
377 /**
|
|
|
378 \brief Get Priority Mask
|
|
|
379 \details Returns the current state of the priority mask bit from the Priority Mask Register.
|
|
|
380 \return Priority Mask value
|
|
|
381 */
|
|
|
382 __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
|
|
|
383 {
|
|
|
384 uint32_t result;
|
|
|
385
|
|
|
386 __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
|
|
|
387 return(result);
|
|
|
388 }
|
|
|
389
|
|
|
390
|
|
|
391 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
|
|
|
392 /**
|
|
|
393 \brief Get Priority Mask (non-secure)
|
|
|
394 \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state.
|
|
|
395 \return Priority Mask value
|
|
|
396 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002444 in atomic_enter_critical+4 at ../CMSIS/Core/Include/cmsis_gcc.h:387
|
|
|
[1] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:440
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002444 in atomic_enter_critical+4 at ../CMSIS/Core/Include/cmsis_gcc.h:387
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg atomic = 0x200025e0: 32
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
47 __disable_irq();
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00002440 atomic_enter_critical+0 mrs r3, PRIMASK
|
|
|
0x00002444 atomic_enter_critical+4 str r3, [r0, #0]
|
|
|
0x00002446 atomic_enter_critical+6 cpsid i
|
|
|
0x00002448 atomic_enter_critical+8 dmb sy
|
|
|
0x0000244c atomic_enter_critical+12 bx lr
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00002446 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
37 * \brief Driver version
|
|
|
38 */
|
|
|
39 #define DRIVER_VERSION 0x00000001u
|
|
|
40
|
|
|
41 /**
|
|
|
42 * \brief Disable interrupts, enter critical section
|
|
|
43 */
|
|
|
44 void atomic_enter_critical(hal_atomic_t volatile *atomic)
|
|
|
45 {
|
|
|
46 *atomic = __get_PRIMASK();
|
|
|
47 __disable_irq();
|
|
|
48 __DMB();
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Exit atomic section
|
|
|
53 */
|
|
|
54 void atomic_leave_critical(hal_atomic_t volatile *atomic)
|
|
|
55 {
|
|
|
56 __DMB();
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002446 in atomic_enter_critical+6 at ../hal/src/hal_atomic.c:47
|
|
|
[1] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:440
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002446 in atomic_enter_critical+6 at ../hal/src/hal_atomic.c:47
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg atomic = 0x200025e0: 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
__disable_irq () at ../CMSIS/Core/Include/cmsis_gcc.h:142
|
|
|
142 __ASM volatile ("cpsid i" : : : "memory");
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00002446 __disable_irq+0 cpsid i
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00002446 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
132 }
|
|
|
133
|
|
|
134
|
|
|
135 /**
|
|
|
136 \brief Disable IRQ Interrupts
|
|
|
137 \details Disables IRQ interrupts by setting the I-bit in the CPSR.
|
|
|
138 Can only be executed in Privileged modes.
|
|
|
139 */
|
|
|
140 __STATIC_FORCEINLINE void __disable_irq(void)
|
|
|
141 {
|
|
|
142 __ASM volatile ("cpsid i" : : : "memory");
|
|
|
143 }
|
|
|
144
|
|
|
145
|
|
|
146 /**
|
|
|
147 \brief Get Control Register
|
|
|
148 \details Returns the content of the Control Register.
|
|
|
149 \return Control Register value
|
|
|
150 */
|
|
|
151 __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002446 in __disable_irq+0 at ../CMSIS/Core/Include/cmsis_gcc.h:142
|
|
|
[1] from 0x00002446 in atomic_enter_critical+6 at ../hal/src/hal_atomic.c:47
|
|
|
[2] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:440
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002446 in __disable_irq+0 at ../CMSIS/Core/Include/cmsis_gcc.h:142
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
atomic_enter_critical (atomic=atomic@entry=0x200025e0) at ../hal/src/hal_atomic.c:48
|
|
|
48 __DMB();
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
0x00002440 atomic_enter_critical+0 mrs r3, PRIMASK
|
|
|
0x00002444 atomic_enter_critical+4 str r3, [r0, #0]
|
|
|
0x00002446 atomic_enter_critical+6 cpsid i
|
|
|
0x00002448 atomic_enter_critical+8 dmb sy
|
|
|
0x0000244c atomic_enter_critical+12 bx lr
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00002448 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
38 */
|
|
|
39 #define DRIVER_VERSION 0x00000001u
|
|
|
40
|
|
|
41 /**
|
|
|
42 * \brief Disable interrupts, enter critical section
|
|
|
43 */
|
|
|
44 void atomic_enter_critical(hal_atomic_t volatile *atomic)
|
|
|
45 {
|
|
|
46 *atomic = __get_PRIMASK();
|
|
|
47 __disable_irq();
|
|
|
48 __DMB();
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Exit atomic section
|
|
|
53 */
|
|
|
54 void atomic_leave_critical(hal_atomic_t volatile *atomic)
|
|
|
55 {
|
|
|
56 __DMB();
|
|
|
57 __set_PRIMASK(*atomic);
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002448 in atomic_enter_critical+8 at ../hal/src/hal_atomic.c:48
|
|
|
[1] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:440
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002448 in atomic_enter_critical+8 at ../hal/src/hal_atomic.c:48
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg atomic = 0x200025e0: 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
__DMB () at ../CMSIS/Core/Include/cmsis_gcc.h:890
|
|
|
890 __ASM volatile ("dmb 0xF":::"memory");
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00002448 __DMB+0 dmb sy
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00002448 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
880 }
|
|
|
881
|
|
|
882
|
|
|
883 /**
|
|
|
884 \brief Data Memory Barrier
|
|
|
885 \details Ensures the apparent order of the explicit memory operations before
|
|
|
886 and after the instruction, without ensuring their completion.
|
|
|
887 */
|
|
|
888 __STATIC_FORCEINLINE void __DMB(void)
|
|
|
889 {
|
|
|
890 __ASM volatile ("dmb 0xF":::"memory");
|
|
|
891 }
|
|
|
892
|
|
|
893
|
|
|
894 /**
|
|
|
895 \brief Reverse byte order (32 bit)
|
|
|
896 \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412.
|
|
|
897 \param [in] value Value to reverse
|
|
|
898 \return Reversed value
|
|
|
899 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002448 in __DMB+0 at ../CMSIS/Core/Include/cmsis_gcc.h:890
|
|
|
[1] from 0x00002448 in atomic_enter_critical+8 at ../hal/src/hal_atomic.c:48
|
|
|
[2] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:440
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002448 in __DMB+0 at ../CMSIS/Core/Include/cmsis_gcc.h:890
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usb_d_ep_transfer (xfer=xfer@entry=0x2000260c) at ../hal/src/hal_usb_device.c:441
|
|
|
441 state = ept->xfer.hdr.state;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a2a usb_d_ep_transfer+22 str r3, [sp, #8]
|
|
|
0x00001a2c usb_d_ep_transfer+24 blt.n 0x1ae6 <usb_d_ep_transfer+210>
|
|
|
0x00001a2e usb_d_ep_transfer+26 ldr r3, [pc, #192] ; (0x1af0 <usb_d_ep_transfer+220>)
|
|
|
0x00001a30 usb_d_ep_transfer+28 add r0, sp, #24
|
|
|
0x00001a32 usb_d_ep_transfer+30 blx r3
|
|
|
0x00001a34 usb_d_ep_transfer+32 lsls r3, r6, #5
|
|
|
0x00001a36 usb_d_ep_transfer+34 str r3, [sp, #0]
|
|
|
0x00001a38 usb_d_ep_transfer+36 ldr r2, [sp, #0]
|
|
|
0x00001a3a usb_d_ep_transfer+38 ldr r3, [pc, #184] ; (0x1af4 <usb_d_ep_transfer+224>)
|
|
|
0x00001a3c usb_d_ep_transfer+40 adds r6, r3, r2
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000081 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x00000003
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00001a34 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
431 uint32_t len = xfer->size;
|
|
|
432 int32_t rc;
|
|
|
433 volatile uint8_t state;
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
438 }
|
|
|
439
|
|
|
440 atomic_enter_critical(&flags);
|
|
|
441 state = ept->xfer.hdr.state;
|
|
|
442 if (state == USB_EP_S_IDLE) {
|
|
|
443 ept->xfer.hdr.state = USB_EP_S_X_DATA;
|
|
|
444 atomic_leave_critical(&flags);
|
|
|
445 } else {
|
|
|
446 atomic_leave_critical(&flags);
|
|
|
447 switch (state) {
|
|
|
448 case USB_EP_S_HALTED:
|
|
|
449 return USB_HALTED;
|
|
|
450 case USB_EP_S_ERROR:
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:441
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a34 in usb_d_ep_transfer+32 at ../hal/src/hal_usb_device.c:441
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = 3 '\003', ept = 0x200004d8 <usb_d_inst+96>: {xfer = {hdr = {type = 2 '\002',ep = 129 '\201',state = 1 '\0…, dir = true, zlp = true, len = 13, rc = <optimized out>, state = 0 '\000', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
442 if (state == USB_EP_S_IDLE) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a3c usb_d_ep_transfer+40 adds r6, r3, r2
|
|
|
0x00001a3e usb_d_ep_transfer+42 ldrb r3, [r6, #2]
|
|
|
0x00001a40 usb_d_ep_transfer+44 add r2, sp, #16
|
|
|
0x00001a42 usb_d_ep_transfer+46 adds r7, r2, #7
|
|
|
0x00001a44 usb_d_ep_transfer+48 strb r3, [r7, #0]
|
|
|
0x00001a46 usb_d_ep_transfer+50 ldrb r2, [r7, #0]
|
|
|
0x00001a48 usb_d_ep_transfer+52 uxtb r3, r2
|
|
|
0x00001a4a usb_d_ep_transfer+54 str r3, [sp, #12]
|
|
|
0x00001a4c usb_d_ep_transfer+56 ldr r3, [pc, #168] ; (0x1af8 <usb_d_ep_transfer+228>)
|
|
|
0x00001a4e usb_d_ep_transfer+58 cmp r2, #1
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x200025d8 r3 0x00000001 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00001a46 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
432 int32_t rc;
|
|
|
433 volatile uint8_t state;
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
438 }
|
|
|
439
|
|
|
440 atomic_enter_critical(&flags);
|
|
|
441 state = ept->xfer.hdr.state;
|
|
|
442 if (state == USB_EP_S_IDLE) {
|
|
|
443 ept->xfer.hdr.state = USB_EP_S_X_DATA;
|
|
|
444 atomic_leave_critical(&flags);
|
|
|
445 } else {
|
|
|
446 atomic_leave_critical(&flags);
|
|
|
447 switch (state) {
|
|
|
448 case USB_EP_S_HALTED:
|
|
|
449 return USB_HALTED;
|
|
|
450 case USB_EP_S_ERROR:
|
|
|
451 return -USB_ERROR;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a46 in usb_d_ep_transfer+50 at ../hal/src/hal_usb_device.c:442
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a46 in usb_d_ep_transfer+50 at ../hal/src/hal_usb_device.c:442
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = true, len = 13, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
443 ept->xfer.hdr.state = USB_EP_S_X_DATA;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a48 usb_d_ep_transfer+52 uxtb r3, r2
|
|
|
0x00001a4a usb_d_ep_transfer+54 str r3, [sp, #12]
|
|
|
0x00001a4c usb_d_ep_transfer+56 ldr r3, [pc, #168] ; (0x1af8 <usb_d_ep_transfer+228>)
|
|
|
0x00001a4e usb_d_ep_transfer+58 cmp r2, #1
|
|
|
0x00001a50 usb_d_ep_transfer+60 bne.n 0x1a8e <usb_d_ep_transfer+122>
|
|
|
0x00001a52 usb_d_ep_transfer+62 adds r2, #2
|
|
|
0x00001a54 usb_d_ep_transfer+64 strb r2, [r6, #2]
|
|
|
0x00001a56 usb_d_ep_transfer+66 add r0, sp, #24
|
|
|
0x00001a58 usb_d_ep_transfer+68 blx r3
|
|
|
0x00001a5a usb_d_ep_transfer+70 ldr r3, [pc, #152] ; (0x1af4 <usb_d_ep_transfer+224>)
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000001 r3 0x0000244f r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00001a52 xPSR 0x61000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
433 volatile uint8_t state;
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
438 }
|
|
|
439
|
|
|
440 atomic_enter_critical(&flags);
|
|
|
441 state = ept->xfer.hdr.state;
|
|
|
442 if (state == USB_EP_S_IDLE) {
|
|
|
443 ept->xfer.hdr.state = USB_EP_S_X_DATA;
|
|
|
444 atomic_leave_critical(&flags);
|
|
|
445 } else {
|
|
|
446 atomic_leave_critical(&flags);
|
|
|
447 switch (state) {
|
|
|
448 case USB_EP_S_HALTED:
|
|
|
449 return USB_HALTED;
|
|
|
450 case USB_EP_S_ERROR:
|
|
|
451 return -USB_ERROR;
|
|
|
452 case USB_EP_S_DISABLED:
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a52 in usb_d_ep_transfer+62 at ../hal/src/hal_usb_device.c:443
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a52 in usb_d_ep_transfer+62 at ../hal/src/hal_usb_device.c:443
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = true, len = 13, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
444 atomic_leave_critical(&flags);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a4c usb_d_ep_transfer+56 ldr r3, [pc, #168] ; (0x1af8 <usb_d_ep_transfer+228>)
|
|
|
0x00001a4e usb_d_ep_transfer+58 cmp r2, #1
|
|
|
0x00001a50 usb_d_ep_transfer+60 bne.n 0x1a8e <usb_d_ep_transfer+122>
|
|
|
0x00001a52 usb_d_ep_transfer+62 adds r2, #2
|
|
|
0x00001a54 usb_d_ep_transfer+64 strb r2, [r6, #2]
|
|
|
0x00001a56 usb_d_ep_transfer+66 add r0, sp, #24
|
|
|
0x00001a58 usb_d_ep_transfer+68 blx r3
|
|
|
0x00001a5a usb_d_ep_transfer+70 ldr r3, [pc, #152] ; (0x1af4 <usb_d_ep_transfer+224>)
|
|
|
0x00001a5c usb_d_ep_transfer+72 ldr r2, [sp, #0]
|
|
|
0x00001a5e usb_d_ep_transfer+74 ldrb r3, [r2, r3]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000003 r3 0x0000244f r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a35 pc 0x00001a56 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
434 volatile hal_atomic_t flags;
|
|
|
435
|
|
|
436 if (ep_index < 0) {
|
|
|
437 return -USB_ERR_PARAM;
|
|
|
438 }
|
|
|
439
|
|
|
440 atomic_enter_critical(&flags);
|
|
|
441 state = ept->xfer.hdr.state;
|
|
|
442 if (state == USB_EP_S_IDLE) {
|
|
|
443 ept->xfer.hdr.state = USB_EP_S_X_DATA;
|
|
|
444 atomic_leave_critical(&flags);
|
|
|
445 } else {
|
|
|
446 atomic_leave_critical(&flags);
|
|
|
447 switch (state) {
|
|
|
448 case USB_EP_S_HALTED:
|
|
|
449 return USB_HALTED;
|
|
|
450 case USB_EP_S_ERROR:
|
|
|
451 return -USB_ERROR;
|
|
|
452 case USB_EP_S_DISABLED:
|
|
|
453 return -USB_ERR_FUNC;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a56 in usb_d_ep_transfer+66 at ../hal/src/hal_usb_device.c:444
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a56 in usb_d_ep_transfer+66 at ../hal/src/hal_usb_device.c:444
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = true, len = 13, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
atomic_leave_critical (atomic=atomic@entry=0x200025e0) at ../hal/src/hal_atomic.c:56
|
|
|
56 __DMB();
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000244e atomic_leave_critical+0 dmb sy
|
|
|
0x00002452 atomic_leave_critical+4 ldr r3, [r0, #0]
|
|
|
0x00002454 atomic_leave_critical+6 msr PRIMASK, r3
|
|
|
0x00002458 atomic_leave_critical+10 bx lr
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000003 r3 0x0000244f r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x0000244e xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
46 *atomic = __get_PRIMASK();
|
|
|
47 __disable_irq();
|
|
|
48 __DMB();
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Exit atomic section
|
|
|
53 */
|
|
|
54 void atomic_leave_critical(hal_atomic_t volatile *atomic)
|
|
|
55 {
|
|
|
56 __DMB();
|
|
|
57 __set_PRIMASK(*atomic);
|
|
|
58 }
|
|
|
59
|
|
|
60 /**
|
|
|
61 * \brief Retrieve the current driver version
|
|
|
62 */
|
|
|
63 uint32_t atomic_get_version(void)
|
|
|
64 {
|
|
|
65 return DRIVER_VERSION;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000244e in atomic_leave_critical+0 at ../hal/src/hal_atomic.c:56
|
|
|
[1] from 0x00001a5a in usb_d_ep_transfer+70 at ../hal/src/hal_usb_device.c:444
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000244e in atomic_leave_critical+0 at ../hal/src/hal_atomic.c:56
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg atomic = 0x200025e0: 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
__DMB () at ../CMSIS/Core/Include/cmsis_gcc.h:890
|
|
|
890 __ASM volatile ("dmb 0xF":::"memory");
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000244e __DMB+0 dmb sy
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000003 r3 0x0000244f r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x0000244e xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
880 }
|
|
|
881
|
|
|
882
|
|
|
883 /**
|
|
|
884 \brief Data Memory Barrier
|
|
|
885 \details Ensures the apparent order of the explicit memory operations before
|
|
|
886 and after the instruction, without ensuring their completion.
|
|
|
887 */
|
|
|
888 __STATIC_FORCEINLINE void __DMB(void)
|
|
|
889 {
|
|
|
890 __ASM volatile ("dmb 0xF":::"memory");
|
|
|
891 }
|
|
|
892
|
|
|
893
|
|
|
894 /**
|
|
|
895 \brief Reverse byte order (32 bit)
|
|
|
896 \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412.
|
|
|
897 \param [in] value Value to reverse
|
|
|
898 \return Reversed value
|
|
|
899 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x0000244e in __DMB+0 at ../CMSIS/Core/Include/cmsis_gcc.h:890
|
|
|
[1] from 0x0000244e in atomic_leave_critical+0 at ../hal/src/hal_atomic.c:56
|
|
|
[2] from 0x00001a5a in usb_d_ep_transfer+70 at ../hal/src/hal_usb_device.c:444
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x0000244e in __DMB+0 at ../CMSIS/Core/Include/cmsis_gcc.h:890
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
atomic_leave_critical (atomic=atomic@entry=0x200025e0) at ../hal/src/hal_atomic.c:57
|
|
|
57 __set_PRIMASK(*atomic);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000244e atomic_leave_critical+0 dmb sy
|
|
|
0x00002452 atomic_leave_critical+4 ldr r3, [r0, #0]
|
|
|
0x00002454 atomic_leave_critical+6 msr PRIMASK, r3
|
|
|
0x00002458 atomic_leave_critical+10 bx lr
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000003 r3 0x0000244f r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00002452 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
47 __disable_irq();
|
|
|
48 __DMB();
|
|
|
49 }
|
|
|
50
|
|
|
51 /**
|
|
|
52 * \brief Exit atomic section
|
|
|
53 */
|
|
|
54 void atomic_leave_critical(hal_atomic_t volatile *atomic)
|
|
|
55 {
|
|
|
56 __DMB();
|
|
|
57 __set_PRIMASK(*atomic);
|
|
|
58 }
|
|
|
59
|
|
|
60 /**
|
|
|
61 * \brief Retrieve the current driver version
|
|
|
62 */
|
|
|
63 uint32_t atomic_get_version(void)
|
|
|
64 {
|
|
|
65 return DRIVER_VERSION;
|
|
|
66 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002452 in atomic_leave_critical+4 at ../hal/src/hal_atomic.c:57
|
|
|
[1] from 0x00001a5a in usb_d_ep_transfer+70 at ../hal/src/hal_usb_device.c:444
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002452 in atomic_leave_critical+4 at ../hal/src/hal_atomic.c:57
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg atomic = 0x200025e0: 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
__set_PRIMASK (priMask=0) at ../CMSIS/Core/Include/cmsis_gcc.h:414
|
|
|
414 __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00002454 __set_PRIMASK+0 msr PRIMASK, r3
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000003 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00002454 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x01 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
404 #endif
|
|
|
405
|
|
|
406
|
|
|
407 /**
|
|
|
408 \brief Set Priority Mask
|
|
|
409 \details Assigns the given value to the Priority Mask Register.
|
|
|
410 \param [in] priMask Priority Mask
|
|
|
411 */
|
|
|
412 __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
|
|
|
413 {
|
|
|
414 __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
|
|
|
415 }
|
|
|
416
|
|
|
417
|
|
|
418 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
|
|
|
419 /**
|
|
|
420 \brief Set Priority Mask (non-secure)
|
|
|
421 \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
|
|
|
422 \param [in] priMask Priority Mask
|
|
|
423 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00002454 in __set_PRIMASK+0 at ../CMSIS/Core/Include/cmsis_gcc.h:414
|
|
|
[1] from 0x00002454 in atomic_leave_critical+6 at ../hal/src/hal_atomic.c:57
|
|
|
[2] from 0x00001a5a in usb_d_ep_transfer+70 at ../hal/src/hal_usb_device.c:444
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00002454 in __set_PRIMASK+0 at ../CMSIS/Core/Include/cmsis_gcc.h:414
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg priMask = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usb_d_ep_transfer (xfer=xfer@entry=0x2000260c) at ../hal/src/hal_usb_device.c:459
|
|
|
459 if (ept->xfer.hdr.type == USB_EP_XTYPE_CTRL) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a50 usb_d_ep_transfer+60 bne.n 0x1a8e <usb_d_ep_transfer+122>
|
|
|
0x00001a52 usb_d_ep_transfer+62 adds r2, #2
|
|
|
0x00001a54 usb_d_ep_transfer+64 strb r2, [r6, #2]
|
|
|
0x00001a56 usb_d_ep_transfer+66 add r0, sp, #24
|
|
|
0x00001a58 usb_d_ep_transfer+68 blx r3
|
|
|
0x00001a5a usb_d_ep_transfer+70 ldr r3, [pc, #152] ; (0x1af4 <usb_d_ep_transfer+224>)
|
|
|
0x00001a5c usb_d_ep_transfer+72 ldr r2, [sp, #0]
|
|
|
0x00001a5e usb_d_ep_transfer+74 ldrb r3, [r2, r3]
|
|
|
0x00001a60 usb_d_ep_transfer+76 cmp r3, #0
|
|
|
0x00001a62 usb_d_ep_transfer+78 beq.n 0x1aa4 <usb_d_ep_transfer+144>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e0 r1 0x00000001 r2 0x00000003 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00001a5a xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
449 return USB_HALTED;
|
|
|
450 case USB_EP_S_ERROR:
|
|
|
451 return -USB_ERROR;
|
|
|
452 case USB_EP_S_DISABLED:
|
|
|
453 return -USB_ERR_FUNC;
|
|
|
454 default: /* USB_EP_S_X_xxxx */
|
|
|
455 return USB_BUSY;
|
|
|
456 }
|
|
|
457 }
|
|
|
458
|
|
|
459 if (ept->xfer.hdr.type == USB_EP_XTYPE_CTRL) {
|
|
|
460 uint16_t req_len = USB_GET_wLength(ept->xfer.req);
|
|
|
461 /* SETUP without data: ZLP IN as status. */
|
|
|
462 if (req_len == 0) {
|
|
|
463 dir = true;
|
|
|
464 len = 0;
|
|
|
465 zlp = true;
|
|
|
466 ept->xfer.hdr.state = USB_EP_S_X_STATUS;
|
|
|
467 } else {
|
|
|
468 dir = (USB_GET_bmRequestType(ept->xfer.req) & USB_REQ_TYPE_IN);
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a5a in usb_d_ep_transfer+70 at ../hal/src/hal_usb_device.c:459
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a5a in usb_d_ep_transfer+70 at ../hal/src/hal_usb_device.c:459
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = true, len = 13, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
482 rc = _usb_d_trans(xfer->ep, dir, xfer->buf, len, zlp);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a66 usb_d_ep_transfer+82 ldr r3, [sp, #4]
|
|
|
0x00001a68 usb_d_ep_transfer+84 subs r2, r0, #1
|
|
|
0x00001a6a usb_d_ep_transfer+86 sbcs r0, r2
|
|
|
0x00001a6c usb_d_ep_transfer+88 lsrs r1, r3, #7
|
|
|
0x00001a6e usb_d_ep_transfer+90 uxtb r0, r0
|
|
|
0x00001a70 usb_d_ep_transfer+92 ldr r3, [r4, #0]
|
|
|
0x00001a72 usb_d_ep_transfer+94 ldrb r2, [r4, #8]
|
|
|
0x00001a74 usb_d_ep_transfer+96 str r3, [sp, #28]
|
|
|
0x00001a76 usb_d_ep_transfer+98 str r5, [sp, #32]
|
|
|
0x00001a78 usb_d_ep_transfer+100 cmp r1, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000000 r3 0x00000081 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00001a70 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
472 }
|
|
|
473 if (dir) {
|
|
|
474 /* Setup -> In */
|
|
|
475 zlp = (req_len > len);
|
|
|
476 } else {
|
|
|
477 zlp = false;
|
|
|
478 }
|
|
|
479 }
|
|
|
480 }
|
|
|
481
|
|
|
482 rc = _usb_d_trans(xfer->ep, dir, xfer->buf, len, zlp);
|
|
|
483 return rc;
|
|
|
484 }
|
|
|
485
|
|
|
486 void usb_d_ep_abort(const uint8_t ep)
|
|
|
487 {
|
|
|
488 int8_t ep_index = _usb_d_find_ep(ep);
|
|
|
489 struct usb_d_ep *ept = &usb_d_inst.ep[ep_index];
|
|
|
490 if (ep_index < 0) {
|
|
|
491 return;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a70 in usb_d_ep_transfer+92 at ../hal/src/hal_usb_device.c:482
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a70 in usb_d_ep_transfer+92 at ../hal/src/hal_usb_device.c:482
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = <optimized out>, len = <optimized out>, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_trans (zlp=<optimized out>, size=<optimized out>, buf=<optimized out>, dir=<optimized out>, ep=<optimized out>) at ../hal/src/hal_usb_device.c:482
|
|
|
482 rc = _usb_d_trans(xfer->ep, dir, xfer->buf, len, zlp);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00001a70 _usb_d_trans+0 ldr r3, [r4, #0]
|
|
|
0x00001a72 _usb_d_trans+2 ldrb r2, [r4, #8]
|
|
|
0x00001a74 _usb_d_trans+4 str r3, [sp, #28]
|
|
|
0x00001a76 _usb_d_trans+6 str r5, [sp, #32]
|
|
|
0x00001a78 _usb_d_trans+8 cmp r1, #0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000000 r3 0x00000081 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00001a70 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
472 }
|
|
|
473 if (dir) {
|
|
|
474 /* Setup -> In */
|
|
|
475 zlp = (req_len > len);
|
|
|
476 } else {
|
|
|
477 zlp = false;
|
|
|
478 }
|
|
|
479 }
|
|
|
480 }
|
|
|
481
|
|
|
482 rc = _usb_d_trans(xfer->ep, dir, xfer->buf, len, zlp);
|
|
|
483 return rc;
|
|
|
484 }
|
|
|
485
|
|
|
486 void usb_d_ep_abort(const uint8_t ep)
|
|
|
487 {
|
|
|
488 int8_t ep_index = _usb_d_find_ep(ep);
|
|
|
489 struct usb_d_ep *ept = &usb_d_inst.ep[ep_index];
|
|
|
490 if (ep_index < 0) {
|
|
|
491 return;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a70 in _usb_d_trans+0 at ../hal/src/hal_usb_device.c:482
|
|
|
[1] from 0x00001a70 in usb_d_ep_transfer+92 at ../hal/src/hal_usb_device.c:482
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a70 in _usb_d_trans+0 at ../hal/src/hal_usb_device.c:482
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg zlp = <optimized out>, size = <optimized out>, buf = <optimized out>, dir = <optimized out>, ep = <optimized out>
|
|
|
loc trans = {buf = 0x200b <usbdc_xfer+18> "\260",size = 6682,ep = 0 '\000',zlp = 2 '\002'}, ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = <optimized out>, len = <optimized out>, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usb_d_ep_transfer (xfer=xfer@entry=0x2000260c) at ../hal/src/hal_usb_device.c:482
|
|
|
482 rc = _usb_d_trans(xfer->ep, dir, xfer->buf, len, zlp);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a6a usb_d_ep_transfer+86 sbcs r0, r2
|
|
|
0x00001a6c usb_d_ep_transfer+88 lsrs r1, r3, #7
|
|
|
0x00001a6e usb_d_ep_transfer+90 uxtb r0, r0
|
|
|
0x00001a70 usb_d_ep_transfer+92 ldr r3, [r4, #0]
|
|
|
0x00001a72 usb_d_ep_transfer+94 ldrb r2, [r4, #8]
|
|
|
0x00001a74 usb_d_ep_transfer+96 str r3, [sp, #28]
|
|
|
0x00001a76 usb_d_ep_transfer+98 str r5, [sp, #32]
|
|
|
0x00001a78 usb_d_ep_transfer+100 cmp r1, #0
|
|
|
0x00001a7a usb_d_ep_transfer+102 beq.n 0x1ae0 <usb_d_ep_transfer+204>
|
|
|
0x00001a7c usb_d_ep_transfer+104 movs r3, #128 ; 0x80
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000081 r3 0x00002570 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00001a74 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
472 }
|
|
|
473 if (dir) {
|
|
|
474 /* Setup -> In */
|
|
|
475 zlp = (req_len > len);
|
|
|
476 } else {
|
|
|
477 zlp = false;
|
|
|
478 }
|
|
|
479 }
|
|
|
480 }
|
|
|
481
|
|
|
482 rc = _usb_d_trans(xfer->ep, dir, xfer->buf, len, zlp);
|
|
|
483 return rc;
|
|
|
484 }
|
|
|
485
|
|
|
486 void usb_d_ep_abort(const uint8_t ep)
|
|
|
487 {
|
|
|
488 int8_t ep_index = _usb_d_find_ep(ep);
|
|
|
489 struct usb_d_ep *ept = &usb_d_inst.ep[ep_index];
|
|
|
490 if (ep_index < 0) {
|
|
|
491 return;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a74 in usb_d_ep_transfer+96 at ../hal/src/hal_usb_device.c:482
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a74 in usb_d_ep_transfer+96 at ../hal/src/hal_usb_device.c:482
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = <optimized out>, len = <optimized out>, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_trans (zlp=<optimized out>, size=<optimized out>, buf=0x2570 "HELLO WORLD\n", dir=true, ep=129 '\201') at ../hal/src/hal_usb_device.c:143
|
|
|
143 struct usb_d_transfer trans
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00001a70 _usb_d_trans+0 ldr r3, [r4, #0]
|
|
|
0x00001a72 _usb_d_trans+2 ldrb r2, [r4, #8]
|
|
|
0x00001a74 _usb_d_trans+4 str r3, [sp, #28]
|
|
|
0x00001a76 _usb_d_trans+6 str r5, [sp, #32]
|
|
|
0x00001a78 _usb_d_trans+8 cmp r1, #0
|
|
|
0x00001a7a _usb_d_trans+10 beq.n 0x1ae0 <usb_d_ep_transfer+204>
|
|
|
0x00001a7c _usb_d_trans+12 movs r3, #128 ; 0x80
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000081 r3 0x00002570 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00001a74 xPSR 0x01000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
133 * \brief Start transactions
|
|
|
134 * \param[in] ep Endpoint address.
|
|
|
135 * \param[in] dir Endpoint transfer direction.
|
|
|
136 * \param[in] buf Pointer to transfer buffer.
|
|
|
137 * \param[in] size Transfer size.
|
|
|
138 * \param[in] zlp Auto append ZLP for IN, or wait ZLP for OUT.
|
|
|
139 */
|
|
|
140 static inline int32_t _usb_d_trans(const uint8_t ep, const bool dir, const uint8_t *buf, const uint32_t size,
|
|
|
141 const uint8_t zlp)
|
|
|
142 {
|
|
|
143 struct usb_d_transfer trans
|
|
|
144 = {(uint8_t *)buf, size, dir ? (uint8_t)(ep | USB_EP_DIR) : (uint8_t)(ep & USB_EP_N_MASK), zlp};
|
|
|
145
|
|
|
146 return _usb_d_dev_ep_trans(&trans);
|
|
|
147 }
|
|
|
148
|
|
|
149 /**
|
|
|
150 * \brief Dummy callback that returns false
|
|
|
151 * \param[in] unused0 Unused parameter.
|
|
|
152 * \param[in] unused1 Unused parameter.
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a74 in _usb_d_trans+4 at ../hal/src/hal_usb_device.c:143
|
|
|
[1] from 0x00001a74 in usb_d_ep_transfer+96 at ../hal/src/hal_usb_device.c:482
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a74 in _usb_d_trans+4 at ../hal/src/hal_usb_device.c:143
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg zlp = <optimized out>, size = <optimized out>, buf = 0x2570 "HELLO WORLD\n": 72 'H', dir = true, ep = 129 '\201'
|
|
|
loc trans = {buf = 0x200b <usbdc_xfer+18> "\260",size = 6682,ep = 0 '\000',zlp = 2 '\002'}, ep_index = <optimized out>, ept = <optimized out>, dir = true, zlp = <optimized out>, len = <optimized out>, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
146 return _usb_d_dev_ep_trans(&trans);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a7c _usb_d_trans+12 movs r3, #128 ; 0x80
|
|
|
0x00001a7e _usb_d_trans+14 orrs r2, r3
|
|
|
0x00001a80 _usb_d_trans+16 add r3, sp, #16
|
|
|
0x00001a82 _usb_d_trans+18 strb r2, [r3, #20]
|
|
|
0x00001a84 _usb_d_trans+20 strb r0, [r3, #21]
|
|
|
0x00001a86 _usb_d_trans+22 ldr r3, [pc, #116] ; (0x1afc <usb_d_ep_transfer+232>)
|
|
|
0x00001a88 _usb_d_trans+24 add r0, sp, #28
|
|
|
0x00001a8a _usb_d_trans+26 blx r3
|
|
|
0x00001a8c _usb_d_trans+28 b.n 0x1aa0 <usb_d_ep_transfer+140>
|
|
|
0x00001a8e _usb_d_trans+30 add r0, sp, #24
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000081 r3 0x200025d8 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a5b pc 0x00001a86 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
136 * \param[in] buf Pointer to transfer buffer.
|
|
|
137 * \param[in] size Transfer size.
|
|
|
138 * \param[in] zlp Auto append ZLP for IN, or wait ZLP for OUT.
|
|
|
139 */
|
|
|
140 static inline int32_t _usb_d_trans(const uint8_t ep, const bool dir, const uint8_t *buf, const uint32_t size,
|
|
|
141 const uint8_t zlp)
|
|
|
142 {
|
|
|
143 struct usb_d_transfer trans
|
|
|
144 = {(uint8_t *)buf, size, dir ? (uint8_t)(ep | USB_EP_DIR) : (uint8_t)(ep & USB_EP_N_MASK), zlp};
|
|
|
145
|
|
|
146 return _usb_d_dev_ep_trans(&trans);
|
|
|
147 }
|
|
|
148
|
|
|
149 /**
|
|
|
150 * \brief Dummy callback that returns false
|
|
|
151 * \param[in] unused0 Unused parameter.
|
|
|
152 * \param[in] unused1 Unused parameter.
|
|
|
153 * \param[in] unused2 Unused parameter.
|
|
|
154 * \return Always \c false.
|
|
|
155 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a86 in _usb_d_trans+22 at ../hal/src/hal_usb_device.c:146
|
|
|
[1] from 0x00001a86 in usb_d_ep_transfer+114 at ../hal/src/hal_usb_device.c:482
|
|
|
[2] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[3] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[4] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a86 in _usb_d_trans+22 at ../hal/src/hal_usb_device.c:146
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg zlp = <optimized out>, size = <optimized out>, buf = 0x2570 "HELLO WORLD\n": 72 'H', dir = <optimized out>, ep = <optimized out>
|
|
|
loc trans = {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}, ep_index = <optimized out>, ept = <optimized out>, dir = <optimized out>, zlp = <optimized out>, len = <optimized out>, rc = <optimized out>, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_dev_ep_trans (trans=trans@entry=0x200025e4) at ../hpl/usb/hpl_usb.c:1912
|
|
|
1912 uint8_t epn = USB_EP_GET_N(trans->ep);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00000f60 _usb_d_dev_ep_trans+0 push {r4, r5, r6, r7, lr}
|
|
|
0x00000f62 _usb_d_dev_ep_trans+2 movs r5, #15
|
|
|
0x00000f64 _usb_d_dev_ep_trans+4 ldrb r7, [r0, #8]
|
|
|
0x00000f66 _usb_d_dev_ep_trans+6 sub sp, #28
|
|
|
0x00000f68 _usb_d_dev_ep_trans+8 sxtb r3, r7
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e4 r1 0x00000001 r2 0x00000081 r3 0x00000f61 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00001a8d pc 0x00000f60 xPSR 0x21000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1902 return ERR_NONE;
|
|
|
1903 }
|
|
|
1904 memcpy(req_buf, (void *)addr, 8);
|
|
|
1905 _usbd_ep_ack_setup(epn);
|
|
|
1906
|
|
|
1907 return bytes;
|
|
|
1908 }
|
|
|
1909
|
|
|
1910 int32_t _usb_d_dev_ep_trans(const struct usb_d_transfer *trans)
|
|
|
1911 {
|
|
|
1912 uint8_t epn = USB_EP_GET_N(trans->ep);
|
|
|
1913 bool dir = USB_EP_GET_DIR(trans->ep);
|
|
|
1914 struct _usb_d_dev_ep *ept = _usb_d_dev_ept(epn, dir);
|
|
|
1915
|
|
|
1916 uint16_t size_mask = (ept->size == 1023) ? 1023 : (ept->size - 1);
|
|
|
1917 bool size_n_aligned = (trans->size & size_mask);
|
|
|
1918
|
|
|
1919 bool use_cache = false;
|
|
|
1920
|
|
|
1921 volatile hal_atomic_t flags;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000f60 in _usb_d_dev_ep_trans+0 at ../hpl/usb/hpl_usb.c:1912
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000f60 in _usb_d_dev_ep_trans+0 at ../hpl/usb/hpl_usb.c:1912
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = <optimized out>, dir = <optimized out>, ept = <optimized out>, size_mask = <optimized out>, size_n_aligned = <optimized out>, use_cache = <optimized out>, flags = 1
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1913 bool dir = USB_EP_GET_DIR(trans->ep);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000f62 _usb_d_dev_ep_trans+2 movs r5, #15
|
|
|
0x00000f64 _usb_d_dev_ep_trans+4 ldrb r7, [r0, #8]
|
|
|
0x00000f66 _usb_d_dev_ep_trans+6 sub sp, #28
|
|
|
0x00000f68 _usb_d_dev_ep_trans+8 sxtb r3, r7
|
|
|
0x00000f6a _usb_d_dev_ep_trans+10 ands r5, r7
|
|
|
0x00000f6c _usb_d_dev_ep_trans+12 lsrs r7, r7, #7
|
|
|
0x00000f6e _usb_d_dev_ep_trans+14 movs r1, r7
|
|
|
0x00000f70 _usb_d_dev_ep_trans+16 str r3, [sp, #8]
|
|
|
0x00000f72 _usb_d_dev_ep_trans+18 movs r6, r0
|
|
|
0x00000f74 _usb_d_dev_ep_trans+20 ldr r3, [pc, #232] ; (0x1060 <_usb_d_dev_ep_trans+256>)
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e4 r1 0x00000001 r2 0x00000081 r3 0xffffff81 r4 0x2000260c r5 0x00000001 r6 0x200004d8
|
|
|
r7 0x00000081 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00001a8d pc 0x00000f6c xPSR 0x21000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1903 }
|
|
|
1904 memcpy(req_buf, (void *)addr, 8);
|
|
|
1905 _usbd_ep_ack_setup(epn);
|
|
|
1906
|
|
|
1907 return bytes;
|
|
|
1908 }
|
|
|
1909
|
|
|
1910 int32_t _usb_d_dev_ep_trans(const struct usb_d_transfer *trans)
|
|
|
1911 {
|
|
|
1912 uint8_t epn = USB_EP_GET_N(trans->ep);
|
|
|
1913 bool dir = USB_EP_GET_DIR(trans->ep);
|
|
|
1914 struct _usb_d_dev_ep *ept = _usb_d_dev_ept(epn, dir);
|
|
|
1915
|
|
|
1916 uint16_t size_mask = (ept->size == 1023) ? 1023 : (ept->size - 1);
|
|
|
1917 bool size_n_aligned = (trans->size & size_mask);
|
|
|
1918
|
|
|
1919 bool use_cache = false;
|
|
|
1920
|
|
|
1921 volatile hal_atomic_t flags;
|
|
|
1922
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000f6c in _usb_d_dev_ep_trans+12 at ../hpl/usb/hpl_usb.c:1913
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000f6c in _usb_d_dev_ep_trans+12 at ../hpl/usb/hpl_usb.c:1913
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = 1 '\001', dir = <optimized out>, ept = <optimized out>, size_mask = <optimized out>, size_n_aligned = <optimized out>, use_cache = <optimized out>, flags = 553648640
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1914 struct _usb_d_dev_ep *ept = _usb_d_dev_ept(epn, dir);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000f64 _usb_d_dev_ep_trans+4 ldrb r7, [r0, #8]
|
|
|
0x00000f66 _usb_d_dev_ep_trans+6 sub sp, #28
|
|
|
0x00000f68 _usb_d_dev_ep_trans+8 sxtb r3, r7
|
|
|
0x00000f6a _usb_d_dev_ep_trans+10 ands r5, r7
|
|
|
0x00000f6c _usb_d_dev_ep_trans+12 lsrs r7, r7, #7
|
|
|
0x00000f6e _usb_d_dev_ep_trans+14 movs r1, r7
|
|
|
0x00000f70 _usb_d_dev_ep_trans+16 str r3, [sp, #8]
|
|
|
0x00000f72 _usb_d_dev_ep_trans+18 movs r6, r0
|
|
|
0x00000f74 _usb_d_dev_ep_trans+20 ldr r3, [pc, #232] ; (0x1060 <_usb_d_dev_ep_trans+256>)
|
|
|
0x00000f76 _usb_d_dev_ep_trans+22 movs r0, r5
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200025e4 r1 0x00000001 r2 0x00000081 r3 0xffffff81 r4 0x2000260c r5 0x00000001 r6 0x200004d8
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00001a8d pc 0x00000f6e xPSR 0x01000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1904 memcpy(req_buf, (void *)addr, 8);
|
|
|
1905 _usbd_ep_ack_setup(epn);
|
|
|
1906
|
|
|
1907 return bytes;
|
|
|
1908 }
|
|
|
1909
|
|
|
1910 int32_t _usb_d_dev_ep_trans(const struct usb_d_transfer *trans)
|
|
|
1911 {
|
|
|
1912 uint8_t epn = USB_EP_GET_N(trans->ep);
|
|
|
1913 bool dir = USB_EP_GET_DIR(trans->ep);
|
|
|
1914 struct _usb_d_dev_ep *ept = _usb_d_dev_ept(epn, dir);
|
|
|
1915
|
|
|
1916 uint16_t size_mask = (ept->size == 1023) ? 1023 : (ept->size - 1);
|
|
|
1917 bool size_n_aligned = (trans->size & size_mask);
|
|
|
1918
|
|
|
1919 bool use_cache = false;
|
|
|
1920
|
|
|
1921 volatile hal_atomic_t flags;
|
|
|
1922
|
|
|
1923 if (epn > CONF_USB_D_MAX_EP_N) {
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000f6e in _usb_d_dev_ep_trans+14 at ../hpl/usb/hpl_usb.c:1914
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000f6e in _usb_d_dev_ep_trans+14 at ../hpl/usb/hpl_usb.c:1914
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = 1 '\001', dir = true, ept = <optimized out>, size_mask = <optimized out>, size_n_aligned = <optimized out>, use_cache = <optimized out>, flags = 553648640
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_dev_ept (epn=epn@entry=1 '\001', dir=dir@entry=true) at ../hpl/usb/hpl_usb.c:911
|
|
|
911 uint8_t ep_index = (epn == 0) ? 0 : (dir ? (epn + CONF_USB_D_MAX_EP_N) : epn);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x000004d0 _usb_d_dev_ept+0 cmp r0, #0
|
|
|
0x000004d2 _usb_d_dev_ept+2 beq.n 0x4dc <_usb_d_dev_ept+12>
|
|
|
0x000004d4 _usb_d_dev_ept+4 cmp r1, #0
|
|
|
0x000004d6 _usb_d_dev_ept+6 beq.n 0x4dc <_usb_d_dev_ept+12>
|
|
|
0x000004d8 _usb_d_dev_ept+8 adds r0, #2
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00000001 r2 0x00000081 r3 0x000004d1 r4 0x2000260c r5 0x00000001 r6 0x200025e4
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00000f7b pc 0x000004d0 xPSR 0x01000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
901 : ((n > 256) ? 6 : ((n > 128) ? 5 : ((n > 64) ? 4 : ((n > 32) ? 3 : ((n > 16) ? 2 : ((n > 8) ? 1 : 0)))))));
|
|
|
902 }
|
|
|
903
|
|
|
904 /**
|
|
|
905 * \brief Obtain endpoint descriptor pointer
|
|
|
906 * \param[in] epn Endpoint number.
|
|
|
907 * \param[in] dir Endpoint direction.
|
|
|
908 */
|
|
|
909 static inline struct _usb_d_dev_ep *_usb_d_dev_ept(uint8_t epn, bool dir)
|
|
|
910 {
|
|
|
911 uint8_t ep_index = (epn == 0) ? 0 : (dir ? (epn + CONF_USB_D_MAX_EP_N) : epn);
|
|
|
912 return &dev_inst.ep[ep_index];
|
|
|
913 }
|
|
|
914
|
|
|
915 /**
|
|
|
916 * \brief Handles USB SOF interrupt
|
|
|
917 */
|
|
|
918 static inline void _usb_d_dev_sof(void)
|
|
|
919 {
|
|
|
920 /* ACK SOF interrupt. */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000004d0 in _usb_d_dev_ept+0 at ../hpl/usb/hpl_usb.c:911
|
|
|
[1] from 0x00000f7a in _usb_d_dev_ep_trans+26 at ../hpl/usb/hpl_usb.c:1914
|
|
|
[2] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[3] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[4] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[5] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[6] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000004d0 in _usb_d_dev_ept+0 at ../hpl/usb/hpl_usb.c:911
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg epn = 1 '\001', dir = true
|
|
|
loc ep_index = <optimized out>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
912 return &dev_inst.ep[ep_index];
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000004d2 _usb_d_dev_ept+2 beq.n 0x4dc <_usb_d_dev_ept+12>
|
|
|
0x000004d4 _usb_d_dev_ept+4 cmp r1, #0
|
|
|
0x000004d6 _usb_d_dev_ept+6 beq.n 0x4dc <_usb_d_dev_ept+12>
|
|
|
0x000004d8 _usb_d_dev_ept+8 adds r0, #2
|
|
|
0x000004da _usb_d_dev_ept+10 uxtb r0, r0
|
|
|
0x000004dc _usb_d_dev_ept+12 movs r3, #20
|
|
|
0x000004de _usb_d_dev_ept+14 adds r0, #1
|
|
|
0x000004e0 _usb_d_dev_ept+16 muls r0, r3
|
|
|
0x000004e2 _usb_d_dev_ept+18 ldr r3, [pc, #4] ; (0x4e8 <_usb_d_dev_ept+24>)
|
|
|
0x000004e4 _usb_d_dev_ept+20 adds r0, r0, r3
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x00000001 r2 0x00000081 r3 0x000004d1 r4 0x2000260c r5 0x00000001 r6 0x200025e4
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00000f7b pc 0x000004dc xPSR 0x01000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
902 }
|
|
|
903
|
|
|
904 /**
|
|
|
905 * \brief Obtain endpoint descriptor pointer
|
|
|
906 * \param[in] epn Endpoint number.
|
|
|
907 * \param[in] dir Endpoint direction.
|
|
|
908 */
|
|
|
909 static inline struct _usb_d_dev_ep *_usb_d_dev_ept(uint8_t epn, bool dir)
|
|
|
910 {
|
|
|
911 uint8_t ep_index = (epn == 0) ? 0 : (dir ? (epn + CONF_USB_D_MAX_EP_N) : epn);
|
|
|
912 return &dev_inst.ep[ep_index];
|
|
|
913 }
|
|
|
914
|
|
|
915 /**
|
|
|
916 * \brief Handles USB SOF interrupt
|
|
|
917 */
|
|
|
918 static inline void _usb_d_dev_sof(void)
|
|
|
919 {
|
|
|
920 /* ACK SOF interrupt. */
|
|
|
921 hri_usbdevice_clear_INTFLAG_reg(USB, USB_DEVICE_INTFLAG_SOF);
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000004dc in _usb_d_dev_ept+12 at ../hpl/usb/hpl_usb.c:912
|
|
|
[1] from 0x00000f7a in _usb_d_dev_ep_trans+26 at ../hpl/usb/hpl_usb.c:1914
|
|
|
[2] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[3] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[4] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[5] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[6] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000004dc in _usb_d_dev_ept+12 at ../hpl/usb/hpl_usb.c:912
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg epn = 1 '\001', dir = true
|
|
|
loc ep_index = 3 '\003'
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
_usb_d_dev_ep_trans (trans=trans@entry=0x200025e4) at ../hpl/usb/hpl_usb.c:1916
|
|
|
1916 uint16_t size_mask = (ept->size == 1023) ? 1023 : (ept->size - 1);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000f76 _usb_d_dev_ep_trans+22 movs r0, r5
|
|
|
0x00000f78 _usb_d_dev_ep_trans+24 blx r3
|
|
|
0x00000f7a _usb_d_dev_ep_trans+26 ldr r1, [pc, #232] ; (0x1064 <_usb_d_dev_ep_trans+260>)
|
|
|
0x00000f7c _usb_d_dev_ep_trans+28 ldrh r3, [r0, #16]
|
|
|
0x00000f7e _usb_d_dev_ep_trans+30 movs r4, r0
|
|
|
0x00000f80 _usb_d_dev_ep_trans+32 movs r2, r3
|
|
|
0x00000f82 _usb_d_dev_ep_trans+34 cmp r3, r1
|
|
|
0x00000f84 _usb_d_dev_ep_trans+36 beq.n 0xf8a <_usb_d_dev_ep_trans+42>
|
|
|
0x00000f86 _usb_d_dev_ep_trans+38 subs r2, r3, #1
|
|
|
0x00000f88 _usb_d_dev_ep_trans+40 uxth r2, r2
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x20000158 r1 0x000003ff r2 0x00000081 r3 0x00000040 r4 0x20000158 r5 0x00000001 r6 0x200025e4
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00000f7b pc 0x00000f80 xPSR 0x01000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1906
|
|
|
1907 return bytes;
|
|
|
1908 }
|
|
|
1909
|
|
|
1910 int32_t _usb_d_dev_ep_trans(const struct usb_d_transfer *trans)
|
|
|
1911 {
|
|
|
1912 uint8_t epn = USB_EP_GET_N(trans->ep);
|
|
|
1913 bool dir = USB_EP_GET_DIR(trans->ep);
|
|
|
1914 struct _usb_d_dev_ep *ept = _usb_d_dev_ept(epn, dir);
|
|
|
1915
|
|
|
1916 uint16_t size_mask = (ept->size == 1023) ? 1023 : (ept->size - 1);
|
|
|
1917 bool size_n_aligned = (trans->size & size_mask);
|
|
|
1918
|
|
|
1919 bool use_cache = false;
|
|
|
1920
|
|
|
1921 volatile hal_atomic_t flags;
|
|
|
1922
|
|
|
1923 if (epn > CONF_USB_D_MAX_EP_N) {
|
|
|
1924 return -USB_ERR_PARAM;
|
|
|
1925 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000f80 in _usb_d_dev_ep_trans+32 at ../hpl/usb/hpl_usb.c:1916
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000f80 in _usb_d_dev_ep_trans+32 at ../hpl/usb/hpl_usb.c:1916
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = 1 '\001', dir = true, ept = 0x20000158 <dev_inst+80>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, size_mask = <optimized out>, size_n_aligned = <optimized out>, use_cache = <optimized out>, flags = 553648640
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1917 bool size_n_aligned = (trans->size & size_mask);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000f80 _usb_d_dev_ep_trans+32 movs r2, r3
|
|
|
0x00000f82 _usb_d_dev_ep_trans+34 cmp r3, r1
|
|
|
0x00000f84 _usb_d_dev_ep_trans+36 beq.n 0xf8a <_usb_d_dev_ep_trans+42>
|
|
|
0x00000f86 _usb_d_dev_ep_trans+38 subs r2, r3, #1
|
|
|
0x00000f88 _usb_d_dev_ep_trans+40 uxth r2, r2
|
|
|
0x00000f8a _usb_d_dev_ep_trans+42 ldr r1, [r6, #4]
|
|
|
0x00000f8c _usb_d_dev_ep_trans+44 ands r2, r1
|
|
|
0x00000f8e _usb_d_dev_ep_trans+46 str r2, [sp, #4]
|
|
|
0x00000f90 _usb_d_dev_ep_trans+48 cmp r5, #2
|
|
|
0x00000f92 _usb_d_dev_ep_trans+50 bhi.n 0x105a <_usb_d_dev_ep_trans+250>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x20000158 r1 0x000003ff r2 0x0000003f r3 0x00000040 r4 0x20000158 r5 0x00000001 r6 0x200025e4
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00000f7b pc 0x00000f8a xPSR 0x21000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1907 return bytes;
|
|
|
1908 }
|
|
|
1909
|
|
|
1910 int32_t _usb_d_dev_ep_trans(const struct usb_d_transfer *trans)
|
|
|
1911 {
|
|
|
1912 uint8_t epn = USB_EP_GET_N(trans->ep);
|
|
|
1913 bool dir = USB_EP_GET_DIR(trans->ep);
|
|
|
1914 struct _usb_d_dev_ep *ept = _usb_d_dev_ept(epn, dir);
|
|
|
1915
|
|
|
1916 uint16_t size_mask = (ept->size == 1023) ? 1023 : (ept->size - 1);
|
|
|
1917 bool size_n_aligned = (trans->size & size_mask);
|
|
|
1918
|
|
|
1919 bool use_cache = false;
|
|
|
1920
|
|
|
1921 volatile hal_atomic_t flags;
|
|
|
1922
|
|
|
1923 if (epn > CONF_USB_D_MAX_EP_N) {
|
|
|
1924 return -USB_ERR_PARAM;
|
|
|
1925 }
|
|
|
1926
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000f8a in _usb_d_dev_ep_trans+42 at ../hpl/usb/hpl_usb.c:1917
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000f8a in _usb_d_dev_ep_trans+42 at ../hpl/usb/hpl_usb.c:1917
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = 1 '\001', dir = true, ept = 0x20000158 <dev_inst+80>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, size_mask = 63, size_n_aligned = <optimized out>, use_cache = <optimized out>, flags = 553648640
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1923 if (epn > CONF_USB_D_MAX_EP_N) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000f86 _usb_d_dev_ep_trans+38 subs r2, r3, #1
|
|
|
0x00000f88 _usb_d_dev_ep_trans+40 uxth r2, r2
|
|
|
0x00000f8a _usb_d_dev_ep_trans+42 ldr r1, [r6, #4]
|
|
|
0x00000f8c _usb_d_dev_ep_trans+44 ands r2, r1
|
|
|
0x00000f8e _usb_d_dev_ep_trans+46 str r2, [sp, #4]
|
|
|
0x00000f90 _usb_d_dev_ep_trans+48 cmp r5, #2
|
|
|
0x00000f92 _usb_d_dev_ep_trans+50 bhi.n 0x105a <_usb_d_dev_ep_trans+250>
|
|
|
0x00000f94 _usb_d_dev_ep_trans+52 movs r0, #128 ; 0x80
|
|
|
0x00000f96 _usb_d_dev_ep_trans+54 ldr r2, [r6, #0]
|
|
|
0x00000f98 _usb_d_dev_ep_trans+56 lsls r0, r0, #22
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x20000158 r1 0x0000000d r2 0x0000000d r3 0x00000040 r4 0x20000158 r5 0x00000001 r6 0x200025e4
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00000f7b pc 0x00000f90 xPSR 0x21000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1913 bool dir = USB_EP_GET_DIR(trans->ep);
|
|
|
1914 struct _usb_d_dev_ep *ept = _usb_d_dev_ept(epn, dir);
|
|
|
1915
|
|
|
1916 uint16_t size_mask = (ept->size == 1023) ? 1023 : (ept->size - 1);
|
|
|
1917 bool size_n_aligned = (trans->size & size_mask);
|
|
|
1918
|
|
|
1919 bool use_cache = false;
|
|
|
1920
|
|
|
1921 volatile hal_atomic_t flags;
|
|
|
1922
|
|
|
1923 if (epn > CONF_USB_D_MAX_EP_N) {
|
|
|
1924 return -USB_ERR_PARAM;
|
|
|
1925 }
|
|
|
1926
|
|
|
1927 /* Cases that needs cache:
|
|
|
1928 * 1. Buffer not in RAM (cache all).
|
|
|
1929 * 2. IN/OUT with unaligned buffer (cache all).
|
|
|
1930 * 3. OUT with unaligned packet size (cache last packet).
|
|
|
1931 * 4. OUT size < 8 (sub-case for 3).
|
|
|
1932 */
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000f90 in _usb_d_dev_ep_trans+48 at ../hpl/usb/hpl_usb.c:1923
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000f90 in _usb_d_dev_ep_trans+48 at ../hpl/usb/hpl_usb.c:1923
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = 1 '\001', dir = true, ept = 0x20000158 <dev_inst+80>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, size_mask = <optimized out>, size_n_aligned = true, use_cache = false, flags = 553648640
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1933 if (!_usb_is_addr4dma(trans->buf, trans->size) || (!_usb_is_aligned(trans->buf))
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000f8a _usb_d_dev_ep_trans+42 ldr r1, [r6, #4]
|
|
|
0x00000f8c _usb_d_dev_ep_trans+44 ands r2, r1
|
|
|
0x00000f8e _usb_d_dev_ep_trans+46 str r2, [sp, #4]
|
|
|
0x00000f90 _usb_d_dev_ep_trans+48 cmp r5, #2
|
|
|
0x00000f92 _usb_d_dev_ep_trans+50 bhi.n 0x105a <_usb_d_dev_ep_trans+250>
|
|
|
0x00000f94 _usb_d_dev_ep_trans+52 movs r0, #128 ; 0x80
|
|
|
0x00000f96 _usb_d_dev_ep_trans+54 ldr r2, [r6, #0]
|
|
|
0x00000f98 _usb_d_dev_ep_trans+56 lsls r0, r0, #22
|
|
|
0x00000f9a _usb_d_dev_ep_trans+58 cmp r2, r0
|
|
|
0x00000f9c _usb_d_dev_ep_trans+60 bcc.n 0xfba <_usb_d_dev_ep_trans+90>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x20000158 r1 0x0000000d r2 0x0000000d r3 0x00000040 r4 0x20000158 r5 0x00000001 r6 0x200025e4
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00000f7b pc 0x00000f94 xPSR 0x81000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1923 if (epn > CONF_USB_D_MAX_EP_N) {
|
|
|
1924 return -USB_ERR_PARAM;
|
|
|
1925 }
|
|
|
1926
|
|
|
1927 /* Cases that needs cache:
|
|
|
1928 * 1. Buffer not in RAM (cache all).
|
|
|
1929 * 2. IN/OUT with unaligned buffer (cache all).
|
|
|
1930 * 3. OUT with unaligned packet size (cache last packet).
|
|
|
1931 * 4. OUT size < 8 (sub-case for 3).
|
|
|
1932 */
|
|
|
1933 if (!_usb_is_addr4dma(trans->buf, trans->size) || (!_usb_is_aligned(trans->buf))
|
|
|
1934 || (!dir && (trans->size < ept->size))) {
|
|
|
1935 if (!ept->cache) {
|
|
|
1936 return -USB_ERR_FUNC;
|
|
|
1937 }
|
|
|
1938 /* Use cache all the time. */
|
|
|
1939 use_cache = true;
|
|
|
1940 }
|
|
|
1941 if (!dir && size_n_aligned) {
|
|
|
1942 if (!ept->cache) {
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000f94 in _usb_d_dev_ep_trans+52 at ../hpl/usb/hpl_usb.c:1933
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000f94 in _usb_d_dev_ep_trans+52 at ../hpl/usb/hpl_usb.c:1933
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = 1 '\001', dir = true, ept = 0x20000158 <dev_inst+80>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, size_mask = <optimized out>, size_n_aligned = true, use_cache = false, flags = 553648640
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1935 if (!ept->cache) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00000fb0 _usb_d_dev_ep_trans+80 ldr r2, [sp, #8]
|
|
|
0x00000fb2 _usb_d_dev_ep_trans+82 cmp r2, #0
|
|
|
0x00000fb4 _usb_d_dev_ep_trans+84 blt.n 0xfd4 <_usb_d_dev_ep_trans+116>
|
|
|
0x00000fb6 _usb_d_dev_ep_trans+86 cmp r1, r3
|
|
|
0x00000fb8 _usb_d_dev_ep_trans+88 bcs.n 0xfc8 <_usb_d_dev_ep_trans+104>
|
|
|
0x00000fba _usb_d_dev_ep_trans+90 ldr r3, [r4, #12]
|
|
|
0x00000fbc _usb_d_dev_ep_trans+92 movs r5, #1
|
|
|
0x00000fbe _usb_d_dev_ep_trans+94 cmp r3, #0
|
|
|
0x00000fc0 _usb_d_dev_ep_trans+96 bne.n 0xfd4 <_usb_d_dev_ep_trans+116>
|
|
|
0x00000fc2 _usb_d_dev_ep_trans+98 movs r0, #19
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x20000000 r1 0x0000000d r2 0x00002570 r3 0x00000040 r4 0x20000158 r5 0x00000001 r6 0x200025e4
|
|
|
r7 0x00000001 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002598
|
|
|
lr 0x00000f7b pc 0x00000fba xPSR 0x81000000 msp 0x20002598 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
1925 }
|
|
|
1926
|
|
|
1927 /* Cases that needs cache:
|
|
|
1928 * 1. Buffer not in RAM (cache all).
|
|
|
1929 * 2. IN/OUT with unaligned buffer (cache all).
|
|
|
1930 * 3. OUT with unaligned packet size (cache last packet).
|
|
|
1931 * 4. OUT size < 8 (sub-case for 3).
|
|
|
1932 */
|
|
|
1933 if (!_usb_is_addr4dma(trans->buf, trans->size) || (!_usb_is_aligned(trans->buf))
|
|
|
1934 || (!dir && (trans->size < ept->size))) {
|
|
|
1935 if (!ept->cache) {
|
|
|
1936 return -USB_ERR_FUNC;
|
|
|
1937 }
|
|
|
1938 /* Use cache all the time. */
|
|
|
1939 use_cache = true;
|
|
|
1940 }
|
|
|
1941 if (!dir && size_n_aligned) {
|
|
|
1942 if (!ept->cache) {
|
|
|
1943 return -USB_ERR_PARAM;
|
|
|
1944 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000fba in _usb_d_dev_ep_trans+90 at ../hpl/usb/hpl_usb.c:1935
|
|
|
[1] from 0x00001a8c in _usb_d_trans+28 at ../hal/src/hal_usb_device.c:146
|
|
|
[2] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:482
|
|
|
[3] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[4] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[5] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000fba in _usb_d_dev_ep_trans+90 at ../hpl/usb/hpl_usb.c:1935
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg trans = 0x200025e4: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc epn = <optimized out>, dir = true, ept = 0x20000158 <dev_inst+80>: {trans_buf = 0x0 <exception_table>,trans_size = 0,trans_count =…, size_mask = <optimized out>, size_n_aligned = true, use_cache = false, flags = 553648640
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usb_d_ep_transfer (xfer=xfer@entry=0x2000260c) at ../hal/src/hal_usb_device.c:483
|
|
|
483 return rc;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001a82 usb_d_ep_transfer+110 strb r2, [r3, #20]
|
|
|
0x00001a84 usb_d_ep_transfer+112 strb r0, [r3, #21]
|
|
|
0x00001a86 usb_d_ep_transfer+114 ldr r3, [pc, #116] ; (0x1afc <usb_d_ep_transfer+232>)
|
|
|
0x00001a88 usb_d_ep_transfer+116 add r0, sp, #28
|
|
|
0x00001a8a usb_d_ep_transfer+118 blx r3
|
|
|
0x00001a8c usb_d_ep_transfer+120 b.n 0x1aa0 <usb_d_ep_transfer+140>
|
|
|
0x00001a8e usb_d_ep_transfer+122 add r0, sp, #24
|
|
|
0x00001a90 usb_d_ep_transfer+124 blx r3
|
|
|
0x00001a92 usb_d_ep_transfer+126 ldrb r3, [r7, #0]
|
|
|
0x00001a94 usb_d_ep_transfer+128 movs r0, #1
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002570 r3 0x00000000 r4 0x2000260c r5 0x0000000d r6 0x200004d8
|
|
|
r7 0x200025df r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x200025c8
|
|
|
lr 0x00000f7b pc 0x00001a8c xPSR 0x81000000 msp 0x200025c8 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
473 if (dir) {
|
|
|
474 /* Setup -> In */
|
|
|
475 zlp = (req_len > len);
|
|
|
476 } else {
|
|
|
477 zlp = false;
|
|
|
478 }
|
|
|
479 }
|
|
|
480 }
|
|
|
481
|
|
|
482 rc = _usb_d_trans(xfer->ep, dir, xfer->buf, len, zlp);
|
|
|
483 return rc;
|
|
|
484 }
|
|
|
485
|
|
|
486 void usb_d_ep_abort(const uint8_t ep)
|
|
|
487 {
|
|
|
488 int8_t ep_index = _usb_d_find_ep(ep);
|
|
|
489 struct usb_d_ep *ept = &usb_d_inst.ep[ep_index];
|
|
|
490 if (ep_index < 0) {
|
|
|
491 return;
|
|
|
492 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:483
|
|
|
[1] from 0x0000200a in usbdc_xfer+18 at ../usb/device/usbdc.c:805
|
|
|
[2] from 0x00000454 in cdcdf_acm_write+24 at ../usb/class/cdc/device/cdcdf_acm.c:320
|
|
|
[3] from 0x00001bca in main+22 at ../main.c:10
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001a8c in usb_d_ep_transfer+120 at ../hal/src/hal_usb_device.c:483
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg xfer = 0x2000260c: {buf = 0x2570 "HELLO WORLD\n",size = 13,ep = 129 '\201',zlp = 1 '\001'}
|
|
|
loc ep_index = <optimized out>, ept = <optimized out>, dir = <optimized out>, zlp = <optimized out>, len = <optimized out>, rc = -19, state = 1 '\001', flags = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
main () at ../main.c:14
|
|
|
14 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001bc2 main+14 movs r1, #13
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #24] ; (0x1be0 <main+44>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 str r0, [sp, #4]
|
|
|
0x00001bcc main+24 b.n 0x1bcc <main+24>
|
|
|
0x00001bce main+26 nop ; (mov r8, r8)
|
|
|
0x00001bd0 main+28 subs r1, r4, #1
|
|
|
0x00001bd2 main+30 movs r0, r0
|
|
|
0x00001bd4 main+32 asrs r1, r4, #16
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bc2 in ../main.c:10 for main.c:10 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002570 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x00000020 sp 0x20002628
|
|
|
lr 0x00000f7b pc 0x00001bcc xPSR 0x81000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
!10 volatile int32_t ret = cdcdf_acm_write((uint8_t*)"HELLO WORLD\n", sizeof("HELLO WORLD\n"));
|
|
|
11
|
|
|
12 /* Replace with your application code */
|
|
|
13 while (1) {
|
|
|
14 }
|
|
|
15 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bcc in main+24 at ../main.c:14
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bcc in main+24 at ../main.c:14
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = -19
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001bcc in main () at ../main.c:11
|
|
|
11 memset(arr, '\0', 64);
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001bc2 main+14 movs r1, #13
|
|
|
0x00001bc4 main+16 ldr r0, [pc, #20] ; (0x1bdc <main+40>)
|
|
|
0x00001bc6 main+18 ldr r3, [pc, #24] ; (0x1be0 <main+44>)
|
|
|
0x00001bc8 main+20 blx r3
|
|
|
0x00001bca main+22 str r0, [sp, #4]
|
|
|
0x00001bcc main+24 b.n 0x1bcc <main+24>
|
|
|
0x00001bce main+26 nop ; (mov r8, r8)
|
|
|
0x00001bd0 main+28 subs r1, r4, #1
|
|
|
0x00001bd2 main+30 movs r0, r0
|
|
|
0x00001bd4 main+32 asrs r1, r4, #16
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002570
|
|
|
r3 0x00000000 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0x00000000 r8 0xfe7fffb9
|
|
|
r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x00000020 sp 0x20002628 lr 0x00000f7b
|
|
|
pc 0x00001bcc xPSR 0x81000000 msp 0x20002628
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
1 #include <atmel_start.h>
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bcc in main+24 at ../main.c:11
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bcc in main+24 at ../main.c:11
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc arr = "\321\024\000\000A\025\000\000\000\024\000B\b\000\000 \000\000\000\000\000\000\000 \000\000\000\000\…, ret = -19
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25f4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25f4
|
|
|
Start address 0x00000000, load size 9820
|
|
|
Transfer rate: 9 KB/sec, 4910 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001bda main+38 movs r1, #13
|
|
|
0x00001bdc main+40 movs r0, r4
|
|
|
0x00001bde main+42 ldr r3, [pc, #36] ; (0x1c04 <main+80>)
|
|
|
0x00001be0 main+44 blx r3
|
|
|
0x00001be2 main+46 str r0, [sp, #4]
|
|
|
0x00001be4 main+48 b.n 0x1be4 <main+48>
|
|
|
0x00001be6 main+50 nop ; (mov r8, r8)
|
|
|
0x00001be8 main+52 subs r5, r0, #2
|
|
|
0x00001bea main+54 movs r0, r0
|
|
|
0x00001bec main+56 asrs r1, r4, #16
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x20000618 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0x00000000 r8 0xfe7fffb9
|
|
|
r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x20002668 lr 0x00001053
|
|
|
pc 0x00001be4 xPSR 0x41000000 msp 0x20002668
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001be4 in main+48 at ../main.c:17
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001be4 in main+48 at ../main.c:17
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25f4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25f4
|
|
|
Start address 0x00000000, load size 9820
|
|
|
Transfer rate: 9 KB/sec, 4910 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bda main+38 movs r1, #13
|
|
|
0x00001bdc main+40 movs r0, r4
|
|
|
0x00001bde main+42 ldr r3, [pc, #36] ; (0x1c04 <main+80>)
|
|
|
0x00001be0 main+44 blx r3
|
|
|
0x00001be2 main+46 str r0, [sp, #4]
|
|
|
0x00001be4 main+48 b.n 0x1be4 <main+48>
|
|
|
0x00001be6 main+50 nop ; (mov r8, r8)
|
|
|
0x00001be8 main+52 subs r5, r0, #2
|
|
|
0x00001bea main+54 movs r0, r0
|
|
|
0x00001bec main+56 asrs r1, r4, #16
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000618 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x20002668
|
|
|
lr 0x00001053 pc 0x00001be4 xPSR 0x41000000 msp 0x20002668 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001be4 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001be4 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x25f4 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x25f4
|
|
|
Start address 0x00000000, load size 9820
|
|
|
Transfer rate: 9 KB/sec, 4910 bytes/write.
|
|
|
Breakpoint 1 at 0x1bda: file ../main.c, line 13.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, main () at ../main.c:13
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001bd0 main+28 movs r2, #13
|
|
|
0x00001bd2 main+30 ldr r1, [pc, #40] ; (0x1bfc <main+72>)
|
|
|
0x00001bd4 main+32 ldr r3, [pc, #40] ; (0x1c00 <main+76>)
|
|
|
0x00001bd6 main+34 movs r0, r4
|
|
|
0x00001bd8 main+36 blx r3
|
|
|
!0x00001bda main+38 movs r1, #13
|
|
|
0x00001bdc main+40 movs r0, r4
|
|
|
0x00001bde main+42 ldr r3, [pc, #36] ; (0x1c04 <main+80>)
|
|
|
0x00001be0 main+44 blx r3
|
|
|
0x00001be2 main+46 str r0, [sp, #4]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bda in ../main.c:13 for main.c:13 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x20000618 r1 0x00002594 r2 0x0000000d r3 0x0000000d r4 0x20000618 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x20002668
|
|
|
lr 0x00001bdb pc 0x00001bda xPSR 0x61000000 msp 0x20002668 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
!13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001bda in main+38 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001bda in main+38 at ../main.c:13
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001bda main+38 movs r1, #13
|
|
|
0x00001bdc main+40 movs r0, r4
|
|
|
0x00001bde main+42 ldr r3, [pc, #36] ; (0x1c04 <main+80>)
|
|
|
0x00001be0 main+44 blx r3
|
|
|
0x00001be2 main+46 str r0, [sp, #4]
|
|
|
0x00001be4 main+48 b.n 0x1be4 <main+48>
|
|
|
0x00001be6 main+50 nop ; (mov r8, r8)
|
|
|
0x00001be8 main+52 subs r5, r0, #2
|
|
|
0x00001bea main+54 movs r0, r0
|
|
|
0x00001bec main+56 asrs r1, r4, #16
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001bda in ../main.c:13 for main.c:13 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000618 r5 0x0000000c r6 0x00000005
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0x3f7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x20002668
|
|
|
lr 0x00001053 pc 0x00001be4 xPSR 0x41000000 msp 0x20002668 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
!13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001be4 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001be4 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001be4 in main () at ../main.c:8
|
|
|
8 usb_init();
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
0x00001bdc main+0 movs r0, r4
|
|
|
0x00001bde main+2 ldr r3, [pc, #36] ; (0x1c04 <main+40>)
|
|
|
0x00001be0 main+4 blx r3
|
|
|
0x00001be2 main+6 str r0, [sp, #4]
|
|
|
0x00001be4 main+8 b.n 0x1be4 <main+8>
|
|
|
0x00001be6 main+10 nop ; (mov r8, r8)
|
|
|
0x00001be8 main+12 subs r5, r0, #2
|
|
|
0x00001bea main+14 movs r0, r0
|
|
|
0x00001bec main+16 asrs r1, r4, #16
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000618 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7ffff9 r9 0xbf7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x20002668
|
|
|
lr 0x00001053 pc 0x00001be4 xPSR 0x41000000 msp 0x20002668 psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
1 #include <atmel_start.h>
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001be4 in main+8 at ../main.c:8
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001be4 in main+8 at ../main.c:8
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "\321\024\000\000A\025\000\000\000\024\000B\b\000\000 \000\000\000\000\000\000\000 \000\000\000\000\…, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x261c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x261c
|
|
|
Start address 0x00000000, load size 9860
|
|
|
Transfer rate: 9 KB/sec, 4930 bytes/write.
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001c02 main+38 movs r1, #13
|
|
|
0x00001c04 main+40 movs r0, r4
|
|
|
0x00001c06 main+42 ldr r3, [pc, #36] ; (0x1c2c <main+80>)
|
|
|
0x00001c08 main+44 blx r3
|
|
|
0x00001c0a main+46 str r0, [sp, #4]
|
|
|
0x00001c0c main+48 b.n 0x1c0c <main+48>
|
|
|
0x00001c0e main+50 nop ; (mov r8, r8)
|
|
|
0x00001c10 main+52 subs r5, r5, #2
|
|
|
0x00001c12 main+54 movs r0, r0
|
|
|
0x00001c14 main+56 asrs r1, r1, #17
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x20000658 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdfffebf r8 0xfe7ffff9
|
|
|
r9 0xbf7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x200026a8 lr 0x00001053
|
|
|
pc 0x00001c0c xPSR 0x41000000 msp 0x200026a8
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c0c in main+48 at ../main.c:17
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c0c in main+48 at ../main.c:17
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x261c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x261c
|
|
|
Start address 0x00000000, load size 9860
|
|
|
Transfer rate: 9 KB/sec, 4930 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001c02 main+38 movs r1, #13
|
|
|
0x00001c04 main+40 movs r0, r4
|
|
|
0x00001c06 main+42 ldr r3, [pc, #36] ; (0x1c2c <main+80>)
|
|
|
0x00001c08 main+44 blx r3
|
|
|
0x00001c0a main+46 str r0, [sp, #4]
|
|
|
0x00001c0c main+48 b.n 0x1c0c <main+48>
|
|
|
0x00001c0e main+50 nop ; (mov r8, r8)
|
|
|
0x00001c10 main+52 subs r5, r5, #2
|
|
|
0x00001c12 main+54 movs r0, r0
|
|
|
0x00001c14 main+56 asrs r1, r1, #17
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x20000658 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdfffebf r8 0xfe7ffff9
|
|
|
r9 0xbf7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x200026a8 lr 0x00001053
|
|
|
pc 0x00001c0c xPSR 0x41000000 msp 0x200026a8
|
|
|
psp 0xef58def4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c0c in main+48 at ../main.c:17
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c0c in main+48 at ../main.c:17
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x261c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x261c
|
|
|
Start address 0x00000000, load size 9860
|
|
|
Transfer rate: 9 KB/sec, 4930 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001c0c in main () at ../main.c:13
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001c02 main+30 movs r1, #13
|
|
|
0x00001c04 main+32 movs r0, r4
|
|
|
0x00001c06 main+34 ldr r3, [pc, #36] ; (0x1c2c <main+72>)
|
|
|
0x00001c08 main+36 blx r3
|
|
|
0x00001c0a main+38 str r0, [sp, #4]
|
|
|
0x00001c0c main+40 b.n 0x1c0c <main+40>
|
|
|
0x00001c0e main+42 nop ; (mov r8, r8)
|
|
|
0x00001c10 main+44 subs r5, r5, #2
|
|
|
0x00001c12 main+46 movs r0, r0
|
|
|
0x00001c14 main+48 asrs r1, r1, #17
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x20000658 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7fffb9
|
|
|
r9 0xbf7fdffb r10 0xeffffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x200026a8 lr 0x00001053
|
|
|
pc 0x00001c0c xPSR 0x41000000 msp 0x200026a8
|
|
|
psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c0c in main+40 at ../main.c:13
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c0c in main+40 at ../main.c:13
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2624 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2624
|
|
|
Start address 0x00000000, load size 9868
|
|
|
Transfer rate: 9 KB/sec, 4934 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a main+38 movs r1, #13
|
|
|
0x00001c0c main+40 movs r0, r4
|
|
|
0x00001c0e main+42 ldr r3, [pc, #36] ; (0x1c34 <main+80>)
|
|
|
0x00001c10 main+44 blx r3
|
|
|
0x00001c12 main+46 str r0, [sp, #4]
|
|
|
0x00001c14 main+48 b.n 0x1c14 <main+48>
|
|
|
0x00001c16 main+50 nop ; (mov r8, r8)
|
|
|
0x00001c18 main+52 subs r5, r6, #2
|
|
|
0x00001c1a main+54 movs r0, r0
|
|
|
0x00001c1c main+56 asrs r1, r2, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000658 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdbffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a8
|
|
|
lr 0x00001053 pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2624 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2624
|
|
|
Start address 0x00000000, load size 9868
|
|
|
Transfer rate: 9 KB/sec, 4934 bytes/write.
|
|
|
Breakpoint 1 at 0x1390: file ../usb_start.c, line 68.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
0x000004a0 in cdcdf_acm_is_enabled () at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000049c cdcdf_acm_is_enabled+0 ldr r3, [pc, #4] ; (0x4a4 <cdcdf_acm_is_enabled+8>)
|
|
|
0x0000049e cdcdf_acm_is_enabled+2 ldrb r0, [r3, #5]
|
|
|
0x000004a0 cdcdf_acm_is_enabled+4 bx lr
|
|
|
0x000004a2 cdcdf_acm_is_enabled+6 nop ; (mov r8, r8)
|
|
|
0x000004a4 cdcdf_acm_is_enabled+8 lsls r4, r0, #2
|
|
|
0x000004a6 cdcdf_acm_is_enabled+10 movs r0, #0
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000 r3 0x20000084 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdbffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a0
|
|
|
lr 0x00001437 pc 0x000004a0 xPSR 0x61000000 msp 0x200026a0 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x00001436 in cdcd_acm_example+6 at ../usb_start.c:118
|
|
|
[2] from 0x00001bf2 in main+14 at ../main.c:9
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Program stopped.
|
|
|
0x000004a0 in cdcdf_acm_is_enabled () at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x0000049c cdcdf_acm_is_enabled+0 ldr r3, [pc, #4] ; (0x4a4 <cdcdf_acm_is_enabled+8>)
|
|
|
0x0000049e cdcdf_acm_is_enabled+2 ldrb r0, [r3, #5]
|
|
|
0x000004a0 cdcdf_acm_is_enabled+4 bx lr
|
|
|
0x000004a2 cdcdf_acm_is_enabled+6 nop ; (mov r8, r8)
|
|
|
0x000004a4 cdcdf_acm_is_enabled+8 lsls r4, r0, #2
|
|
|
0x000004a6 cdcdf_acm_is_enabled+10 movs r0, #0
|
|
|
~
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00000001 r2 0x41005000 r3 0x20000084 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdbffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xeffffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a0
|
|
|
lr 0x00001437 pc 0x000004a0 xPSR 0x61000000 msp 0x200026a0 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
352 return ERR_INVALID_ARG;
|
|
|
353 }
|
|
|
354 return ERR_NONE;
|
|
|
355 }
|
|
|
356
|
|
|
357 /**
|
|
|
358 * \brief Check whether CDC ACM Function is enabled
|
|
|
359 */
|
|
|
360 bool cdcdf_acm_is_enabled(void)
|
|
|
361 {
|
|
|
362 return _cdcdf_acm_funcd.enabled;
|
|
|
363 }
|
|
|
364
|
|
|
365 /**
|
|
|
366 * \brief Return the CDC ACM line coding structure start address
|
|
|
367 */
|
|
|
368 const struct usb_cdc_line_coding *cdcdf_acm_get_line_coding(void)
|
|
|
369 {
|
|
|
370 return (const struct usb_cdc_line_coding *)&usbd_cdc_line_coding;
|
|
|
371 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
[1] from 0x00001436 in cdcd_acm_example+6 at ../usb_start.c:118
|
|
|
[2] from 0x00000000
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000004a0 in cdcdf_acm_is_enabled+4 at ../usb/class/cdc/device/cdcdf_acm.c:362
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
target not halted
|
|
|
target samd21e18ae.cpu was not halted when resume was requested
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a main+38 movs r1, #13
|
|
|
0x00001c0c main+40 movs r0, r4
|
|
|
0x00001c0e main+42 ldr r3, [pc, #36] ; (0x1c34 <main+80>)
|
|
|
0x00001c10 main+44 blx r3
|
|
|
0x00001c12 main+46 str r0, [sp, #4]
|
|
|
0x00001c14 main+48 b.n 0x1c14 <main+48>
|
|
|
0x00001c16 main+50 nop ; (mov r8, r8)
|
|
|
0x00001c18 main+52 subs r5, r6, #2
|
|
|
0x00001c1a main+54 movs r0, r0
|
|
|
0x00001c1c main+56 asrs r1, r2, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000658 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a8
|
|
|
lr 0x00001053 pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Undefined command: "qa". Try "help".
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a main+38 movs r1, #13
|
|
|
0x00001c0c main+40 movs r0, r4
|
|
|
0x00001c0e main+42 ldr r3, [pc, #36] ; (0x1c34 <main+80>)
|
|
|
0x00001c10 main+44 blx r3
|
|
|
0x00001c12 main+46 str r0, [sp, #4]
|
|
|
0x00001c14 main+48 b.n 0x1c14 <main+48>
|
|
|
0x00001c16 main+50 nop ; (mov r8, r8)
|
|
|
0x00001c18 main+52 subs r5, r6, #2
|
|
|
0x00001c1a main+54 movs r0, r0
|
|
|
0x00001c1c main+56 asrs r1, r2, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000658 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a8
|
|
|
lr 0x00001053 pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2624 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2624
|
|
|
Start address 0x00000000, load size 9868
|
|
|
Transfer rate: 9 KB/sec, 4934 bytes/write.
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
target not halted
|
|
|
target samd21e18ae.cpu was not halted when resume was requested
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a main+38 movs r1, #13
|
|
|
0x00001c0c main+40 movs r0, r4
|
|
|
0x00001c0e main+42 ldr r3, [pc, #36] ; (0x1c34 <main+80>)
|
|
|
0x00001c10 main+44 blx r3
|
|
|
0x00001c12 main+46 str r0, [sp, #4]
|
|
|
0x00001c14 main+48 b.n 0x1c14 <main+48>
|
|
|
0x00001c16 main+50 nop ; (mov r8, r8)
|
|
|
0x00001c18 main+52 subs r5, r6, #2
|
|
|
0x00001c1a main+54 movs r0, r0
|
|
|
0x00001c1c main+56 asrs r1, r2, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000658 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a8
|
|
|
lr 0x00001053 pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a main+38 movs r1, #13
|
|
|
0x00001c0c main+40 movs r0, r4
|
|
|
0x00001c0e main+42 ldr r3, [pc, #36] ; (0x1c34 <main+80>)
|
|
|
0x00001c10 main+44 blx r3
|
|
|
0x00001c12 main+46 str r0, [sp, #4]
|
|
|
0x00001c14 main+48 b.n 0x1c14 <main+48>
|
|
|
0x00001c16 main+50 nop ; (mov r8, r8)
|
|
|
0x00001c18 main+52 subs r5, r6, #2
|
|
|
0x00001c1a main+54 movs r0, r0
|
|
|
0x00001c1c main+56 asrs r1, r2, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000658 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a8
|
|
|
lr 0x00001053 pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Breakpoint 1 at 0x1390: file ../usb_start.c, line 68.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, usb_device_cb_state_c (state=...) at ../usb_start.c:68
|
|
|
68 if (state.rs232.DTR) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001390 usb_device_cb_state_c+0 push {r4, r5, lr}
|
|
|
0x00001392 usb_device_cb_state_c+2 movs r5, #1
|
|
|
0x00001394 usb_device_cb_state_c+4 sub sp, #20
|
|
|
0x00001396 usb_device_cb_state_c+6 add r3, sp, #4
|
|
|
0x00001398 usb_device_cb_state_c+8 strh r0, [r3, #0]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000000 r3 0x00001391 r4 0x200004c4 r5 0x20000084 r6 0x0000204d
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025d8
|
|
|
lr 0x0000028d pc 0x00001390 xPSR 0x41000017 msp 0x200025d8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
!68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 static uint8_t arr[64];
|
|
|
74 memset(arr, '\0', 64);
|
|
|
75 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
76 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
77 // cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001390 in usb_device_cb_state_c+0 at ../usb_start.c:68
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011fa in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011fa in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001390 in usb_device_cb_state_c+0 at ../usb_start.c:68
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 8287,modem = {dte_present = 95 '_',carrier_ctrl = 32 ' '},rs232 = {DTR = 1 '\001',RTS = 1 …
|
|
|
loc arr = '\000' <repeats 63 times>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
79 else if(state.rs232.RTS)
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000013ce usb_device_cb_state_c+62 blx r3
|
|
|
0x000013d0 usb_device_cb_state_c+64 str r0, [sp, #12]
|
|
|
0x000013d2 usb_device_cb_state_c+66 movs r0, #0
|
|
|
0x000013d4 usb_device_cb_state_c+68 add sp, #20
|
|
|
0x000013d6 usb_device_cb_state_c+70 pop {r4, r5, pc}
|
|
|
0x000013d8 usb_device_cb_state_c+72 lsls r3, r3, #30
|
|
|
0x000013da usb_device_cb_state_c+74 bpl.n 0x13d2 <usb_device_cb_state_c+66>
|
|
|
0x000013dc usb_device_cb_state_c+76 nop ; (mov r8, r8)
|
|
|
0x000013de usb_device_cb_state_c+78 b.n 0x13d2 <usb_device_cb_state_c+66>
|
|
|
0x000013e0 usb_device_cb_state_c+80 lsls r5, r4, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000000 r3 0x00000000 r4 0x200004c4 r5 0x00000001 r6 0x0000204d
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025b8
|
|
|
lr 0x0000028d pc 0x000013d8 xPSR 0x41000017 msp 0x200025b8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 static uint8_t arr[64];
|
|
|
74 memset(arr, '\0', 64);
|
|
|
75 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
76 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
77 // cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
78 }
|
|
|
79 else if(state.rs232.RTS)
|
|
|
80 {
|
|
|
81 asm volatile("nop");
|
|
|
82
|
|
|
83 }
|
|
|
84
|
|
|
85 /* No error. */
|
|
|
86 return false;
|
|
|
87 }
|
|
|
88
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000013d8 in usb_device_cb_state_c+72 at ../usb_start.c:79
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011fa in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011fa in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000013d8 in usb_device_cb_state_c+72 at ../usb_start.c:79
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 0,modem = {dte_present = 0 '\000',carrier_ctrl = 0 '\000'},rs232 = {DTR = 0 '\000',RTS = 0…
|
|
|
loc arr = '\000' <repeats 63 times>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
86 return false;
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x000013c8 usb_device_cb_state_c+56 movs r1, #13
|
|
|
0x000013ca usb_device_cb_state_c+58 movs r0, r4
|
|
|
0x000013cc usb_device_cb_state_c+60 ldr r3, [pc, #44] ; (0x13fc <usb_device_cb_state_c+108>)
|
|
|
0x000013ce usb_device_cb_state_c+62 blx r3
|
|
|
0x000013d0 usb_device_cb_state_c+64 str r0, [sp, #12]
|
|
|
0x000013d2 usb_device_cb_state_c+66 movs r0, #0
|
|
|
0x000013d4 usb_device_cb_state_c+68 add sp, #20
|
|
|
0x000013d6 usb_device_cb_state_c+70 pop {r4, r5, pc}
|
|
|
0x000013d8 usb_device_cb_state_c+72 lsls r3, r3, #30
|
|
|
0x000013da usb_device_cb_state_c+74 bpl.n 0x13d2 <usb_device_cb_state_c+66>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000000 r3 0x00000000 r4 0x200004c4 r5 0x00000001 r6 0x0000204d
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025b8
|
|
|
lr 0x0000028d pc 0x000013d2 xPSR 0x41000017 msp 0x200025b8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
76 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
77 // cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
78 }
|
|
|
79 else if(state.rs232.RTS)
|
|
|
80 {
|
|
|
81 asm volatile("nop");
|
|
|
82
|
|
|
83 }
|
|
|
84
|
|
|
85 /* No error. */
|
|
|
86 return false;
|
|
|
87 }
|
|
|
88
|
|
|
89 /**
|
|
|
90 * \brief CDC ACM Init
|
|
|
91 */
|
|
|
92 void cdc_device_acm_init(void)
|
|
|
93 {
|
|
|
94 /* usb stack init */
|
|
|
95 usbdc_init(ctrl_buffer);
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000013d2 in usb_device_cb_state_c+66 at ../usb_start.c:86
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011fa in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011fa in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000013d2 in usb_device_cb_state_c+66 at ../usb_start.c:86
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 0,modem = {dte_present = 0 '\000',carrier_ctrl = 0 '\000'},rs232 = {DTR = 0 '\000',RTS = 0…
|
|
|
loc arr = '\000' <repeats 63 times>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usbdc_request_handler (ep=ep@entry=0 '\000', req=req@entry=0x200004c4 <usb_d_inst+12>, stage=stage@entry=USB_SETUP_STAGE) at ../usb/device/usbdc.c:648
|
|
|
648 if (0 == rc) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001f28 usbdc_request_handler+28 b.n 0x1f18 <usbdc_request_handler+12>
|
|
|
0x00001f2a usbdc_request_handler+30 movs r2, r7
|
|
|
0x00001f2c usbdc_request_handler+32 movs r1, r6
|
|
|
0x00001f2e usbdc_request_handler+34 movs r0, r5
|
|
|
0x00001f30 usbdc_request_handler+36 blx r3
|
|
|
0x00001f32 usbdc_request_handler+38 cmp r0, #0
|
|
|
0x00001f34 usbdc_request_handler+40 beq.n 0x1f40 <usbdc_request_handler+52>
|
|
|
0x00001f36 usbdc_request_handler+42 adds r0, #10
|
|
|
0x00001f38 usbdc_request_handler+44 beq.n 0x1f26 <usbdc_request_handler+26>
|
|
|
0x00001f3a usbdc_request_handler+46 movs r0, #1
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000000 r3 0x00000000 r4 0x20000000 r5 0x00000000 r6 0x200004c4
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x20002600
|
|
|
lr 0x0000028d pc 0x00001f32 xPSR 0x41000017 msp 0x20002600 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
638
|
|
|
639 /** Invoke all registered request callbacks until request handled. */
|
|
|
640 static int32_t usbdc_request_handler(uint8_t ep, struct usb_req *req, enum usb_ctrl_stage stage)
|
|
|
641 {
|
|
|
642 struct usbdc_req_handler *h = (struct usbdc_req_handler *)usbdc.handlers.req_list.head;
|
|
|
643 int32_t rc;
|
|
|
644
|
|
|
645 while (h != NULL) {
|
|
|
646 if (NULL != h->cb) {
|
|
|
647 rc = h->cb(ep, req, stage);
|
|
|
648 if (0 == rc) {
|
|
|
649 return true;
|
|
|
650 } else if (ERR_NOT_FOUND != rc) {
|
|
|
651 return -1;
|
|
|
652 }
|
|
|
653 }
|
|
|
654 h = h->next;
|
|
|
655 }
|
|
|
656 return false;
|
|
|
657 }
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:648
|
|
|
[1] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[2] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[3] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[4] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[5] from 0x000011fa in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[6] from 0x000011fa in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[7] from 0x000011fa in USB_Handler+302 at ../hpl/usb/hpl_usb.c:2051
|
|
|
[8] from 0xfffffff9
|
|
|
[9] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:648
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg ep = 0 '\000', req = 0x200004c4 <usb_d_inst+12>: {bmRequestType = 33 '!',bRequest = 34 '"',{wValue = 0,wValueB…, stage = USB_SETUP_STAGE
|
|
|
loc h = 0x20000000 <cdcdf_acm_req_h>: {next = 0x0 <exception_table>,cb = 0x1d5 <cdcdf_acm_req>}, rc = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Breakpoint 1, usb_device_cb_state_c (state=...) at ../usb_start.c:68
|
|
|
68 if (state.rs232.DTR) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
!0x00001390 usb_device_cb_state_c+0 push {r4, r5, lr}
|
|
|
0x00001392 usb_device_cb_state_c+2 movs r5, #1
|
|
|
0x00001394 usb_device_cb_state_c+4 sub sp, #20
|
|
|
0x00001396 usb_device_cb_state_c+6 add r3, sp, #4
|
|
|
0x00001398 usb_device_cb_state_c+8 strh r0, [r3, #0]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 2 times
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x410050ff r2 0x00000003 r3 0x00001391 r4 0x200004c4 r5 0x20000084 r6 0x0000204d
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025d8
|
|
|
lr 0x0000028d pc 0x00001390 xPSR 0x01000017 msp 0x200025d8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
!68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 static uint8_t arr[64];
|
|
|
74 memset(arr, '\0', 64);
|
|
|
75 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
76 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
77 // cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001390 in usb_device_cb_state_c+0 at ../usb_start.c:68
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011fa in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011fa in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001390 in usb_device_cb_state_c+0 at ../usb_start.c:68
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 8287,modem = {dte_present = 95 '_',carrier_ctrl = 32 ' '},rs232 = {DTR = 1 '\001',RTS = 1 …
|
|
|
loc arr = '\000' <repeats 63 times>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001396 usb_device_cb_state_c+6 add r3, sp, #4
|
|
|
0x00001398 usb_device_cb_state_c+8 strh r0, [r3, #0]
|
|
|
0x0000139a usb_device_cb_state_c+10 uxtb r3, r0
|
|
|
0x0000139c usb_device_cb_state_c+12 tst r5, r0
|
|
|
0x0000139e usb_device_cb_state_c+14 beq.n 0x13d8 <usb_device_cb_state_c+72>
|
|
|
0x000013a0 usb_device_cb_state_c+16 ldr r4, [pc, #60] ; (0x13e0 <usb_device_cb_state_c+80>)
|
|
|
0x000013a2 usb_device_cb_state_c+18 ldr r1, [pc, #64] ; (0x13e4 <usb_device_cb_state_c+84>)
|
|
|
0x000013a4 usb_device_cb_state_c+20 movs r0, #0
|
|
|
0x000013a6 usb_device_cb_state_c+22 blx r4
|
|
|
0x000013a8 usb_device_cb_state_c+24 ldr r1, [pc, #60] ; (0x13e8 <usb_device_cb_state_c+88>)
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 2 times
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x410050ff r2 0x00000003 r3 0x00000003 r4 0x200004c4 r5 0x00000001 r6 0x0000204d
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025b8
|
|
|
lr 0x0000028d pc 0x000013a0 xPSR 0x01000017 msp 0x200025b8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
56 /* Echo data. */
|
|
|
57 cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
58
|
|
|
59 /* No error. */
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
!68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 static uint8_t arr[64];
|
|
|
74 memset(arr, '\0', 64);
|
|
|
75 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000013a0 in usb_device_cb_state_c+16 at ../usb_start.c:66
|
|
|
[1] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[2] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[3] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[4] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[5] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[6] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[7] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[8] from 0x000011fa in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[9] from 0x000011fa in _usb_d_dev_handler+300 at ../hpl/usb/hpl_usb.c:1436
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000013a0 in usb_device_cb_state_c+16 at ../usb_start.c:66
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = {{value = 3,modem = {dte_present = 3 '\003',carrier_ctrl = 0 '\000'},rs232 = {DTR = 1 '\001',RTS = 1…
|
|
|
loc arr = '\000' <repeats 63 times>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
usb_device_cb_state_c (state=...) at ../usb_start.c:70
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x000013a0 usb_device_cb_state_c+0 ldr r4, [pc, #60] ; (0x13e0 <usb_device_cb_state_c+80>)
|
|
|
0x000013a2 usb_device_cb_state_c+2 ldr r1, [pc, #64] ; (0x13e4 <usb_device_cb_state_c+84>)
|
|
|
0x000013a4 usb_device_cb_state_c+4 movs r0, #0
|
|
|
0x000013a6 usb_device_cb_state_c+6 blx r4
|
|
|
0x000013a8 usb_device_cb_state_c+8 ldr r1, [pc, #60] ; (0x13e8 <usb_device_cb_state_c+88>)
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 2 times
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000003 r1 0x410050ff r2 0x00000003 r3 0x00000003 r4 0x200004c4 r5 0x00000001 r6 0x0000204d
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025b8
|
|
|
lr 0x0000028d pc 0x000013a0 xPSR 0x01000017 msp 0x200025b8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
60 return false;
|
|
|
61 }
|
|
|
62
|
|
|
63 /**
|
|
|
64 * \brief Callback invoked when Line State Change
|
|
|
65 */
|
|
|
66 static bool usb_device_cb_state_c(usb_cdc_control_signal_t state)
|
|
|
67 {
|
|
|
!68 if (state.rs232.DTR) {
|
|
|
69 /* Callbacks must be registered after endpoint allocation */
|
|
|
70 cdcdf_acm_register_callback(CDCDF_ACM_CB_READ, (FUNC_PTR)usb_device_cb_bulk_out);
|
|
|
71 cdcdf_acm_register_callback(CDCDF_ACM_CB_WRITE, (FUNC_PTR)usb_device_cb_bulk_in);
|
|
|
72 /* Start Rx */
|
|
|
73 static uint8_t arr[64];
|
|
|
74 memset(arr, '\0', 64);
|
|
|
75 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
76 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
77 // cdcdf_acm_read((uint8_t *)usbd_cdc_buffer, sizeof(usbd_cdc_buffer));
|
|
|
78 }
|
|
|
79 else if(state.rs232.RTS)
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x000013a0 in usb_device_cb_state_c+0 at ../usb_start.c:70
|
|
|
[1] from 0x000013a0 in usb_device_cb_state_c+16 at ../usb_start.c:66
|
|
|
[2] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[3] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[4] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[5] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[6] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[7] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[8] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[9] from 0x000011fa in _usb_d_dev_handle_eps+78 at ../hpl/usb/hpl_usb.c:1410
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x000013a0 in usb_device_cb_state_c+0 at ../usb_start.c:70
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg state = <optimized out>
|
|
|
loc ret = 0, arr = '\000' <repeats 63 times>, arr = '\000' <repeats 63 times>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
cdcdf_acm_register_callback (cb_type=cb_type@entry=CDCDF_ACM_CB_READ, func=func@entry=0x1361 <usb_device_cb_bulk_out>) at ../usb/class/cdc/device/cdcdf_acm.c:338
|
|
|
338 switch (cb_type) {
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
0x00000464 cdcdf_acm_register_callback+0 movs r2, r1
|
|
|
0x00000466 cdcdf_acm_register_callback+2 push {r4, lr}
|
|
|
0x00000468 cdcdf_acm_register_callback+4 cmp r0, #3
|
|
|
0x0000046a cdcdf_acm_register_callback+6 bhi.n 0x48e <cdcdf_acm_register_callback+42>
|
|
|
0x0000046c cdcdf_acm_register_callback+8 ldr r3, [pc, #36] ; (0x494 <cdcdf_acm_register_callback+48>)
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 2 times
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x00001361 r2 0x00000003 r3 0x00000003 r4 0x00000465 r5 0x00000001 r6 0x0000204d
|
|
|
r7 0x00000000 r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025b8
|
|
|
lr 0x000013a9 pc 0x00000464 xPSR 0x41000017 msp 0x200025b8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
328 /* Stop transfer. */
|
|
|
329 usb_d_ep_abort(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX]);
|
|
|
330 usb_d_ep_abort(_cdcdf_acm_funcd.func_ep_out);
|
|
|
331 }
|
|
|
332
|
|
|
333 /**
|
|
|
334 * \brief USB CDC ACM Function Register Callback
|
|
|
335 */
|
|
|
336 int32_t cdcdf_acm_register_callback(enum cdcdf_acm_cb_type cb_type, FUNC_PTR func)
|
|
|
337 {
|
|
|
338 switch (cb_type) {
|
|
|
339 case CDCDF_ACM_CB_READ:
|
|
|
340 usb_d_ep_register_callback(_cdcdf_acm_funcd.func_ep_out, USB_D_EP_CB_XFER, func);
|
|
|
341 break;
|
|
|
342 case CDCDF_ACM_CB_WRITE:
|
|
|
343 usb_d_ep_register_callback(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX], USB_D_EP_CB_XFER, func);
|
|
|
344 break;
|
|
|
345 case CDCDF_ACM_CB_LINE_CODING_C:
|
|
|
346 cdcdf_acm_set_line_coding = (cdcdf_acm_set_line_coding_t)func;
|
|
|
347 break;
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00000464 in cdcdf_acm_register_callback+0 at ../usb/class/cdc/device/cdcdf_acm.c:338
|
|
|
[1] from 0x000013a8 in usb_device_cb_state_c+8 at ../usb_start.c:70
|
|
|
[2] from 0x000013a8 in usb_device_cb_state_c+24 at ../usb_start.c:66
|
|
|
[3] from 0x0000028c in cdcdf_acm_set_req+108 at ../usb/class/cdc/device/cdcdf_acm.c:216
|
|
|
[4] from 0x0000028c in cdcdf_acm_req+184 at ../usb/class/cdc/device/cdcdf_acm.c:264
|
|
|
[5] from 0x00001f32 in usbdc_request_handler+38 at ../usb/device/usbdc.c:647
|
|
|
[6] from 0x00002074 in usbdc_cb_ctl_req+12 at ../usb/device/usbdc.c:677
|
|
|
[7] from 0x000018b6 in usb_d_cb_trans_setup+82 at ../hal/src/hal_usb_device.c:184
|
|
|
[8] from 0x00000554 in _usb_d_dev_handle_setup+104 at ../hpl/usb/hpl_usb.c:1252
|
|
|
[9] from 0x000011fa in _usb_d_dev_trans_out_isr+6 at ../hpl/usb/hpl_usb.c:1381
|
|
|
[+]
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00000464 in cdcdf_acm_register_callback+0 at ../usb/class/cdc/device/cdcdf_acm.c:338
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
arg cb_type = CDCDF_ACM_CB_READ, func = 0x1361 <usb_device_cb_bulk_out>
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a main+38 movs r1, #13
|
|
|
0x00001c0c main+40 movs r0, r4
|
|
|
0x00001c0e main+42 ldr r3, [pc, #36] ; (0x1c34 <main+80>)
|
|
|
0x00001c10 main+44 blx r3
|
|
|
0x00001c12 main+46 str r0, [sp, #4]
|
|
|
0x00001c14 main+48 b.n 0x1c14 <main+48>
|
|
|
0x00001c16 main+50 nop ; (mov r8, r8)
|
|
|
0x00001c18 main+52 subs r5, r6, #2
|
|
|
0x00001c1a main+54 movs r0, r0
|
|
|
0x00001c1c main+56 asrs r1, r2, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 2 times
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000658 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a8
|
|
|
lr 0x00001053 pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10 static uint8_t arr[64];
|
|
|
11 memset(arr, '\0', 64);
|
|
|
12 memcpy(arr, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write((uint8_t*)arr, sizeof("Hello World\n"));
|
|
|
14
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Continuing.
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
Program received signal SIGINT, Interrupt.
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a main+38 movs r1, #13
|
|
|
0x00001c0c main+40 movs r0, r4
|
|
|
0x00001c0e main+42 ldr r3, [pc, #36] ; (0x1c34 <main+80>)
|
|
|
0x00001c10 main+44 blx r3
|
|
|
0x00001c12 main+46 str r0, [sp, #4]
|
|
|
0x00001c14 main+48 b.n 0x1c14 <main+48>
|
|
|
0x00001c16 main+50 nop ; (mov r8, r8)
|
|
|
0x00001c18 main+52 subs r5, r6, #2
|
|
|
0x00001c1a main+54 movs r0, r0
|
|
|
0x00001c1c main+56 asrs r1, r2, #17
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001390 in ../usb_start.c:68 for usb_start.c:68 hit 2 times
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x20000658 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200026a8
|
|
|
lr 0x00001053 pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_read());
|
|
|
12 cdcdf_acm_write("Hello World\n", sizeof("Hello World\n");
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in main+48 at ../main.c:17
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc arr = "Hello World\n", '\000' <repeats 51 times>, ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001c14 in USART_0_init () at ../driver_init.c:36
|
|
|
36 USART_0_PORT_init();
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001c0a USART_0_init+18 movs r1, #13
|
|
|
0x00001c0c USART_0_init+20 movs r0, r4
|
|
|
0x00001c0e USART_0_init+22 ldr r3, [pc, #36] ; (0x1c34 <USB_DEVICE_INSTANCE_PORT_init+16>)
|
|
|
0x00001c10 USART_0_init+24 blx r3
|
|
|
0x00001c12 USART_0_init+26 str r0, [sp, #4]
|
|
|
0x00001c14 USART_0_init+28 b.n 0x1c14 <USART_0_init+28>
|
|
|
0x00001c16 USART_0_init+30 nop ; (mov r8, r8)
|
|
|
0x00001c18 USART_0_init+32 subs r5, r6, #2
|
|
|
0x00001c1a USART_0_init+34 movs r0, r0
|
|
|
0x00001c1c USART_0_init+36 asrs r1, r2, #17
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x20000658 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdfffebf r8 0xfe7fffb9
|
|
|
r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x200026a8 lr 0x00001053
|
|
|
pc 0x00001c14 xPSR 0x41000000 msp 0x200026a8
|
|
|
psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
26 void USART_0_CLOCK_init(void)
|
|
|
27 {
|
|
|
28 _pm_enable_bus_clock(PM_BUS_APBC, SERCOM3);
|
|
|
29 _gclk_enable_channel(SERCOM3_GCLK_ID_CORE, CONF_GCLK_SERCOM3_CORE_SRC);
|
|
|
30 }
|
|
|
31
|
|
|
32 void USART_0_init(void)
|
|
|
33 {
|
|
|
34 USART_0_CLOCK_init();
|
|
|
35 usart_sync_init(&USART_0, SERCOM3, (void *)NULL);
|
|
|
36 USART_0_PORT_init();
|
|
|
37 }
|
|
|
38
|
|
|
39 void USB_DEVICE_INSTANCE_PORT_init(void)
|
|
|
40 {
|
|
|
41
|
|
|
42 gpio_set_pin_direction(PA24,
|
|
|
43 // <y> Pin direction
|
|
|
44 // <id> pad_direction
|
|
|
45 // <GPIO_DIRECTION_OFF"> Off
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c14 in USART_0_init+28 at ../driver_init.c:36
|
|
|
[1] from 0x00000000
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c14 in USART_0_init+28 at ../driver_init.c:36
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2564 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2564
|
|
|
Start address 0x00000000, load size 9676
|
|
|
Transfer rate: 9 KB/sec, 4838 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:15
|
|
|
15 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b54 main+20 beq.n 0x1b4e <main+14>
|
|
|
0x00001b56 main+22 movs r1, #13
|
|
|
0x00001b58 main+24 ldr r0, [pc, #20] ; (0x1b70 <main+48>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 b.n 0x1b5e <main+30>
|
|
|
0x00001b60 main+32 adds r5, r6, #7
|
|
|
0x00001b62 main+34 movs r0, r0
|
|
|
0x00001b64 main+36 asrs r1, r4, #14
|
|
|
0x00001b66 main+38 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002504 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025f0
|
|
|
lr 0x00000f53 pc 0x00001b5e xPSR 0x81000000 msp 0x200025f0 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
12 cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b5e in main+30 at ../main.c:15
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b5e in main+30 at ../main.c:15
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2564 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2564
|
|
|
Start address 0x00000000, load size 9676
|
|
|
Transfer rate: 9 KB/sec, 4838 bytes/write.
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001b5e in main () at ../main.c:12
|
|
|
12 volatile int32_t ret = cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b54 main+20 beq.n 0x1b4e <main+14>
|
|
|
0x00001b56 main+22 movs r1, #13
|
|
|
0x00001b58 main+24 ldr r0, [pc, #20] ; (0x1b70 <main+48>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 b.n 0x1b5e <main+30>
|
|
|
0x00001b60 main+32 adds r5, r6, #7
|
|
|
0x00001b62 main+34 movs r0, r0
|
|
|
0x00001b64 main+36 asrs r1, r4, #14
|
|
|
0x00001b66 main+38 movs r0, r0
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002504 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025f0
|
|
|
lr 0x00000f53 pc 0x00001b5e xPSR 0x81000000 msp 0x200025f0 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
12 volatile int32_t ret = cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b5e in main+30 at ../main.c:12
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b5e in main+30 at ../main.c:12
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 405
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2568 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2568
|
|
|
Start address 0x00000000, load size 9680
|
|
|
Transfer rate: 9 KB/sec, 4840 bytes/write.
|
|
|
Breakpoint 1 at 0x1b56: file ../main.c, line 12.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, main () at ../main.c:12
|
|
|
12 volatile int32_t ret = cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b4c main+12 blx r3
|
|
|
0x00001b4e main+14 ldr r3, [pc, #28] ; (0x1b6c <main+44>)
|
|
|
0x00001b50 main+16 blx r3
|
|
|
0x00001b52 main+18 cmp r0, #0
|
|
|
0x00001b54 main+20 beq.n 0x1b4e <main+14>
|
|
|
!0x00001b56 main+22 movs r1, #13
|
|
|
0x00001b58 main+24 ldr r0, [pc, #20] ; (0x1b70 <main+48>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 b.n 0x1b5e <main+30>
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001b56 in ../main.c:12 for main.c:12 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00001339 r2 0x00001339 r3 0x200003f8 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025e8
|
|
|
lr 0x00001b53 pc 0x00001b56 xPSR 0x21000000 msp 0x200025e8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
!12 volatile int32_t ret = cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b56 in main+22 at ../main.c:12
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b56 in main+22 at ../main.c:12
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
15 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001b56 main+22 movs r1, #13
|
|
|
0x00001b58 main+24 ldr r0, [pc, #20] ; (0x1b70 <main+48>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 b.n 0x1b5e <main+30>
|
|
|
0x00001b60 main+32 adds r5, r6, #7
|
|
|
0x00001b62 main+34 movs r0, r0
|
|
|
0x00001b64 main+36 asrs r1, r4, #14
|
|
|
0x00001b66 main+38 movs r0, r0
|
|
|
0x00001b68 main+40 asrs r1, r0, #14
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001b56 in ../main.c:12 for main.c:12 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002508 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025e8
|
|
|
lr 0x00000f53 pc 0x00001b60 xPSR 0x81000000 msp 0x200025e8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
!12 volatile int32_t ret = cdcdf_acm_write("Hello World\n", sizeof("Hello World\n"));
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b60 in main+32 at ../main.c:15
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b60 in main+32 at ../main.c:15
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = -19
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:15
|
|
|
15 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b56 main+22 movs r1, #13
|
|
|
0x00001b58 main+24 ldr r0, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #28] ; (0x1b78 <main+56>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 str r0, [sp, #4]
|
|
|
0x00001b60 main+32 b.n 0x1b60 <main+32>
|
|
|
0x00001b62 main+34 nop ; (mov r8, r8)
|
|
|
0x00001b64 main+36 adds r1, r7, #7
|
|
|
0x00001b66 main+38 movs r0, r0
|
|
|
0x00001b68 main+40 asrs r1, r4, #14
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x0000000d r2 0x00002508 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025e8
|
|
|
lr 0x00000f53 pc 0x00001b60 xPSR 0x81000000 msp 0x200025e8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
12 volatile int32_t ret = cdcdf_acm_write("HI", sizeof("HI"));
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b60 in main+32 at ../main.c:15
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b60 in main+32 at ../main.c:15
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = -19
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x255c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x255c
|
|
|
Start address 0x00000000, load size 9668
|
|
|
Transfer rate: 9 KB/sec, 4834 bytes/write.
|
|
|
Breakpoint 1 at 0x1b56: file ../main.c, line 12.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, main () at ../main.c:12
|
|
|
12 volatile int32_t ret = cdcdf_acm_write("HI", sizeof("HI"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b4c main+12 blx r3
|
|
|
0x00001b4e main+14 ldr r3, [pc, #32] ; (0x1b70 <main+48>)
|
|
|
0x00001b50 main+16 blx r3
|
|
|
0x00001b52 main+18 cmp r0, #0
|
|
|
0x00001b54 main+20 beq.n 0x1b4e <main+14>
|
|
|
!0x00001b56 main+22 movs r1, #13
|
|
|
0x00001b58 main+24 ldr r0, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #28] ; (0x1b78 <main+56>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 str r0, [sp, #4]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001b56 in ../main.c:12 for main.c:12 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00001339 r2 0x00001339 r3 0x200003f8 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025e8
|
|
|
lr 0x00001b53 pc 0x00001b56 xPSR 0x21000000 msp 0x200025e8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
2
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
!12 volatile int32_t ret = cdcdf_acm_write("HI", sizeof("HI"));
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b56 in main+22 at ../main.c:12
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b56 in main+22 at ../main.c:12
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
15 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
!0x00001b56 main+22 movs r1, #13
|
|
|
0x00001b58 main+24 ldr r0, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #28] ; (0x1b78 <main+56>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 str r0, [sp, #4]
|
|
|
0x00001b60 main+32 b.n 0x1b60 <main+32>
|
|
|
0x00001b62 main+34 nop ; (mov r8, r8)
|
|
|
0x00001b64 main+36 adds r1, r7, #7
|
|
|
0x00001b66 main+38 movs r0, r0
|
|
|
0x00001b68 main+40 asrs r1, r4, #14
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001b56 in ../main.c:12 for main.c:12 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x00000003 r2 0x00002508 r3 0x00000000 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdfffebf r8 0xfe7fffb9 r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff r12 0x0000003f sp 0x200025e8
|
|
|
lr 0x00000f53 pc 0x00001b60 xPSR 0x81000000 msp 0x200025e8 psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
!12 volatile int32_t ret = cdcdf_acm_write("HI", sizeof("HI"));
|
|
|
13 /* Replace with your application code */
|
|
|
14 while (1) {
|
|
|
15 }
|
|
|
16 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b60 in main+32 at ../main.c:15
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b60 in main+32 at ../main.c:15
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = -19
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001b60 in main () at ../main.c:12
|
|
|
12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001b56 main+22 movs r1, #3
|
|
|
0x00001b58 main+24 ldr r0, [pc, #24] ; (0x1b74 <main+52>)
|
|
|
0x00001b5a main+26 ldr r3, [pc, #28] ; (0x1b78 <main+56>)
|
|
|
0x00001b5c main+28 blx r3
|
|
|
0x00001b5e main+30 str r0, [sp, #4]
|
|
|
0x00001b60 main+32 b.n 0x1b60 <main+32>
|
|
|
0x00001b62 main+34 nop ; (mov r8, r8)
|
|
|
0x00001b64 main+36 adds r1, r7, #7
|
|
|
0x00001b66 main+38 movs r0, r0
|
|
|
0x00001b68 main+40 asrs r1, r4, #14
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0xffffffed r1 0x00000003 r2 0x00002508
|
|
|
r3 0x00000000 r4 0x00000029 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdfffebf r8 0xfe7fffb9
|
|
|
r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x200025e8 lr 0x00000f53
|
|
|
pc 0x00001b60 xPSR 0x81000000 msp 0x200025e8
|
|
|
psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
2 static uint8_t buffer[64];
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
14 /* Replace with your application code */
|
|
|
15 while (1) {
|
|
|
16 }
|
|
|
17 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b60 in main+32 at ../main.c:12
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b60 in main+32 at ../main.c:12
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc ret = -19
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 9 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:16
|
|
|
16 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001b62 main+34 movs r1, #13
|
|
|
0x00001b64 main+36 movs r0, r4
|
|
|
0x00001b66 main+38 ldr r3, [pc, #36] ; (0x1b8c <main+76>)
|
|
|
0x00001b68 main+40 blx r3
|
|
|
0x00001b6a main+42 str r0, [sp, #4]
|
|
|
0x00001b6c main+44 b.n 0x1b6c <main+44>
|
|
|
0x00001b6e main+46 nop ; (mov r8, r8)
|
|
|
0x00001b70 main+48 subs r5, r1, #0
|
|
|
0x00001b72 main+50 movs r0, r0
|
|
|
0x00001b74 main+52 asrs r1, r4, #14
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x200005dc r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdfffebf r8 0xfe7fffb9
|
|
|
r9 0xbf7fdffb r10 0xe7fffd53 r11 0xffff7fff
|
|
|
r12 0x0000003f sp 0x20002628 lr 0x0000102b
|
|
|
pc 0x00001b6c xPSR 0x41000000 msp 0x20002628
|
|
|
psp 0xef5cdef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
14 /* Replace with your application code */
|
|
|
15 while (1) {
|
|
|
16 }
|
|
|
17 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b6c in main+44 at ../main.c:16
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b6c in main+44 at ../main.c:16
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 9 KB/sec, 4850 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:16
|
|
|
16 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b62 main+34 movs r1, #13
|
|
|
0x00001b64 main+36 movs r0, r4
|
|
|
0x00001b66 main+38 ldr r3, [pc, #36] ; (0x1b8c <main+76>)
|
|
|
0x00001b68 main+40 blx r3
|
|
|
0x00001b6a main+42 str r0, [sp, #4]
|
|
|
0x00001b6c main+44 b.n 0x1b6c <main+44>
|
|
|
0x00001b6e main+46 nop ; (mov r8, r8)
|
|
|
0x00001b70 main+48 subs r5, r1, #0
|
|
|
0x00001b72 main+50 movs r0, r0
|
|
|
0x00001b74 main+52 asrs r1, r4, #14
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x200005dc r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdbffebf r8 0xfe7ffff9 r9 0x3f7fddfb r10 0xeffffd53 r11 0xffff7f7f r12 0x0000003f sp 0x20002628
|
|
|
lr 0x0000102b pc 0x00001b6c xPSR 0x41000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
14 /* Replace with your application code */
|
|
|
15 while (1) {
|
|
|
16 }
|
|
|
17 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b6c in main+44 at ../main.c:16
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b6c in main+44 at ../main.c:16
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x257c lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x257c
|
|
|
Start address 0x00000000, load size 9700
|
|
|
Transfer rate: 9 KB/sec, 4850 bytes/write.
|
|
|
Breakpoint 1 at 0x1b56: file ../main.c, line 12.
|
|
|
Starting program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Note: automatically using hardware breakpoints for read-only addresses.
|
|
|
|
|
|
Breakpoint 1, main () at ../main.c:12
|
|
|
12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b4c main+12 blx r3
|
|
|
0x00001b4e main+14 ldr r3, [pc, #44] ; (0x1b7c <main+60>)
|
|
|
0x00001b50 main+16 blx r3
|
|
|
0x00001b52 main+18 cmp r0, #0
|
|
|
0x00001b54 main+20 beq.n 0x1b4e <main+14>
|
|
|
!0x00001b56 main+22 ldr r4, [pc, #40] ; (0x1b80 <main+64>)
|
|
|
0x00001b58 main+24 movs r2, #13
|
|
|
0x00001b5a main+26 ldr r1, [pc, #40] ; (0x1b84 <main+68>)
|
|
|
0x00001b5c main+28 ldr r3, [pc, #40] ; (0x1b88 <main+72>)
|
|
|
0x00001b5e main+30 movs r0, r4
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001b56 in ../main.c:12 for main.c:12 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000001 r1 0x00001339 r2 0x00001339 r3 0x200003f8 r4 0x00000029 r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdbffebf r8 0xfe7ffff9 r9 0x3f7fddfb r10 0xeffffd53 r11 0xffff7f7f r12 0x0000003f sp 0x20002628
|
|
|
lr 0x00001b53 pc 0x00001b56 xPSR 0x21000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
2 static uint8_t buffer[64];
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
!12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
14 /* Replace with your application code */
|
|
|
15 while (1) {
|
|
|
16 }
|
|
|
17 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b56 in main+22 at ../main.c:12
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b56 in main+22 at ../main.c:12
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
13 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b58 main+24 movs r2, #13
|
|
|
0x00001b5a main+26 ldr r1, [pc, #40] ; (0x1b84 <main+68>)
|
|
|
0x00001b5c main+28 ldr r3, [pc, #40] ; (0x1b88 <main+72>)
|
|
|
0x00001b5e main+30 movs r0, r4
|
|
|
0x00001b60 main+32 blx r3
|
|
|
0x00001b62 main+34 movs r1, #13
|
|
|
0x00001b64 main+36 movs r0, r4
|
|
|
0x00001b66 main+38 ldr r3, [pc, #36] ; (0x1b8c <main+76>)
|
|
|
0x00001b68 main+40 blx r3
|
|
|
0x00001b6a main+42 str r0, [sp, #4]
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001b56 in ../main.c:12 for main.c:12 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x200005dc r1 0x0000251c r2 0x0000000d r3 0x0000000d r4 0x200005dc r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdbffebf r8 0xfe7ffff9 r9 0x3f7fddfb r10 0xeffffd53 r11 0xffff7f7f r12 0x0000003f sp 0x20002628
|
|
|
lr 0x00001b63 pc 0x00001b62 xPSR 0x61000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
3 int main(void)
|
|
|
4 {
|
|
|
5 /* Initializes MCU, drivers and middleware */
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
!12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
14 /* Replace with your application code */
|
|
|
15 while (1) {
|
|
|
16 }
|
|
|
17 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b62 in main+34 at ../main.c:13
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b62 in main+34 at ../main.c:13
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[H[J[3J─── Output/messages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
16 }
|
|
|
─── Assembly ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
0x00001b62 main+34 movs r1, #13
|
|
|
0x00001b64 main+36 movs r0, r4
|
|
|
0x00001b66 main+38 ldr r3, [pc, #36] ; (0x1b8c <main+76>)
|
|
|
0x00001b68 main+40 blx r3
|
|
|
0x00001b6a main+42 str r0, [sp, #4]
|
|
|
0x00001b6c main+44 b.n 0x1b6c <main+44>
|
|
|
0x00001b6e main+46 nop ; (mov r8, r8)
|
|
|
0x00001b70 main+48 subs r5, r1, #0
|
|
|
0x00001b72 main+50 movs r0, r0
|
|
|
0x00001b74 main+52 asrs r1, r4, #14
|
|
|
─── Breakpoints ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] break at 0x00001b56 in ../main.c:12 for main.c:12 hit 1 time
|
|
|
─── Expressions ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── History ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080 r3 0x41005120 r4 0x200005dc r5 0x0000000c r6 0x00000005
|
|
|
r7 0xfdbffebf r8 0xfe7ffff9 r9 0x3f7fddfb r10 0xeffffd53 r11 0xffff7f7f r12 0x0000003f sp 0x20002628
|
|
|
lr 0x0000102b pc 0x00001b6c xPSR 0x41000000 msp 0x20002628 psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
6 atmel_start_init();
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
!12 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
13 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
14 /* Replace with your application code */
|
|
|
15 while (1) {
|
|
|
16 }
|
|
|
17 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b6c in main+44 at ../main.c:16
|
|
|
─── Threads ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b6c in main+44 at ../main.c:16
|
|
|
─── Variables ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
Detaching from program: /storage/Shared/Documents/Projects/ePenguin/Aquatic-Robotic-Courier/software/ARC-FW/gcc/ARC-FW.elf, Remote target
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
0x00001b6c in _usb_d_ep_halt_clr (ep=12 '\f') at ../hal/src/hal_usb_device.c:558
|
|
|
558 return _usb_d_dev_ep_stall(ep, USB_EP_STALL_GET);
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001b62 _usb_d_ep_halt_clr+58 movs r1, #13
|
|
|
0x00001b64 _usb_d_ep_halt_clr+60 movs r0, r4
|
|
|
0x00001b66 _usb_d_ep_halt_clr+62 ldr r3, [pc, #36] ; (0x1b8c <usb_d_ep_register_callback+8>)
|
|
|
0x00001b68 _usb_d_ep_halt_clr+64 blx r3
|
|
|
0x00001b6a _usb_d_ep_halt_clr+66 str r0, [sp, #4]
|
|
|
0x00001b6c _usb_d_ep_halt_clr+68 b.n 0x1b6c <usb_d_ep_halt+76>
|
|
|
0x00001b6e _usb_d_ep_halt_clr+70 nop ; (mov r8, r8)
|
|
|
0x00001b70 _usb_d_ep_halt_clr+72 subs r5, r1, #0
|
|
|
0x00001b72 _usb_d_ep_halt_clr+74 movs r0, r0
|
|
|
0x00001b74 _usb_d_ep_halt_clr+76 asrs r1, r4, #14
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x200005dc r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7ffff9
|
|
|
r9 0x3f7fddfb r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0x0000003f sp 0x20002628 lr 0x0000102b
|
|
|
pc 0x00001b6c xPSR 0x41000000 msp 0x20002628
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
548 return ERR_NONE;
|
|
|
549 }
|
|
|
550
|
|
|
551 int32_t usb_d_ep_halt(const uint8_t ep, const enum usb_ep_halt_ctrl ctrl)
|
|
|
552 {
|
|
|
553 if (ctrl == USB_EP_HALT_CLR) {
|
|
|
554 return _usb_d_ep_halt_clr(ep);
|
|
|
555 } else if (ctrl == USB_EP_HALT_SET) {
|
|
|
556 return _usb_d_dev_ep_stall(ep, USB_EP_STALL_SET);
|
|
|
557 } else {
|
|
|
558 return _usb_d_dev_ep_stall(ep, USB_EP_STALL_GET);
|
|
|
559 }
|
|
|
560 }
|
|
|
561
|
|
|
562 void usb_d_ep_register_callback(const uint8_t ep, const enum usb_d_ep_cb_type type, const FUNC_PTR func)
|
|
|
563 {
|
|
|
564 int8_t ep_index = _usb_d_find_ep(ep);
|
|
|
565 struct usb_d_ep *ept = &usb_d_inst.ep[ep_index];
|
|
|
566 FUNC_PTR f = func ? (FUNC_PTR)func : (FUNC_PTR)usb_d_dummy_cb_false;
|
|
|
567 if (ep_index < 0) {
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001b6c in _usb_d_ep_halt_clr+68 at ../hal/src/hal_usb_device.c:558
|
|
|
[1] from 0x00001b6c in usb_d_ep_halt+76 at ../hal/src/hal_usb_device.c:554
|
|
|
[2] from 0x0000000c in exception_table
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001b6c in _usb_d_ep_halt_clr+68 at ../hal/src/hal_usb_device.c:558
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
arg ep = 12 '\f'
|
|
|
loc ep_index = 0 '\000', ept = 0x20000440 <usb_d_inst>: {xfer = {hdr = {type = 0 '\000',ep = 0 '\000',state = 0 '\000',s…, rc = <optimized out>
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2634 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2634
|
|
|
Start address 0x00000000, load size 9884
|
|
|
Transfer rate: 9 KB/sec, 4942 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|
|
|
main () at ../main.c:17
|
|
|
17 }
|
|
|
─── Assembly ───────────────────────────────────────────────────────────────────
|
|
|
0x00001bfa main+42 movs r1, #13
|
|
|
0x00001bfc main+44 movs r0, r4
|
|
|
0x00001bfe main+46 ldr r3, [pc, #40] ; (0x1c28 <main+88>)
|
|
|
0x00001c00 main+48 blx r3
|
|
|
0x00001c02 main+50 str r0, [sp, #4]
|
|
|
0x00001c04 main+52 b.n 0x1c04 <main+52>
|
|
|
0x00001c06 main+54 nop ; (mov r8, r8)
|
|
|
0x00001c08 main+56 subs r5, r0, #3
|
|
|
0x00001c0a main+58 movs r0, r0
|
|
|
0x00001c0c main+60 asrs r1, r6, #16
|
|
|
─── Breakpoints ────────────────────────────────────────────────────────────────
|
|
|
─── Expressions ────────────────────────────────────────────────────────────────
|
|
|
─── History ────────────────────────────────────────────────────────────────────
|
|
|
─── Memory ─────────────────────────────────────────────────────────────────────
|
|
|
─── Registers ──────────────────────────────────────────────────────────────────
|
|
|
r0 0x00000000 r1 0x410050ff r2 0x00000080
|
|
|
r3 0x41005120 r4 0x200005e0 r5 0x0000000c
|
|
|
r6 0x00000005 r7 0xfdbffebf r8 0xfe7ffff9
|
|
|
r9 0x3f7fddfb r10 0xeffffd53 r11 0xffff7f7f
|
|
|
r12 0x0000003f sp 0x20002630 lr 0x0000107f
|
|
|
pc 0x00001c04 xPSR 0x41000000 msp 0x20002630
|
|
|
psp 0xef5adef4 primask 0x00 basepri 0x00
|
|
|
faultmask 0x00 control 0x00
|
|
|
─── Source ─────────────────────────────────────────────────────────────────────
|
|
|
7
|
|
|
8 usb_init();
|
|
|
9 cdcd_acm_example();
|
|
|
10
|
|
|
11 while(!usb_ready());
|
|
|
12 delay_ms(2000);
|
|
|
13 memcpy(buffer, "Hello World\n", sizeof("Hello World\n"));
|
|
|
14 volatile int32_t ret = cdcdf_acm_write(buffer, sizeof("Hello World\n"));
|
|
|
15 /* Replace with your application code */
|
|
|
16 while (1) {
|
|
|
17 }
|
|
|
18 }
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
~
|
|
|
─── Stack ──────────────────────────────────────────────────────────────────────
|
|
|
[0] from 0x00001c04 in main+52 at ../main.c:17
|
|
|
─── Threads ────────────────────────────────────────────────────────────────────
|
|
|
[1] id 0 from 0x00001c04 in main+52 at ../main.c:17
|
|
|
─── Variables ──────────────────────────────────────────────────────────────────
|
|
|
loc ret = 0
|
|
|
────────────────────────────────────────────────────────────────────────────────
|
|
|
Loading section .text, size 0x2634 lma 0x0
|
|
|
Loading section .relocate, size 0x68 lma 0x2634
|
|
|
Start address 0x00000000, load size 9884
|
|
|
Transfer rate: 9 KB/sec, 4942 bytes/write.
|
|
|
A debugging session is active.
|
|
|
|
|
|
Inferior 1 [Remote target] will be detached.
|
|
|
|
|
|
Quit anyway? (y or n) [answered Y; input not from terminal]
|
|
|
[Inferior 1 (Remote target) detached]
|