-->
Page 2 of 4

Re: os_sprintf or ets_sprintf

PostPosted: Mon Oct 20, 2014 6:27 am
by 0ff
Actually I don't know, I think "ets" may stand for some kind of operating system.

I figure that they implemented the os_* functions so that one might abstract from their system?
At least in their internal libs they always call os_*.

Re: os_sprintf or ets_sprintf

PostPosted: Mon Oct 20, 2014 6:35 am
by elektronika_ba
Probably...

I am also wondering how many tasks I might add to their OS with system_os_task() function and how tasks actually work. The last parameter - "task queue length" is 8-bits so the limit is 256 tasks, but the function system_os_post() doesn't accept the task ID or pointer to a task function, but only the "task priority". How does one then post data to a certain task I wonder? Maybe all tasks of targeted priority would receive it and then if the parameter (sig) is as expected within the task function it would then parse it.
I also didn't find any information how these tasks are executed within the OS... it is all still a blur to me.

Re: os_sprintf or ets_sprintf

PostPosted: Mon Oct 20, 2014 6:47 am
by 0ff
Yup, there's little known about this atm.
In fact I think you'd open a single queue for every distinct task and then just post to that queue.
At least, that's what they do with their AT-Example.

Re: os_sprintf or ets_sprintf

PostPosted: Mon Oct 20, 2014 10:21 am
by gicho
I believe that this is the "xtos" - some kind of runtime that originates from Tensilica itself. In-house operating system.
But checking google reveals that some other commercial RTOS vendor support the "diamond" core, e.g. ThreadX:
http://rtos.com/products/threadx/XtensaDiamond

About posting "by priority" - if this OS uses some kind of bitmap scheduler that usually does not support more than one task with same prioriry, than the priority becomes unique "token" or "identifier" to given task.