Hi all,
- I am using evmDM8168 and BIOS 6.31.04.24
- when I call "Task_sleep" function in thread, it hold my program and don't return
Any advice? Thanks
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.
Hi all,
- I am using evmDM8168 and BIOS 6.31.04.24
- when I call "Task_sleep" function in thread, it hold my program and don't return
Any advice? Thanks
Try using ROV (Tools -> ROV) to look at your Task instances. On the "Detailed" tab, you should be able to see in the "blockedOn" field that the task is blocked on Task_sleep, and I think it will show you how many ticks are remaining. You can also look the at the Clock module to see the current tick count.
Chris
The Clock module shows the tick count staying at zero?
Have you modified the Clock.tickPeriod value? It could be that the period is too long? If you're running on a simulator, that can really slow things down, too.
Another explanation could be that you're overloading the system with hardware interrupts, and it's never getting a chance to run the Clock tick Swi.
Chris
Mark,
Sounds like your Timer is not ticking. Bios needs a "heartbeat" when calling API's such as Task_sleep. Typically, a Timer is setup by the Bios Clock module. If you're using ROV, you can check whether a Timer has been created for such purpose. See the "Timer" module, and you might want to check the "Hwi" module too because a hardware interrupt is usually created for this.
Judah
Thank Chris and Judah
- I am using board evmDM 8168( 1GHz DDR2, core C674x 800Mh)
- My Sample project was created by:use "Task mutex Example" in "Generic Examples" of Code Composer Studio 4.2.3. I only add "Task_sleep(10)" in 'task1" thread. Don't change Clock.tickPeriod value
-Here is source and config file in my project:
- Same like Clock module was not working, I have tried many ways but no success
- Now, I cannot start ROV (error XDC path or tools location not set), I'm trying to fix it. I was watching tick value by use function "Clock_getTicks" function
- Any advice? Thanks
Mark,
Do you know whether power & clock initialization (PRCM) for your timer(s) have been performed? The DSP on evmDM8168 requires Timer #3 to be initialized. If you happen to be using BIOS on the A8 core, you should also initialize timer #1.
PRCM configuration is typically done by the A8 processor (either via a .gel script or via some initialization code).
Regards,
Shreyas
Shreyas,
Thank you for your reply.
I'm using gel script in the enclosed file.
8764.Netra_vdb_ddr2_omx_single_noammu_nounicache_nohdvpss.rar
Could you please advise how to configure the timer #3 or #1 using A8 processor and gel script?
Thanks.
Mark - To get ROV working again, just go to Window -> Preferences. Then under CCS -> RTSC, select all of the products (XDCtools, BIOS, etc.) used in building your application. Then close and re-open ROV.
You should only have to do this, though, if the executable was built outside of CCS, and there isn't a CCS project associated with the app. Is this the case?
Thanks,
Chris
Mark,
It looks like the .gel script you have didn't have the code necessary to initialize the timers. I've modified it to include a script called enableTimers() that initializes the timers to operate at 32KHz. The modified .gel file is attached.
Could you tell me where you got this script from (which SDK, product, etc) so I could follow up with the product owner(s) to get this script fixed?
Regards,
Shreyas
4137.Netra_vdb_ddr2_omx_single_noammu_nounicache_nohdvpss.zip
Thank Chris and Shreyas
- The script work OK. Task_sleep work good.
- My script got from Mr Marc J.D'Amato, he support me for netra board
- P/S: Could you please advise how to configure the using A8 processor (A8 run Linux, load and run core C674)
Shreyas,
The GEL they are using came w/ the SDK download. They started w/ SDK about 2 months back so i'm guessing its the GEL that came with SDK 5009.
Marc
Shreyas,
Actually it could also be the VC or VS specific GEL for DDR2. I'll ask them.
Thanks, Marc
Mark,
What do you mean, advise how to configure the A8 to run Linux and load/run the C67x?
I sent the C6Accel : http://focus.ti.com/docs/toolsw/folders/print/c6accel-dsplibs.html to the team which has examples of how to run a DSP side algorithm from the ARM PoV.
Once you install the SW for DM816x, you get all you need. There is a 'C:\c6accel_2_01_00_08' directory w/ /docs, /dsp, /soc + SW manifest. Its a kit for the DM816x so it has the examples.
Go through the docs - Advanced Users Guide, ARM_Users_Documentation, FAQ, Image Processing API Ref Guide, Math API Ref Guide, Signal Processing Ref Guide but would be best to start w/ the 'Introduction to C6Accel' and 'Quick Overview and Suppot'.
Let me know how it goes.
Thanks.
Marc
Marc
I mean advise how to configure timer on C647 when start it from core A8 (run linux), same use menu "enableTimers" in script of Shreyas. Because now, when I start core C647 from core A8 (use "ProcMgr" module in sysLink library), the timer on C647 not work ==> Task_sleep not work
Regards
Mark, got it.
Just so i understand. When you use the GEL script mod to enable the timers it works. But you want to include the 'timer - init' in the A8 code?
If so, then the GEL function operations need to be included in the main.c of the A8 code.
Is this correct?
Thanks.
Marc
Hi Marc
- This is incorrect
- Error "Segmentation fault" when run on A8 (linux host). Address of timers not valid in linux host
Ragards
Mark,
Can you send me the A8 startup code including the timer-setup section?
Thanks.
Are you trying to take a GEL function that uses physical addresses and run it on Linux? No can do, you need to mmap() those physical addresses to obtain a user virtual pointer for accessing the peripheral registers.
Regards,
- Rob