Skip to content

Commit

Permalink
Move support to v2.7.x and v3.1.0 (#64)
Browse files Browse the repository at this point in the history
* Add v2.7.0 and v3.1.0

Signed-off-by: Pablo Garrido <[email protected]>

Fix

Signed-off-by: Pablo Garrido <[email protected]>

Fix

Signed-off-by: Pablo Garrido <[email protected]>

Use ubuntu 20.04

Signed-off-by: Pablo Garrido <[email protected]>

Update cmake

Signed-off-by: Pablo Garrido <[email protected]>

Fix env

Signed-off-by: Pablo Garrido <[email protected]>

Fix

Signed-off-by: Pablo Garrido <[email protected]>

Deprecate v2.4.0

Signed-off-by: Pablo Garrido <[email protected]>

Update

Signed-off-by: Pablo Garrido <[email protected]>

Update Readme

Signed-off-by: Pablo Garrido <[email protected]>

Fix CMake

Signed-off-by: Pablo Garrido <[email protected]>

Update

Signed-off-by: Pablo Garrido <[email protected]>

* Revert "Add v2.7.0 and v3.1.0"

This reverts commit 64370f1.

* Initial

Signed-off-by: Pablo Garrido <[email protected]>

* Update

Signed-off-by: Pablo Garrido <[email protected]>

* Update

Signed-off-by: Pablo Garrido <[email protected]>

* Fix

Signed-off-by: Pablo Garrido <[email protected]>

* Move 2.7.2 to new ci

Signed-off-by: Pablo Garrido <[email protected]>

* Deprecate <v2.7

Signed-off-by: Pablo Garrido <[email protected]>

* Readme

Signed-off-by: Pablo Garrido <[email protected]>
(cherry picked from commit 07797df)

# Conflicts:
#	.github/workflows/ci.yml
#	.github/workflows/nightly.yml
#	README.md
  • Loading branch information
pablogs9 authored and mergify[bot] committed Aug 9, 2022
1 parent 0b73435 commit 1a53d78
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 32 deletions.
29 changes: 20 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ jobs:

micro_ros_zephyr_module:
runs-on: ubuntu-latest
container: ubuntu:20.04
container: ubuntu:22.04
strategy:
fail-fast: false
matrix:
<<<<<<< HEAD
zephyr_version: ["zephyr-v2.4.0", "zephyr-v2.5.0", "v2.6.0-rc1"]
include:
- zephyr_version: zephyr-v2.4.0
Expand All @@ -24,6 +25,16 @@ jobs:
- zephyr_version: v2.6.0-rc1
zephyr_sdk: 0.12.4
sdk_filename: zephyr-toolchain-arm-$TOOLCHAIN_VERSION-x86_64-linux-setup.run
=======
zephyr_version: ["zephyr-v3.1.0", "zephyr-v2.7.2"]
include:
- zephyr_version: zephyr-v2.7.2
zephyr_sdk: 0.14.2
sdk_filename: zephyr-sdk-$TOOLCHAIN_VERSION\_linux-x86_64_minimal.tar.gz
- zephyr_version: zephyr-v3.1.0
zephyr_sdk: 0.14.2
sdk_filename: zephyr-sdk-$TOOLCHAIN_VERSION\_linux-x86_64_minimal.tar.gz
>>>>>>> 07797df (Move support to v2.7.x and v3.1.0 (#64))
steps:
- uses: actions/checkout@v2
with:
Expand All @@ -34,8 +45,8 @@ jobs:
run: |
apt update
export DEBIAN_FRONTEND=noninteractive
apt install -y --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget curl gnupg2 \
apt install -y --no-install-recommends wget git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget \
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
make gcc gcc-multilib g++-multilib libsdl2-dev
pip3 install --user -U west
Expand All @@ -52,15 +63,15 @@ jobs:
export TOOLCHAIN_VERSION=${{ matrix.zephyr_sdk }}
export TOOLCHAIN_FILE_NAME=${{ matrix.sdk_filename }}
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v$TOOLCHAIN_VERSION/$TOOLCHAIN_FILE_NAME
chmod +x $TOOLCHAIN_FILE_NAME
yes | ./$TOOLCHAIN_FILE_NAME -- -rc -y -d $(pwd)/zephyr-sdk || :
rm -rf $TOOLCHAIN_FILE_NAME
tar xvf $TOOLCHAIN_FILE_NAME
cd zephyr-sdk-$TOOLCHAIN_VERSION
./setup.sh -h -t arm-zephyr-eabi -c
cd ..
source zephyr-sdk-$TOOLCHAIN_VERSION/environment-setup-x86_64-pokysdk-linux
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
export ZEPHYR_SDK_INSTALL_DIR=$(pwd)/zephyr-sdk
export ZEPHYR_SDK_INSTALL_DIR=$(pwd)/zephyr-sdk-$TOOLCHAIN_VERSION
source zephyrproject/zephyr/zephyr-env.sh
# Installing micro-ROS prerequisites
pip3 install catkin_pkg lark-parser empy colcon-common-extensions
# Workaround. Remove when https://github.com/sphinx-doc/sphinx/issues/10291 and https://github.com/micro-ROS/micro_ros_zephyr_module/runs/5714546662?check_suite_focus=true
pip3 install --upgrade Sphinx
# Building the app
west build -b disco_l475_iot1 micro_ros_zephyr_module
36 changes: 26 additions & 10 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,23 @@ jobs:

micro_ros_zephyr_module:
runs-on: ubuntu-latest
container: ubuntu:20.04
container: ubuntu:22.04
strategy:
fail-fast: false
matrix:
<<<<<<< HEAD
zephyr_version: ["zephyr-v2.4.0", "zephyr-v2.5.0", "v2.6.0-rc1"]
distro: ["foxy", "rolling"]
=======
zephyr_version: ["zephyr-v3.1.0", "zephyr-v2.7.2"]
distro: ["foxy", "humble", "rolling"]
>>>>>>> 07797df (Move support to v2.7.x and v3.1.0 (#64))
include:
- distro: foxy
branch: foxy
- distro: rolling
branch: main
<<<<<<< HEAD
- zephyr_version: zephyr-v2.4.0
zephyr_sdk: 0.11.4
sdk_filename: zephyr-toolchain-arm-$TOOLCHAIN_VERSION-setup.run
Expand All @@ -32,18 +38,28 @@ jobs:
- zephyr_version: v2.6.0-rc1
zephyr_sdk: 0.12.4
sdk_filename: zephyr-toolchain-arm-$TOOLCHAIN_VERSION-x86_64-linux-setup.run
=======
- distro: humble
branch: humble
- zephyr_version: zephyr-v2.7.2
zephyr_sdk: 0.14.2
sdk_filename: zephyr-sdk-$TOOLCHAIN_VERSION\_linux-x86_64_minimal.tar.gz
- zephyr_version: zephyr-v3.1.0
zephyr_sdk: 0.14.2
sdk_filename: zephyr-sdk-$TOOLCHAIN_VERSION_linux-x86_64_minimal.tar.gz
>>>>>>> 07797df (Move support to v2.7.x and v3.1.0 (#64))
steps:
- uses: actions/checkout@v2
with:
path: micro_ros_zephyr_module
ref: ${{ matrix.branch }}

- name: Dependencies
shell: bash
run: |
apt update
export DEBIAN_FRONTEND=noninteractive
apt install -y --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget curl gnupg2 \
apt install -y --no-install-recommends wget git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget \
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
make gcc gcc-multilib g++-multilib libsdl2-dev
pip3 install --user -U west
Expand All @@ -60,15 +76,15 @@ jobs:
export TOOLCHAIN_VERSION=${{ matrix.zephyr_sdk }}
export TOOLCHAIN_FILE_NAME=${{ matrix.sdk_filename }}
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v$TOOLCHAIN_VERSION/$TOOLCHAIN_FILE_NAME
chmod +x $TOOLCHAIN_FILE_NAME
yes | ./$TOOLCHAIN_FILE_NAME -- -rc -y -d $(pwd)/zephyr-sdk || :
rm -rf $TOOLCHAIN_FILE_NAME
tar xvf $TOOLCHAIN_FILE_NAME
cd zephyr-sdk-$TOOLCHAIN_VERSION
./setup.sh -h -t arm-zephyr-eabi -c
cd ..
source zephyr-sdk-$TOOLCHAIN_VERSION/environment-setup-x86_64-pokysdk-linux
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
export ZEPHYR_SDK_INSTALL_DIR=$(pwd)/zephyr-sdk
export ZEPHYR_SDK_INSTALL_DIR=$(pwd)/zephyr-sdk-$TOOLCHAIN_VERSION
source zephyrproject/zephyr/zephyr-env.sh
# Installing micro-ROS prerequisites
pip3 install catkin_pkg lark-parser empy colcon-common-extensions
# Workaround. Remove when https://github.com/sphinx-doc/sphinx/issues/10291 and https://github.com/micro-ROS/micro_ros_zephyr_module/runs/5714546662?check_suite_focus=true
pip3 install --upgrade Sphinx
# Building the app
west build -b disco_l475_iot1 micro_ros_zephyr_module
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@

# micro-ROS module for Zephyr

<<<<<<< HEAD
This module has been tested in Zephyr RTOS v2.4.0 (SDK 0.11.4), v2.5.0 (SDK 0.11.4) and (v2.6.0 SDK 0.12.4).
=======
This module has been tested in Zephyr RTOS v2.7.0 (SDK 0.14.2) and v3.1.0 (SDK 0.14.2).
>>>>>>> 07797df (Move support to v2.7.x and v3.1.0 (#64))
## Dependencies

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ char uart_out_buffer[RING_BUF_SIZE];

struct ring_buf out_ringbuf, in_ringbuf;

static void uart_fifo_callback(struct device *dev){
static void uart_fifo_callback(const struct device *dev, void * user_data){
while (uart_irq_update(dev) && uart_irq_is_pending(dev)) {
if (uart_irq_rx_ready(dev)) {
int recv_len;
Expand All @@ -36,7 +36,7 @@ static void uart_fifo_callback(struct device *dev){

}

if (uart_irq_tx_ready(dev)) {
if (uart_irq_tx_ready(dev)) {
char buffer[64];
int rb_len;

Expand All @@ -58,6 +58,7 @@ bool zephyr_transport_open(struct uxrCustomTransport * transport){
int ret;
uint32_t baudrate, dtr = 0U;


params->uart_dev = device_get_binding("CDC_ACM_0");
if (!params->uart_dev) {
printk("CDC ACM device not found\n");
Expand Down Expand Up @@ -116,6 +117,7 @@ bool zephyr_transport_open(struct uxrCustomTransport * transport){

bool zephyr_transport_close(struct uxrCustomTransport * transport){
zephyr_transport_params_t * params = (zephyr_transport_params_t*) transport->args;
(void) params;

return true;
}
Expand All @@ -124,15 +126,15 @@ size_t zephyr_transport_write(struct uxrCustomTransport* transport, const uint8_
zephyr_transport_params_t * params = (zephyr_transport_params_t*) transport->args;

size_t wrote;

wrote = ring_buf_put(&out_ringbuf, buf, len);

uart_irq_tx_enable(params->uart_dev);

while (!ring_buf_is_empty(&out_ringbuf)){
k_sleep(K_MSEC(5));
}

return wrote;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ extern "C"

typedef struct {
size_t fd;
struct device *uart_dev;
const struct device *uart_dev;
} zephyr_transport_params_t;

#define MICRO_ROS_FRAMING_REQUIRED true
Expand Down
2 changes: 0 additions & 2 deletions prj.conf
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@ CONFIG_NEWLIB_LIBC_NANO=n
CONFIG_PTHREAD_IPC=n

CONFIG_POSIX_API=y
CONFIG_NATIVE_POSIX_TIMER=y
CONFIG_APP_LINK_WITH_POSIX_SUBSYS=y
CONFIG_POSIX_CLOCK=y

CONFIG_STDOUT_CONSOLE=y
CONFIG_USB=y
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DEVICE_PRODUCT="Zephyr micro-ROS"
CONFIG_LOG=y
Expand Down
6 changes: 1 addition & 5 deletions src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,8 @@ void main(void)
rcl_allocator_t allocator = rcl_get_default_allocator();
rclc_support_t support;

rcl_init_options_t init_options = rcl_get_zero_initialized_init_options();
RCCHECK(rcl_init_options_init(&init_options, allocator));
rmw_init_options_t* rmw_options = rcl_init_options_get_rmw_init_options(&init_options);

// create init_options
RCCHECK(rclc_support_init_with_options(&support, 0, NULL, &init_options, &allocator));
RCCHECK(rclc_support_init(&support, 0, NULL, &allocator));

// create node
rcl_node_t node;
Expand Down

0 comments on commit 1a53d78

Please sign in to comment.