15

Very few general embedded systems books exist, most are specific to chip, or architecture. Very few cover overall ideas, and concepts that are common across ALL embedded systems regardless of architecture and things you must keep in mind while designing software for them.

I think this a a good book. As a primer for deep diving into embedded systems design philosophy

Comments
  • 1
    would you say this one takes one from the ground up? or general knowledge about software development would suffice?
  • 1
    @AleCx04 I would say general software knowledge could work, I don’t think it’s a ground up book... probably a good book to read after the elements of computing systems book (nand to Tetris)
  • 1
    This book is on my list already! I’m glad it’s good enough to get a recommendation. Is there anything I should be prepared for or warned about before purchasing/reading?
  • 2
    Also a technical book written by female author is very rare.
  • 0
    @Bubbles ummm let’s see, be prepared this again is not one of those copy paste tutorial books, not much code to copy paste and the little bit of code is snippets without full functions for context.

    Another thing to note, is they have a section on interrupts which is “okay” I think for an embedded systems book they could have expanded and spent more time on it. It’s about 20 or so pages, I know I could fill 100+ pages on interrupts alone. They cover a lot about interrupts but more of a cliff notes version of what I would have done.

    They brief on watchdogs again another topic I would have spent more time on, considering it’s more or less your saving grace Incase the code goes off the rails...and a lot of safety critical things that go wrong could be solved with inventive implementations of the watchdog ... almost like try catch / exception in higher languages except this is for the whole damn system.

    Also the bit about communication methods, they cover the physical portions of like spi and i2c and uart.. but don’t really go over the usecases and protocol examples and also they left out some interfaces but I guess since the market use is limited to industry I guess fine.. but still the comm chapter could go further in depth rather than a few very small sections on each.

    The other lacking portion is EEPROM specifics they briefed over from what I remember but I don’t remember any time or mention of eeprom corruption and detailing read / write / Erase cycles and how many cycles an eprom can take etc.

    I mean it’s a great book, especially for someone with lack of experience in it.. or even better anyone playing with aurduino and wants to learn more about the shit more than just implementing aurduinos libs, or understand more things about embedded this would be good.

    I also would have spent more time on registers.
  • 1
    @hardfault not only that! But an embedded systems book written in C... written by a female.. that’s like rarer than a unicorn and i don’t know if there’s another.
  • 1
    @Bubbles the other problem is the industry is lacking really good embedded books in general almost as if this corner of the industry is “gate keeping” themselves... haha
  • 1
    @QuanticoCEO so the code you create in the book is for an Arduino?

    When it comes to the embedded realm I get confused because I don’t know where to start because the books I’ve peaked at say to get X micro controller which don’t get me wrong I want to mess around with electronics and make stuff with micro controllers (although idk which one I would even use) I want to do low level stuff like drivers and I want to make my own OS for a project (mostly as a learning experience & a boost to my skills with C) and I want to mess around with assembly too because it fascinates me.

    Low level in general is just a fascinating labyrinth that I would love to explore but I can’t find a good starting place or a good idea what I need to do in general.

    This could be a rant in itself 😅 I hope I’m making sense though
  • 1
    @Bubbles no no no the code isn’t for aurdunio it’s C I think they give some specific references to an LPC chip, but it’s not significant the little bit of code is all in c. I only used aurduino as a reference for people who ONLY know embedded systems via aurduino experience thus I recommend this book for them due to them potentially getting a deeper understanding than aurduinos abstraction offers them.
  • 1
    @QuanticoCEO ah I see, I know of microcontrollers just not by name
  • 0
    @Bubbles but for you, if you want to learn embedded systems because let’s face it controlling physical hardware, wether that’s is controlling motors, leds, screens, other systems and seeing the code you wrote pulse out a signal or communication protocol and seeing the bytes go across an oscilloscope is fucken sweet. It’s probably the single biggest reason why I love embedded systems because you can physically see what your doing. Debugging isn’t just what the IDE tells you or some printF .. lol you can see it with logic probes, scopes, dmms all the tools you have at your exposure to validate what your doing. Idk to me it always felt REAL what I was doing vs when I was writing apps for iOS and android and making websites and doing all that stuff.. sure you can do a lot with those but it’s just not the same..

    Anyway what would I recommend to you.. well Recommending you to start with begalbones or aurduino or stuff like that is a double edged sword in my opinion.. yes you learn things but it gives a false sense of reality or more so false sense of confidence, because aurduino and those things abstract a lot of the important things. Most of those systems are running 32bit, which yes the industry of embedded is moving that direction but sooo much of it still is stuck in 8bit chips, without library’s and SDKs.. Where you have to write your own perf drivers to control the registers of the pwm, or hell some don’t have PWM only GPIO and you gotta Bit Bang Out the pwm signal.. OR no i2c perf.. only one UART and your using it.. the rest are GPIO.. soo you gotta bit bang a i2c ... sure these may seem extreme and rarely an issue now a days with the advances but 10-15 years ago.. wasn’t uncommon due to cost needing to bit bang things. When I say cost I mean cost when buying for manufacturing...(100k+ units) when the chip costs $3.00 that’s too expensive when customer wants to pay 15bucks for your system as a whole.. (complete manufactured)
  • 1
    @Bubbles I would recommend starting with a PIC microcontroller from Microchip (they bought Atmel).. buy a 8bit dev board.. say something in the PIC16 or PIC18 family.. like the PIC16F1619 is nice chip I don’t know if they have a dev board for it or PIC18F26K80 is a good chip. Lots of capability.. PIC12s are very small.. very little I/O. Yet capable of many things, just not something to learn without experience.

    Another chip I would recommend is from Freescale/Motorola the HC11 chip I don’t think those are in production anymore since they turned into NXP I think it’s now the H12Z set? I think? But NXP they got really good dev boards.. for many of their chips and chipsets.

    Once your good with 8bit move to 32bit ARMcores... i use NXP a lot, S32K series from nxp is good lineup, start with the corexM0+ with 116/118.. the move up to 14x series for the Arm CortexM4 ... could go with Atmel arms or ST arm chips..

    THEN when your done there move onto the advanced ArmCortex cores that’s when you can do computer vision shit and neat shit like that..
  • 1
    @QuanticoCEO I do have arduinos I was planning to mess with but I’ve always considered them like a trial of some sort, and like you said a lot of it is abstracted and if I’m gonna do low level shit I don’t want abstractions making things easier for me, i dont mind using abstractions if I know how it works under the hood and how it works without the abstraction, I JUST WANT TO LEARN!! 🤣 and some of the books you’ve recommended are great for me personally and perfect.

    (Literally just fucking put ; at the end of my sentence instead of . I’m cracking up)
  • 1
    @QuanticoCEO oh boy I’ll screen shot that recommendation for reference.
  • 2
    @Bubbles if you have zero experience with embedded not even aurduinos maybe the best book to start would be the Nand to Tetris book, no it’s not embedded but the damn thing very well could have been considering how low they go... logic gate low.

    And they do a damn good job working up from there building an instruction set then essentially throwing C on top of that understanding that book would give you step up from aurduino almost you could go straight from that book into potentially this book and a 8bit dev board and know what todo if you read the reference manual of the chip.

    By the way.. ALWAYS READ THE REFERENCE MANUAL AND DATA SHEET!!!! Of any chip you are using ALSO read the architecture book of the core you are using so you understand the principles of the design of the core aswell as the assembly instruction sets.. AND read the book on the compiler you choose to use with your chip.

    Idk how many times I’ve sat in peer reviews as a consultant and the programmer say idk what’s going on it doesn’t make sense I’m getting this weird runtime error or something weird is happening during runtime blah blah blah.. I’m like first off what flags are being asserted??... ugh idk... soo okay did you configure the registers correctly.. I think soo.. All of them? idk? Did you read the reference manual for the chipset? Noooo .. GOD DAMNIT! Get the book and read it.. should be at your side when writing code for that chip! Period.
  • 1
    @Bubbles I look at aurduino as the following great for electrical engineers who don’t want to write code and just want to get something working really quick for proof of concept... OR great for super high level folks who want todo some quick IOT project for their house with little effort .. beyond that for learning it’s not great because it ends up being an issue later in real embedded.
  • 0
    @Bubbles another area to look into is FPGAs but I wouldn’t touch those unless you understand embedded systems AND logic gates .. cypress has some nice PSOC development boards to learn on .

    If your experience is majority high level.. then don’t go that far down until you’ve spent time in the embedded world... fpgas will tho solidify your embedded understanding.. almost compliment it, because you will understand the inner workings even more. But straight to FPGAs would be too big of a jump.. lol
  • 1
    @QuanticoCEO yeah I’m definitely going to read that, I don’t mind if I’m not always working on a board, I wanna explore all of it and that book will be the biggest help.
  • 0
    @QuanticoCEO I Will keep that in mind about FPGA’s
Add Comment