Hello everyone,
The CBB RDK compile M3 firmware strip after m3vpss.xem3 size about 7.5M.
Have any chance smaller than now ?
Thank you very much.
Have a nice day.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello everyone,
The CBB RDK compile M3 firmware strip after m3vpss.xem3 size about 7.5M.
Have any chance smaller than now ?
Thank you very much.
Have a nice day.
Vic Lin,
Please have a look in the below wiki page, might be in help:
http://processors.wiki.ti.com/index.php/EZSDK_Reducing_Size_Of_Media_Controller_Firmware
BR
Pavel
Pls attach the .map and .xem3. After stripping the size of the firmware should be around 1.9 MB and there is potential to reduce the size further. This was the case with dvr_rdk. I am not sure if the increased size in CBB firmware is due to presence of large constant tables. Analysis of .xem3 and .map file should confirm this.
Hello Badri,
Thank you for your reply.
.map and .xem3 are attached(please remove suffix .txt)
Below is section wise breakdown of the image you shared.
As you can see of the initialized section .data accounts for 4184798 bytes. This should be zero . There is a issue with some version of compiler which wrongly groups uninitialized arrays into .data section. It looks like you are hitting the issue. To workaround the issue check the .data section and add following #pragma to force placement of large uninitialized arrays in bss.
For example
#ifdef __TMS470__
#pragma DATA_SECTION(dcc_buf, ".bss")
#endif
You should be able to reduce .data section size to 0.
Apart from .data I see your .text and .const has H264 codec. I don't understand why they are present in VPSS M3 executable. They should be present only in VideoM3 executable. I am not familiar with CarBB but if it is not intentional to link encLink/decLink into M3VPSS firmware remove encLink_init() and decLink_init calls.
Finally you can comment out call to Syslink_setup in main_m3vpss.c and remove linking of syslink libraries on M3 side.
If you are unable to do these change simply tar the xem3 and store it on NAND and untar the file on target to /dev/shm and load firmware from /dev/shm. Tarred firmware should be around 500KB.
************************************************************
Name : Size (dec) Size (hex) Type Load Addr Run Addr
-------------------- : ---------- ---------- ---- ---------- ----------
ti.sdo.ipc.SharedRegion_0 : 4194304 0x00400000 UDATA 0xae600000 0xae600000
ti.sdo.ipc.SharedRegion_1 : 15728640 0x00f00000 UDATA 0xaea00000 0xaea00000
ti.sdo.ipc.SharedRegion_2 : 94371840 0x05a00000 UDATA 0xa8c00000 0xa8c00000
ti_sdo_ipc_init : 100 0x00000064 DATA 0x882dd380 0x882dd380
.stack : 40960 0x0000a000 UDATA 0x882d3360 0x882d3360
.bss : 19748980 0x012d5874 UDATA 0x86c00000 0x86c00000
.resetVecs : 320 0x00000140 DATA 0x00000800 0x00000800
.ducatiBoot : 80 0x00000050 CODE 0x00000000 0x00000000
.ducatiGates : 16 0x00000010 UDATA 0x000007f0 0x000007f0
.text : 1265906 0x001350f2 CODE 0x8682f7e4 0x8682f7e4
.const : 2291681 0x0022f7e1 DATA 0x86600000 0x86600000
.data : 4184798 0x003fdade DATA 0x87ed5880 0x87ed5880
.bss:extMemNonCache:heap : 2031616 0x001f0000 UDATA 0xaf940000 0xaf940000
.vpss:extMemNonCache:notify : 102400 0x00019000 UDATA 0xafd00000 0xafd00000
.bss:extMemNonCache:remoteDebugCoreShm : 61536 0x0000f060 UDATA 0xaff00000 0xaff00000
.bss:exceptionContextNonCached : 35004 0x000088bc DATA 0xaf920000 0xaf920000
------------------------------------------------------------
Totals by section type
------------------------------------------------------------
Uninitialized Data : 136280292 0x081f78e4
Initialized Data : 6511903 0x00635d1f
Code : 1265986 0x00135142