/* * Copyright (c) 2016 Intel Corporation. * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include #include BUILD_ASSERT(DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart), "Console device is not ACM CDC UART device"); #if defined(CONFIG_USB_DEVICE_STACK_NEXT) static struct usbd_context *sample_usbd; static int enable_usb_device_next(void) { int err; sample_usbd = sample_usbd_init_device(NULL); if (sample_usbd == NULL) { return -ENODEV; } err = usbd_enable(sample_usbd); if (err) { return err; } return 0; } #endif /* defined(CONFIG_USB_DEVICE_STACK_NEXT) */ int main(void) { const struct device *const dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console)); uint32_t dtr = 0; #if defined(CONFIG_USB_DEVICE_STACK_NEXT) if (enable_usb_device_next()) { return 0; } #else if (usb_enable(NULL)) { return 0; } #endif /* Poll if the DTR flag was set */ while (!dtr) { uart_line_ctrl_get(dev, UART_LINE_CTRL_DTR, &dtr); /* Give CPU resources to low priority threads. */ k_sleep(K_MSEC(100)); } while (1) { printk("Hello World! %s\n", CONFIG_ARCH); k_sleep(K_SECONDS(1)); } }