EmBitz

Full Version: Can't examine high-cycle data flash on STM32H573
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am working with a STM32H563ZI currently.
This device also has a high-cycle flash.

The memory region for the high-cycle flash is located from 0x09000000 and can only be accessed by 16-bit or by 32-bit.
8-bit reads to this addresses are not allowed.

Now the problem is, I cant examine this memory via eblink. I tested the exact same configuration with eblink and with stlink-gdbserver.

eblink:
Code:
x/1xb 0x09000000
0x9000000:    
Cannot access memory at address 0x9000000
x/1xh 0x09000000
0x9000000:    
Cannot access memory at address 0x9000000
x/1xw 0x09000000
0x9000000:    
Cannot access memory at address 0x9000000
x/1xg 0x09000000
0x9000000:    
Cannot access memory at address 0x9000000

stlink-gdbserver:
Code:
x/1xb 0x09000000
0x9000000:    
Cannot access memory at address 0x9000000
x/1xh 0x09000000
0x9000000:    0x1e0f
x/1xw 0x09000000
0x9000000:    0x3c2d1e0f
x/1xg 0x09000000
0x9000000:    0x78695a4b3c2d1e0f

As you can see, stlink-gdbserver is able to examine the memory as long as I dont make it read only one byte.
But eblink is not able to examine it at all. I suspect eblink treats every memory access as byte reads?
Is this the intended behavior?

This is not an important bug to me, I can fall back on stlink-gdbserver, I just stumbled over it.
This is OCTOSPI1 memory.
We currently don't support that in our H5 script but nothing is stopping you from adding this.
I don't have a board here to test this so I can't help you with this.
What makes you think this is OCTOSPI1 memory?
Afaik, this is not using any part of the OCTOSPI1 peripheral.
I am refering to the high cyclic memory at address 0x0900.0000, not 0x9000.0000.

Its part of the original flash remapped to use more bits per byte for ECC and therefore is also part of the main flash peripheral. Reading should be as simple as just reading from these addresses. Just not bytewise.

But if I am wrong, do you have any script where something like this is implemented?
I just looked into the reference manual after I received a stm32H563 board. I think we need to rewrite that whole script for the H5 in case we use ECC and also implement high-cycle memory. But I need some help with that. I'm too busy to dive into this on my one.

I will introduce special xml memory attributes so that we can force EBlink the read access width for certain segments.

Could you make some test projects with different scenarios like ECC 6-bit with high-cycle and 9-bit etc with some comments in the code. I will try to make the script high-cycle aware. Maybe we also need to support system memory etc.