Discover and read the best of Twitter Threads about #embedded

Most recents (4)

So here's an opinion thread that should probably be a blog post:

If you're building an embedded system: you probably DON'T need an RTOS. In fact, I think using one is usually an anti-pattern. At least, when using #embedded @rustlang.

Yes, even for hard real-time systems.

One of the first things I see people asking when moving from C to @rustembedded is "what RTOS can I use in Rust"?

I think this is the XY problem: people ask/reach for an RTOS because that was the only thing that made sense for any reasonably complex system in C!


Building embedded systems in C from scratch means basically no "batteries included". This includes no standard:

* build system
* package manager
* docs tooling
* reusable libraries/components
* safe concurrency primitives

Read 18 tweets
The fastest formatter does no formatting at all!

I have created a #rustlang formatter for debugging #embedded apps (logs!) that's ~10 (? hard to quantify) times faster than the standard library's `fmt` module and uses way less bytes of `.text` / `.rodata` (and "bandwidth")

Here I "format" a timestamp and an `f32` value on a 64 MHz ARM CPU w/ FPU disabled in 6us. The formatted string is printed on the host (right)

`core::fmt`-ing the same thing (w/o a xfer) takes 57us. I must say `core`'s float formatting is v good but (still) uses 1KB of stack

My formatter binary encodes the format string + arguments and sends them to the host; the host does the actual formatting

Unlike bin serialization crates there's no need to compile any crate for the host to make formatting work (IOW there's no `Deserialize` trait here)

Read 6 tweets
A thread on #cpp #state_machine #software_design.

Random ideas around writing an FSM library, with examples from, and motivations behind, a header-only library created using #cpp template #metaprogramming with #gamedev, #embedded and #robotics in mind.
*Reuse vs reimplement*

State machines can be deceptively complex, and, unless a trivial one is needed, a reusable framework is highly recommended.

Rolling out one's own for special needs is ok.

Otherwise - pick from a variety of existing solutions from #boost, on #github, etc.
*Static vs dynamic structure*

The first important decision is whether the structure of FSM could be built/changed at runtime.

The implementation of a dynamic FSM relies on heap-allocated memory, resizable containers and pointers, all of which come at a steep perf price.
Read 22 tweets
1) @realDonaldTrump @WhiteHouse @POTUS
#QAnon drop No. 2919...
Repost of bottom 2/3 of 1668. #Nunes notes the unofficial sharing of intel by #FVEY's nations. [#Illegally!] Welcome 2the #DS!
Link 2 @GeorgePapa19 #Tweet on #Clapper's recent silence.
2) #QAnon drop No. 2920...
Stacked drop, last over a repost of #Q 1164.
This is an explanation of how #FVEY was used to circumvent data collection laws. Also, how #Hussein, #HRC, #LL,Brennan & #Clapper met in a #SCIF 2plan their #SurveillanceOp & #CoupAttempt.
3) #QAnon drop No. 2921...
#Q drops a repost of No. 1828.
This drop is a heavy data set & the next tweet in this thread will be of a decode graphic of No. 1828...
Read 56 tweets

Related hashtags

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!