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 #include "flash_blob.h"
00018 
00019 static const uint32_t stm32l0xx_192_flash_prog_blob[] = {
00020     0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
00021     0x4603b510, 0x69804851, 0x0224240f, 0x4c4f4320, 0x484f61a0, 0x484f60e0, 0x484f60e0, 0x484f6120,
00022     0x46206120, 0x240169c0, 0x40200524, 0xd1062800, 0x4c4c484b, 0x20066020, 0x484b6060, 0x200060a0,
00023     0x4601bd10, 0x68404841, 0x43102202, 0x60504a3f, 0x68404610, 0x43102201, 0x60504a3c, 0x47702000,
00024     0x483a4601, 0x22016840, 0x43100252, 0x60504a37, 0x68404610, 0x43102208, 0x60504a34, 0x60082000,
00025     0x483ae002, 0x60104a37, 0x69804830, 0x0fc007c0, 0xd1f62800, 0x6840482d, 0x02522201, 0x4a2b4390,
00026     0x46106050, 0x22086840, 0x4a284390, 0x20006050, 0x46034770, 0x47702001, 0x4603b570, 0x303f4608,
00027     0x01890981, 0xe03b2500, 0x68404820, 0x02b62601, 0x4e1e4330, 0x46306070, 0x26086840, 0x4e1b4330,
00028     0x24406070, 0x6810e004, 0x1d1b6018, 0x1f241d12, 0xd1f82c00, 0x481de002, 0x60304e1a, 0x69804813,
00029     0x0fc007c0, 0xd1f62800, 0x69804810, 0x0236260f, 0x28004030, 0x480dd006, 0x43306980, 0x61b04e0b,
00030     0xbd702001, 0x68404809, 0x02b62601, 0x4e0743b0, 0x46306070, 0x26086840, 0x4e0443b0, 0x1c6d6070,
00031     0x42a80988, 0x2000d8c0, 0x0000e7eb, 0x40022000, 0x89abcdef, 0x02030405, 0x8c9daebf, 0x13141516,
00032     0x00005555, 0x40003000, 0x00000fff, 0x0000aaaa, 0x00000000
00033 };
00034 
00035 // Start address of flash
00036 static const uint32_t flash_start = 0x08000000;
00037 // Size of flash
00038 static const uint32_t flash_size = 0x00030000;
00039 
00040 /**
00041 * List of start and size for each size of flash sector
00042 * The size will apply to all sectors between the listed address and the next address
00043 * in the list.
00044 * The last pair in the list will have sectors starting at that address and ending
00045 * at address start + size.
00046 */
00047 static const sector_info_t sectors_info[] = {
00048     {0x08000000, 0x00000080},
00049 };
00050 
00051 static const program_target_t flash = {
00052     0x20000021, // Init
00053     0x20000063, // UnInit
00054     0x00000000, // EraseChip - NOT SUPPORTED
00055     0x20000081, // EraseSector
00056     0x200000d9, // ProgramPage
00057     0x0,        // Verify
00058     
00059     // BKPT : start of blob + 1
00060     // RSB  : blob start + header + rw data offset
00061     // RSP  : stack pointer
00062     {
00063         0x20000001,
00064         0x20000190,
00065         0x20000800
00066     },
00067 
00068     0x20000000 + 0x00000A00,  // mem buffer location
00069     0x20000000,               // location to write prog_blob in target RAM
00070     sizeof(stm32l0xx_192_flash_prog_blob),   // prog_blob size
00071     stm32l0xx_192_flash_prog_blob,           // address of prog_blob
00072     0x00000080       // ram_to_flash_bytes_to_be_written
00073 };