File tree 6 files changed +114
-0
lines changed
samples/subsys/usb/console-next
6 files changed +114
-0
lines changed Original file line number Diff line number Diff line change
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ cmake_minimum_required (VERSION 3.20.0)
4
+ find_package (Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} )
5
+ project (console-next)
6
+
7
+ FILE (GLOB app_sources src/*.c)
8
+ target_sources (app PRIVATE ${app_sources} )
Original file line number Diff line number Diff line change
1
+ .. zephyr :code-sample :: usbd-cdc-acm-console
2
+ :name: Console over USB CDC ACM
3
+ :relevant-api: usbd_api uart_interface
4
+
5
+ Output "Hello World!" to the console over USB CDC ACM.
6
+
7
+ Overview
8
+ ********
9
+
10
+ This example application shows how to use the CDC ACM UART provided by the new
11
+ experimental USB device stack as a serial backend for the console.
12
+
13
+ Requirements
14
+ ************
15
+
16
+ This project requires an experimental USB device driver (UDC API).
17
+
18
+ Building and Running
19
+ ********************
20
+
21
+ This sample can be built for multiple boards, in this example we will build it
22
+ for the reel_board board:
23
+
24
+ .. zephyr-app-commands ::
25
+ :zephyr-app: samples/subsys/usb/console-next
26
+ :board: reel_board
27
+ :goals: flash
28
+ :compact:
29
+
30
+ Plug the board into a host device, for sample, a PC running Linux OS.
31
+ The board will be detected as a CDC ACM serial device. To see the console output
32
+ from the sample, use a command similar to :command: `minicom -D /dev/ttyACM1 `.
33
+
34
+ .. code-block :: console
35
+
36
+ Hello World! arm
37
+ Hello World! arm
38
+ Hello World! arm
39
+ Hello World! arm
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (c) 2021 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ / {
8
+ chosen {
9
+ zephyr,console = &cdc_acm_uart0;
10
+ };
11
+ };
12
+
13
+ &zephyr_udc0 {
14
+ cdc_acm_uart0: cdc_acm_uart0 {
15
+ compatible = "zephyr,cdc-acm-uart";
16
+ };
17
+ };
Original file line number Diff line number Diff line change
1
+ CONFIG_SERIAL=y
2
+ CONFIG_CONSOLE=y
3
+ CONFIG_UART_CONSOLE=y
4
+ CONFIG_STDOUT_CONSOLE=y
5
+ CONFIG_UART_LINE_CTRL=y
6
+
7
+ CONFIG_USB_DEVICE_STACK_NEXT=y
8
+ CONFIG_CDC_ACM_SERIAL_INITIALIZE_AT_BOOT=y
9
+ CONFIG_CDC_ACM_SERIAL_PID=0x0004
10
+ CONFIG_CDC_ACM_SERIAL_PRODUCT_STRING="USBD console sample"
Original file line number Diff line number Diff line change
1
+ sample :
2
+ name : Console over CDC ACM serial
3
+ tests :
4
+ sample.usbd.console :
5
+ depends_on :
6
+ - usbd
7
+ tags : usb
8
+ harness : console
9
+ harness_config :
10
+ fixture : fixture_usb_cdc
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (c) 2016 Intel Corporation.
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ #include <zephyr/kernel.h>
8
+ #include <zephyr/sys/printk.h>
9
+ #include <zephyr/drivers/uart.h>
10
+
11
+ BUILD_ASSERT (DT_NODE_HAS_COMPAT (DT_CHOSEN (zephyr_console ), zephyr_cdc_acm_uart ),
12
+ "Console device is not ACM CDC UART device" );
13
+
14
+ int main (void )
15
+ {
16
+ const struct device * const dev = DEVICE_DT_GET (DT_CHOSEN (zephyr_console ));
17
+ uint32_t dtr = 0 ;
18
+
19
+ /* Poll if the DTR flag was set */
20
+ while (!dtr ) {
21
+ uart_line_ctrl_get (dev , UART_LINE_CTRL_DTR , & dtr );
22
+ /* Give CPU resources to low priority threads. */
23
+ k_sleep (K_MSEC (100 ));
24
+ }
25
+
26
+ while (1 ) {
27
+ printk ("Hello World! %s\n" , CONFIG_ARCH );
28
+ k_sleep (K_SECONDS (1 ));
29
+ }
30
+ }
You can’t perform that action at this time.
0 commit comments