#include "flash_blob.h"
static const uint32_t flash_code[] = {
0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
0x4770BA40, 0x4770BA40, 0x4770BA40, 0x4770BA40, 0x4770BAC0, 0x4770BAC0, 0x4770BAC0, 0x4770BAC0,
0x0030EA4F, 0x00004770, 0x0030EA4F, 0x00004770, 0x0030EA4F, 0x00004770, 0x0030EA4F, 0xB5104770,
0x46234604, 0x21082203, 0xF00006C8, 0xBD10FA2C, 0x4604B510, 0x22044623, 0x07082114, 0xFA23F000,
0x0000BD10, 0x4604B510, 0x22084623, 0x48022111, 0xFA19F000, 0x0000BD10, 0x40008890, 0x4604B510,
0x22024623, 0x4802211C, 0xFA0DF000, 0x0000BD10, 0x40008890, 0x4604B510, 0x22024623, 0x4802211E,
0xFA01F000, 0x0000BD10, 0x40008890, 0x4604B510, 0x22044623, 0x07104611, 0xF9F5F000, 0xB510BD10,
0x46234604, 0x21002202, 0xF0000750, 0xBD10F9EC, 0x20024601, 0x6F00F1B1, 0x4A02D302, 0xD9004291,
0x47702011, 0x08040000, 0x69004803, 0x0002F040, 0x61084901, 0x00004770, 0x40002000, 0x2402B570,
0xF44F2500, 0xF0000020, 0x4604F919, 0xD1222C02, 0x7581F44F, 0xF0004628, 0xF000F8BB, 0xF44FF8CD,
0xF0000020, 0x4604F90B, 0xD1152C02, 0x0020F44F, 0xF8F2F000, 0x2C024604, 0xF7FFD10B, 0xBF00FFD5,
0x69004806, 0x0040F000, 0x240CB108, 0x2402E004, 0x2404E002, 0x2404E000, 0xBD704620, 0x40002000,
0x4605B570, 0x26002402, 0xF7FF4628, 0x4604FFB1, 0xD12D2C02, 0x0020F44F, 0xF8E0F000, 0x2C024604,
0x4628D125, 0xF890F000, 0x1601F240, 0xF0004630, 0xF000F87F, 0xF44FF891, 0xF0000020, 0x4604F8CF,
0xD1152C02, 0x0020F44F, 0xF8C8F000, 0x2C024604, 0xF7FFD10B, 0xBF00FF99, 0x69004806, 0x0040F000,
0x240CB108, 0x2402E004, 0x2404E002, 0x2404E000, 0xBD704620, 0x40002000, 0x47F0E92D, 0x46884607,
0x24024615, 0x0A00F04F, 0x46382600, 0xFF70F7FF, 0x2C024604, 0xF5B5D142, 0xD9027F00, 0xE8BD2007,
0xF44F87F0, 0xF0000020, 0x4604F899, 0xD1332C02, 0xF0004638, 0x01E0F849, 0x4005EA40, 0x0A03F100,
0xF0004650, 0xF000F835, 0x2600F847, 0xF858E004, 0x60380026, 0x1C761D3F, 0xD3F842AE, 0x0020F44F,
0xF87CF000, 0x2C024604, 0xF44FD114, 0xF0000020, 0x4604F863, 0xD10B2C02, 0xFF46F7FF, 0x4809BF00,
0xF0006900, 0xB1080020, 0xE008240B, 0xE0062402, 0xE0042404, 0xE0022404, 0xE0002404, 0x46202411,
0x0000E7BD, 0x40002000, 0x68084601, 0x00004770, 0x60C84901, 0x00004770, 0x40002000, 0x60084901,
0x00004770, 0x40002000, 0x0113F3C0, 0x60914A01, 0x00004770, 0x40002000, 0x68C04803, 0x0010F040,
0x60C84901, 0x00004770, 0x40002000, 0x2502B570, 0x24002600, 0x480DBF00, 0x0FC06840, 0xE00F4606,
0xF7FF480B, 0x480BFFDB, 0xFFD8F7FF, 0xD9012C64, 0xE0072510, 0x4805BF00, 0x0FC06840, 0x1C644606,
0xD0ED2E01, 0x4628BF00, 0x0000BD70, 0x40002000, 0x00AC7811, 0x01234567, 0x20024601, 0x1E49E000,
0x4A05BF00, 0xF3C26912, 0xB90A0240, 0xD1F62900, 0x2010B901, 0x00004770, 0x40002000, 0x20024601,
0x1E49E000, 0x4A05BF00, 0xF0026912, 0xB10A0201, 0xD1F62900, 0x2010B901, 0x00004770, 0x40002000,
0x2402B510, 0xFECAF7FF, 0x2C024604, 0x2001D001, 0x2000BD10, 0xB570E7FC, 0x25024604, 0xF7FF4620,
0x4605FEEF, 0xD0012D02, 0xBD702001, 0xE7FC2000, 0x4604B570, 0x4616460D, 0x68404808, 0x0001F000,
0x2001B108, 0xF000BD70, 0xF7FFF872, 0xF44FFF8F, 0x49023080, 0x20006408, 0x0000E7F4, 0x40002000,
0x41F0E92D, 0x460C4606, 0x27024615, 0x462908A2, 0xF7FF4630, 0x4607FF01, 0xD0022F02, 0xE8BD2001,
0x200081F0, 0x0000E7FB, 0x20004601, 0x68524A06, 0x6200F042, 0x605A4B04, 0x4A03BF00, 0xF0026852,
0x28004080, 0x4770D0F9, 0x40008000, 0x4810E004, 0x60084910, 0x60084810, 0x6840480E, 0x4000F000,
0xD1F42800, 0x490B480D, 0xBF006148, 0x69404809, 0x3000F400, 0xD1F92800, 0x69404806, 0x7080F440,
0x61484904, 0x68404608, 0x4000F040, 0x47706048, 0x00AC7811, 0x40002000, 0x01234567, 0x00013062,
0x2000B510, 0xFDF4F7FF, 0xF7FF2000, 0x2002FE13, 0xFE04F7FF, 0xF7FF2060, 0x2001FDF5, 0xFFB4F7FF,
0xF7FF2000, 0x2001FE13, 0xFE19F7FF, 0xB510BD10, 0xFFBCF7FF, 0xFFE4F7FF, 0xF7FF2004, 0xBD10FDD0,
0x20004601, 0xB5704770, 0x68024614, 0x40A62601, 0xFA061E76, 0x43AAF501, 0xF601FA03, 0x4332402E,
0xBD706002, 0x00000000
};
const program_target_t flash_algo = {
0x200003B1, // Init
0x200004C1, // UnInit
0x20000381, // EraseChip
0x20000397, // EraseSector
0x200003E1, // ProgramPage
// BKPT : start of blob + 1
// RSB : address to access global/static data
// RSP : stack pointer
{
0x20000001,
0x20001000,
0x20001400
},
0x20000800, // mem buffer location
0x20000000, // location to write prog_blob in target RAM
sizeof(flash_code), // prog_blob size
flash_code, // address of prog_blob
0x00000800, // ram_to_flash_bytes_to_be_written
};