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.

Codec Engine 2.24 Example Demos Run Error (WinCE OAMP3530)

Other Parts Discussed in Thread: OMAP3530

Hi, All

I am using OMAP3530 EVM with WinCE 6.0. I try to use ce2.24 which is download from ti.com, I compile the ce example demos and try to run them. But when I run the demo image1_copy , it turns up error as follows:

ti.sdo.ce.examples.apps.image1_copy - main> ti.sdo.ce.exmaples.apps.image1_copy
ti.sod.ce.examples.apps.image1_copy - App->Application started.
\HDD\ce\app_remote_wince.exe: error : can't open engine image1_copy
ti.sdo.ce.examples.apps.image1_copy - app done.

Would anyone give me some help to fix it?

Thanks in advance.

Stephen

  • Hi Stephen,

    It would be helpful to see some trace output from this example. There is a description of codec engine tracing and how to set it at

    http://tiexpressdsp.com/index.php/CE_DEBUG

    You can use the utility, osalsetenv_wince.exe, in the directory ti\sdo\ce\osal\wince\utils\bin\ti_platforms_evm3530 of your codec engine installation to set a CE_DEBUG registry entry. This registry entry is used by codec engine to set the level of trace output. Can you copy this utility to your flat release directory, and then from Platorm Builder, open a target command window ('Target'->'Target Control'), and enter the command:

        s osalsetenv_wince.exe CE_DEBUG 2

    Then run the image1_copy example. You should see the trace output in the Platform Builder output window. That should indicate why the app is failing.

    Thanks,

        Janet

  • Hi, Janet,

    Thanks for your reply. I tried as your advice. The log is as follow:

    245819 PID:42c0022 TID:42d0022 @245,819,000us: [+0 T:0x042d0022] ti.sdo.ce.osal.Sem - Sem_create> count: 0

     

     245821 PID:42c0022 TID:42d0022 @245,821,000us: [+0 T:0x042d0022] ti.sdo.ce.osal.Sem - Leaving Sem_create> sem[0x507c0]

     

     245821 PID:42c0022 TID:42d0022 @245,823,000us: [+0 T:0x042d0022] ti.sdo.ce.osal.Sem - Sem_create> count: 0

     

     245824 PID:42c0022 TID:42d0022 @245,829,000us: [+0 T:0x042d0022] ti.sdo.ce.osal.Sem - Leaving Sem_create> sem[0x507e0]

     

     245825 PID:42c0022 TID:42d0022 @245,829,000us: [+0 T:0x042d0022] OT - Thread_create> Enter (fxn=0x2819c, attrs=0x0)

     

     245827 PID:42c0022 TID:42d0022 @245,835,000us: [+0 T:0x042d0022] OT - Thread_create> Exit (task=0x50820)

    245829 PID:42c0022 TID:42d0022 @245,839,000us: [+0 T:0x042d0022] ti.sdo.ce.alg - ALG_init> Enter

     

     245830 PID:42c0022 TID:42d0022 @245,839,000us: [+0 T:0x042d0022] ti.sdo.ce.alg - ALG_init> Exit

     

     245832 PID:42c0022 TID:42d0022 @245,845,000us: [+6 T:0x042d0022] CE - Engine_init> CE debugging on (CE_DEBUG=2; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)

     

     245834 PID:42c0022 TID:42d0022 @245,849,000us: [+0 T:0x042d0022] CS - Server_init()

     

     245835 PID:42c0022 TID:42d0022 @245,849,000us: [+0 T:0x042d0022] CS - Server_init> We're not an xdc_target__isaCompatible_v5T (?? This is normal or false?)

     

     245837 PID:42c0022 TID:42d0022 @245,855,000us: [+2 T:0x042d0022] ti.sdo.ce.examples.apps.image1_copy - main> ti.sdo.ce.examples.apps.image1_copy

     245837 PID:42c0022 TID:42d0022 @245,855,000us: [+1 T:0x042d0022] ti.sdo.ce.examples.apps.image1_copy - App-> Application started.

     

     245840 PID:42c0022 TID:42d0022 @245,861,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_alloc(1024) = 0x70000.

     

     245841 PID:42c0022 TID:42d0022 @245,861,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_getPhys(0x70000) = 0x647ff000.

     

     245843 PID:42c0022 TID:42d0022 @245,867,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_alloc(1024) = 0x80000.

     

     245843 PID:42c0022 TID:42d0022 @245,867,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_getPhys(0x80000) = 0x647fe000.

     

     245844 PID:42c0022 TID:42d0022 @245,869,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_alloc(1024) = 0x90000.

     

     245844 PID:42c0022 TID:42d0022 @245,869,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_getPhys(0x90000) = 0x647fd000.

     

     245845 PID:42c0022 TID:42d0022 @245,871,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_alloc(128) = 0xa0000.

     

     245851 PID:42c0022 TID:42d0022 @245,879,000us: [+4 T:0x042d0022] OM - Memory_contigAlloc> CMEM_getPhys(0xa0000) = 0x647fc000.

     

     245854 PID:42c0022 TID:45f0022 @245,887,000us: [+1 T:0x045f0022] OP - daemon> thread created.

     

     245854 PID:42c0022 TID:45f0022 @245,889,000us: [+0 T:0x045f0022] OP - getCmd_d> Enter (proc=0x6fe3c)

     

     245857 PID:42c0022 TID:45f0022 @245,895,000us: [+0 T:0x045f0022] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x507c0] timeout[0xffffffff]

     

     245915 PID:400002 TID:42d0022 RELFSD: Opening file in.dat from desktop

     246010 PID:400002 TID:42d0022 RELFSD: Opening file out.dat from desktop

     246012 PID:42c0022 TID:42d0022 @246,205,000us: [+0 T:0x042d0022] CE - Engine_open> Enter('image1_copy', 0x0, 0x4fb0c)

     

     246012 PID:42c0022 TID:42d0022 @246,205,000us: [+0 T:0x042d0022] CE - rserverOpen('all.x64P'), count = 0

     

     246015 PID:42c0022 TID:42d0022 @246,211,000us: [+0 T:0x042d0022] OP - Processor_create> Enter(imageName='all.x64P', linkCfg='(null)', attrs=0x4faa0)

     

     246017 PID:42c0022 TID:42d0022 @246,215,000us: [+7 T:0x042d0022] OP - Processor_create> ERROR: cannot access file all.x64P

     

     246017 PID:42c0022 TID:42d0022 @246,215,000us: [+6 T:0x042d0022] CE - rserverOpen: can't start 'all.x64P'; Processor_create failed

     

     246019 PID:42c0022 TID:42d0022 @246,219,000us: [+0 T:0x042d0022] CE - rserverOpen('all.x64P'): 0x0 done.

     

     246020 PID:42c0022 TID:42d0022 @246,221,000us: [+0 T:0x042d0022] CE - Engine_close(0x50d60)

     

     246022 PID:42c0022 TID:42d0022 @246,225,000us: [+0 T:0x042d0022] CE - Engine_open> return(0)

     246024 PID:42c0022 TID:42d0022 \Release\app_remote_wince.exe: error: can't open engine image1_copy

     246031 PID:42c0022 TID:42d0022 @246,243,000us: [+1 T:0x042d0022] ti.sdo.ce.examples.apps.image1_copy - app done.

     

  • phoenixtju said:
    245835 PID:42c0022 TID:42d0022 @245,849,000us: [+0 T:0x042d0022] CS - Server_init> We're not an xdc_target__isaCompatible_v5T (?? This is normal or false?)

    This one's ok (for now).  It's related to Known Issue SDOCM00058702, but isn't causing your Engine_open() failure.

    phoenixtju said:

    246015 PID:42c0022 TID:42d0022 @246,211,000us: [+0 T:0x042d0022] OP - Processor_create> Enter(imageName='all.x64P', linkCfg='(null)', attrs=0x4faa0)

    246017 PID:42c0022 TID:42d0022 @246,215,000us: [+7 T:0x042d0022] OP - Processor_create> ERROR: cannot access file all.x64P

    This is the real error.  Engine_open() can't find the DSP server file (all.x64P).  Have you copied your DSP-side all.x64P file to the ARM device, in the same directory as your application?

    Chris

  • Hi, Chris,

    Thanks for ur reply.I am sure that I do copy the all.x64P file to the same directory as the application.

    Is there other reason that causes the error?

    Best Regards,

     

    Stephen

  • Hi Stephen,

    Can you try exporting the all.x64P file using the Platform Builder 'Remote File VIewer'? It's under the 'Target'->'Remote Tools'->'File Viewer'

    menu.  In the Remote File Viewer, choose 'File'->'Export File', and browse to the location of your all.x64P file.

    Thanks,

        Janet

  • Hi, Janet,

    I have done this before, but the result is the same.

    I really don't know how to fix it.

    Would you pls give me a great help?

    Thanks,

    Stephen

  • Stephen,

    Have you made any changes to the remote.cfg file for this example, or are you using it as is?

    Thanks,

        Janet

  • Hi, Janet,

    I use it as it is.

    Stephen

     

  • The sources are provided in the Codec Engine release, is it possible to step through them in your Visual Studio?

    A quick peek shows that ti/sdo/ce/ipc/dsplink/Processor_dsplink.c's Processor_create() is calling ti/sdo/ce/osal/wince/File_wince.c's File_stat() as a sanity check to ensure the file can be accessed before actually trying to load it onto the DSP.

    File_stat() simply calls the Win32 GetFileAttributes() API, and that's returning INVALID_FILE_ATTRIBUTES.  Are there any other funny attributes (like it's not readable, or it's only readable by certain users)?

    Chris

  • Hi,Chris,

    Thanks.

    I checked  Attibutes of all.x64P file, it is Archive only.

    By the way, is it possible to skip the File_stat() check?

    Best Regards,

    Stephen 

  • No easy way to skip the File_stat() check - if stepping through the code in a debugger, you could change the return value after it returned error.  But we intentionally do the file check ahead of time to provide a 'nicer' error than the one DSP Link's PROC_load() will give.

    I really don't know what the error is - if you can step through the code, it might be interesting to see what some of the return values are - or perhaps you can call GetLastError() immediately after returning from the failed Engine_open() and maybe it will contain more details about the failing GetFileAttributes() call?  Or maybe you can create a simple, tiny app that 'does what File_stat() does' and run it from the same dir... assuming it returns the same error, you could work through that in a simpler use case.

    Chris

  • Hi, Chris,

    Thanks a lot for your great help. I will have a try following your instructions, I will post the result after I create a simple app and test its result.

    By the way, I am a newbie, so I have not master how to debug through the VS2005.

    Best Regards,

    Stephen

  • Hi, Chris,

    I have tried your third way on PC,it works well. But still don't know why it comes to failure on WinCE.

    By the way, can you find that Reg.h file in the directory  codec_engine_2_24\packages\ti\sdo\ce\osal\wince, this file is included by Reg_wince.c in same directory?

    Thanks & Best Regards

    Stephen

     

  • Hi Stephen,

    When you used the Remote File VIewer to export the all.x64P file, did you make sure to put it at the top level? There is no

    concept of a "current directory" in Windows CE, so if you put it in the same directory as the app, that would not work.

    Do you need "Reg.h" for rebuilding the osal/wince package? It is actually not used, so you could just remove the line

    "Reg_wince.c",

    (should be line 57 of package.bld).

    Thanks,

        Janet

     

  • Hi, Janet

    I put the all.x64P under the "My Devices" directory, and put the app demos under the "Release" directory, right?

    Yep, I want to have a try to rebuild the osal/wince package, maybe the whole ce package in the future.

     Thanks,

    Stephen

  • Hi Stephen,

    In my case, when I bring up the remote file viewer, I see in the left panel a "Default Device", but maybe mine is just named

    differently from yours. Under "Default Device", i have the folders "Application Data", "Documents and Settings",..., "Release", "Temp", "Windows".

    I just export the "all.x64P" so it is at the top level of "Default Device". Is this similar to what you are doing?

    Regards,

        Janet

     

  • Hi, Janet,

    the same as yours .

     

    Thanks & Best Regards,

    Stephen

  • Hi,All

    Today, I find something different error message in two cases. In all cases, I run the command "osalsetenv CE_DEBUG 3" first.


    1. I put the all.x64P and app_remote_wince.exe in the same directory. When I run the demo, log messages and error messages below turn up:

    1945979 PID:52d00f6 TID:53500f6 @1946,116,000us: [+0 T:0x053500f6 S:0x0004fae4] OM - Memory_alloc> return (0x50d60)

    1945981 PID:52d00f6 TID:53500f6 @1946,118,000us: [+0 T:0x053500f6 S:0x0004fa90] CE - rserverOpen('all.x64P'), count = 0
    1945981 PID:52d00f6 TID:53500f6 @1946,120,000us: [+0 T:0x053500f6 S:0x0004fa60] OP - Processor_create> Enter(imageName='all.x64P', linkCfg='(null)', attrs=0x4faa4)
    1945985 PID:52d00f6 TID:53500f6 @1946,128,000us: [+7 T:0x053500f6 S:0x0004fa60] OP - Processor_create> ERROR: cannot access file all.x64P
    1945986 PID:52d00f6 TID:53500f6 @1946,130,000us: [+6 T:0x053500f6 S:0x0004fa90] CE - rserverOpen: can't start 'all.x64P'; Processor_create failed

    1945986 PID:52d00f6 TID:53500f6 @1946,130,000us: [+0 T:0x053500f6 S:0x0004fa90] CE - rserverOpen('all.x64P'): 0x0 done.
    1945990 PID:52d00f6 TID:53500f6 @1946,138,000us: [+0 T:0x053500f6 S:0x0004fac0] CE - Engine_close(0x50d60)
    1945990 PID:52d00f6 TID:53500f6 @1946,138,000us: [+0 T:0x053500f6 S:0x0004faa4] OM - Memory_free> Enter(0x50d60, 0x2c)
    1945993 PID:52d00f6 TID:53500f6 @1946,144,000us: [+0 T:0x053500f6 S:0x0004faa4] OM - Memory_free> return (0x1)
    1945993 PID:52d00f6 TID:53500f6 @1946,144,000us: [+0 T:0x053500f6 S:0x0004faf8] CE - Engine_open> return(0)
    1945995 PID:52d00f6 TID:53500f6 \HDD\app_remote_wince.exe: error: can't open engine image1_copy

    In this case, the error should be all.x64P can not be accessed, I think it means all.x64P can not be found.


    2.  I put the all.x64P in the root folder just as Janet here told me, and put app_remote_wince.exe in \Release or my HardDisk Directory. When  I run the demo, log messge and error messages below turn up:

    2022170 PID:4240126 TID:46d0126 @2022,318,000us: [+3 T:0x046d0126 S:0x0006fdec] OP - LINKCFG_Object generated for PROC_setup(p) ...
    2022170 PID:4240126 TID:46d0126 @2022,318,000us: [+3 T:0x046d0126 S:0x0006fdec] OP - linkCfg->gppObject->
    2022170 PID:4240126 TID:46d0126 @2022,318,000us: [+3 T:0x046d0126 S:0x0006fdec] OP -   name = "ARM9"
    2022171 PID:4240126 TID:46d0126 @2022,320,000us: [+3 T:0x046d0126 S:0x0006fdec] OP -   maxMsgqs = 0x82
    2022171 PID:4240126 TID:46d0126 @2022,320,000us: [+3 T:0x046d0126 S:0x0006fdec] OP -   maxChnlQueue = 0x10
    2022171 PID:4240126 TID:46d0126 @2022,320,000us: [+3 T:0x046d0126 S:0x0006fdec] OP -   poolTableId = 0xffffffff
    2023245 PID:4240126 TID:46d0126 @2024,468,000us: [+3 T:0x046d0126 S:0x0006fdec] OP -   numPools = 0x0
    2023246 PID:4240126 TID:46d0126 @2024,470,000us: [+3 T:0x046d0126 S:0x0006fdec] OP -  .......................................................................................................dsplink config message

    2023429 PID:4240126 TID:46d0126 @2024,836,000us: [+2 T:0x046d0126 S:0x0006fe04] OP - Processor_create_d> Attaching to DSP PROC...
    2023431 PID:4240126 TID:46d0126 @2024,838,000us: [+7 T:0x046d0126 S:0x0006fe04] OP - Processor_create_d> Loading and starting DSP server 'all.x64P' FAILED, status=[0x80008052] (look for error code 'DSP_EBASE + 0x52' in dsplink*/pack 2023431 PID:4240126 TID:46d0126 ages/dsplink/gpp/inc/usr/errbase.h) 


    2023433 PID:4240126 TID:46d0126 @2024,844,000us: [+0 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Enter (proc=0x50da0)
    2023434 PID:4240126 TID:46d0126 @2024,846,000us: [+2 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Closing remote transport...
    2023436 PID:4240126 TID:46d0126 @2024,850,000us: [+6 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Closing remote transport FAILED, status=0x80008002.
    2023436 PID:4240126 TID:46d0126 @2024,850,000us: [+2 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Stopping DSP...
    2023439 PID:4240126 TID:46d0126 @2024,856,000us: [+6 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Stopping DSP FAILED, status=0x80008002
    2023439 PID:4240126 TID:46d0126 @2024,856,000us: [+2 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Closing pool...
    2023440 PID:4240126 TID:46d0126 @2024,858,000us: [+6 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Closing pool FAILED, status=0x80008000
    2023441 PID:4240126 TID:46d0126 @2024,860,000us: [+2 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Detaching from DSP...
    2023442 PID:4240126 TID:46d0126 @2024,862,000us: [+6 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Detaching from DSP FAILED, status=0x80008000
    2023446 PID:4240126 TID:46d0126 @2024,870,000us: [+2 T:0x046d0126 S:0x0006fdf0] OP - Processor_delete_d> Destroying DSP... (object, that is)

    ..............................

    2023459 PID:4240126 TID:42500da @2024,896,000us: [+0 T:0x042500da S:0x0004fa38] OM - Memory_free> return (0x1)
    2023459 PID:4240126 TID:42500da @2024,896,000us: [+0 T:0x042500da S:0x0004fa54] OP - Processor_delete> return.
    2023460 PID:4240126 TID:42500da @2024,898,000us: [+6 T:0x042500da S:0x0004fa90] CE - rserverOpen: can't start 'all.x64P'; Processor_create failed
    2023460 PID:4240126 TID:42500da @2024,898,000us: [+0 T:0x042500da S:0x0004fa90] CE - rserverOpen('all.x64P'): 0x0 done.

    In this case, I think the error maybe the dsplink, all.x64P can be found, but when be loaded into dsp, some things based on DSPlink make error, right?

    Would someone help me to check this?


    Thanks & Best Regards,


    Stephen

  • Stephen,

    The error basically means that the configuration of Codec Engine on the ARM side does not match the Codec Server's memory configuration. You will have to re-check your Server's .tcf file and also the configuration done in the Codec Engine IPC module.

    This error is thrown from the DSP LINK and you may want to re-build the LINK with the trace options to know from which module [LDRV], this error is thrown.

     

  • Hi Stephen,

    If you're using the remote.cfg file as is for this example,  you should be ok with the memory configuration, since remote.cfg uses

    Engine.createFromServer() to get the memory map. Unless you changed the server .tcf file, and did not re-run the configuration step

    for the ARM side app, you should be ok. How are you building dsplink? You could re-build dsplink with tracing on, to get more info.

    Here are the steps for re-building dsplink for OMAP353 with tracing enabled (taken from InstallGuide_WinCE_OMAP3530.pdf)

     (I'll assume you have installed dsplink in C:\mytools):

    1. Set up the environment variables, TI_TOOLS_BASE_DIR, BIOS_INSTALL_DIR, XDCROOT, CGTOOLS_INSTALL_DIR, and BASE_PERL according to the locations where these tools are installed (check InstallGuide_WinCE_OMAP3530.pdf for explanation of these environment variables).

    2. In the Platform Builder "Build" menu, select "Open Release Directory in Build Window" to get a command window with the WinCE environment set.

    3. In the command window, run these three commands:

        cd C:\mytools\dsplink\etc\host\scripts\msdos

        .\dsplinkenv.bat

        .\dsplinkcfg.bat --platform=OMAP3530 --nodsp=1 --dspcfg_0=OMAP3530SHMEM --dspos_0=DSPBIOS5XX --gppos=WINCE --comps=poslm --trace=1

    4. Edit the file C:\mytools\dsplink\gpp\src\pmgr\WinCE\drv_pmgr.c and uncomment the following two lines:

        TRC_ENABLE (ID_LDRV_PROC) ;

        TRC_SET_SEVERITY (TRC_ENTER) ;

    5. Build the dsplink libraries:

        cd c:\mytools\dsplink

        gmake -C gpp/src

        gmake -C dsp/src

    Make sure to copy the dsplink.dll to your flat release directory and rebuild your image. Also, make sure there are no old dsplink.dll files lying around that came with your BSP. If there are, you will need to rename or remove these.

    6. You may also want to build and run the dsplink message app:

        cd c:\mytools\dsplink\gpp\src\samples\message

        gmake

        cd c:\mytools\dsplink\dsp\src\samples\message

        gmake

    Copy the dsp side message.out and the ARM side messagegpp.exe to your flat release directory. To run the message example for 10 iterations, in a Platform Builder command window:

        s messagegpp /Release/message.out 10

    Regards,

        Janet

     

  • Hi, all

    I trace the error to

    5765523 PID:400002 TID:4af0776  LDRV_DRV_init status [0x8000801a]
    5765534 PID:49d0772 TID:4af0776 @1473,544,704us: [+7 T:0x04af0776 S:0x0006fe04] OP - Processor_create_d> Loading and starting DSP server 'all.x64P' FAILED, status=[0x8000801a] (look for error code 'DSP_EBASE + 0x1a' in dsplink*/pack
    5765535 PID:49d0772 TID:4af0776 ages/dsplink/gpp/inc/usr/errbase.h)

    Thanks ,

    Stephen

  • Hi Stephen,

    The error code is DSP_EVALUE (I'm not sure where that's coming from). You could try stepping through the dsplink code in LDRV_DRV_init() in the Platform Builder debugger, to see at which point the failure occurs. To do this, you can add

        DebugBreak();

    at the beginning of LDRV_DRV_init(). (Make sure to inlude header files <windows.h> and <kfuncs.h>). Rebuild dsplink and put the debug dsplinkk.dll and dsplinkk.pdb files in your flat release directory. Then rebuild your image. When you run your app, you will break into the debugger, and you should be able to step through the code.

    Regards,

        Janet

     

  • Hi, Janet,

    Can I be sure that it is the dspllink that makes the error and it has nothing to do with the codec engine?

    I means that whether I can make sure the codec engine is ok , but the dsplink doesn't work well with the codec engine.

    Thanks,

    Stephen

  • Hi Stephen,

    I think the error is due to a mismatched dsplink configuration between the ARM side dsplinkk.dll and the dsp side all.x64P, since the

    error being returned by dsplink (DSP_EBASE + 0x52), is DSP_ECONFIG. It would be nice to see the trace output from dsplink, to see

    what exactly is being mis-configured.

    Thanks,

        Janet

     

  • Hi, Janet,

    I have traced the error to

      67586 PID:400002 TID:5f2002a Leaving LDRV_SMM_init ()  status [0x8000]
      67588 PID:400002 TID:5f2002a Entered LDRV_SMM_alloc ()
     dspId [0x0]
     memEntryId [0x3]
     physAddr [0x0]
     dspVirtAddr [0xc09b5a94]
     gppVirtAddr [0xc09b5a90]
     size [0x100]
      67588 PID:400002 TID:5f2002a Leaving LDRV_SMM_alloc ()  status [0x8000801a]

    the error is print out from ldrv_smm.c , but I have not found why it is error.

    Thanks .

    Stephen

     

  • Hi Stephen,

    It looks like dsplink is trying to allocate memory from one of the memory entries (memEntryId = 3), that is not valid for allocating from. If you look in the generated "C" file for your remote app, app_remote_wince_exe.c, which you can find under image1_copy/package/cfg/bin/ti_platforms_evm3530, you will see the memory table that was created from the server. It should look something like to following:

    static Global_ArmDspLinkConfigMemTableEntry armDspLinkConfigMemTable_all_x64P[] = {
        { "DDR2", 0x87800000, 0x87800000, 0x00600000, 1, 0 },
        { "DSPLINKMEM", 0x87E00000, 0x87E00000, 0x00100000, 1, 0 },
        { "RESET_VECTOR", 0x87F00000, 0x87F00000, 0x00001000, 1, 0 },
        { "IVAMMU", 0x5D000000, 0x5D000000, 0x00001000, 0, 0 },
        { "L4PER", 0x49000000, 0x49000000, 0x00100000, 0, 0 },
        { "IRAM", 0x107F8000, 0x5C7F8000, 0x00008000, 1, 0 },
        { "L1DSRAM", 0x10F04000, 0x5CF04000, 0x0000C000, 1, 0 },
        { "DDRALGHEAP", 0x86000000, 0x86000000, 0x01800000, 0, 0 },
        { "L4CORE", 0x48000000, 0x48000000, 0x01000000, 0, 0 },
        { "CMEM", 0x00000000, 0x00000000, 0x00000000, 0, 0 },
        { NULL, 0, 0, 0, 0, 0 }
    };

    In this case, the memEntryId = 3, corresponds to "IVAMMU", which should not be used for allocations. When I break into the LDRV_SMM_alloc() code in Platform Builder, the memEntryId is 1, which corresponds to "DSPLINKMEM". If you run your app with CE_DEBUG = 2, you will see all the dsplink configuration in the trace, which shows the memEntryId values. For example, here is a part of the trace output I get:

    3051160 PID:41b0012 TID:4390012 @3053,585,000us: [+3 T:0x04390012] OP - LINKCFG_Object generated for PROC_setup(p) ...

    3051160 PID:41b0012 TID:4390012 @3053,585,000us: [+3 T:0x04390012] OP - linkCfg->gppObject->

    3051160 PID:41b0012 TID:4390012 @3053,587,000us: [+3 T:0x04390012] OP -   name = "ARM9"

    .....

    3051160 PID:41b0012 TID:4390012 @3053,621,000us: [+3 T:0x04390012] OP - linkCfg->dspConfigs[0]->linkDrvObjects->

    3051160 PID:41b0012 TID:4390012 @3053,621,000us: [+3 T:0x04390012] OP -   name = "SHMDRV"

    3051160 PID:41b0012 TID:4390012 @3053,621,000us: [+3 T:0x04390012] OP -   hshkPollCount = 0x989680

    3051160 PID:41b0012 TID:4390012 @3053,623,000us: [+3 T:0x04390012] OP -   memEntry = 0x1

    3051160 PID:41b0012 TID:4390012 @3053,623,000us: [+3 T:0x04390012] OP -   ipsTableId = 0x0

    3051160 PID:41b0012 TID:4390012 @3053,623,000us: [+3 T:0x04390012] OP -   numIpsEntries = 0x1

    .....

    So in my case, the dsplink driver object is using memEntry 1 ("DSPLINKMEM") for allocations. Can you take a look at your trace output at the linkCfg object that is dumped and see if any of the objects have a memEntry of 3? Have you changed any of the memEntry settings in Processor_dsplink_linkcfg_OMAP3530.c?

    Thanks,

        Janet

     

  • Hi, All

    I  now got  to know where and what the erro are, I am trying to fix them all.

    I have resolved the problems above but still meet some other problems.

    Maybe I will create a new post to disscuss with guys here.

    Thanks a lot for guys who give me great help.

     

    Best Regards,

    Stephen

     

  • How to fix it ?

    I meet this problem,and I use linux.

    can you help me?

    @0x00016df9:[T:0x4001d2f0] ti.sdo.ce.examples.apps.video_copy - [ 2073.610321] Entry exists for address: [0x85000000] size: [0x1000000]
    main> ti.sdo.ce.examples.apps.vi[ 2073.618164] DSP_init status [0x80008050]
    deo_copy
    @0x00017098:[T:0x4001d2f0] ti.sdo.ce.examples.apps.video_copy - App-> Application started.
    app: error: can't open engine video_copy
    @0x0001ccdc:[T:0x4001d2f0] ti.sdo.ce.examples.apps.video_copy - app don