[HN Gopher] How to write a bootloader from scratch (2019) ___________________________________________________________________ How to write a bootloader from scratch (2019) Author : arkj Score : 90 points Date : 2022-10-27 17:17 UTC (5 hours ago) (HTM) web link (interrupt.memfault.com) (TXT) w3m dump (interrupt.memfault.com) | Koshkin wrote: | (For a Cortex-M based microcontroller) | fra wrote: | Yes, an important qualifier! In practice the vast majority of | embedded projects out there are on cortex M, with a bit of | xtensa (ESP32) and a bit of RISC-V. | chinabot wrote: | and 32-Bit microprocessors are still only about 1/3 of total | microprocessors by volume (source | https://www.ednasia.com/8-bit-mcu-still-alive-and-kicking/) | kaycebasques wrote: | (n00b q) are there big differences for Cortex-A and Cortex-M | bootloaders? Any helpful tutorials for Cortex-A if so? | auxym wrote: | Cortex-A appears to be way more vendor-implementation | dependent. For example, I remember reading that the Raspberry | Pi SoC, which uses a Cortex-A72 core, actually boots off its | GPU. | megous wrote: | Yes. DRAM initiazization, MMU, exception levels, trusted- | firmware, initialization of specialized coprocessors for | system power states management, more complicated storage | access options (SD card/eMMC), etc. etc. | sbf501 wrote: | Most of those aren't Cortex-A specific, you've just listed | mostly peripherals that are typically initialized in the | application space (except for a secure boot). | | E.g. you aren't going to go into power savings mode during | boot, nor are you going to initialize peripherals (because | their contexts will be lost once you jump to the | application). | | Initializing assymetric processors can be done in | application space with a variety of tools (AMP) as well. I | haven't seen a need to initialize them during bootloader1 | phase, but there are lot of use cases. | dang wrote: | Related: | | _From zero to main(): How to write a bootloader from scratch_ - | https://news.ycombinator.com/item?id=24635383 - Sept 2020 (44 | comments) | hra5th wrote: | For Cortex-M embedded topics, memfault's blog is simply one of | the best out there. Consistently great posts even though they are | written by a bunch of different authors. I go back to | https://interrupt.memfault.com/blog/cortex-m-fault-debug all the | time when debugging hard faults on different systems. | | Even if you regularly write embedded code for Cortex-M MCUs, | scroll through their list of posts and you'll find several that | will teach you something new and useful. | RealityVoid wrote: | I'm a bit jealous of the fact they have such good blog posts. I | did a deep dive on a couple of different architectures and | always wanted to write something so nice and useful for other | people with the stuff I know. | kaycebasques wrote: | The CMSIS-DAP adapter referenced in the tutorial is discontinued. | Can one of you hardware pros point me to a suitable replacement? | | Also asked the author here: | https://mobile.twitter.com/kaycebasques/status/1585708384531... | zwirbl wrote: | I'm using https://github.com/probe-rs/hs-probe most of the | time, sometimes I get out a jlink | fra wrote: | Author here. It's surprising how hard CMSIS-DAP adapters are to | find. The two options shared by codys look reasonable, but I'm | working on putting together a better option. | codys wrote: | Other CMSIS-DAP compatible probes: | | - https://makerdiary.com/products/pitaya-link | | - https://www.l-tek.com/web-shop/cmsis-dap-debug-probe/ ___________________________________________________________________ (page generated 2022-10-27 23:00 UTC)