nrf-hal
zephyr
nrf-hal | zephyr | |
---|---|---|
5 | 59 | |
516 | 11,189 | |
1.7% | 2.2% | |
8.6 | 10.0 | |
about 2 months ago | 6 days ago | |
Rust | C | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nrf-hal
-
Rust newcomers are 70x less likely to create vulnerabilities than C++ newcomers [pdf]
You should try again. I think that code is verbose because of the borrowing and because you're trying to do a one-liner. I use the nrf-hal library with the nrf52840, and the code reads pretty nicely. Here's an example:
https://github.com/nrf-rs/nrf-hal/blob/master/examples/blink...
-
Any good examples of using embedded Rust with an existing embedded C codebase?
Reading nrf-hal source, unfortunately new does re-configure the UARTE, and there is not a new_unchecked. The solution I can think of is to duplicate the write code with nrf52833_hal::pac::UARTE0. The Uarte type does not contain any metadata, it exists purely to guard the init of UARTE.
- Rust on the MOS 6502: Beyond Fibonacci
-
First steps with Embedded Rust: Selecting a board
Really good. Check out the examples in the nrf-hal repo. Also, if you don't mind forking out for some extra components the Knurling sessions by Ferrous Systems are ace.
-
I rewrote my Rust keyboard firmware in Zig: consistency, mastery, and fun
The embedded HAL crates do this with extensive use of macros, for example: https://github.com/nrf-rs/nrf-hal/blob/aae17943efc24baffe30b...
This solution makes sense given the constraints of Rust, but there's quite a cost in terms of compiler time and cognitive overhead to understand what is going on.
(Aside: I didn't use the HAL in my Rust firmware, that's a higher layer of abstraction; I only used the PAC crates.)
zephyr
-
Moving to a RTOS on the RP2040
the pi pico is 100% supported in Zephyr. https://github.com/zephyrproject-rtos/zephyr/tree/main/board... Did the author not check the docs? https://docs.zephyrproject.org/latest/boards/raspberrypi/rpi...
-
Broadcast Audio URI
In the Zephyr repo, there is a Broadcast Audio Source sample that was used as a starting point.
-
Ask HN: Anyone Waiting on BT Auracast?
Hey folks. Anyone out there waiting for BT Auracast? It was announced June 2022, and immediately struck me as must have.
I lost my earbuds, but it seems ridiculous to get a replacement without Auracast, seems like surely if I'm going to make a decent sized purchase like that it needs to support group playing. I want to tune into the radios of other people on the metro or on the bus, want to be able to watch a movie on the plane with someone.
Auracast was announced in June 2022. Anyone else out there struggling with expectations here? I'm really hoping the product announcement season that's right around the corner had a good number of Auracast announcements.
Side note, a ton of it is over my head but it's been so so fun tuning in every once and again to see how Zephyr's Bluetooth Audio work is going. Just wild now much has gone into this! https://github.com/zephyrproject-rtos/zephyr/commits/main/subsys/bluetooth/audio
-
VisionFive 2 ROM addresses for Zephyr RTOS
I am working on adding support for VisionFive 2 in Zephyr RTOS. I have created a device tree by referencing the starfive linux, patches of hifive_unmatched FU740 SoC and patches of BeagleV Starlight.
-
Adding support for visionfive2 in zephyr rtos
We are unsure on how to proceed further with this error. We have opened a github discussion regarding the same issue.
- Zephyr (small footprint realtime OS) supported boards
-
Learning to write device drivers using C/C++ in Zephyr OS
Then there are samples. Look through it for anything useful. RC522 uses SPI, so getting that to work would be a good first step.
-
Building with cmake can't find cross-compile objcopy
Hey, I've been trying to build an app with cmake+ninja instead of west to integrate it into a larger build system and everything works correctly except for the final stage where it uses `/usr/bin/llvm-objcopy` instead of the `${CROSS_COMPILE}` one it tries to find here.
-
Arduino Joins Zephyr Project
Zephyr has a lot of good points, but I really wish it didn't use Kconfig. Getting a working config seems to be mostly a matter of copying an already working example. It might be okay for hardware side of things, but it's a really bad at software/feature dependency.
Set https://docs.zephyrproject.org/latest/build/kconfig/tips.htm... and the issue: https://github.com/zephyrproject-rtos/zephyr/issues/52575. And don't even get me started on trying anything to group options together.
- Zephyr 3.4 is out!
What are some alternatives?
embassy - Modern embedded framework, using Rust and async.
FreeRTOS-Kernel - FreeRTOS kernel files only, submoduled into https://github.com/FreeRTOS/FreeRTOS and various other repos.
ziglings - Learn the Zig programming language by fixing tiny broken programs.
mbed-os - Arm Mbed OS is a platform operating system designed for the internet of things
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
RIOT - RIOT - The friendly OS for IoT
drogue-device - A distribution of tools and examples for building embedded IoT applications in Rust
nuttx - Apache NuttX is a mature, real-time embedded operating system (RTOS)
nrf-softdevice
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
riscv-rust-quickstart - A template for building Rust applications for HiFive1 boards
mongoose-os - Mongoose OS - an IoT Firmware Development Framework. Supported microcontrollers: ESP32, ESP8266, CC3220, CC3200, STM32F4, STM32L4, STM32F7. Amazon AWS IoT, Microsoft Azure, Google IoT Core integrated. Code in C or JavaScript.