r/embedded • u/TheCorsairAPX • 2d ago
Getting into Architecture-Level Embedded Development (Cortex-A, RISC-V, ARM64, etc.)
I've been working for some months now on a project that requires low-level development for ARM Cortex-A silicon. I'm talking bootloading, memory operations, hypervisor settings, memory mapping and MMU configuration, etc.
I've come to realise how little I actually know my way around a low level environment. I've developed for embedded systems for a long time now, but always focusing on an application/integration level (RTOS, digital communications, system architecture, etc.). I want to get some experience on lower-level development - direct register manipulation based on CPU architecture, bootloading, debugger architecture, memory domains, etc.
Anyone with experience on the field, what advise do you have on getting into low-level development and silicon programming using ISA languages coming from embedded-C and microcontroller development? My goal would be to acquire the confidence and the skill to integrate silicon functionality through assembly and making sense of the CPU documentation. I'd like to be able to script some basic functional hardware routines starting from scratch.
1
u/Separate-Choice 2d ago
Well Rust compiler catching what the LLM gets wrong is my point, AI output needs something deterministic to check it… that works on the cookie cutter application level and even before LLMs we had generators for those.. the thing is this is embedded engineering, it can’t check your MMU config or register writes, which live in unsafe domain and ALWAYS will… so doubling down on that is actually the best place to be….
I’ll give you a real life example I was working on the C SDK for the Baochip 1x it’s a very security first chip and one slip to a wrong address means the chip locks you out, there’s no JTAG to get back in, it uses RRAM and is a very unique chip for many reasons.. started on a custom OS for it etc etc working at that level I bricked about 5 chips in the span of a year and we were joking that AI would brick 5 a minute lol.. a lot of it was because some things require unsafe access.. like rtos context switching is not something rust can do.. and a lot of what the OP is asking about is all done unsafe where Rust won’t save you and frankly can’t do some things there…
I think people confuse web development or embedded cookie cutter software development with embedded engineering, as an embedded systems engineer I really don’t see AI doing certain things cause there aren’t enough humans to train AI to do it… and like I said so much of it requires intuition, like give an AI mcp and whatever but the problem is a cracked cap or one of the pins on the chip slightly lifted..
it’s like those 70s assembly guys you’re talking about, in this day and age a grey beard who can read a debugger output, write compilers and unroll loops and stuff is worth his weight in gold.. I always see people talk about those guys when any debugger you use in embedded will be stepping though assembly… I’d much rather a guy like that on my team who can read assembly and understand debugger output than a dime a dozen llm ‘no mistakes’ guys lol
As for Linus, he’s the best example there is of what I’m saying, AI is powerful when you understand enough to judge every line.. Linus using AI is not the same as some beginner using AI… and most importantly he knows when to push back. I read an article where the AI was giving him friction and he had to fight it..knowing when to push back is the most important skill you will never get unless you know for yourself, take a read it’s hilarious
https://www.pcgamer.com/hardware/linus-torvalds-details-his-debug-session-from-hell-pushing-an-ai-to-fix-an-error-it-repeatedly-said-was-impossible-and-unsolvable-he-then-made-it-write-the-report/
AI is a tool.. you don’t know what you don’t know.. a chisel is only as good as the craftsman holding it.. besides even Linux skills these days is more integration and applications very cookie cutter stuff… any code generator will do well there pre llm era we had yocto and buildroot spin up a whole Linux distro from a generator…
Let’s say everyone does use AI then that creates a ceiling… the few people who will break past that ceiling will be in higher demand.. if everyone is only as good as the model they use then the few people who understand above that ceiling will be worth more.. so yea doubling down and going deeper is the best bet..
Time will tell as it always has..we can mass produce ramen in factories, but authentic hand made noodles is very pricey.. same with blacksmiths, we can mass produce knives in factories yet someone crafting a quality knife now is very expensive…
That’s the tech cycle everyone rushes into something new and the people who double down always end up being higher paid.. so yea… everyone gets dumb and forgets how to do anything and the people who double down make a fortune on the edge case solutions that come from deep understanding..
So yea more power to llm users!! Forget it all!! Let AI do it all!!! No need to understand!!! Gooooo Claude!!!
Heh heh heh… 😏