O sea, que el CCS incluye un RTOS ya escrito? "No te acostarás sin saber una cosa más".
Yo también hice un RTOS para AVR (Mega128 con GCC y portado a Mega1281 con IAR), y las rutinas más importantes las escribí en ensamblador, no en C. Me basé en el fantástico documento explicado anteriormente. Muy muy instructivo y altamente recomendable como ejercicio a los programadores más avanzados.
Una vez tiener el kernel del RTOS y algo de práctica en usarlo, la cosa se vuelve mucho más fácil de programar, pero hace falta RAM, y a ser posible, más parámetros de control (tick de sistema, prioridades, espacio de pilas - stack, etc).
De hecho, una de las 'ventajas' de los AVR se convierte en desventaja cuando se usa un RTOS, y es que salvar 32 registros acumuladores hace que el tiempo de conmutación de tarea sea largo. Claro que el hecho de tener la pila en HW en lugar de RAM tampoco simplifica mucho las cosas que digamos.
Por cierto, un dispatcher no es un sistema operativo ni tiene porqué usarse en tal. De hecho, los dispatchers se usan bastante para programas que no necesitan mucha velocidad de reacción ni multitarea para sustituir a los (más pesados) sistemas operativos ya que son más sencillos y necesitan menos recursos.
Por cierto, hay varios tipos de sistemas operativos para microcontroladores, cuya principal y única misión es facilitar la multitarea: los cooperativos y los preventivos. Los primeros son más ligeros y necesitan menos stack, pero no son realmente tiempo real, y necesitan la cooperación del programador, a cambio, se pueden usar más facilmente en micros 'pequeños'. Los preventivos son más complejos y necesitan más recursos, pero son más seguros. Por eso se usan en los sistemas de automoción, y son la principal baza de los ARM, pues éstos están muy pensados para ser usados con RTOSes, tal y como se puede deducir de su arquitectura interna, especialmente de los Cortex M3.