2
owithg
3y

Alright, what the fuck is embedded systems and how does it differ from regular programming? I am not getting jobs because I know the languages requested, but I don't know embedded systems. How do I learn it? Get a Raspberry pi?

Comments
  • 2
    Embedded systems is basically everything microcontroller.

    And no... i'm not talking rasp and arduino only ...

    I mean all the good stuff programmed in hardware languages like assembler, vdhl, maybe c and so on...
  • 2
    Learn how memory works and what types there are (volatile and non)...

    Learn processor architecture...

    Try programming on a good old 8051 or something like that... perfect for beginners...
  • 1
    @Andi to add to that, an arduino is a microcontroller and programmed in c - with a board around it, just makes things like using the pins and programming it easier, since it already has everything on it.
  • 2
    @JoshBent True that but I wouldn't say that I know how to work with embedded systems just because I can operate on an arduino.
  • 1
    @Andi companies nowadays call anything embedded software, so could a visual basic program running on cashier winCE env. also be called embedded development. Just need to look for what specs they are actually asking.

    And depending on how much you know about the "Arduino", it can actually be mentionable, since its really just the atmega strapped on for easier use.

    Also I think @FrodoSwaggins knows a lot about it iirc, so I'll tag him.
  • 1
    @JoshBent Interesting. For me this topic always was this very specific thing I learned about in school.

    ...probably a really limited point of view.
  • 6
    Embedded systems doesn’t always mean ‘micro controller’ it just means something about the software you write. When I imagine embedded software I think about a platform that has to perform a task, be it logic, dsp, etc. I think of embedded software in terms of what it is /not/

    Embedded software is not a GUI application, isn’t really a user utility. It /is/ probably software performs a set of tasks repeatedly until the system powers off or it crashes, responds to input, and/or tells somebody what the output is, or simply controls how one set of hardware responds to changes in another set of hardware.

    Embedded software is a terrible fit for anyone who primarily works in web development, probably even backend, and any frontend work.

    Good examples of embedded software are an IOT device, because it idles and responds to io with different io, or I would say an os kernel counts, because it is persistent software that controls io based on other io.

    Struggling to define it but you get the idea.
  • 0
    @FrodoSwaggins so is an API similar in concept? It waits for input then reacts. Or is it less like that, as the API does not maintain a state.

    I guess to clarify my question, does it maintain a state between inputs? Is that a requirement?
  • 1
    @Andi wow 8051 blast from my past 20 years ago.
  • 1
    @owithg i would say what makes embedded software embedded is irrespective of whether it is a library (API) an application or a real mode kernel. What matters is the application.

    Web APIs are certainly APIs but I don’t think I would call them embedded development, but they aren’t the furthest thing from it either. I think a web server is somewhat related to an embedded application. Trying to decide whether libraries count as embedded software is like trying to decide if computers are digital or electronic. It just doesn’t make much sense. I could use a screwdriver as a tool or a weapon, even if it was clearly meant to be one of those.

    Really there is no single defining characteristic. That’s why it makes more sense to think of it in terms of what it is not. Embedded software is absolutely not doing html and css, and it is absolutely not writing a qt application. Even then you never know. There might be a time and a place.

    In my work in embedded software, I’ve found there’s a ton of overlap. On some level programming is programming, but if the employer calls it an embedded programming position, it is definitely hinting that some patterns in the code are going to be much more prevalent, how you manage resources, what hoops you’re willing to go through to have computing provisions available, what challenges, etc.
  • 0
    FWIW I work with embedded systems but they are PLCs.
  • 0
    I know you asked this for work stuff, but thanks for asking it, because my search for "what the fuck is an embedded operating system" returned your rant, and now I can have somewhere to start to answer this damn question on my final.
Add Comment