#RustLang Wrappers for #BL602 IoT SDK ... GPIO, PWM, I2C Done! Getting ready to test on PineDio Stack BL604
https://github.com/lupyuen/bl602-rust-wrapper/blob/master/logs/sdk-expanded.rs#L167-L220
Auto-generated #RustLang Wrappers for #BL602 IoT SDK ... SPI is done!
https://github.com/lupyuen/bl602-rust-wrapper/blob/master/logs/sdk-expanded.rs#L6049-L6310
Sadly the generated #BL602 #RustLang Wrappers lack documentation ... Shall we cross-reference "The RISC-V BL602 Book"? 🤔
https://lupyuen.github.io/articles/led#how-it-works-bl602-gpio
Let's inject these "#BL602 Book" cross-references into the #RustLang Docs ... By modding our Procedural Macro
https://github.com/lupyuen/bl602-rust-wrapper/blob/master/doclinks.md
How we read the "#BL602 Book" Cross-References ... From our #RustLang Procedural Macro
https://github.com/lupyuen/bl602-rust-wrapper/blob/master/bl602-macros/src/safe_wrap.rs#L483-L521
How we inject the "#BL602 Book" Cross-References into the #RustLang Wrapper Docs ... With our Rust Procedural Macro
https://github.com/lupyuen/bl602-rust-wrapper/blob/master/bl602-macros/src/safe_wrap.rs#L457-L511
Here's how we call the #BL602 #RustLang Wrapper for GPIO
https://github.com/lupyuen/bl_iot_sdk/blob/adc/customer_app/sdk_app_rust_gpio/rust/src/lib.rs
#RustLang reminds us to be Extra Careful when Casting C Pointers ... Because it's unsafe and can go horribly wrong
Copying data from a C Pointer is unsafe, #RustLang reminds us
Testing the Light Sensor on #PineCone #BL602 @PINE64 ... Actually we're reading the LED via ADC with #RustLang
https://github.com/lupyuen/bl_iot_sdk/blob/adc/customer_app/sdk_app_rust_adc/rust/src/lib.rs
Building #BL602 #RustLang Firmware gets simpler ... Rust Wrapper for BL602 IoT SDK is now auto-downloaded from crates.io
https://github.com/lupyuen/bl_iot_sdk/blob/adc/customer_app/sdk_app_rust_adc/run.sh
#BL602 LED becomes Light Sensor ... Thanks to #RustLang ADC Firmware!
https://github.com/lupyuen/bl_iot_sdk/blob/adc/customer_app/sdk_app_rust_adc/rust/src/lib.rs
#PineCone #BL602 Light Sensor (improvised) ... Tested OK with #Pinebook Pro @PINE64 yay! 🎉
https://github.com/lupyuen/bl_iot_sdk/blob/adc/customer_app/sdk_app_rust_adc/rust/src/lib.rs
How we init a #BL602 #ADC Channel in our C Firmware
https://lupyuen.github.io/articles/adc?3#initialise-the-adc-channel
Here's how we create a #RustLang Project for #BL602
https://lupyuen.github.io/articles/adc?7#create-a-bl602-rust-project
Here's how we init a #BL602 ADC Channel in #RustLang
https://lupyuen.github.io/articles/adc?9#initialise-the-adc-channel-1
Reading a #BL602 ADC Channel with DMA in #RustLang
https://lupyuen.github.io/articles/adc?10#read-the-adc-channel-1
How we build #RustLang Firmware with #BL602 IoT SDK
https://lupyuen.github.io/articles/adc?11#build-the-bl602-rust-firmware
Flashing #RustLang Firmware to #BL602 with blflash ... Which is also built in Rust
https://lupyuen.github.io/articles/adc?12#flash-the-bl602-rust-firmware
Running #RustLang on #BL602 ... And turning the LED into a Light Sensor via ADC
https://lupyuen.github.io/articles/adc?15#run-the-bl602-rust-firmware
#RustLang reminds us to be Extra Careful when using C Functions and C Pointers
Why are Static Variables "unsafe" in #RustLang?
https://lupyuen.github.io/articles/adc?18#static-variables-in-rust
#RustLang Wrapper for #BL602 is auto-generated from BL602 IoT SDK
https://lupyuen.github.io/articles/adc?20#rust-wrapper-for-bl602-iot-sdk
How we generated the #RustLang Wrapper for #BL602 IoT SDK
https://lupyuen.github.io/articles/adc?22#appendix-generating-the-rust-wrapper-for-bl602-iot-sdk
#BL602 #RustLang Firmware reads the ADC Input ... Here's how it works
https://lupyuen.github.io/articles/adc?8#bl602-adc-in-rust