Skip to content

Commit 17bcdd1

Browse files
committed
refactor(VirtIO): move VirtIOSerial as a built-in library
Including OpenAMP. Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy