mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/flash_api.c
- Committer:
- AnnaBridge
- Date:
- 2019-02-20
- Revision:
- 189:f392fc9709a3
- Parent:
- 187:0387e8f68319
File content as of revision 189:f392fc9709a3:
/* * Copyright (c) 2017-2018 ARM Limited * * Licensed under the Apache License Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing software * distributed under the License is distributed on an "AS IS" BASIS * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "device.h" #include "flash_api.h" #include "memory_zones.h" /* CM3DS is deployed on MPS2 board with an FPGA image (AN511). * It doesn't have physical flash memory,the implementation emulates * flash over SRAM. */ #define FLASH_PAGE_SIZE 256 #define FLASH_OFS_START ZBT_SSRAM1_START #define FLASH_SECTOR_SIZE 0x1000 #define FLASH_OFS_END (FLASH_OFS_START + FLASH_SIZE) int32_t flash_init(flash_t *obj) { (void)obj; return 0; } int32_t flash_free(flash_t *obj) { (void)obj; return 0; } int32_t flash_erase_sector(flash_t *obj, uint32_t address) { (void)obj; memset((void *)address, 0xff, FLASH_SECTOR_SIZE); return 0; } int32_t flash_read(flash_t *obj, uint32_t address, uint8_t *data, uint32_t size) { (void)obj; memcpy(data, (void *)address, size); return 0; } int32_t flash_program_page(flash_t *obj, uint32_t address, const uint8_t *data, uint32_t size) { (void)obj; memcpy((void *)address, data, size); return 0; } uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address) { (void)obj; if (address < FLASH_OFS_START || address >= FLASH_OFS_END) { return MBED_FLASH_INVALID_SIZE; } return FLASH_SECTOR_SIZE; } uint32_t flash_get_page_size(const flash_t *obj) { (void)obj; return FLASH_PAGE_SIZE; } uint32_t flash_get_start_address(const flash_t *obj) { (void)obj; return FLASH_OFS_START; } uint32_t flash_get_size(const flash_t *obj) { (void)obj; return FLASH_SIZE; } uint8_t flash_get_erase_value(const flash_t *obj) { (void)obj; return 0xFF; }