flash/stm32l4x: fix flash programming in 64-bit hosts
stm32l4_work_area struct is shared between the loader and stm32l4x flash driver '*wp' and '*rp' pointers' size is 4 bytes each since stm32l4x devices have 32-bit processors. however when used in openocd code, their size depends on the host if the host is 32-bit, then the size is 4 bytes each. if the host is 64-bit, then the size is 8 bytes each. to avoid this size difference, change their types depending on the usage (pointers for the loader, and 32-bit integers in openocd code). Change-Id: I0a3df4bb4bf872b01cdb9357eb28307868d7d469 Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6556 Tested-by: jenkins Reviewed-by: Yestin Sun <sunyi0804@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
committed by
Tomas Vanek
parent
f78f9a90a6
commit
b61a280860
@@ -136,9 +136,24 @@ struct stm32l4_work_area {
|
||||
} params;
|
||||
uint8_t stack[LDR_STACK_SIZE];
|
||||
struct flash_async_algorithm_circbuf {
|
||||
/* note: stm32l4_work_area struct is shared between the loader
|
||||
* and stm32l4x flash driver.
|
||||
*
|
||||
* '*wp' and '*rp' pointers' size is 4 bytes each since stm32l4x
|
||||
* devices have 32-bit processors.
|
||||
* however when used in openocd code, their size depends on the host
|
||||
* if the host is 32-bit, then the size is 4 bytes each.
|
||||
* if the host is 64-bit, then the size is 8 bytes each.
|
||||
* to avoid this size difference, change their types depending on the
|
||||
* usage (pointers for the loader, and 32-bit integers in openocd code).
|
||||
*/
|
||||
#ifdef OPENOCD_CONTRIB_LOADERS_FLASH_STM32_STM32L4X
|
||||
uint8_t *wp;
|
||||
uint8_t *rp;
|
||||
uint8_t *buf;
|
||||
#else
|
||||
uint32_t wp;
|
||||
uint32_t rp;
|
||||
#endif /* OPENOCD_CONTRIB_LOADERS_FLASH_STM32_STM32L4X */
|
||||
} fifo;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user