3 ms·
I'll admit to it being poorly worded. :) So yes, I know that small, embedded systems exist, so let me be more concrete in my questions, some of which you start
by craftsman 8y ago
I'll admit to it being poorly worded. :)
So yes, I know that small, embedded systems exist, so let me be more concrete in my questions, some of which you started to answer:
* What languages are used on these systems?
* What RTOSs would be interesting to learn?
* What processors are typically used?
* What hardware should I get to start learning?
* What organizations and companies do a lot of small embedded systems?
I think I know the answer to _some_ of these, but I'm interested to hear what you think. And thanks for the answer!
- davelnewton 8y agoLanguages: Pretty much anything, but still mostly C/C++, moving towards JS/Python for some. Once you're in JS/Python territory it's tough to call them "small" since you're looking at 0.5-1M RAM, 4M flash, etc. but relatively speaking, small. * FreeRTOS is a good place to start, but there are many, both OS and commercial. Most are similar in scope and application. Larger systems may also use Linux or Android, but that's further away from what you're looking for. * Atmel, Arm, PIC, ESP8266/ESP32 are probably the strongest current players. Procs like the Cortex M series are popular on the Arm side, Atmels are what the non-Arm-based Arduinos run, and the ESPs exploded on to the scene as a dirt-cheap way to get WiFi. * shrug Arduinos, ESPs, and RPis. There are a million other boards like the Tiny series. Adafruit has the Feather series which I like quite a bit, and the Circuit Express which is an interesting proposition, but has a Python layer, which you may or may not want. Note that almost all of these boards can be developed for in different ways: the Arduino "IDE", command-line Arduino or bare-metal, JavaScript, etc. * That you'd just have to search for--the embedded landscape is huge because almost everything has a processor in it now at some level. If it's a company that makes a physical product that does anything other than sit there, there's a processor in it. (More or less.)
- joezydeco 8y agoI'd totally recommend FreeRTOS. It's a solid operating system for small systems, the ecosystem is growing again (Amazon is putting their weight behind it and there are older experienced shops out there like Future Designs), and there are a lot of EVKs out there that will run it out of the box. Get one of the $35 NXP LPC5 boards. It's pretty nice. https://www.amazon.com/NXP-LPC54018-based-Module-Amazon-FreeRTOS/dp/B077S1Q5TV https://www.amazon.com/NXP-LPC54018-based-Module-Amazon-Free...
- matt_the_bass 8y agoIf you are looking for processors that are intellectually challenging, consider looking at Analog Devices DSPs (blackfin) and Texas Instruments (MPS430). They use mostly C/C++/asm.
- davelnewton 8y agoJust curious what makes them any more "intellectually challenging" than any other processor/processor family. I can see that flipping to a DSP might be a little different, maybe, but the MPS series is just another MCU. Thoughts?
- matt_the_bass 8y agoI meant because of the DSP functionality. Also in my (limited) experience, black fins are often used with lots of external devices, threading, processing, memory, etc so there are lots of challenges to consider. Whereas small MCUs are often just doing a few simple tasks with limited externals. There are certainly other “intellectually challenging” mcus just that these seem to be industry leaders.
- stevekemp 8y agoI started experimenting with "hardware stuff" late last year, when I had a month of paternity leave. I bought an arduio starter-kit, and the quickly moved on to using ESP8266-based devices. Both are programmed in "C++", and both are very easy to work with if you're already a programmer. Because the arduino, in particular, is aimed at beginners, you can get started by a process of almost lego-like construction. Plug some wirdes into the board, and attach the other end to a temperature-sensor. As for jobs I'm not sure, but I have posted a bunch of projects online which lead to random emails from people - one of those ended up leading to me getting paid to write some IoT code for an existing project. If you can work in the constraints of such a small device then other embedded stuff should be almost trivial. (most of the "embedded" stuff I've touched runs a complete operating system, rather than just a single program. So they're often still big. RTOS, etc, is "just" a matter of working with the OS API, and being aware of limits.)