mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
targets/TARGET_RDA/TARGET_UNO_91H/flash_api.c@189:f392fc9709a3, 2019-02-20 (annotated)
- Committer:
- AnnaBridge
- Date:
- Wed Feb 20 22:31:08 2019 +0000
- Revision:
- 189:f392fc9709a3
mbed library release version 165
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 189:f392fc9709a3 | 1 | /* mbed Microcontroller Library |
AnnaBridge | 189:f392fc9709a3 | 2 | * Copyright (c) 2018 ARM Limited |
AnnaBridge | 189:f392fc9709a3 | 3 | * |
AnnaBridge | 189:f392fc9709a3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
AnnaBridge | 189:f392fc9709a3 | 5 | * you may not use this file except in compliance with the License. |
AnnaBridge | 189:f392fc9709a3 | 6 | * You may obtain a copy of the License at |
AnnaBridge | 189:f392fc9709a3 | 7 | * |
AnnaBridge | 189:f392fc9709a3 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
AnnaBridge | 189:f392fc9709a3 | 9 | * |
AnnaBridge | 189:f392fc9709a3 | 10 | * Unless required by applicable law or agreed to in writing, software |
AnnaBridge | 189:f392fc9709a3 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
AnnaBridge | 189:f392fc9709a3 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
AnnaBridge | 189:f392fc9709a3 | 13 | * See the License for the specific language governing permissions and |
AnnaBridge | 189:f392fc9709a3 | 14 | * limitations under the License. |
AnnaBridge | 189:f392fc9709a3 | 15 | */ |
AnnaBridge | 189:f392fc9709a3 | 16 | |
AnnaBridge | 189:f392fc9709a3 | 17 | #include "flash_api.h" |
AnnaBridge | 189:f392fc9709a3 | 18 | #include "flash_data.h" |
AnnaBridge | 189:f392fc9709a3 | 19 | #include "mbed_critical.h" |
AnnaBridge | 189:f392fc9709a3 | 20 | |
AnnaBridge | 189:f392fc9709a3 | 21 | // This file is automagically generated |
AnnaBridge | 189:f392fc9709a3 | 22 | |
AnnaBridge | 189:f392fc9709a3 | 23 | // This is a flash algo binary blob. It is PIC (position independent code) that should be stored in RAM |
AnnaBridge | 189:f392fc9709a3 | 24 | static uint32_t FLASH_ALGO[] = { |
AnnaBridge | 189:f392fc9709a3 | 25 | 0x4df0e92d, 0x4180f04f, 0x68082400, 0xea322203, 0xbf1c62d0, 0x50c0f040, 0x49cc6008, 0xf0106808, |
AnnaBridge | 189:f392fc9709a3 | 26 | 0xd1100f40, 0x00c0f040, 0x03086008, 0x68486088, 0x0001f040, 0x20006048, 0x28081c40, 0x6848d3fc, |
AnnaBridge | 189:f392fc9709a3 | 27 | 0x0f01f010, 0x4dc2d1fb, 0x0835f04f, 0x8000f8c5, 0x1c402000, 0xd3fc2808, 0xf01068e8, 0xd1fb0f01, |
AnnaBridge | 189:f392fc9709a3 | 28 | 0xf0106928, 0xd17b0f02, 0x6c704eba, 0x007cf420, 0x1010f440, 0x68b06470, 0x2040f440, 0x209f60b0, |
AnnaBridge | 189:f392fc9709a3 | 29 | 0x20006028, 0x28081c40, 0x68e8d3fc, 0x0f01f010, 0x6928d1fb, 0x69286929, 0x2102b2ca, 0xf04f2705, |
AnnaBridge | 189:f392fc9709a3 | 30 | 0xf04f0a00, 0x2a400b01, 0xb2c0d123, 0xd9202815, 0xf36f6868, 0xf4402010, 0x60687080, 0xf00060a9, |
AnnaBridge | 189:f392fc9709a3 | 31 | 0x2031f92b, 0x20006028, 0x28081c40, 0x68e8d3fc, 0x0f01f010, 0x602fd1fb, 0x1c402000, 0xd3fc2808, |
AnnaBridge | 189:f392fc9709a3 | 32 | 0xf01068e8, 0xd1fb0f01, 0xf0106928, 0xd1f20f01, 0x6868e021, 0x2010f36f, 0x7000f440, 0xf8c56068, |
AnnaBridge | 189:f392fc9709a3 | 33 | 0x60a9a008, 0xf908f000, 0xb000f8c5, 0x1c402000, 0xd3fc2808, 0xf01068e8, 0xd1fb0f01, 0x2000602f, |
AnnaBridge | 189:f392fc9709a3 | 34 | 0x28081c40, 0x68e8d3fc, 0x0f01f010, 0x6928d1fb, 0x0f01f010, 0x4a88d1f2, 0x444a2100, 0x8000f8c5, |
AnnaBridge | 189:f392fc9709a3 | 35 | 0x1c402000, 0xd3fc2808, 0xf01068e8, 0xd1fb0f01, 0x1c496928, 0x6f80f5b1, 0x2401d303, 0xa000f882, |
AnnaBridge | 189:f392fc9709a3 | 36 | 0xf010e00d, 0xd0e90f02, 0x6968b94c, 0x0001f040, 0x6c706168, 0x00d8f440, 0xf8826470, 0x4620b000, |
AnnaBridge | 189:f392fc9709a3 | 37 | 0x8df0e8bd, 0x47702000, 0x47702000, 0xf000b510, 0x496ff8c3, 0x60082060, 0x1c402000, 0xd3fc2808, |
AnnaBridge | 189:f392fc9709a3 | 38 | 0xf01068c8, 0xd1fb0f01, 0x600a2205, 0x1c402000, 0xd3fc2808, 0xf01068c8, 0xd1fb0f01, 0xf0106908, |
AnnaBridge | 189:f392fc9709a3 | 39 | 0xd1f20f01, 0x68484961, 0x0001f040, 0x20006048, 0x28081c40, 0x6848d3fc, 0x0001f010, 0xbd10d1fb, |
AnnaBridge | 189:f392fc9709a3 | 40 | 0x4604b510, 0xf898f000, 0x20204959, 0x2004ea40, 0x20006008, 0x28081c40, 0x68c8d3fc, 0x0f01f010, |
AnnaBridge | 189:f392fc9709a3 | 41 | 0x2205d1fb, 0x2000600a, 0x28081c40, 0x68c8d3fc, 0x0f01f010, 0x6908d1fb, 0x0f01f010, 0x494bd1f2, |
AnnaBridge | 189:f392fc9709a3 | 42 | 0xf0406848, 0x60480001, 0x1c402000, 0xd3fc2808, 0xf0106848, 0xd1fb0001, 0xe92dbd10, 0xf02005f0, |
AnnaBridge | 189:f392fc9709a3 | 43 | 0x4845437c, 0x78004448, 0xbf142800, 0x24022432, 0x2c11ea5f, 0x68684d3e, 0x2010f36f, 0x3080f440, |
AnnaBridge | 189:f392fc9709a3 | 44 | 0xf04f6068, 0xbf1c0100, 0x26052706, 0xf04fd042, 0x20000800, 0xa000f812, 0xa008f8c5, 0x28041c40, |
AnnaBridge | 189:f392fc9709a3 | 45 | 0x1d12dbf8, 0x0801f108, 0x0f40f1b8, 0x602fdbf1, 0x1c402000, 0xd3fc2808, 0xf01068e8, 0xd1fb0f01, |
AnnaBridge | 189:f392fc9709a3 | 46 | 0x2000602e, 0x28081c40, 0x68e8d3fc, 0x0f01f010, 0x6928d1fb, 0x0f02f010, 0xea44d0f2, 0x60282003, |
AnnaBridge | 189:f392fc9709a3 | 47 | 0xf5032000, 0x1c407380, 0xd3fc2808, 0xf01068e8, 0xd1fb0f01, 0x2000602e, 0x28081c40, 0x68e8d3fc, |
AnnaBridge | 189:f392fc9709a3 | 48 | 0x0f01f010, 0x6928d1fb, 0x0f01f010, 0x1c49d1f2, 0xd3bc4561, 0x68484915, 0x0001f040, 0x20006048, |
AnnaBridge | 189:f392fc9709a3 | 49 | 0x28081c40, 0x6848d3fc, 0x0001f010, 0xe8bdd1fb, 0x477005f0, 0x47704408, 0x2006490d, 0x20006008, |
AnnaBridge | 189:f392fc9709a3 | 50 | 0x28081c40, 0x68c8d3fc, 0x0f01f010, 0x2205d1fb, 0x2000600a, 0x28081c40, 0x68c8d3fc, 0x0f01f010, |
AnnaBridge | 189:f392fc9709a3 | 51 | 0x6908d1fb, 0x0f02f010, 0x4770d0f2, 0x40014000, 0x17fff000, 0x40001000, 0x00000004, 0x00000000, |
AnnaBridge | 189:f392fc9709a3 | 52 | 0x00000000 |
AnnaBridge | 189:f392fc9709a3 | 53 | }; |
AnnaBridge | 189:f392fc9709a3 | 54 | |
AnnaBridge | 189:f392fc9709a3 | 55 | static const flash_algo_t flash_algo_config = { |
AnnaBridge | 189:f392fc9709a3 | 56 | .init = 0x1, |
AnnaBridge | 189:f392fc9709a3 | 57 | .uninit = 0x185, |
AnnaBridge | 189:f392fc9709a3 | 58 | .erase_sector = 0x1e1, |
AnnaBridge | 189:f392fc9709a3 | 59 | .program_page = 0x23b, |
AnnaBridge | 189:f392fc9709a3 | 60 | .static_base = 0x35c, |
AnnaBridge | 189:f392fc9709a3 | 61 | .algo_blob = FLASH_ALGO |
AnnaBridge | 189:f392fc9709a3 | 62 | }; |
AnnaBridge | 189:f392fc9709a3 | 63 | |
AnnaBridge | 189:f392fc9709a3 | 64 | static const sector_info_t sectors_info[] = { |
AnnaBridge | 189:f392fc9709a3 | 65 | {0x18000000, 0x1000}, |
AnnaBridge | 189:f392fc9709a3 | 66 | }; |
AnnaBridge | 189:f392fc9709a3 | 67 | |
AnnaBridge | 189:f392fc9709a3 | 68 | static const flash_target_config_t flash_target_config = { |
AnnaBridge | 189:f392fc9709a3 | 69 | .page_size = 0x100, |
AnnaBridge | 189:f392fc9709a3 | 70 | .flash_start = 0x18000000, |
AnnaBridge | 189:f392fc9709a3 | 71 | .flash_size = 0x100000, |
AnnaBridge | 189:f392fc9709a3 | 72 | .sectors = sectors_info, |
AnnaBridge | 189:f392fc9709a3 | 73 | .sector_info_count = sizeof(sectors_info) / sizeof(sector_info_t) |
AnnaBridge | 189:f392fc9709a3 | 74 | }; |
AnnaBridge | 189:f392fc9709a3 | 75 | |
AnnaBridge | 189:f392fc9709a3 | 76 | void flash_set_target_config(flash_t *obj) |
AnnaBridge | 189:f392fc9709a3 | 77 | { |
AnnaBridge | 189:f392fc9709a3 | 78 | obj->flash_algo = &flash_algo_config; |
AnnaBridge | 189:f392fc9709a3 | 79 | obj->target_config = &flash_target_config; |
AnnaBridge | 189:f392fc9709a3 | 80 | } |