Skip to main content
Visitor II
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

    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

    ykim.3Author
    Visitor II
    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.3Author
    Visitor II
    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.