X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_mr25.c;h=86dda22a9b9937fa5a54925e74e98715fcec8de8;hb=6b0754cee625c6e2c19dc70fb5be6cd2f0125d47;hp=53cbf9d7eaa6143c1fdf76df4e017544143c318d;hpb=cef4e3ee95037050ae859fb2fdc0a57373764bd8;p=fw%2Faltos diff --git a/src/drivers/ao_mr25.c b/src/drivers/ao_mr25.c index 53cbf9d7..86dda22a 100644 --- a/src/drivers/ao_mr25.c +++ b/src/drivers/ao_mr25.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -18,16 +19,16 @@ #include "ao.h" /* Total bytes of available storage */ -__pdata uint32_t ao_storage_total; +uint32_t ao_storage_total; /* Block size - device is erased in these units. At least 256 bytes */ -__pdata uint32_t ao_storage_block; +uint32_t ao_storage_block; /* Byte offset of config block. Will be ao_storage_block bytes long */ -__pdata uint32_t ao_storage_config; +uint32_t ao_storage_config; /* Storage unit size - device reads and writes must be within blocks of this size. Usually 256 bytes. */ -__pdata uint16_t ao_storage_unit; +uint16_t ao_storage_unit; /* * MRAM is entirely random access; no erase operations are required, @@ -50,7 +51,7 @@ __pdata uint16_t ao_storage_unit; #define MR25_STATUS_BP_SHIFT (2) #define MR25_STATUS_WEL (1 << 1) /* Write enable latch */ -static __xdata uint8_t ao_mr25_mutex; +static uint8_t ao_mr25_mutex; /* * This little array is abused to send and receive data. A particular @@ -60,7 +61,7 @@ static __xdata uint8_t ao_mr25_mutex; * those last three bytes. */ -static __xdata uint8_t ao_mr25_instruction[4]; +static uint8_t ao_mr25_instruction[4]; #define MR25_SELECT() ao_spi_get_mask(AO_MR25_SPI_CS_PORT,(1 << AO_MR25_SPI_CS_PIN),AO_MR25_SPI_BUS, AO_SPI_SPEED_FAST) #define MR25_DESELECT() ao_spi_put_mask(AO_MR25_SPI_CS_PORT,(1 << AO_MR25_SPI_CS_PIN),AO_MR25_SPI_BUS) @@ -92,7 +93,7 @@ ao_mr25_set_address(uint32_t pos) * Erase the specified sector (no-op for MRAM) */ uint8_t -ao_storage_erase(uint32_t pos) __reentrant +ao_storage_erase(uint32_t pos) { if (pos >= ao_storage_total || pos + ao_storage_block > ao_storage_total) return 0; @@ -103,7 +104,7 @@ ao_storage_erase(uint32_t pos) __reentrant * Write to flash */ uint8_t -ao_storage_device_write(uint32_t pos, __xdata void *d, uint16_t len) __reentrant +ao_storage_device_write(uint32_t pos, void *d, uint16_t len) { if (pos >= ao_storage_total || pos + len > ao_storage_total) return 0; @@ -127,7 +128,7 @@ ao_storage_device_write(uint32_t pos, __xdata void *d, uint16_t len) __reentrant * Read from flash */ uint8_t -ao_storage_device_read(uint32_t pos, __xdata void *d, uint16_t len) __reentrant +ao_storage_device_read(uint32_t pos, void *d, uint16_t len) { if (pos >= ao_storage_total || pos + len > ao_storage_total) return 0; @@ -146,7 +147,7 @@ ao_storage_device_read(uint32_t pos, __xdata void *d, uint16_t len) __reentrant } void -ao_storage_flush(void) __reentrant +ao_storage_flush(void) { } @@ -156,7 +157,7 @@ ao_storage_setup(void) } void -ao_storage_device_info(void) __reentrant +ao_storage_device_info(void) { printf ("Detected chips 1 size %d\n", ao_storage_total >> 8); }