STM32F767: enabling ART Accelerator causes data loss on FMC bus
- February 14, 2018
- 1 reply
- 674 views
Posted on February 14, 2018 at 20:34
Hi all,
I am using an STM32F767ZIT6 on our own development board with an 8080-style OLED on the FMC bus.
Flash is used over TCM bus, memory layout here:
MEMORY
{
/* Instruction locations */
RAMITCM (xrw) : ORIGIN = 0x00000000, LENGTH = 16K
FLASHTCM (rx) : ORIGIN = 0x00200000, LENGTH = 2048K
/* Data locations */
DTCM_RAM_RW_ZI (rw) : ORIGIN = 0x20000000, LENGTH = 16K
SRAM1_RW_ZI (rw) : ORIGIN = 0x20020000, LENGTH = 368K
SRAM2_RW_ZI (rw) : ORIGIN = 0x2007C000, LENGTH = 16K
/* Stack/Heap locations */
DTCM_RAM_STACK : ORIGIN = 0x20004000, LENGTH = 16K
DTCM_RAM_HEAP : ORIGIN = 0x20008000, LENGTH = 96K
}
I write data to the interface after HAL initialization like this:
HAL_SRAM_WriteOperation_Enable( &hsram1 );
for(char i=0;i<128;i++) //clear all columns
{
if (HAL_SRAM_Write_8b(&hsram1, (uint32_t*)SSD1327_COMMAND, &Command, 1) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}
Everything works fine as long as I keep the ART accelerator disabled. As soon as I enable ART at startup, only 60% of the data is arriving, as verified with a logic analyzer.
What do I miss here, where should i start looking?
Best,
Max
--
EDIT:
might be related to this unresolved issue here: