Hi all,
I create a sys/bios helloworld project in CCSv5.
I am using c6a8168.I load the gel evm816x.gel and add a C6A816X.cmd to the project.
But when building project it comes errors "DDR0 memory range overlaps existing memory""L3OCMC0 memory range overlaps existing memory".
My .cmd file is downloaded from http://processors.wiki.ti.com/images/a/a7/C6A816x.zip.
Then I remove the C6A816x.cmd, building succes.But when I load program to core C674x, it prints nothing.
How to run a sys/bios example on c6a8168's dsp core?
francis
Hi Francis,
I just ran the hello world example on the C67x core of a TMDXEVM8148, just to make sure there nothing wrong with our dmtimer module. It worked fine on the actual hardware.
This means that the timer (dmtimer) that C674x uses is not supported by the simulator (C674x CPU Cycle Accurate Simulator).
Here are your options:
Use the actual hardware instead of the simulator
- or -
Change the platform to ti.platforms.evm6748 with the C674x CPU Cycle Accurate Simulator. This platform uses a timer64 instead of a dmtimer.
Thanks,
Tom
Hi everybody
I am using CCS Version: 5.1.1.00031, DM3730, XDS100v2 on windows 7 32 bit
On my C64x+ side , i was trying to run SYS/BIOS examples, there i was getting error like
Can't find a source file at "/db/vtree/library/trees/avala/avala-p52x/src/ti/sysbios/timers/gptimer/Timer.c" Locate the file or edit the source lookup path to include its location.
Note: In RTSC platform i am selecting evm 3530 as target because, they both are sister versions.
I tried this hello example on simulator c64x+ using system_flush just after System_printf(), there i am getting the result, but while doing it on hardware i am getting some error as mentioned above
Can anybody guide me on this
With Regards
Nitin Mewada
Hi
So far i am able to run every SYS/BIOS example on simulator....For simulator i used System_flush();, problem solved...
but what about running on about C64x+ side of DM3730.
I guess something is wrong when i am choosing ti.platforms.evm3530 for my BeagleBoard-xm(DM3730). in case there is the problem with selecting board then should i fill specifications about the new platform according to the Reference guide from TI , i mean hardware reference guide
Does anybody have clue on this now ???
Nitin
Hi Nitin,
I'm somewhat confused on with what you are having problems with.
Is this related to this discussion here: http://e2e.ti.com/support/embedded/bios/f/355/t/177874.aspx, if so, then we need to continue the discussion on that thread.
Simulators only support a limited functionality (only specific timers for example). Which particular simulator are you using? What is working and what isn't?
Sorry to budge in, but did you solve your problem? I am seeing the exact same problem with the Hello World example loaded to the C674x (DSP) side of the TMS320C6A8168 (on the Spectrum Digital 816x EVM). The message is never printed and the execution is stuck in the timer initialization it seems. I have tried a different platform (OMAP-L138) and with this platform it works! But with the TI816x or DM816x platform it wont work.
Is it possible that the GEL file does not enable / power-up the timers? I am using the default GEL filr from Spectrum Digital.
Regards,
Niki
hi Niki,
I haven't solved the problem. I am looking forward to someone's help...
Gentlemen,
I'm seeing your problems on the CA8168 and DM3730 now, sorry for the confusion.
The problem is that (for some reason) the C6000 cannot read the correct value from the (dm or gp)timer register (it always shows up with 0x00000000, when it shouldn't) and hence the timer config function spins forever in the while loop waiting for the timer to finish it's reset.
I believe perhaps that the clocks to the timer peripheral or the peripheral's interface aren't enabled. This can be done using GEL files, which I don't have at the moment. I'll see what I can find and will keep you posted.
Hi,
I have added the following to my GEL file and it fixed the problem:
/* Timer PRCM Registers */#define CM_ALWON_TIMER1_CLKCTRL (PRCM_BASE_ADDR + 0x1570)#define CM_ALWON_TIMER2_CLKCTRL (PRCM_BASE_ADDR + 0x1574)#define CM_ALWON_TIMER3_CLKCTRL (PRCM_BASE_ADDR + 0x1578)#define CM_ALWON_TIMER4_CLKCTRL (PRCM_BASE_ADDR + 0x157C)#define CM_ALWON_TIMER5_CLKCTRL (PRCM_BASE_ADDR + 0x1580)#define CM_ALWON_TIMER6_CLKCTRL (PRCM_BASE_ADDR + 0x1584)#define CM_ALWON_TIMER7_CLKCTRL (PRCM_BASE_ADDR + 0x1588)
Setup_PRCM(){ < code removed for clarity >
// Enable Timers GEL_TextOut( "Enabling Timer 1...\n" ); WR_MEM_32(CM_ALWON_TIMER1_CLKCTRL, 0x2); // Enable Timer Clock while((RD_MEM_32(CM_ALWON_TIMER1_CLKCTRL) & 0x2) !=0x2); GEL_TextOut( "Enabling Timer 2...\n" ); WR_MEM_32(CM_ALWON_TIMER2_CLKCTRL, 0x2); // Enable Timer Clock while((RD_MEM_32(CM_ALWON_TIMER2_CLKCTRL) & 0x2) !=0x2); GEL_TextOut( "Enabling Timer 3...\n" ); WR_MEM_32(CM_ALWON_TIMER3_CLKCTRL, 0x2); // Enable Timer Clock while((RD_MEM_32(CM_ALWON_TIMER3_CLKCTRL) & 0x2) !=0x2); GEL_TextOut( "Enabling Timer 4...\n" ); WR_MEM_32(CM_ALWON_TIMER4_CLKCTRL, 0x2); // Enable Timer Clock while((RD_MEM_32(CM_ALWON_TIMER4_CLKCTRL) & 0x2) !=0x2); GEL_TextOut( "Enabling Timer 5...\n" ); WR_MEM_32(CM_ALWON_TIMER5_CLKCTRL, 0x2); // Enable Timer Clock while((RD_MEM_32(CM_ALWON_TIMER5_CLKCTRL) & 0x2) !=0x2); GEL_TextOut( "Enabling Timer 6...\n" ); WR_MEM_32(CM_ALWON_TIMER6_CLKCTRL, 0x2); // Enable Timer Clock while((RD_MEM_32(CM_ALWON_TIMER6_CLKCTRL) & 0x2) !=0x2); GEL_TextOut( "Enabling Timer 7...\n" ); WR_MEM_32(CM_ALWON_TIMER7_CLKCTRL, 0x2); // Enable Timer Clock while((RD_MEM_32(CM_ALWON_TIMER7_CLKCTRL) & 0x2) !=0x2);
...
It is probably not necessary to enable all timers but I am not sure wich timers are used by ysBios (I am very new to SysBios, and still learning). Also,
Hi All,
You can use the ROV to determine which timer SYS/BIOS uses and enable that particular timer. Go to the Timer module and look for the "name" field. On your devices it happens to be that both of your timers start by default with Timer 5. To select a different timer you can go to the SYS/BIOS Clock module and use a different TimerId.
Niki & Francis,
the gel script (for the Cortex - A8) Niki posted worked for me on the TMS320C6A8168. The script Niki posted will enables the clock interface to the timer. See the CM_ALWON_TIMER_5_CLKCTRL register in the TRM here. Once I enabled that bit, i was able to read the register contents from the Memory Browser.
Nitin,
for the DM3730, similar problem, however on your hardware you are using a GPTimer (GPTimer 5 as default). To get your timer running you need to enable EN_GPT5 in the CM_ICLKEN_PER register (from the Cortex - A8 side) See the TRM here. Once I enabled that bit, i was able to read the register contents from the Memory Browser as well.
Hi Tom,
Ya, the solution was correct. I did the same as you explained in your last post. It works fine. Thanx a lot for this.
hi everyone,
i am facing a similar problem here with DM816x EVM by spectrum digital. I am trying to run the basic "hello world" example in sys bios, when i load the program , it just hangs and on suspending it says "timer.c" is missing.. i have already tried to paste the script for gel file as mentioned below, doesnt work for me.. and also i tried using the sys/bios module to enable the timer 5 by changing the timer id. still the same problem occurs..
am i missing something here. Can anybody attach the entire GEL script for Cortex A8 that worked with DM816x?
the error i get after suspending the debug operation is as follows
Can't find a source file at "/db/vtree/library/trees/avala/avala-p52x/src/ti/sysbios/timers/dmtimer/Timer.c" Locate the file or edit the source lookup path to include its location.
Hi Hitesh,
If you trace back previous posts. You can see that for different cores, different timers has to enabled. In your case timer is ""dmtimer". so you have enable this timer into your gel scripts, and i think you are copying part into your gel file which Niki posted. If, so then ,that code enables CM_ALWON timers, which will not work for you. For enabling this one, you can refer your DM816x TRM, and locate this timer's address and enable this timer.
Hi all
I am trying to run SYSBIOS helloworld project on BeagleBoard-xM using XDS100v2 in CCSv5.3.I have built project with out errors, But during debugging i am getting following exception error.
[Cortex_A8_0] Exception occurred in ThreadType_Main.Main handle: 0x0.Main stack base: 0x8000a830.Main stack size: 0x1000.R0 = 0x8000bc04 R8 = 0x00000002R1 = 0x00000000 R9 = 0x00000001R2 = 0x600001df R10 = 0x8000b7ccR3 = 0x00000000 R11 = 0x0000000eR4 = 0x49032000 R12 = 0x00000002R5 = 0x8000be1c SP(R13) = 0x8000b774R6 = 0x8000bba4 LR(R14) = 0x80006948R7 = 0x00000000 PC(R15) = 0x80004e78PSR = 0x200001dfti.sysbios.family.arm.exc.Exception: line 176: E_dataAbort: pc = 0x80004e78, lr = 0x80006948.xdc.runtime.Error.raise: terminating execution
After this exception error Coretx-A8_0 is in suspend-Sw breakpoint mode and execution is comming out with loader_exit(exit.c) function .
I have traced using pc address value (pc = 0x80004e78) , It is going directly to timer.c (188 line). and i am observing this log in red color
Can't find a source file at "/db/vtree/library/trees/avala/avala-r20x/src/ti/sysbios/timers/gptimer/Timer.c" Locate the file or edit the source lookup path to include its location.
Please can anyone help me how to resolve this error?