From ae05a4283e2838190f1bac51f6ebb6033d75e040 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Fri, 7 Jul 2023 21:05:48 +1000 Subject: [PATCH 1/4] Tock: Use Tock's libgcc The Tock specific version of libgcc is built to be position independent, so use that instead of the one supplied by the compiler. This fixes a few odd corner cases when using printf(). Signed-off-by: Alistair Francis --- examples/NonArduino/Tock/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/NonArduino/Tock/CMakeLists.txt b/examples/NonArduino/Tock/CMakeLists.txt index 19f6e2b4..c7aaf866 100644 --- a/examples/NonArduino/Tock/CMakeLists.txt +++ b/examples/NonArduino/Tock/CMakeLists.txt @@ -45,8 +45,8 @@ add_executable(${PROJECT_NAME} main.cpp) # link with RadioLib and libtock-c target_link_libraries(${PROJECT_NAME} PUBLIC RadioLib - gcc ${CMAKE_CURRENT_SOURCE_DIR}/libtock-c/libtock/build/cortex-m4/libtock.a + ${CMAKE_CURRENT_SOURCE_DIR}/libtock-c/libc++/cortex-m/libgcc.a ${CMAKE_CURRENT_SOURCE_DIR}/libtock-c/libc++/cortex-m/libstdc++.a ${CMAKE_CURRENT_SOURCE_DIR}/libtock-c/newlib/cortex-m/v7-m/libc.a ${CMAKE_CURRENT_SOURCE_DIR}/libtock-c/newlib/cortex-m/v7-m/libm.a From a72b549450a77f7517360bc0a0d0fcb68258116a Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Sat, 8 Jul 2023 21:39:44 +1000 Subject: [PATCH 2/4] Tock: Implement yield() Signed-off-by: Alistair Francis --- examples/NonArduino/Tock/libtockHal.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/NonArduino/Tock/libtockHal.h b/examples/NonArduino/Tock/libtockHal.h index 34af2dfc..d9acf717 100644 --- a/examples/NonArduino/Tock/libtockHal.h +++ b/examples/NonArduino/Tock/libtockHal.h @@ -190,6 +190,10 @@ class TockHal : public RadioLibHal { void spiEnd() { } + void yield() { + ::yield(); + } + private: }; From 6a6bb8526b2477fa63409b8bf45b95b45ca298e8 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Sat, 8 Jul 2023 22:14:33 +1000 Subject: [PATCH 3/4] Tock: Update Radio config for SparkFun LoRa Thing Plus - expLoRaBLE Signed-off-by: Alistair Francis --- examples/NonArduino/Tock/main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/NonArduino/Tock/main.cpp b/examples/NonArduino/Tock/main.cpp index 56df5fb4..d3bbc6c5 100644 --- a/examples/NonArduino/Tock/main.cpp +++ b/examples/NonArduino/Tock/main.cpp @@ -46,7 +46,10 @@ int main(void) { Module* tock_module = new Module(hal, RADIO_NSS, RADIO_DIO_1, RADIO_RESET, RADIO_BUSY); SX1262* radio = new SX1262(tock_module); - int state = radio->begin(); + // Setup the radio + // The settings here work for the SparkFun LoRa Thing Plus - expLoRaBLE + int state = radio->begin(915.0, 125.0, 9, 7, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 10, 8, 0, false); + if (state != RADIOLIB_ERR_NONE) { printf("failed, code %d\n", state); return 1; From 5750d8879795becc9e7d3b64afc9a9b9e7488ad2 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Sat, 8 Jul 2023 22:15:07 +1000 Subject: [PATCH 4/4] Tock: Use \r\n for all new lines Signed-off-by: Alistair Francis --- examples/NonArduino/Tock/main.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/NonArduino/Tock/main.cpp b/examples/NonArduino/Tock/main.cpp index d3bbc6c5..a5cab8b6 100644 --- a/examples/NonArduino/Tock/main.cpp +++ b/examples/NonArduino/Tock/main.cpp @@ -32,7 +32,7 @@ // the entry point for the program int main(void) { - printf("[SX1261] Initializing ... \n"); + printf("[SX1261] Initialising Radio ... \r\n"); // create a new instance of the HAL class TockHal* hal = new TockHal(); @@ -51,27 +51,27 @@ int main(void) { int state = radio->begin(915.0, 125.0, 9, 7, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 10, 8, 0, false); if (state != RADIOLIB_ERR_NONE) { - printf("failed, code %d\n", state); + printf("failed, code %d\r\n", state); return 1; } - printf("success!\n"); + printf("success!\r\n"); // loop forever for(;;) { yield_no_wait(); // send a packet - printf("[SX1261] Transmitting packet ... \n"); + printf("[SX1261] Transmitting '%s' \r\n", transmit_string); state = radio->transmit("Hello World!"); if(state == RADIOLIB_ERR_NONE) { // the packet was successfully transmitted - printf("success!\n"); + printf("success!\r\n"); // wait for a second before transmitting again hal->delay(1000); } else { - printf("failed, code %d\n", state); + printf("failed, code %d\r\n", state); } }