mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
188:bcfe06ba3d64
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 188:bcfe06ba3d64 1 /* mbed Microcontroller Library
AnnaBridge 188:bcfe06ba3d64 2 * Copyright (c) 2017 ARM Limited
AnnaBridge 188:bcfe06ba3d64 3 *
AnnaBridge 188:bcfe06ba3d64 4 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 188:bcfe06ba3d64 5 * you may not use this file except in compliance with the License.
AnnaBridge 188:bcfe06ba3d64 6 * You may obtain a copy of the License at
AnnaBridge 188:bcfe06ba3d64 7 *
AnnaBridge 188:bcfe06ba3d64 8 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 188:bcfe06ba3d64 9 *
AnnaBridge 188:bcfe06ba3d64 10 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 188:bcfe06ba3d64 11 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 188:bcfe06ba3d64 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 188:bcfe06ba3d64 13 * See the License for the specific language governing permissions and
AnnaBridge 188:bcfe06ba3d64 14 * limitations under the License.
AnnaBridge 188:bcfe06ba3d64 15 */
AnnaBridge 188:bcfe06ba3d64 16
AnnaBridge 188:bcfe06ba3d64 17 #include "device.h"
AnnaBridge 188:bcfe06ba3d64 18 #include "flash_api.h"
AnnaBridge 189:f392fc9709a3 19 #include "cy_flash.h"
AnnaBridge 188:bcfe06ba3d64 20
AnnaBridge 188:bcfe06ba3d64 21 #if DEVICE_FLASH
AnnaBridge 188:bcfe06ba3d64 22
AnnaBridge 188:bcfe06ba3d64 23 int32_t flash_init(flash_t *obj)
AnnaBridge 188:bcfe06ba3d64 24 {
AnnaBridge 188:bcfe06ba3d64 25 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 26 return 0;
AnnaBridge 188:bcfe06ba3d64 27 }
AnnaBridge 188:bcfe06ba3d64 28
AnnaBridge 188:bcfe06ba3d64 29 int32_t flash_free(flash_t *obj)
AnnaBridge 188:bcfe06ba3d64 30 {
AnnaBridge 188:bcfe06ba3d64 31 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 32 return 0;
AnnaBridge 188:bcfe06ba3d64 33 }
AnnaBridge 188:bcfe06ba3d64 34
AnnaBridge 188:bcfe06ba3d64 35 int32_t flash_erase_sector(flash_t *obj, uint32_t address)
AnnaBridge 188:bcfe06ba3d64 36 {
AnnaBridge 188:bcfe06ba3d64 37 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 38 int32_t status = 0;
AnnaBridge 188:bcfe06ba3d64 39 if (Cy_Flash_EraseRow(address) != CY_FLASH_DRV_SUCCESS) {
AnnaBridge 188:bcfe06ba3d64 40 status = -1;
AnnaBridge 188:bcfe06ba3d64 41 }
AnnaBridge 188:bcfe06ba3d64 42
AnnaBridge 188:bcfe06ba3d64 43 return status;
AnnaBridge 188:bcfe06ba3d64 44 }
AnnaBridge 188:bcfe06ba3d64 45
AnnaBridge 188:bcfe06ba3d64 46 int32_t flash_program_page(flash_t *obj, uint32_t address, const uint8_t *data, uint32_t size)
AnnaBridge 188:bcfe06ba3d64 47 {
AnnaBridge 188:bcfe06ba3d64 48 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 49 int32_t status = 0;
AnnaBridge 188:bcfe06ba3d64 50 if (Cy_Flash_ProgramRow(address, (const uint32_t *)data) != CY_FLASH_DRV_SUCCESS) {
AnnaBridge 188:bcfe06ba3d64 51 status = -1;
AnnaBridge 188:bcfe06ba3d64 52 }
AnnaBridge 188:bcfe06ba3d64 53
AnnaBridge 188:bcfe06ba3d64 54 return status;
AnnaBridge 188:bcfe06ba3d64 55 }
AnnaBridge 188:bcfe06ba3d64 56
AnnaBridge 188:bcfe06ba3d64 57 uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address)
AnnaBridge 188:bcfe06ba3d64 58 {
AnnaBridge 188:bcfe06ba3d64 59 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 60 if ((address >= CY_FLASH_BASE) && (address < CY_FLASH_BASE + CY_FLASH_SIZE)) {
AnnaBridge 188:bcfe06ba3d64 61 return CY_FLASH_SIZEOF_ROW;
AnnaBridge 188:bcfe06ba3d64 62 }
AnnaBridge 188:bcfe06ba3d64 63
AnnaBridge 188:bcfe06ba3d64 64 return MBED_FLASH_INVALID_SIZE;
AnnaBridge 188:bcfe06ba3d64 65 }
AnnaBridge 188:bcfe06ba3d64 66
AnnaBridge 188:bcfe06ba3d64 67 uint32_t flash_get_page_size(const flash_t *obj)
AnnaBridge 188:bcfe06ba3d64 68 {
AnnaBridge 188:bcfe06ba3d64 69 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 70 return CY_FLASH_SIZEOF_ROW;
AnnaBridge 188:bcfe06ba3d64 71 }
AnnaBridge 188:bcfe06ba3d64 72
AnnaBridge 188:bcfe06ba3d64 73 uint32_t flash_get_start_address(const flash_t *obj)
AnnaBridge 188:bcfe06ba3d64 74 {
AnnaBridge 188:bcfe06ba3d64 75 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 76 return CY_FLASH_BASE;
AnnaBridge 188:bcfe06ba3d64 77 }
AnnaBridge 188:bcfe06ba3d64 78
AnnaBridge 188:bcfe06ba3d64 79 uint32_t flash_get_size(const flash_t *obj)
AnnaBridge 188:bcfe06ba3d64 80 {
AnnaBridge 188:bcfe06ba3d64 81 (void)(obj);
AnnaBridge 188:bcfe06ba3d64 82 return CY_FLASH_SIZE;
AnnaBridge 188:bcfe06ba3d64 83 }
AnnaBridge 188:bcfe06ba3d64 84
AnnaBridge 189:f392fc9709a3 85 uint8_t flash_get_erase_value(const flash_t *obj)
AnnaBridge 189:f392fc9709a3 86 {
AnnaBridge 189:f392fc9709a3 87 (void)obj;
AnnaBridge 189:f392fc9709a3 88
AnnaBridge 189:f392fc9709a3 89 return 0x00;
AnnaBridge 189:f392fc9709a3 90 }
AnnaBridge 189:f392fc9709a3 91
AnnaBridge 188:bcfe06ba3d64 92 #endif // DEVICE_FLASH