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.

hua_evmc6678l is not working properly

Other Parts Discussed in Thread: SYSBIOS

Hi

I am trying a hua_evmc6678l with the next installation:

CCS 5.3.0.00090 +   bios_mcsdk_02_01_02_06_setupwin32.exe ( http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/exports/bios_mcsdk_02_01_02_06_setupwin32.exe )

Whit this configuration of sw3-sw6 and sw9:
    1 2 3 4
sw3 0 0 1 0
sw4 1 0 1 1
sw5 1 1 1 0
sw6 1 1 1 1

sw9 1 1


at some point core 0 stopped and gave this error:

[C66xx_0] QMSS successfully initialized
CPPI successfully initialized
PA successfully initialized
HUA version 2.00.00.04
Setting hostname to tidemo-064974
MAC Address: 40-5F-C2-B9-21-F9
Configuring DHCP client
PASS successfully initialized
Ethernet subsystem successfully initialized
Ethernet eventId : 48 and vectId (Interrupt) : 7
Timeout waiting for reply from PA to Pa_addMac command
ti.sysbios.heaps.HeapMem: line 354: assertion failure: A_invalidFree: Invalid free
xdc.runtime.Error.raise: terminating execution

I have tried the recomendation of this thread

http://e2e.ti.com/support/embedded/bios/f/355/t/181125.aspx

in order to modify heap memory size, but the error remain.

I tried the following thread also:

http://e2e.ti.com/support/embedded/bios/f/355/t/108589.aspx

using  BIOS.heapSize = 0x1E8480;//2 Mb before was 0xF4240~2Mb

and BIOS.heapSection = "systemHeap";

but the compiler shows the warning:

BIOS.heapSize and Memory.defaultHeapInstance have both been set.  BIOS.heapSize ignored. 
Using Memory.defaultHeapInstance.vm.cfg /hua_evmc6678l ti.sysbios.BIOS XDCTools Configuration Marker


I just want to use that demo as reference for my application, mainly Ethernet connection and multicore communication and PCIe that does not come in this demo.
I tried other installations and always there is a problem when demo is runnig:

http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/253684/894421.aspx#894421

I tried out of the box demo and there was no problem, that was using DHCP.

 

I hope someone could help me to fix the problem.


