Hi mon2,
Thank you, I read that but it doesn't seem to address my question. And in fact I am working on my updates to the FreeRTOS port to make use of the XS2 architecture, specifically dual issue assembly and some of the new instructions. So far I have reduced the context switch time by over 15% compared to using single issue assembly for the kernel. Everything is working, including the timer I am using for the system tick, except when I build the program with -report I get the following incorrect constraints check report:
Code: Select all
Constraint check for tile[0]:
Cores available: 8, used: 1 . OKAY
Timers available: 10, used: 1 . OKAY
Chanends available: 32, used: 1 . OKAY
Memory available: 262144, used: 29400 . OKAY
(Stack: 436, Code: 11224, Data: 17740)
It is reporting just a single timer used -- i.e. the timer always allocated for the core. It should show 2 timers used, due to the timer allocated for the FreeRTOS tickclock. So I don't need to know how to allocate the timer, I've allocated it just fine, I just need to know how to tell the constraints checker that I allocated the timer in an assembly file rather than an xc file.
If I allocate the timer within an xc file using hwtimer_t tickclock, then I get the following:
Code: Select all
Constraint check for tile[0]:
Cores available: 8, used: 1 . OKAY
Timers available: 10, used: 2 . OKAY
Chanends available: 32, used: 1 . OKAY
Memory available: 262144, used: 29412 . OKAY
(Stack: 436, Code: 11224, Data: 17752)
Like I said, both work perfectly fine in terms of the kernel. It's just that I can save one instruction in the timer ISR if I allocate the hwtimer in the assembly file, and I guess it saves a few bytes too. I know that seems ridiculous just to save one clock cycle in the ISR, it's kind of an exercise I am doing to see how much I can optimize something in assembly if I put my mind to it. So what I want to be able to do is determine the assembly directive so the constraints report shown at the top indicates 2 timers used -- like the second one shows -- rather than just 1 so that my constraints report is accurate. I hope this clarifies the issue I am facing.