Show older

Receiving Packets on gets tricky ... Because SX1276 triggers a GPIO Interrupt when a packet is received ... And the Interrupt Handler needs to forward the packet to the Application Task 🤔

github.com/lupyuen/bl_iot_sdk/

Simple fix for a PlatformIO build error in 's LoRaP2P_TX sample ... My first Pull Request for WisBlock!

github.com/RAKWireless/WisBloc

GPIO Interrupts: Should we use Sync or Async Interrupts for ? 🤔 ... BL602 IoT SDK uses Async Interrupts to handle GPIO Buttons ... Let's do the same for LoRa

github.com/bouffalolab/bl_iot_

Maybe High Level Trigger Interrupt = High Priority Interrupt = Sync Interrupt? 🤔 ... Lemme check the original Chinese Reference Manual

github.com/bouffalolab/bl_docs

My bad ... High Level Trigger Interrupt = 高电平触发中断 = Trigger Interrupt on Logic High ... Nothing to do with priority 🤔

github.com/bouffalolab/bl_docs

Transmitter ... Sniffed by Airspy R2 SDR ... Watch the distinctive LoRa Chirp (red spike)

youtu.be/USqStub3KC0

And still hangs when transmits Packets ... Chaos Magic 🤔

Something spooky about GPIO Interrupts 🤔 ... Let's disconnect SX1276 pins DIO1 to DIO3 ... And connect DIO0 to my fav Blue LED (GPIO 11)

github.com/lupyuen/bl_iot_sdk/

GPIO Interrupts hanging could be due to the way we handle multiple GPIO Interrupts ... Let's revisit this when we can trigger multiple GPIO Interrupts from SX1276

github.com/lupyuen/bl_iot_sdk/

Now that can handle Packet Received Interrupt ... Let's defer the LoRa Packet Processing from the Interrupt Handler to the Application Task ... How shall we do this in FreeRTOS? 🤔

github.com/lupyuen/bl_iot_sdk/

Shall we teach Multitasking with NimBLE Porting Layer? 1️⃣ Looks easier than FreeRTOS 2️⃣ It's portable to FreeRTOS, Mynewt, NuttX and RIOT OS 🤔

lupyuen.github.io/pinetime-rus

Our Build, Flash and Run Firmware script generates the Disassembly ... Let's track down the address of the RISC-V Exception

github.com/lupyuen/bl_iot_sdk/

Exception happened because we passed a pointer to a stack object ... Which gets used by the Interrupt Handler 😲 ... This works OK in the original Mynewt code, but not for BL602

gist.github.com/lupyuen/1539f9

@lupyuen
Ahhh now i see. Lemme browse through their source. Old code is borked. Youre assigning to struct type a pointer type instead of RadioEvents = *events.

How come compiler let it compile...

@lupyuen
Ahh ah. Ok its porting between oses and separate adress spacrs problem it seems. Another concern may be if struct shoukdnt be volatile but i dont know enough sbout code to tell.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.