mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 15:58:59 +08:00
STM32 FLASH changes from Freddie Chopin
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5473 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -112,6 +112,11 @@ uint16_t up_progmem_pagesize(uint16_t page)
|
||||
|
||||
int up_progmem_getpage(uint32_t addr)
|
||||
{
|
||||
if (addr >= STM32_FLASH_BASE)
|
||||
{
|
||||
addr -= STM32_FLASH_BASE;
|
||||
}
|
||||
|
||||
if (addr >= STM32_FLASH_SIZE)
|
||||
{
|
||||
return -EFAULT;
|
||||
@@ -200,6 +205,11 @@ int up_progmem_write(uint32_t addr, const void *buf, size_t count)
|
||||
|
||||
/* Check for valid address range */
|
||||
|
||||
if (addr >= STM32_FLASH_BASE)
|
||||
{
|
||||
addr -= STM32_FLASH_BASE;
|
||||
}
|
||||
|
||||
if ((addr+count) >= STM32_FLASH_SIZE)
|
||||
{
|
||||
return -EFAULT;
|
||||
@@ -216,7 +226,7 @@ int up_progmem_write(uint32_t addr, const void *buf, size_t count)
|
||||
|
||||
modifyreg32(STM32_FLASH_CR, 0, FLASH_CR_PG);
|
||||
|
||||
for (addr += STM32_FLASH_BASE; count; count--, hword++, addr+=2)
|
||||
for (addr += STM32_FLASH_BASE; count; count-=2, hword++, addr+=2)
|
||||
{
|
||||
/* Write half-word and wait to complete */
|
||||
|
||||
@@ -237,7 +247,6 @@ int up_progmem_write(uint32_t addr, const void *buf, size_t count)
|
||||
modifyreg32(STM32_FLASH_CR, FLASH_CR_PG, 0);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
modifyreg32(STM32_FLASH_CR, FLASH_CR_PG, 0);
|
||||
|
||||
Reference in New Issue
Block a user