TODOPIC
Microcontroladores PIC => RTOS => Mensaje iniciado por: JoshFino en 04 de Enero de 2016, 03:04:15
-
Saludos compañeros!!
El motivo de este post es para preguntar si alguien a podido echar a andar este RTOS en los PIC18 con el compilador XC8 de microchip, ya que he modificado previamente los archivos del port para hacerlos compatibles con el compilador pero tanto al simular (Proteus) como en físico no funciona!
En Proteus, en la ventana de Simulation Log muestra los siguientes mensajes:
Writing TOSL when stack is empty (STKPTR is ZERO) has no effect
Writing TOSH when stack is empty (STKPTR is ZERO) has no effect
Writing TOSU when stack is empty (STKPTR is ZERO) has no effect
Attempt to execute ilegal opcode (loaded from PC = 0804). Instruction executes as a NOP.
Attempt to execute ilegal opcode (loaded from PC = 080A). Instruction executes as a NOP.
Cabe decir que el programa compila correctamente.
El proyecto es el siguiente:
https://mega.nz/#!OIMCCZIa!SWdWcp0h6YDH1Q9iS4pFGutGha_vMM6yNFTsR72Juv8
Agradezco cualquier ayuda y/o sugerencia, gracias!!
-
Writing TOSL when stack is empty (STKPTR is ZERO) has no effect
Writing TOSH when stack is empty (STKPTR is ZERO) has no effect
Writing TOSU when stack is empty (STKPTR is ZERO) has no effect
esto es por que cuando se guarda el contexto se guarda tambien eso, y cuando se recupera tambien.
Esto:
Attempt to execute ilegal opcode (loaded from PC = 0804). Instruction executes as a NOP.
Attempt to execute ilegal opcode (loaded from PC = 080A). Instruction executes as a NOP.
Ya es otra cosa.. realmente no se que hay justo en esas posiciones. Ni por que se generaron esos opcode ilegales.
EDIT:
Acabo de mirar el .map y me encuentro que alli parece haber una seccion de constantes (imagino por el nombre) llamada:
smallconst 000800 00000E 00080E 400 0 SMALLCON
y que ocupa justo esas posiciones de memoria, la cual Jamas deberia llegar alli si es que son justamente constantes. Debe haber un error en el programa que haga que salte a esa posicion de memoria.
-
Buenas,
En el caso de un PIC18, si quieres programar de algún modo parecido a un RTOS, yo en tu lugar integraría Protothreads, una metodología de programación desarrollada por el SICS (Sweidish Institute of Computer Sciences).
Hace unos años escribí un artículo en español sobre Protothreads, te pongo el enlace por si resulta de tu interés: http://www.javierlongares.com/arte-en-8-bits/protothreads-threads-en-c-sin-sistema-operativo/
Saludos