Post links and attach files for documentation here, also chat about these docs freely

User avatar
By 0ff
#1789 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_*.
User avatar
By elektronika_ba
#1790 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.
User avatar
By 0ff
#1791 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.
User avatar
By gicho
#1792 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.