Skip to main content
ykim.3
Associate
March 8, 2023
Question

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

  • March 8, 2023
  • 2 replies
  • 1387 views

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?

This topic has been closed for replies.

2 replies

PatrickF
Technical Moderator
March 8, 2023

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.NEW ! Sidekick STM32 AI agent, see here
ykim.3
ykim.3Author
Associate
March 14, 2023

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

ykim.3
ykim.3Author
Associate
March 10, 2023

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.