You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Aquatic-Robotic-Courier/software/ARC-FW/gcc/gdb.txt

11415 lines
1.2 MiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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
─── 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…
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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…
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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…
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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 ────────────────────────────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
─── 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
─── 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 ────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────
─── 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.
─── 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.
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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'
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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.
─── 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.
─── 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.
─── 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.
─── 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
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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.
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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.
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─── 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]