cancel
Showing results for 
Search instead for 
Did you mean: 

Questions regarding data exchange in an indirect manner with the m4.

ykim.3
Associate II

I am trying to exchange data in an indirect way using the rpmsg_sdb driver.

The memory in the cma area (0xe800000) was allocated through mmap in Linux.

When accessing the 0xe8000000 area in m4, a HardFault occurs and the program stops.

However, there is no problem in accessing areas below 0xe0000000, such as 0xd8000000.

Is there a limit to the ddr memory access area of ​​the m4 processor?

Or is there a way to access areas above 0xe0000000?

3 REPLIES 3
PatrickF
ST Employee

Hi @ykim.3​ 

Cortex-M4 only have access to the lower 512MBytes part of DDR (i.e. no access above 0xE000000). Please refer to product reference manual "Memory map and register boundary addresses"

I'm not Linux expert, but you should have some way to ask Linux to assign area with specific constrains.

https://wiki.st.com/stm32mpu/wiki/How_to_exchange_data_buffers_with_the_coprocessor

Regards,

Patrick

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
ykim.3
Associate II

Hi, PatrickF.

When I use mmap in linux it is allocated from cma address 0xe8000000 .

How to assign cma address below 0xe0000000 in linux dts?

Thanks.

Hi, PatrickF.

When I use mmap in linux it is allocated from cma address 0xe8000000 .

How to assign cma address below 0xe0000000 in linux dts?

Thanks