Thanks in advance.
Julian Garcia

  • I have noticed that there is an error:

    Can't find a source file at "/tmp/TI_MKLIB6sLCzz/SRC/exit.c"
    Locate the file or edit the source lookup path to include its location.

     

    Regards,

    Julian

  • Julian

    You are getting an assert that says the program is trying to free some memory into a heap that doesn't belong in the heap.  Are you able to localize which Memory free call is causing the assertion?  I don't think its a heap size error.

    Judah

  • Judah,

     

    thank you for your answer,

    I am not  able to localize where is the memory free call,  Could you tell how to localize it?.

    I tried to run the demo without ethernet cable pluged to the board and not show error  I mentioned before

     

    [C66xx_0] QMSS successfully initialized

    CPPI successfully initialized

    PA successfully initialized

    HUA version 2.00.00.04

    Setting hostname to tidemo-064974

    MAC Address: 40-5F-C2-B9-21-F9

    Configuring DHCP client

    PASS successfully initialized

    Ethernet subsystem successfully initialized

    Ethernet eventId : 48 and vectId (Interrupt) : 7

    Verify_Init: Expected 0 entry count for Queue number = 910, found 64 entries

    Verify_Init: Expected 0 entry count for Queue number = 911, found 64 entries

    Registration of the EMAC Successful, waiting for link up ..

    Service Status: DHCPC : Enabled : : 000

    Service Status: THTTP : Enabled : : 000

    Service Status: DHCPC : Enabled : Running : 000

     

    After I plug the ethernet cable to board the follow appears in the console:

     

    Network Added: If-1:10.88.4.157

    Service Status: DHCPC : Enabled : Running : 017

     

    I entered that ip address in browser and the demo seems to work well.

    But I think to have to unplug ethernet cable before to run the core 0  is not a normal behaviour .

    I  run the core3 and 4 after that and there are errors, I am wondering if it is necessary run the other cores (1 to 7) in this demo?

     

    [C66xx_3] ti.sysbios.knl.Task: line 330: E_stackOverflow: Task 0x81468098 stack overflow.

    xdc.runtime.Error.raise: terminating execution

    [C66xx_4] A0=0x0 A1=0x0

    A2=0x0 A3=0x815b8750

    A4=0x0 A5=0xf8

    A6=0x4 A7=0x60

    A8=0x815b8fb0 A9=0x2

    A10=0x15000100 A11=0x815b8750

    A12=0x815b8760 A13=0x815a97e8

    A14=0x81593168 A15=0x0

    A16=0x82880c A17=0x0

    A18=0x8287dc A19=0x20

    A20=0xf6fde7be A21=0x12318a70

    A22=0xe9bfafce A23=0xaffbfbf3

    A24=0xffffffff A25=0xdbd2fabe

    A26=0x55fa1b13 A27=0xfff7eeeb

    A28=0xf9b9785d A29=0x40

    A30=0x40 A31=0x0

    B0=0x8287a0 B1=0x0

    B2=0x1 B3=0x0

    B4=0x15000101 B5=0x815a9970

    B6=0x815b8214 B7=0x0

    B8=0x815b942c B9=0x0

    B10=0x815b8758 B11=0x815b8750

    B12=0x815b8760 B13=0x0

    B14=0x815bab30 B15=0x814cc820

    B16=0xfa00000 B17=0x0

    B18=0x7ff7f5ef B19=0x20115181

    B20=0xa3fff859 B21=0x21312442

    B22=0xffdffd9f B23=0xc05a24cb

    B24=0x108220cc B25=0x108220cc

    B26=0xcf5e3be1 B27=0xaefdd7f7

    B28=0xffd3ba7e B29=0xa26ade29

    B30=0x84c8bc06 B31=0xffffffff

    NTSR=0x1000f

    ITSR=0x0

    IRP=0x0

    SSR=0x0

    AMR=0x0

    RILC=0x0

    ILC=0x0

    Exception at 0x0

    EFR=0x2 NRP=0x0

    Internal exception: IERR=0x1

    Instruction fetch exception

    ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x00000000, sp = 0x814cc820.

    To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'

    xdc.runtime.Error.raise: terminating execution

     

    Regards,

    Julian

  • Julian,

    I'm going to see if I can get someone to move your post over to the multicore forum.  I'm not familiar with the example you are running and folks in that forum probably have a much better idea of the example.

    Judah

  • ok thanks,

    actually I don´t know why is this post in bios forum, it supposed this should be in keystone multicore forum:

    Regards,

    Julian

  • Julian,

    I had moved it to the BIOS forum because the early details indicated it was BIOS related.

    That said, the latest piece of information shows an exception when trying to execute from 0x0.  There's no memory there.  You code jumped to 0x0.  Not sure why this has happened, if it's a bad Linker Command file or something else, such as you stack being corrupted as I notice that B3, which would hold the return pointer from a function call is also 0x0, it may have had the stack corrupted and the return pointer being overwritten w/ 0x0 and popped off the stack and then jumped to 0x0.

    Please check that you have a valid linker command file w/ memories defined in valid spaces, and check your stack size.  Make sure you're not overflowing the stack into another space.

    Best Regards,

    Chad

  • Chad,

    I checked the cmd file and compared it with cmd file for 6678 that appears in http://processors.wiki.ti.com/index.php/Linker_CMD_Files_for_CCS

    the only strange that I see is the heap declaration:

    --args 0x0
    -heap  0x0
    -stack 0x1000

    I tried to modified the stack value but it is overwritten.

    There is a DDR (RWX) definition that has len = 0x1fffffff and it means 536Mb, as far as I know the board

    only hast 512Mb DDR3, so I suppose this value is wrong.

    if it is necessary to modify these values could you please tell me where.

    I attach the cmd file  2656.linker.zip so you can check it and give me your comments.

     

    Thanks,

    Julian

  • Julian,

    Does this problem occur on the first run of the demo, or is it on subsequent runs?

    If the issue is on subsequent runs, you must do a system reset (Ctrl+Shift+R), and then a restart + resume.

    1. 

     

    2. 

     

    3.  Resume (F8)

     

    Regards,
    Mike

     

  • Chad,

    actually I was trying a simple example [http://processors.wiki.ti.com/index.php/OpenMP_on_C6000], it just print "Hello World from thread = X" using just 4 cores

    but it give me a similar error as above when I try to run it.

    [C66xx_0] A0=0x90000200 A1=0x90000200
    A2=0x0 A3=0xb4
    A4=0x9b4e6b7 A5=0x90000200
    A6=0xa29030ec A7=0x0
    A8=0x1844018 A9=0x1
    A10=0x2 A11=0xa0194a84
    A12=0x5ff7a15e A13=0xc039d6c
    A14=0x90000200 A15=0x0
    A16=0x90000008 A17=0x8
    A18=0x90000180 A19=0x40
    A20=0x100 A21=0x0
    A22=0x803c7fb8 A23=0x19fcd500
    A24=0x49 A25=0x19bff61d
    A26=0x49 A27=0x0
    A28=0x0 A29=0xc038848
    A30=0x2 A31=0xa019205c
    B0=0x1 B1=0x1
    B2=0x1 B3=0xc029510
    B4=0x90000200 B5=0xc039d6c
    B6=0x0 B7=0x1
    B8=0x1000 B9=0x0
    B10=0x90000088 B11=0x0
    B12=0x1 B13=0xc02b664
    B14=0xa0194878 B15=0x828eb8
    B16=0x0 B17=0x829018
    B18=0xff B19=0x20
    B20=0x20 B21=0x2a2288c
    B22=0x8024a948 B23=0x803e0870
    B24=0x801a8690 B25=0x803e0828
    B26=0x8038fb20 B27=0x8e76e4d0
    B28=0x8e76e4d0 B29=0x0
    B30=0x21 B31=0x0
    NTSR=0x1000f
    ITSR=0x4
    IRP=0xc039400
    SSR=0x0
    AMR=0x0
    RILC=0x0
    ILC=0x0
    Exception at 0xa290335c
    EFR=0x2 NRP=0xa290335c
    Internal exception: IERR=0x8
    Opcode exception
    ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0xa290335c, sp = 0x00828eb8.
    To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
    xdc.runtime.Error.raise: terminating execution

    I do not what to do because if I can not even start with the simple examples, so I can not advance with project.

    What is your recommendation?, maybe you know a stable installation I could try.


    I look forward to your feedback.

    I appreciate your help,

    Julian

  • Julian,

    This is a "known" issue with the compiler version 7.4.1 and 7.4.2.  You need to use 7.4.0.  I am trying to track down a download link for you now.

    Mike

  • That's a different exception.  This is an Opcode exception (IERR = 8) IERR and these registers are defined in the C66x CPU and Instruction Manual, so you can decode these.

    That said, it doesn't appear to be the same exact issue as above but could extend from the same issue if it's a Stack Overflow issue, it's indicating that you're at an address in DDR space, but if I recall correctly that EVM only has 512M of DDR3 and this would be beyond that space, so it would have just got garbage.

    Did you take the source from the Wiki and run it as is?  Or did you rebuild and run? 

    Best Regards,

    Chad

  • The wiki recommends creating a new CCS project, using the OMP Hello World template.  I did the same and got similar output to Julian's (much is the same, so I missed that our exact exceptions were differnt):

    Internal exception: IERR=0x10
    Resource conflict exception
    ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0xbbc47a30, sp = 0x00828eb8.
    To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
    xdc.runtime.Error.raise: terminating execution

    I installed CGT 7.4.0 and it works...  I dunno.

    [C66xx_0] Hello World from thread = 0
    Number of threads = 4[C66xx_3]
    Hello World from thread = 3
    [C66xx_1] Hello World from thread = 1
    [C66xx_2] Hello World from thread = 2

    Here's the link, BTW: https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm

  • Hi,

    I follow Michael recommendation and openMP example works.

    Now the hua_evmc6678l works well sometimes because when I click run i get the IP and

    I consult the browser and the demo is running (This has happened a few times). But the most of times

    I get this:

    QMSS successfully initialized
    CPPI successfully initialized
    PA successfully initialized
    HUA version 2.00.00.04
    Setting hostname to tidemo-
    MAC Address: 40-5F-C2-B9-21-F9
    Configuring DHCP client
    PASS successfully initialized
    Ethernet subsystem successfully initialized
    Ethernet eventId : 48 and vectId (Interrupt) : 7
    Registration of the EMAC Successful, waiting for link up ..
    Service Status: DHCPC    : Enabled  :          : 000
    Service Status: THTTP    : Enabled  :          : 000
    Service Status: DHCPC    : Enabled  : Running  : 000

    and no show IP. If I click system reset->reload program the result is the same.

    If I only click reload program I get this:


    QMSS successfully initialized
    CPPI successfully initialized
    PA successfully initialized
    HUA version 2.00.00.04
    Setting hostname to tidemo-
    MAC Address: 40-5F-C2-B9-21-F9
    Configuring DHCP client
    PASS successfully initialized
    Ethernet subsystem successfully initialized
    Ethernet eventId : 48 and vectId (Interrupt) : 7
    Timeout waiting for reply from PA to Pa_addMac command
    ti.sysbios.heaps.HeapMem: line 354: assertion failure: A_invalidFree: Invalid free
    xdc.runtime.Error.raise: terminating execution

    How I can get the emulation works well?

    Thanks in advance.

    Julian

  • Julian,

    Sorry for the delay. 

    Does your target configuration have a GEL file specified?

    What type of DHCP server are you running- it is an "enterprise class" server, or a consumer grade router?  I can do a wireshark capture for you to compare against what you are seeing to determine if it is a network issue or not (we want to make sure you're getting a DHCP request and response).

    Another thing you can try is to use your own dedicated DHCP server on your own personal network.  This would require disconnecting your PC from your network so you're not assigning DHCP addresses to other machines on the network.  For Windows, I like to use Tftpd32.  Check out this conversation for instructions for both the TFTP server configuration and GEL file inclusion: http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/239643/854786.aspx#854786

    Mike

  • Mike,

    thanks for your answer,

    I was not using gel file, now I added

    the gel file what comes with mcsdk with path: mcsdk_2_01_02_06\tools\program_evm\gel\evmc6678l.gel

    The other thing is that I was using switches sw3-sw6: 0010/1011/1110/1111 sw9: 11.

    Nom I am using no boot configuration sw3-sw6: 0111/1111/1111/1111 sw9: 11

    The thinks improve with hua_evmc6678l it seems to be more stable when it runs and  get the IP using DHCP (sometimes it fails or hang out waiting for link up),

    but the problem remain strong  with the hello_openmp_evm6678

    I follow the next steps to try it runs correctly:

    I hope this images give more information about the problem.

    About the server, here in the company are using a enterprise server.

    The only to consider is that demo oob demo is running without problems using dhcp here at he office,

    I don´t know if the demo using emulator must have a different behavior.

    Thanks.

    Julian

  • Julian,

    I'll take a look at the OpenMP Hello example and put together step-by-step instructions that expand on the wiki article shortly.

    Mike

  • Julian,

    Going through the example again with a critical eye tells me your project may need a few checks:

    1) Is the compiler set to 7.4.0
    2) Is there a GEL file specified?
    3) Has the cfg file been modified?
    4) Are you running on just the first 4 cores?

    I've attached a PDF of my notes made during the process.  Please go through them and let me know how it goes!

    Mike5611.C6678 OMP HW.pdf

  • Mike,

    it seems that I was working with:

    1)  7.4.2

    2) mcsdk gel file

    3)  and 4) I had modified cfg to use 8 cores so the NTHREADS was changed to 8.

    I follow your indications and the example runs like you said in your pdf, but the point is that I can´t

    restart the demo, the only way is to exit from debug session and enter again.

    Does this happen to you?  If not please tell how you restart the demo without leaving debug session.

    Other thing is that I need to run 8 cores  so if you could tell me what to modify to do it properly I´ll appreciated.

    Regards,

    Julian

  • Julian,

    I added to my instructions to include modifying the example for 8 cores, and restarting the program properly within the current debug sessions.

    Good luck!

    Mike

    5383.C6678 OMP HW.pdf

  • Mike,

    your instructions work with the demo using 4 cores,

    demo is not working when I try to change to 8 cores because

    when i enter to debug  session the cores 0 to 3 appear running and the rest of them as disconnected.

     and it is impossible to get it runs correctly.

    I have attached my ccxml and cfg files, I hope it helps to see

    what I am doing wrong.

    4034.cfg_ccxml.zip

    Regards,

    Julian

  • You must load the program on all cores you intend to run the program on- I forgot to mention that.

    Do a system reset.
    Select cores 4-7, right-click, and select Connect Target
    Select all cores (0-7), go to Run->Load->Load Program, select the proper ".out" file (it will likely already be selected for you).
    Press F8 to resume.

    To run it again, do a System Reset, Select all cores and press Restart, then select Core 0 and press Resume (twice).

    When you first hit debug, you are given a popup window to select which cores to load the program to.  I have not figured out how to bring that window back to allow you to select all 8 cores to streamline this process a bit.

     

    MIke

     

     

  • Mike,

    I just create the project again and I change the .cfg an ccxml file to 8 cores then I press debug

    and the window that let me select cores appears, I checked 8 cores, and press ok.

    To run the demo I just press system reset then selected all cores  then load program then select core 0 and press run. This procedure

    has to be done every time I want to restart the demo.

    I was wondering  what is the difference with hua_evmc6678l demo because  I was searching in ccxml files and there  is not a definition of numbers of

    cores.

    I was thinking if both demos are using openMP, if not what is hua_evmc6678l using ?  I ask this because I am interested  in doing application that runs 8 cores with NETCP PA, PCIe and it seems that I need to use Multicore Navigator too for that, and hua_evmc6678l seems to be the most close what I want.

    Thanks,

    Julian