2021-04-07 12:54 AM
Background
Firmware STM32Cube FW_H7 V1.9.0
MCU Reference STM32H745ZITx
Toolchain STM32CubeIDE
I created a new STM32 project targeting the Nucleo-H745ZI-Q enabling the OpenAMP Middleware along with FreeRTOS. Referencing the project for the Disco board, I copied the software over and making sure to enable the what I needed to in hal conf as well and made sure the correct compiler symbols were defined.
The M7 seems to be configured properly and running.
The M7 is able to hold wake the M4 on reset via HSEM event and go through it's openamp initialization to wait at OPENAMP_Wait_EndPointready
On the M4 side it's stuck at
```while(resource_table.vring1.da != VRING_RX_ADDRESS)```
even though I stepped through the M7 code to see that it did do that assignment.
I'm wondering if there is some linker script problem I've got.
For some background on that, I did see the note in the openamp_conf.h to add the relevant lines in Memory to define the OPEN_AMP_SHMEM location and lengths along with the start and end regions.
I noticed in the STM32H747I-DISCO application there was also the addition of
.openamp_section (NOLOAD) : {
. = ABSOLUTE(0x38000000);
*(.resource_table)
} >OPENAMP_RSC_TAB AT > FLASH
in the Sections block of the .ld file for both the M7 and M4 assuming that is where the resource table is mapped to.
Is there something else I should be configuring for the H745ZI-Q? I've been pullin my hair out on this for some time now.
2021-04-09 05:16 PM
@Community member I see you're familiar with openamp and shed some light on other issues. Do you see anything that jumps out here or is there any more information I could provide?
2021-04-19 07:28 AM
Hi @caffeinated capybara
Is the Cortex-M7 data cache enabled or not?
Bouraoui
2021-05-04 03:19 AM
Hi there,
I am facing the same issue. Since we are working with CubeMX and with CMSIS V2. I have tried to port the example ( the project for the Disco board), into MX format (with .ioc file) and to shift it to CMSIS V2.
I get a clean compile, but the two cores are just not signaling each other. M4 waites for M7 and vice versa.
Enabling /Diaabling cache does not seem to make a difference.
I have enclosed my project for anyone who wants to have a look at the portation.
Any help, advice is highly appreciated!
Johannes
2021-05-04 09:07 AM
Hi @Bouraoui Chemli ,
I am having the same problem.
I want to get the example project ( the project for the Disco board) to work on my STM32H747i-DISCO board. The original code works fine, but I need to migrate it to CMSIS V2 and I want to manage the project with STM32CubeMX.
Therefore I have migrated the project (see attached file).
Now I do not get any messages across.
MBOX_Poll() returns ErrorCode 11 "No more processes".
I don't know where to search. Enabling the cache did not do the job.
Any help is highly appreciated!
Thanks a lot
Johannes
2021-05-06 01:30 AM
Hi @caffeinated capybara ,
did you get a response from ST? Did you get the problem fixed?
I am still looking for advice.
Thanks a lot!
Johannes
2021-05-20 09:55 AM
@Bouraoui Chemli , @caffeinated capybara
No answer, neither from ST, nor from other community members.
This community does not seem to be very productive
OK, never mind....