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.

DM8168 内存分配问题



你好,由于我的DSP程序部分所需内存空间较大,因此在内存配置文件config_1G_256MLinux.bld文件中我试着从LINUX_SIZE中减去50M挪到DSP_DATA_SIZE中,如下图所示:

(因为图片贴上去后,帖子的发表按钮就不见,所以只能手打一下内容了,请各位见谅)

以下是我内存的分配:

 

DDR3_ADDR                  = 0x80000000;

DDR3_SIZE                  = 1024*MB;

ETH_OFFLOAD_ADDR    = 0x40300000;

ETH_OFFLOAD_SIZE    = 64*KB;

OCMC0_ADDR                 = ETH_OFFLOAD_ADDR + ETH_OFFLOAD_SIZE;

OCMC0_SIZE                 = 256*KB - ETH_OFFLOAD_SIZE;

OCMC1_ADDR                 = 0x40400000;

OCMC1_SIZE                 = 256*KB;

OCMC0_RUN_ADDR             = OCMC0_ADDR - 0x40000000;

OCMC1_RUN_ADDR             = OCMC1_ADDR - 0x40000000;

 

L2_SRAM_ADDR               = 0x55024000;

L2_SRAM_SIZE               = 128*KB;

L2_SRAM_RUN_ADDR           = 0x20004000;

DUCATI_WB_WA_ADDR          = 0x20000000;

 

var TOTAL_MEM_SIZE             = 1024*MB;

 

/* first 512MB */

LINUX_SIZE                 = 206*MB;

SR1_SIZE                   = 201*MB - 2*MB - 2*MB;

SR3_INTRADUCATI_IPC_SIZE   =          124*KB;

VIDEO_M3_CODE_SIZE         =  3*MB;

VIDEO_M3_BSS_SIZE          = 11*MB  + 512*KB;

VIDEO_M3_DATA_SIZE         =  2*MB;

DSS_M3_CODE_SIZE           =  1*MB  + 512*KB;

DSS_M3_BSS_SIZE            = 16*MB  + 512*KB;

DSS_M3_DATA_SIZE           =  5*MB  + 512*KB;

DSP_CODE_SIZE              =  900*KB - 40*KB + 2*MB;

DSP_DATA_SIZE              = 14*MB + 40*KB + 2*MB + 50*MB;

 

/* second 512MB */

/* Tiler Buffers in the bottom 512MB */

TILER_SIZE                  = 128*MB + 96*MB; /* (128+128) - MUST be aligned on 128MB boundary */

SR2_FRAME_BUFFER_SIZE       = 234*MB + 32*MB + - 256*KB;

SR0_SIZE                    = 15*MB;

VIDEO_M3_EXCEPTION_CTX_SIZE = 128*KB;

VPSS_M3_EXCEPTION_CTX_SIZE  = 128*KB;

HDVPSS_DESC_SIZE            = 2*MB;

HDVPSS_SHARED_SIZE          = 2*MB;

NOTIFY_SHARED_SIZE          = 2*MB;

REMOTE_DEBUG_SIZE           = 1*MB;

编译没问题,但是在开发板终端执行./load.sh加载程序时出现如下报错:

root@dm816x:/opt/dvr_rdk/ti816x# ./load.sh

Attached to slave procId 2.

Loaded file ../firmware/dvr_rdk_fw_m3vpss_1024M_256M.xem3 on slave procId 2.

Started slave procId 2.

After Ipc_loadcallback status [0x00000000]

 [m3vpss ] ***** VPSS Firmware build time 11:46:03 Mar  8 2017  EDG gcc 3.0 mode

 [m3vpss ] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 246857136

 [m3vpss ] notify_attach  rtnVal  0

 [m3vpss ] initProxyServer  rtnVal  0

 [m3vpss ]  

 [m3vpss ]  *** UTILS: CPU KHz = 493714 Khz ***

 [m3vpss ]  

 [m3vpss ]  39: SYSTEM  : System Common Init in progress !!!

 [m3vpss ]  39: SYSTEM: IPC init in progress !!!

 [m3vpss ]  39: SYSTEM: Attaching to [HOST] ...

 [m3vpss ]  42: SYSTEM: Attaching to [HOST] ... SUCCESS !!!

After Ipc_startcallback status [0x00000000]

Attached to slave procId 0.

DMA: Module install successful, device major num = 251

DRV: Module install successful

DRV: Module built on Mar  8 2017 11:31:28

 [m3vpss ]  1040: SYSTEM: Attaching to [DSP] ...

 [m3vpss ]  2040: SYSTEM: Attaching to [DSP] ...

 [c6xdsp ] Remote Debug Shared Memory @ 0xbf000000

 [m3video] Remote Debug Shared Memory @ 0xbf010820

 [m3vpss ] Remote Debug Shared Memory @ 0xbf021040

Attached to slave procId 1.

Loaded file ../firmware/dvr_rdk_fw_c6xdsp_1024M_256M.xe674 on slave procId 0.

Started slave pr*** Platform_loadCallback: length of slave region does not match host entry

        Error [0xffffffff] at Line no: 2609 in file /home/jack/dm8168/dvrrdk-04.01.00.02/ti_tools/syslink/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/ti81xx/Platform.c

ocId 0.

*** Ipc_control: Platform_loadCallback failed!

        Error [0xffffffff] at Line no: 840 in file /home/jack/dm8168/dvrrdk-04.01.00.02/ti_tools/syslink/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Ipc.c

 [c6xdsp ] ***** VIDEO Firmware build time 11:30:51 Jun  7 2017  EDG gcc 3.0 mode

 [c6xdsp ] ***** SYSTEM  : Frequency <ORG> - 800000000, <NEW> - 813176448

Loaded file ../firmware/dvr_rdk_fw_m3video_1024M_256M.xem3 on slave procId 1.

Started slave procId 1.

After Ipc_loadcallback status [0x00000000]

After Ipc_startcallback status [0x00000000]

 [m3video] ***** VIDEO Firmware build time 11:47:13 Mar  8 2017  EDG gcc 3.0 mode

 [m3video] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 246857136

 [m3video]  

 [m3video]  *** UTILS: CPU KHz = 493714 Khz ***

 [m3video]  

 [m3video]  5688: SYSTEM  : System Common Init in progress !!!

 [m3video]  5688: SYSTEM: IPC init in progress !!!

 [m3video]  5689: SYSTEM: Attaching to [HOST] ...

 [m3video]  5692: SYSTEM: Attaching to [HOST] ... SUCCESS !!!

Error in Ipc_control Ipc_CONTROLCMD_LOADCALLBACK [0xffffffff]

 [m3video]  6691: SYSTEM: Attaching to [DSP] ...

 [m3video]  7691: SYSTEM: Attaching to [DSP] ...

我尝试过不从LINUX_SIZE处,而是从SR1_SIZE处减去50M补偿给DSP_DATA_SIZE段,但还是出现相同的报错,请教下这是什么原因导致的呢?