• ericjmorey
    link
    fedilink
    arrow-up
    12
    ·
    23 hours ago

    Embedded software development has dramatically advanced over the past decade. What does that mean for bare-metal programming?

    At a Glance

    • Bare-metal programming is an essential skill as it enables you to understand what your system is doing at the lowest levels.
    • Even if you spend your days working with abstraction layers, bare-metal programming will guide you should abstractions fail.
    • And bare-metal skills can provide a solid foundation for troubleshooting and debugging.
    • SpaceNoodle@lemmy.world
      link
      fedilink
      arrow-up
      10
      ·
      21 hours ago

      Akshully, there are more levels below the machine code, with the mind-boggling complexity of modern CPUs and SoCs - but that doesn’t diminish the value of understanding it.

        • SpaceNoodle@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          18 hours ago

          That’s why I said “modern.” You know exactly what’s happening on a MOS 6502, for example, but when your top-of-the-line ARM SoC starts throwing bus faults because a CRC function returned a value that looked like a pointer to restricted SRAM …

  • bitcrafter
    link
    fedilink
    arrow-up
    2
    ·
    19 hours ago

    Boy does it seem like this author is trying to push something. I wonder if…

    To learn more, attend my upcoming CEC course January 27-31: Expert C Techniques to Master Bare-Metal Programming. You’ll discover how to master one of C’s most powerful tools—function pointers—and use them to design flexible, efficient systems. From building cooperative schedulers and command parsers to creating configurable, reusable code, you’ll gain hands-on insights that can transform your approach to embedded programming.

    …yep, sounds about right.

    • Scrath@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      1
      ·
      1 hour ago

      Aren’t function pointers against the MISRA standard?

      I’m not saying they are bad because they can be really useful but when it comes to writing safe code I believe their usage is heavily discouraged