Skip to content

Flash algo header data: 0xE00ABE00, 0x062D780D, 0x24084068, … #1252

Answered by flit
jhembed asked this question in Q&A
Discussion options

You must be logged in to vote

Hi there. This header has been present since the first commits of pyocd, and nobody really knows where it came from (the original pyocd author was no longer available to ask). It's one of those things where I wasn't completely comfortable removing because it might be performing some magic that's necessary. 😄

The header has two parts:

  1. A bkpt instruction used to halt the CPU after the flash algo runs. This is obvious and required. LR is set to the address of this instruction when a flash algo entry point is invoked, so that function call returns to the bkpt.
  2. Everything else…

A few years ago I disassembled then decompiled the header by hand to try and understand it.

Here's the disassembly,…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@jhembed
Comment options

Answer selected by jhembed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants
Converted from issue

This discussion was converted from issue #1246 on November 29, 2021 14:28.