AnsweredAssumed Answered

NOR memory internal address

Question asked by lecordier.guy.001 on Oct 22, 2015
Latest reply on Oct 22, 2015 by Clive One

Hello,

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));
  NOR_WRITE(p_currentaddress, *pData++);
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.

Thanks

Outcomes