I would like to program an external flash (S29GL128S10) connected to the STM32F429 at address 0x64000000 using the ST-LINK Utility.
I didn't find an external Loader for this need so I am trying to create it using the examples and the module STM32F4xx_hal_nor.c from Cube V1.8.0
But I am a little lost with the "NOR memory internal address" parameter in some functions of the module STM32F4xx_hal_nor.c
In the function HAL_NOR_ReadBuffer()
* @param uwAddress: NOR memory internal address to read from.
But in the line:
*pData++ = *(__IO uint16_t *)uwAddress;
uwAddress should be the full address
In the function HAL_NOR_ProgramBuffer()
* @param uwAddress: NOR memory internal start write address
NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, NOR_MEMORY_8B, uwAddress), (uwBufferSize - 1));
uwAddress must be the internal address: ok
but some lines later
p_currentaddress = (uint16_t*)((uint32_t)(uwAddress));
p_currentaddress should be the full address
It seems to me that these functions should not work.
In the function HAL_NOR_Erase_Block()
What should be the difference between the Address parameter and the deviceaddress data.