Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MinimouseSrc/ApiFlash.h@1:eda561b01daf, 2017-12-18 (annotated)
- Committer:
- fholin
- Date:
- Mon Dec 18 16:31:11 2017 +0000
- Revision:
- 1:eda561b01daf
- Parent:
- 0:2325d1d28df3
inline with github repository : ; https://github.com/LoRaWanMiniMouse/Mini-Mouse.git
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fholin | 0:2325d1d28df3 | 1 | /* |
fholin | 0:2325d1d28df3 | 2 | |
fholin | 0:2325d1d28df3 | 3 | __ __ _ _ |
fholin | 0:2325d1d28df3 | 4 | | \/ (_) (_) |
fholin | 0:2325d1d28df3 | 5 | | \ / |_ _ __ _ _ __ ___ ___ _ _ ___ ___ |
fholin | 0:2325d1d28df3 | 6 | | |\/| | | '_ \| | '_ ` _ \ / _ \| | | / __|/ _ \ |
fholin | 0:2325d1d28df3 | 7 | | | | | | | | | | | | | | | (_) | |_| \__ \ __/ |
fholin | 0:2325d1d28df3 | 8 | |_| |_|_|_| |_|_|_| |_| |_|\___/ \__,_|___/\___| |
fholin | 0:2325d1d28df3 | 9 | |
fholin | 0:2325d1d28df3 | 10 | |
fholin | 0:2325d1d28df3 | 11 | Description : Flash Api. |
fholin | 0:2325d1d28df3 | 12 | |
fholin | 0:2325d1d28df3 | 13 | |
fholin | 0:2325d1d28df3 | 14 | License : Revised BSD License, see LICENSE.TXT file include in the project |
fholin | 0:2325d1d28df3 | 15 | |
fholin | 0:2325d1d28df3 | 16 | Maintainer : Fabien Holin (SEMTECH) |
fholin | 0:2325d1d28df3 | 17 | */ |
fholin | 0:2325d1d28df3 | 18 | #ifndef APIFLASH_H |
fholin | 0:2325d1d28df3 | 19 | #define APIFLASH_H |
fholin | 0:2325d1d28df3 | 20 | #include "mbed.h" |
fholin | 0:2325d1d28df3 | 21 | #define USERFLASHADRESS 0x8080000 |
fholin | 0:2325d1d28df3 | 22 | class Flash { |
fholin | 0:2325d1d28df3 | 23 | public: |
fholin | 0:2325d1d28df3 | 24 | Flash(); |
fholin | 0:2325d1d28df3 | 25 | ~Flash(); |
fholin | 0:2325d1d28df3 | 26 | |
fholin | 0:2325d1d28df3 | 27 | /** Initialize a flash IAP device |
fholin | 0:2325d1d28df3 | 28 | * |
fholin | 0:2325d1d28df3 | 29 | * Should be called once per lifetime of the object. |
fholin | 0:2325d1d28df3 | 30 | * @return 0 on success or a negative error code on failure |
fholin | 0:2325d1d28df3 | 31 | */ |
fholin | 0:2325d1d28df3 | 32 | int init(); |
fholin | 0:2325d1d28df3 | 33 | |
fholin | 0:2325d1d28df3 | 34 | |
fholin | 1:eda561b01daf | 35 | /** RestoreContext data from a flash device. |
fholin | 0:2325d1d28df3 | 36 | * |
fholin | 0:2325d1d28df3 | 37 | * This method invokes memcpy - reads number of bytes from the address |
fholin | 0:2325d1d28df3 | 38 | * |
fholin | 0:2325d1d28df3 | 39 | * @param buffer Buffer to write to |
fholin | 0:2325d1d28df3 | 40 | * @param addr Flash address to begin reading from |
fholin | 0:2325d1d28df3 | 41 | * @param size Size to read in bytes |
fholin | 0:2325d1d28df3 | 42 | * @return 0 on success, negative error code on failure |
fholin | 0:2325d1d28df3 | 43 | */ |
fholin | 1:eda561b01daf | 44 | int RestoreContext(uint8_t *buffer, uint32_t addr, uint32_t size); |
fholin | 0:2325d1d28df3 | 45 | |
fholin | 0:2325d1d28df3 | 46 | |
fholin | 1:eda561b01daf | 47 | /** StoreContext data to flash |
fholin | 0:2325d1d28df3 | 48 | * To be safer this function have to implement a read/check data sequence after programation |
fholin | 0:2325d1d28df3 | 49 | * |
fholin | 0:2325d1d28df3 | 50 | * |
fholin | 0:2325d1d28df3 | 51 | * @param buffer Buffer of data to be written |
fholin | 0:2325d1d28df3 | 52 | * @param addr Flash Address to begin writing to, |
fholin | 0:2325d1d28df3 | 53 | * @param size Size to write in bytes, |
fholin | 0:2325d1d28df3 | 54 | * @return 0 on success, negative error code on failure |
fholin | 0:2325d1d28df3 | 55 | */ |
fholin | 1:eda561b01daf | 56 | int StoreContext(const void *buffer, uint32_t addr, uint32_t size); |
fholin | 0:2325d1d28df3 | 57 | |
fholin | 0:2325d1d28df3 | 58 | |
fholin | 0:2325d1d28df3 | 59 | /** Erase sectors |
fholin | 0:2325d1d28df3 | 60 | * |
fholin | 0:2325d1d28df3 | 61 | * The state of an erased sector is undefined until it has been programmed |
fholin | 0:2325d1d28df3 | 62 | * |
fholin | 0:2325d1d28df3 | 63 | * @param addr Address of a sector to begin erasing, |
fholin | 0:2325d1d28df3 | 64 | * @param size Size to erase in bytes, |
fholin | 0:2325d1d28df3 | 65 | * @return 0 on success, negative error code on failure |
fholin | 0:2325d1d28df3 | 66 | */ |
fholin | 0:2325d1d28df3 | 67 | int erase(uint32_t addr, uint32_t size); |
fholin | 0:2325d1d28df3 | 68 | |
fholin | 0:2325d1d28df3 | 69 | |
fholin | 0:2325d1d28df3 | 70 | /** Get the flash start address |
fholin | 0:2325d1d28df3 | 71 | * |
fholin | 0:2325d1d28df3 | 72 | * @return Flash start address |
fholin | 0:2325d1d28df3 | 73 | */ |
fholin | 0:2325d1d28df3 | 74 | uint32_t get_flash_start(); |
fholin | 0:2325d1d28df3 | 75 | |
fholin | 0:2325d1d28df3 | 76 | |
fholin | 0:2325d1d28df3 | 77 | /** Get the flash size |
fholin | 0:2325d1d28df3 | 78 | * |
fholin | 0:2325d1d28df3 | 79 | * @return Flash size |
fholin | 0:2325d1d28df3 | 80 | */ |
fholin | 0:2325d1d28df3 | 81 | uint32_t get_flash_size(); |
fholin | 0:2325d1d28df3 | 82 | }; |
fholin | 0:2325d1d28df3 | 83 | |
fholin | 0:2325d1d28df3 | 84 | extern Flash gFlash; |
fholin | 0:2325d1d28df3 | 85 | #endif |