Arrow / Mbed OS DAPLink Reset
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers flash_blob.c Source File

flash_blob.c

00001 /* Flash OS Routines (Automagically Generated)
00002  * Copyright (c) 2009-2019 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 static const uint32_t STM32F429ZI_flash_prog_blob[] = {
00018     0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
00019     0x03004601, 0x28200e00, 0x0940d302, 0xe0051d00, 0xd3022810, 0x1cc00900, 0x0880e000, 0xd50102c9,
00020     0x43082110, 0x48464770, 0x60414944, 0x60414945, 0x60012100, 0x22f068c1, 0x60c14311, 0x06806940,
00021     0x4842d406, 0x60014940, 0x60412106, 0x60814940, 0x47702000, 0x6901483a, 0x43110542, 0x20006101,
00022     0xb5304770, 0x69014836, 0x43212404, 0x69016101, 0x43290365, 0x69016101, 0x431103a2, 0x49356101,
00023     0xe0004a32, 0x68c36011, 0xd4fb03db, 0x43a16901, 0x69016101, 0x610143a9, 0xbd302000, 0xf7ffb530,
00024     0x4927ffaf, 0x23f068ca, 0x60ca431a, 0x610c2402, 0x06c0690a, 0x43020e00, 0x6908610a, 0x431003e2,
00025     0x48246108, 0xe0004a21, 0x68cd6010, 0xd4fb03ed, 0x43a06908, 0x68c86108, 0x0f000600, 0x68c8d003,
00026     0x60c84318, 0xbd302001, 0x4d15b570, 0x08891cc9, 0x008968eb, 0x433326f0, 0x230060eb, 0x4b16612b,
00027     0x692ce017, 0x612c431c, 0x60046814, 0x03e468ec, 0x692cd4fc, 0x00640864, 0x68ec612c, 0x0f240624,
00028     0x68e8d004, 0x60e84330, 0xbd702001, 0x1d121d00, 0x29001f09, 0x2000d1e5, 0x0000bd70, 0x45670123,
00029     0x40023c00, 0xcdef89ab, 0x00005555, 0x40003000, 0x00000fff, 0x0000aaaa, 0x00000201, 0x00000000
00030 };
00031 
00032 /**
00033  * @brief List of start and size for each size of flash sector.
00034  *
00035  * Even indexes are start, odd are size. The size will apply to all sectors between the listed
00036  * address and the next address in the list. The last pair in the list will have sectors starting
00037  * at that address and ending at address flash_start + flash_size.
00038 */
00039 static const sector_info_t sectors_info[] = {
00040     { 0x08000000, 0x00004000 }, // 4 x 16KB
00041     { 0x08010000, 0x00010000 }, // 1 x 64KB
00042     { 0x08020000, 0x00020000 }, // 7 x 128KB
00043 };
00044 
00045 static const program_target_t flash = {
00046     0x20000047, // Init
00047     0x20000075, // UnInit
00048     0x20000083, // EraseChip
00049     0x200000bd, // EraseSector
00050     0x20000109, // ProgramPage
00051     0x0,        // Verify
00052     
00053     // BKPT : start of blob + 1
00054     // RSB  : blob start + header + rw data offset
00055     // RSP  : stack pointer
00056     {
00057         0x20000001,
00058         0x2000017c,
00059         0x20000800
00060     },
00061 
00062     0x20000000 + 0x00000A00,  // mem buffer location
00063     0x20000000,               // location to write prog_blob in target RAM
00064     sizeof(STM32F429ZI_flash_prog_blob),   // prog_blob size
00065     STM32F429ZI_flash_prog_blob,           // address of prog_blob
00066     0x00000400       // ram_to_flash_bytes_to_be_written
00067 };