Is Rust the future? As a C++ (hobby), Java (full time) developer, should I invest my time in Rust?
Raspberry Pi Bare Metal Programming with Rust
11–20 of 96 posts
Re: Raspberry Pi Bare Metal Programming with Rust
#12Is Rust the future? As a C++ (hobby), Java (full time) developer, should I invest my time in Rust?
Re: Raspberry Pi Bare Metal Programming with Rust
#13Is Rust the future? As a C++ (hobby), Java (full time) developer, should I invest my time in Rust?
Rust, Go, Java, Scala, Clojure, Javascript... (leaving out quite a few other choices for brevity). They say choice is a good thing but too much choice is actually really annoying and fragments the community across a very large number of ecosystems.
Re: Raspberry Pi Bare Metal Programming with Rust
#14Is Rust the future? As a C++ (hobby), Java (full time) developer, should I invest my time in Rust?
Re: Raspberry Pi Bare Metal Programming with Rust
#15Earlier quoted context omitted.
Rust, Go, Java, Scala, Clojure, Javascript... (leaving out quite a few other choices for brevity). They say choice is a good thing but too much choice is actually really annoying and fragments the community across a very large number of ecosystems.
I can't stand JS and Go syntax, I tried a few times... This is the worst thing that happened to humanity after in XXI century. I feel more comfortable with Prolog than with JS.
I can read Go easily enough, I haven't done any major writing in it (yet), other than some minor work on Hugo trying to help to nail down/replicate a bug. It was easy enough that I think I'd pick it up quite fast, the syntax feels 'weird' to me but that's most likely just unfamiliarity.
Re: Raspberry Pi Bare Metal Programming with Rust
#16Is Rust the future? As a C++ (hobby), Java (full time) developer, should I invest my time in Rust?
Re: Raspberry Pi Bare Metal Programming with Rust
#17I have the perfect project for this! Generate a signal using the GPIO ports to drive a mirror and camera in a synchronized fashion. Does anyone know if the RPi GPIOs can be driven at around 80KHz? I've seen reports that this is possible, but that the USB or video driver tends to lock the CPU for long times, messing with timings - but hopefully running on bare metal would take care of that.
This might be of interest: http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-...
So GPIO performance won't be a problem, but they note that OS multitasking can cause issues:
"What is not evident from the snapshots, however, is that due to multitasking nature of Linux, the GPIO manipulation is constantly interrupted for short periods when the CPU is doing something else, such as receiving or sending data over network, writing log files, etc"
Running on bare metal should take care of that, so the only remaining problem is how to synchronize the signal generation on the RPi with the recording of data on the host computer. (Sigh, if only RPi had a USB3 port...)
Re: Raspberry Pi Bare Metal Programming with Rust
#18Earlier quoted context omitted.
This might be of interest: http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-...
Excellent, thanks! So GPIO performance won't be a problem, but they note that OS multitasking can cause issues: "What is not evident from the snapshots, however, is that due to multitasking nature of Linux, the GPIO manipulation is constantly interrupted for short periods when the CPU is doing something else, such as receiving or sending data over network, writing log files, etc" Running on bare metal should take car…
Re: Raspberry Pi Bare Metal Programming with Rust
#19Earlier quoted context omitted.
Excellent, thanks! So GPIO performance won't be a problem, but they note that OS multitasking can cause issues: "What is not evident from the snapshots, however, is that due to multitasking nature of Linux, the GPIO manipulation is constantly interrupted for short periods when the CPU is doing something else, such as receiving or sending data over network, writing log files, etc" Running on bare metal should take car…
The new raspberry pi zero can be run as a device, so you could use that.
Of course that would require a Linux kernel, so not bare metal anymore, but there might be a way to make this work!
Now I just need to get my hands on one, it's out of stock everywhere within a radius of 300km...