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.

DSP/BIOS task priority levels

Is there some recommended way to increase number of priority levels in case I have to schedule more tasks than 15 and they should all be clearly prioritized (not on the same level)?

 

  • I can not think of a way of doing that with TSKs only, one idea that comes to mind is to use SWIs for the threads with higher priority.

    SWIs are a bit different then tasks, but if you can adapt you program to use them, you get 15 more priority levels above the task with higher priority.

  • I thought that maybe it might be possible to change somehow BIOS kernel. I believe that number 15 was chosen because it's no too big (to slow down scheduling) and not small, too.

    I thought that maybe there is a way to make number 15 custom. I found that in knl.h (in BIOS include directory) there is

    #define KNL_MAXPRI  (15)    /* maximum task priority */

    and in tsk.h TSK_Config structure:

    Int     PRIORITY;

    So there should be no problem to define KNL_MAXPRI to 32 since it's stored later in Int. Maybe scheduler is written in fixed way so it can support only 15 levels.

  • DSP/BIOS is designed for 15 task priority levels and I do not believe this value should be changed.

    As Mariana indicated, you should consider the use of SWIs to increase the number of priority levels.

    Harry.