Skip to content

Commit 17bcdd1

Browse files
committed
refactor(VirtIO): move VirtIOSerial as a built-in library
Including OpenAMP. Signed-off-by: Frederic Pillon <[email protected]>
1 parent 14d5fec commit 17bcdd1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+161
-38
lines changed

License.md

Lines changed: 16 additions & 0 deletions

cmake/set_base_arduino_config.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ target_include_directories(base_config INTERFACE
5656
"${BUILD_CORE_PATH}/avr"
5757
"${BUILD_CORE_PATH}/stm32"
5858
"${BUILD_CORE_PATH}/stm32/usb"
59-
"${BUILD_CORE_PATH}/stm32/OpenAMP"
6059
"${BUILD_CORE_PATH}/stm32/usb/hid"
6160
"${BUILD_CORE_PATH}/stm32/usb/cdc"
6261
"${BUILD_LIB_PATH}/SrcWrapper/inc"
6362
"${BUILD_LIB_PATH}/SrcWrapper/inc/LL"
63+
"${BUILD_LIB_PATH}/VirtIO/inc"
6464
"${BUILD_SYSTEM_PATH}/Middlewares/ST/STM32_USB_Device_Library/Core/Inc"
6565
"${BUILD_SYSTEM_PATH}/Middlewares/ST/STM32_USB_Device_Library/Core/Src"
6666
"${CMSIS5_PATH}/CMSIS/DSP/Include"

cmake/templates/easy_cmake.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ build_sketch(TARGET "{{tgtname or "@binary_name_here@"}}"
9191
# SD
9292
# Wire
9393
# SPI
94+
# VirtIO
9495
)
9596

9697
# STEP 4: optional features

cores/arduino/CMakeLists.txt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,6 @@ add_library(core_bin STATIC EXCLUDE_FROM_ALL
3131
pins_arduino.c
3232
Print.cpp
3333
RingBuffer.cpp
34-
stm32/OpenAMP/libmetal/device.c
35-
stm32/OpenAMP/libmetal/generic/condition.c
36-
stm32/OpenAMP/libmetal/generic/cortexm/sys.c
37-
stm32/OpenAMP/libmetal/generic/generic_device.c
38-
stm32/OpenAMP/libmetal/generic/generic_init.c
39-
stm32/OpenAMP/libmetal/generic/generic_io.c
40-
stm32/OpenAMP/libmetal/generic/generic_shmem.c
41-
stm32/OpenAMP/libmetal/generic/time.c
42-
stm32/OpenAMP/libmetal/init.c
43-
stm32/OpenAMP/libmetal/io.c
44-
stm32/OpenAMP/libmetal/log.c
45-
stm32/OpenAMP/libmetal/shmem.c
46-
stm32/OpenAMP/mbox_ipcc.c
47-
stm32/OpenAMP/open-amp/remoteproc/remoteproc_virtio.c
48-
stm32/OpenAMP/open-amp/rpmsg/rpmsg.c
49-
stm32/OpenAMP/open-amp/rpmsg/rpmsg_virtio.c
50-
stm32/OpenAMP/openamp.c
51-
stm32/OpenAMP/rsc_table.c
52-
stm32/OpenAMP/virt_uart.c
53-
stm32/OpenAMP/virtio/virtio.c
54-
stm32/OpenAMP/virtio/virtqueue.c
55-
stm32/OpenAMP/virtio_buffer.c
56-
stm32/OpenAMP/virtio_log.c
5734
stm32/startup_stm32yyxx.S
5835
stm32/usb/cdc/cdc_queue.c
5936
stm32/usb/cdc/usbd_cdc.c
@@ -70,7 +47,6 @@ add_library(core_bin STATIC EXCLUDE_FROM_ALL
7047
Stream.cpp
7148
Tone.cpp
7249
USBSerial.cpp
73-
VirtIOSerial.cpp
7450
WInterrupts.cpp
7551
wiring_analog.c
7652
wiring_digital.c

cores/arduino/WSerial.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
#include "variant.h"
55
#include "HardwareSerial.h"
66
#include "USBSerial.h"
7-
#include "VirtIOSerial.h"
7+
#if defined(VIRTIOCON)
8+
#include "VirtIOSerial.h"
9+
#endif /* VIRTIOCON */
810

911
#if defined (USBCON) && defined(USBD_USE_CDC)
1012
#ifndef DISABLE_GENERIC_SERIALUSB

libraries/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ add_subdirectory(SPI)
1010
add_subdirectory(Servo)
1111
add_subdirectory(SoftwareSerial)
1212
add_subdirectory(SrcWrapper)
13+
add_subdirectory(VirtIO)
1314
add_subdirectory(Wire)

libraries/VirtIO/CMakeLists.txt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# v3.21 implemented semantic changes regarding $<TARGET_OBJECTS:...>
2+
# See https://cmake.org/cmake/help/v3.21/command/target_link_libraries.html#linking-object-libraries-via-target-objects
3+
cmake_minimum_required(VERSION 3.21)
4+
5+
add_library(VirtIO INTERFACE)
6+
add_library(VirtIO_usage INTERFACE)
7+
8+
target_include_directories(VirtIO_usage INTERFACE
9+
src
10+
)
11+
12+
13+
target_link_libraries(VirtIO_usage INTERFACE
14+
base_config
15+
)
16+
17+
target_link_libraries(VirtIO INTERFACE VirtIO_usage)
18+
19+
20+
21+
add_library(VirtIO_bin OBJECT EXCLUDE_FROM_ALL
22+
src/libmetal/device.c
23+
src/libmetal/generic/condition.c
24+
src/libmetal/generic/cortexm/sys.c
25+
src/libmetal/generic/generic_device.c
26+
src/libmetal/generic/generic_init.c
27+
src/libmetal/generic/generic_io.c
28+
src/libmetal/generic/generic_shmem.c
29+
src/libmetal/generic/time.c
30+
src/libmetal/init.c
31+
src/libmetal/io.c
32+
src/libmetal/log.c
33+
src/libmetal/shmem.c
34+
src/mbox_ipcc.c
35+
src/open-amp/remoteproc/remoteproc_virtio.c
36+
src/open-amp/rpmsg/rpmsg.c
37+
src/open-amp/rpmsg/rpmsg_virtio.c
38+
src/openamp.c
39+
src/rsc_table.c
40+
src/virt_uart.c
41+
src/virtio/virtio.c
42+
src/virtio/virtqueue.c
43+
src/virtio_buffer.c
44+
src/virtio_log.c
45+
src/VirtIOSerial.cpp
46+
)
47+
target_link_libraries(VirtIO_bin PUBLIC VirtIO_usage)
48+
49+
target_link_libraries(VirtIO INTERFACE
50+
VirtIO_bin
51+
$<TARGET_OBJECTS:VirtIO_bin>
52+
)
53+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
int available;
2+
char buffer[1024];
3+
4+
unsigned long start_time = 0;
5+
6+
void setup() {
7+
Serial.begin(115200);
8+
pinMode(LED_BUILTIN, OUTPUT);
9+
}
10+
11+
void loop() {
12+
available = Serial.available();
13+
while (available > 0) {
14+
int size = min(available, Serial.availableForWrite());
15+
Serial.readBytes(buffer, size);
16+
Serial.write(buffer, size);
17+
available -= size;
18+
}
19+
20+
// Heartbeat. If Arduino stops the LED won't flash anymore.
21+
if ((millis() - start_time) > 1000) {
22+
start_time = millis();
23+
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
24+
}
25+
}
File renamed without changes.

0 commit comments

Comments
 (0)