Hola
Tengo un programita en osek parcialmente funcionando (asunto "FirmwareV2, osek, adc"), al cual quiero agregarle que use el display LCD.
Este programita es para dar una charla el sábado para lo cual me hubiese venido lindo hacerlo con osek, zafo con sapi baremetal, no hay problema.
Tengo un mail de como 80 lineas analizando todo lo que falla, puedo pegarlo si alguien lo quiere ver, pero creo que todo se reduce a:
1) No está implementado sapi_delay en freeOSEK.
Primero me imagine que por delayInaccurateUs() y delay() que no deben ser muy amigos de un sistema cooperativo, pero he visto que uart tambien es bloqueante, ¿funciona?
Ahora mas bien estoy pensando que tiene que ver mas con el systick o equivalente que osek lo usa y sapi tambien y evidentemente no a la vez y me suena haber oido/leído a Éric.
Pero si me queda tiempo o luego, me resulta en extremo muy instructivo tratar de resolver el problema de alguna de estas maneras:
2) Si vale bloquearse como con uart por breves períodos, se me ocurre que los tiempos de espera de lcd se pueden implementar con for(), puedo simplemente hacerlo así, sólo para esta vez.
3) Tambien se me ocurre un esquema medio complicado en el cual las esperas del setup son como en 1), pero las esperas posteriores mediante tasks ingeniosamente encadenadas, ahora no recuerdo bien que recusos hay disponibles, pero en el humus de mi cerebro me suena que es factible. Esto implica que para usar osek+lcd hay que partir de un .oil con algunas cosas ya precocinadas, a mi no me disgusta pero no sé si es la idea en general.
4) Me imagino que lo mejor sería de algún modo que delay pueda de algún modo "ver" el systick usado por osek y hacer sus menesteres, pero aun no comprendí lo suficiente de lo que ví.
Cualquier reflexión será bienvenida, perdón por lo latoso y si estoy diciendo gansadas, pero es mi manera de aprender.
Saludos