# How to build dependable bare-metal ARM firmware with UNIX tools

DevFeed: [How to build dependable bare-metal ARM firmware with UNIX tools](<https://devfeed.tech/articles/how-to-build-dependable-bare-metal-arm-firmware-with-unix-tools-21493.md>)

Original publisher: [Read original article](<https://begriffs.com/posts/2023-10-10-bare-metal-firmware.html>)

Published: 2023-10-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Joe Nelson](<https://devfeed.tech/sources/joe-nelson.md>)

Topics: [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Arm](<https://devfeed.tech/topics/arm.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming](<https://devfeed.tech/tags/programming.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>)

## AI overview

A guide to building dependable bare-metal ARM firmware with open source Unix tools. It covers embedded development practices, toolchains, boot-up sequences, memory allocation, RTOS and non-RTOS programs, fault handling, remote debugging, and building and flashing firmware through several versions of a simple blinky project.

## Source excerpt

2023-10-10 For software developers, the world of hardware and firmware can be an exciting change. Firmware catapults your logic into the physical world. Rather than moving text between forms and a database, you can move motors. Rather than listening for an API call, you can listen for SONAR or GPS signals. This is the guide I wish I had when first starting embedded development. It cultivates professional embedded programming habits from the start.