diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 928541a4..4becc1b7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -233,7 +233,7 @@ jobs: run: | cd $PWD/examples/NonArduino/Tock git clone https://github.com/tock/libtock-c.git - cd libtock-c; git checkout 44bf89c545953d8859faf101d4b4a4b6a151fe6c; cd ../ + cd libtock-c; git checkout dbee65a56d74b4bad166317f199e80b959f7c82c; cd ../ LIBTOCK_C_DIRECTORY="$(pwd)/libtock-c" ./build.sh rpi-build: diff --git a/examples/NonArduino/Tock/CMakeLists.txt b/examples/NonArduino/Tock/CMakeLists.txt index d298f577..42d6d674 100644 --- a/examples/NonArduino/Tock/CMakeLists.txt +++ b/examples/NonArduino/Tock/CMakeLists.txt @@ -54,6 +54,7 @@ if (RISCV_BUILD) target_link_libraries(${PROJECT_NAME} PUBLIC RadioLib $ENV{LIBTOCK_C_DIRECTORY}/libtock/build/rv32imc/libtock.a + $ENV{LIBTOCK_C_DIRECTORY}/libtock-sync/build/rv32imc/libtocksync.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-13.2.0/riscv/lib/gcc/riscv64-unknown-elf/13.2.0/rv32i/ilp32/libgcc.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-13.2.0/riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libstdc++.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-newlib-4.3.0.20230120/riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libc.a @@ -67,6 +68,7 @@ if (RISCV_BUILD) target_link_libraries(${PROJECT_NAME} PUBLIC RadioLib $ENV{LIBTOCK_C_DIRECTORY}/libtock/build/rv32imc/libtock.a + $ENV{LIBTOCK_C_DIRECTORY}/libtock-sync/build/rv32imc/libtocksync.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-10.5.0/riscv/lib/gcc/riscv64-unknown-elf/10.5.0/rv32i/ilp32/libgcc.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-10.5.0/riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libstdc++.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-newlib-4.2.0.20211231/riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libc.a @@ -82,6 +84,7 @@ else() target_link_libraries(${PROJECT_NAME} PUBLIC RadioLib $ENV{LIBTOCK_C_DIRECTORY}/libtock/build/cortex-m4/libtock.a + $ENV{LIBTOCK_C_DIRECTORY}/libtock-sync/build/cortex-m4/libtocksync.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-13.2.0/arm/lib/gcc/arm-none-eabi/13.2.0/libgcc.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-13.2.0/arm/arm-none-eabi/lib/libstdc++.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-newlib-4.3.0.20230120/arm/arm-none-eabi/lib/libc.a @@ -91,6 +94,7 @@ else() target_link_libraries(${PROJECT_NAME} PUBLIC RadioLib $ENV{LIBTOCK_C_DIRECTORY}/libtock/build/cortex-m4/libtock.a + $ENV{LIBTOCK_C_DIRECTORY}/libtock-sync/build/cortex-m4/libtocksync.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-10.5.0/arm/lib/gcc/arm-none-eabi/10.5.0/libgcc.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-libc++-10.5.0/arm/arm-none-eabi/lib/libstdc++.a $ENV{LIBTOCK_C_DIRECTORY}/lib/libtock-newlib-4.2.0.20211231/arm/arm-none-eabi/lib/libc.a diff --git a/examples/NonArduino/Tock/README.md b/examples/NonArduino/Tock/README.md index 05b2e7c5..cae7f380 100644 --- a/examples/NonArduino/Tock/README.md +++ b/examples/NonArduino/Tock/README.md @@ -23,7 +23,7 @@ The RadioLib example can be built with: $ git clone https://github.com/jgromes/RadioLib.git $ cd RadioLib/examples/NonArduino/Tock/ $ git clone https://github.com/tock/libtock-c.git -$ cd libtock-c; git checkout 44bf89c545953d8859faf101d4b4a4b6a151fe6c; cd ../ +$ cd libtock-c; git checkout dbee65a56d74b4bad166317f199e80b959f7c82c; cd ../ $ LIBTOCK_C_DIRECTORY="$(pwd)/libtock-c" ./build.sh ``` diff --git a/examples/NonArduino/Tock/libtockHal.h b/examples/NonArduino/Tock/libtockHal.h index 76ed42df..85c53920 100644 --- a/examples/NonArduino/Tock/libtockHal.h +++ b/examples/NonArduino/Tock/libtockHal.h @@ -31,10 +31,12 @@ #include // include all the dependencies -#include "libtock/lora_phy.h" -#include "libtock/gpio.h" -#include "libtock/timer.h" -#include "libtock/read_only_state.h" +#include "libtock/net/lora_phy.h" +#include "libtock/net/syscalls/lora_phy_syscalls.h" +#include "libtock-sync/net/lora_phy.h" +#include "libtock/peripherals/gpio.h" +#include "libtock-sync/services/alarm.h" +#include "libtock/kernel/read_only_state.h" #define RADIO_BUSY 1 #define RADIO_DIO_1 2 @@ -99,9 +101,9 @@ class TockHal : public RadioLibHal { } if (mode == PIN_OUTPUT) { - lora_phy_gpio_enable_output(pin); + libtock_lora_phy_gpio_enable_output(pin); } else if (mode == PIN_INPUT) { - lora_phy_gpio_enable_input(pin, PullDown); + libtock_lora_phy_gpio_enable_input(pin, libtock_pull_down); } } @@ -111,9 +113,9 @@ class TockHal : public RadioLibHal { } if (value) { - lora_phy_gpio_set(pin); + libtock_lora_phy_gpio_set(pin); } else { - lora_phy_gpio_clear(pin); + libtock_lora_phy_gpio_clear(pin); } } @@ -124,7 +126,7 @@ class TockHal : public RadioLibHal { return 0; } - lora_phy_gpio_read(pin, &value); + libtock_lora_phy_gpio_read(pin, &value); return value; } @@ -134,11 +136,11 @@ class TockHal : public RadioLibHal { return; } - lora_phy_gpio_interrupt_callback(lora_phy_gpio_Callback, &interruptCb); + libtock_lora_phy_gpio_command_interrupt_callback(lora_phy_gpio_Callback, &interruptCb); // set GPIO as input and enable interrupts on it - lora_phy_gpio_enable_input(interruptNum, PullDown); - lora_phy_gpio_enable_interrupt(interruptNum, Change); + libtock_lora_phy_gpio_enable_input(interruptNum, libtock_pull_down); + libtock_lora_phy_gpio_enable_interrupt(interruptNum, libtock_change); } void detachInterrupt(uint32_t interruptNum) override { @@ -146,15 +148,15 @@ class TockHal : public RadioLibHal { return; } - lora_phy_gpio_disable_interrupt(interruptNum); + libtock_lora_phy_gpio_disable_interrupt(interruptNum); } void delay(unsigned long ms) override { - delay_ms( ms ); + libtocksync_alarm_delay_ms( ms ); } void delayMicroseconds(unsigned long us) override { - delay_ms( us / 1000 ); + libtocksync_alarm_delay_ms( us / 1000 ); } unsigned long millis() override { @@ -181,7 +183,7 @@ class TockHal : public RadioLibHal { } void spiTransfer(uint8_t* out, size_t len, uint8_t* in) { - lora_phy_read_write_sync((const char*) out, (char*) in, len); + libtocksync_lora_phy_read_write(out, in, len); } void spiEndTransaction() {