Cambiar temporizador de RTOS - ThreadX

2

Esta pregunta está dirigida específicamente a un RTOS - ThreadX.

Lo estamos utilizando para nuestro proyecto. El problema con esto es que el tiempo predeterminado de RTOS es 10ms, que es muy alto. Necesitamos cambiarlo a 1ms.

¿Alguien ha usado este RTOS?

(Para Ref: PPT de ThreadX

    
pregunta Swanand

3 respuestas

4

Por lo que puedo decir de la PPT que vinculó, usted es responsable de configurar el temporizador de hardware que genera la interrupción de tic y, por lo tanto, puede configurarlo al valor que desee. Mi referencia principal es la diapositiva 66 en el PPT que dice:

  

La tasa de tics del sistema se establece con #define
          BSP_TICKS_PER_SECOND que por defecto es 100

Pero cambiar el #define no cambiará el período, alterando el registro de período para el temporizador que está usando. Una vez que lo hagas, tendrás que cambiar la # definición para mantenerla con el nuevo período.

    
respondido por el AngryEE
0

El tiempo de tick depende de cuántos subprocesos desea ejecutar y con qué frecuencia. Si mantiene el tiempo de marcado en 1 ms, asegúrese de que todos los subprocesos se ejecutarán en el tiempo de marcado definido; de lo contrario, tendrá que colocar tx_sleep() en todas las tareas de alta prioridad para que las tareas de baja prioridad tengan la oportunidad de ejecutarse.

Por lo tanto, es posible que tengas que sincronizar tus tareas según los eventos / semáforos y las llamadas tx_sleep() .

    
respondido por el Sai
0

Debe ir a tx_initialize_low_level.s , y en la línea 56 cambiar 100 a 1000 para configurar SYSYTICK_CYCLES a 1000MHz (1 tick = 1 ms).

Editar: No olvide volver a compilar el proyecto ThreadX y colocar la nueva biblioteca en lugar de la antigua que su proyecto ha estado usando, de lo contrario, ¡no se realizarán los cambios!

    
respondido por el Amit B.

Lea otras preguntas en las etiquetas