摘自:Memory Map in DM81xx IPNC RDK
1.Memory Sections in IPNC RDK Memory Map
IPNC RDK has multiple memory map configurations supported based on the usage scenarios and available total memory on the platform. The total system memory is divided
into various sub-systems/processors. The broad classification of the sections is listed below:
1.1)Linux Memory – Single memory partition given to linux kernel memory manager
1.2)CMEM Memory – Contiguous memory block on A8 for streaming.
1.3)Shared Regions – Different memory partitions that are shared across processors;
Bitstream Buffer (SR1) – Shared Region 1. This shared region is meant to receive encoded bitstream from Video M3 processor to A8 processor, send bitstream from A8 to
Video M3 for decoding and for sharing the buffers between A8 and DSP for Scene Change Detection algorithm results. This region is cached on A8.
Frame Buffer (SR2) – Shared Region 2. This shared region is used for allocating frame buffers for capturing video data, scaling, displaying video frames. The shared
region is accessible from A8, Video M3, VPSS M3 and DSP. This is non-tiled region.
IPC MessageQ / ListMP (SR0) – Shared Region 0. This shared region is used to allocate memory for datastructures needed for interprocessor communication. This shared
region is not cached on any of the processor cores.
IPC ListMP for M3 (InterDucati) (SR3) – Shared Region 3. This shared region is currently not used but has been left in the memory map so that it can easily be used
for M3-only IPC usage.
Slave Code and Data Section Memory
o Video M3 Data Section – Partition for data section of Video M3 executable binary
o Video M3 Code Section – Partition for code section of Video M3 executable binary
o VPSS M3 Data Section – Partition for data section of VPSS M3 executable binary
o VPSS M3 Code Section – Partition for code section of VPSS M3 executable binary
o DSP Data Section – Partition for data section of DSP executable binary
o DSP Code Section – Partition for code section of DSP executable binary
Remote Debug Memory – Memory section reserved and accessible from all processor cores to dump the debug print messages. Each processor core uses VPS_printf() to dump
the debug messages on this memory region. Remote Debug Client running on A8 reads this memory region and prints the content on the (UART) console.
从vpssM3,videoM3,dsp的日志如何传递到A8,写入文件,这里提供一种方法,修改Vps_printf()函数,将日志写入到Remote Debug Memory,从A8去读这个日志;
另外一种方式就是在A8建立一个link,使用System_link_control将各个核的日志信息传递到A8;
VPDMA Descriptors Memory – Memory section used by VPSS M3 processor core. It is used by HDVPSS driver for its internal descriptor data structure.
注意:
Frame Buffer Shared Region (SR2) is not mapped on A8 as it would take up lot of kernel virtual memory. User need to mmap the physical address in the application code
to map the SR2 buffers on A8. This is needed for getting the frame buffers on A8 using IPCFramesOut/In link.
How To – Modify the Memory Map
How to Change Memory Section Sizes for Additional Linux Memory