1
0
mirror of https://github.com/elua/elua.git synced 2025-01-25 01:02:54 +08:00
elua/doc/eluadoc/arch_platform_flash.lua
2012-06-27 00:34:58 +03:00

69 lines
3.6 KiB
Lua

-- eLua platform interface - flash access functions
data_en =
{
-- Title
title = "eLua platform interface - flash access functions",
-- Menu name
menu_name = "Flash",
-- Overview
overview = [[The flash access section of the platform interface contains functions for writing/erasing the internal flash of the MCU and obtaining information about its internal structure. These functions are used for imlementing WOFS, check @arch_wofs.html@here@ for more information about WOFS.]],
-- Functions
funcs =
{
{ sig = "u32 #platform_flash_get_first_free_block_address#( u32 *psect );",
desc = [[Returns the first free address in the internal flash, aligned to a sector boundary. This function relies on a symbol exported by the linker command file, check @arch_wofs.html@here@ for details. This function. This function is implemented in %src/common.c%.]],
args = "$psect$ - the sector number of the first free sector in flash will be written in $*psect*$ if $psect$ is not NULL.",
ret = "The first free address in the internal flash.",
},
{ sig = "u32 #platform_flash_get_sector_of_address#( u32 addr );",
desc = "Returns the flash sector that contains the given address. This function is implemented in %src/common.c%.",
arg = "$addr$ - the flash address.",
ret = "The sector number of the sector that contains $addr$.",
},
{ sig = "u32 #platform_flash_write#( const void *from, u32 toaddr, u32 size );",
desc = [[Writes data in the internal flash. This function can automatically take care of flash alignment or size restrictions if $INTERNAL_FLASH_WRITE_UNIT_SIZE$ is properly defined. Check @arch_wofs.html@here@ for more details. This function is implemented in %src/common.c%. In order to actually write data to the internal flash, this function will call its platform specific (@#platform_s_flash_write@platform_s_flash_write@).]],
args =
{
"$from$ - the data to be written in flash.",
"$toaddr$ - flash address to write to.",
"$size$ - length of data in bytes",
},
ret = "The actual number of bytes written in flash.",
},
{ sig = "u32 #platform_s_flash_write#( const void *from, u32 toaddr, u32 size );",
desc = [[Writes data in the internal flash. This is the platform dependent counterpart of @#platform_flash_write@platform_flash_write@ and it must be implemented by the platform's porting layer. If $INTERNAL_FLASH_WRITE_UNIT_SIZE$ is properly defined, this function doesn't need to care about data alignment or size restriction issues.]],
args =
{
"$from$ - the data to be written in flash.",
"$toaddr$ - flash address to write to.",
"$size$ - length of data in bytes",
},
ret = "The actual number of bytes written in flash.",
},
{
sig = "u32 #platform_flash_get_num_sectors#();",
desc = "Returns the number of sectors in the internal flash. This function is implemented in %src/common.c%.",
ret = "The number of sectors in the internal flash.",
},
{
sig = "int #platform_flash_erase_sector#( u32 sector_id );",
desc = [[Erases a sector from the internal flash. The function does not return until the erase operation is completed. This function is implemented in %src/common.c%. <span class="warning">IMPORTANT</span>: be careful when using this function, as it can erase any sector of the flash. You might damage your eLua image if this function is called with a wrong parameter.]],
args = "$sector_id$ - the number of the sector that will be deleted.",
ret = "$PLATFORM_OK$ if the erase operation succeeded, $PLATFORM_ERR$ otherwise."
}
}
}