Other Parts Discussed in Thread: SYSBIOS
Tool/software: Code Composer Studio
Hello,
I have built a C66 RTSC application binary "dsp.out" for our custom K2L board. The size of the file is about 2MB and I can load it from the Arago Linux command prompt by typing
root@k2l-evm:~/tests# mpmcl reset dsp0
reset succeeded
root@k2l-evm:~/tests# mpmcl load dsp0 dsp.out
load succeeded
But when I try with a bigger, say 15MB file, it fails and the mpm-daemon crashes:
root@k2l-evm:~/tests# mpmcl reset dsp0
reset succeeded
root@k2l-evm:~/tests# mpmcl load dsp0 dsp2.out
Timeout in reading from socket
load failed (error: 0)
root@k2l-evm:~/tests# mpmcl load dsp0 testAntiTree_dsp.out
can't send data to /var/run/mpm/mpm_daemon (error: Connection refused)
load failed (error: 0)
root@k2l-evm:~/tests#
In the u-boot I have set the environment variable "mem_reserve" to "512M".
The boot log displays only 24MB:
[ 0.000000] Switching physical address space to 0x800000000
[ 0.000000] Reserved memory: created CMA memory pool at 0x000000081f800000, size 8 MiB
[ 0.000000] Reserved memory: initialized node dsp_common_cma_pool, compatible id shared-dma-pool
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000820000000, size 32 MiB
[ 0.000000] Reserved memory: initialized node dsp_reserved_mpm_area, compatible id shared-dma-pool
[ 0.000000] cma: Reserved 24 MiB at 0x000000085e800000
Do I understand right, should it be 512 MiB also here?
The generated map file shows a memory configuration like this:
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
L2SRAM 00800000 00100000 00000258 000ffda8 RW X
MSMCSRAM 0c000000 00600000 00000000 00600000 RW X
DDR3 80000000 80000000 0b5c12c4 74a3ed3c RWIX
Is this OK?
When I load binaries to several DSP cores, do I need to modify the memory configuration for each of them or is the mpm-daemon clever enough to relocate the code and data into a free area in the memory in all 3 memory sections defined in the map file like above?
The size of the MSMCSRAM above is wrong. K2L has only 1MB of that memory, but I don't put any code into it anyway so it does not matter, right?
In addition, do I need to set some special linker flag, like "Produce a relocatable output module" or should I leave the Linker Output selections to their defaults?
Best regards,
Ari