TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: jvb57 en 22 de Abril de 2015, 16:58:18

Título: Como anclar las variables de una rutina en CCS ??
Publicado por: jvb57 en 22 de Abril de 2015, 16:58:18
Hola !!
Tengo un frimware que levanta un upgrade de parte del mismo desde una memoria microSD.
Obviamente el bloque de formware donde estan las rutinas que manejan la memoria y un par de cosas más están en zona protegida.
El problema lo tengo con la RAM, resulta que las variables temporales que usan rutinas como spi_xfer por ej me quedan al fondo de la RAM y si llego a tocar algo se me cambian de posicion haciendo una version incompatible para ser actualizada de esta manera.

Logre anclar algunas variables usando la sentencia #LOCATE, pero puntualmente las variables que usan rutinas predefinidas como xfer no se como anclarlas.
Por cierto, estoy usando CCS 5.008.
Espero alguno lo tenga dominado y puedan ayudarme.
Gracias !!
Título: Re: Como anclar las variables de una rutina en CCS ??
Publicado por: KILLERJC en 22 de Abril de 2015, 23:32:52
Y si en ves de usar una direccion "fija" de esos valores, usas un puntero &spi_xfer y que se encarge C de tomar la direccion por mas que cambie?
Título: Re: Como anclar las variables de una rutina en CCS ??
Publicado por: jvb57 en 24 de Abril de 2015, 14:25:02
Gracias KillerJC por el comentario...
Pasa que lo que no puedo controlar son las variables temporales que usa la misma rutina spi_xfer, variables scratch como @SPI_XFER_1.P1 por ej...
Son variables que se declaran dentro del #use spi, asi que no hay forma de anclarlas o definir a donde iran a parar, lo decide solo...
Aunque entiendo que siendo variables temporales debería inicializarlas la misma rutina por lo que no deberia afectarlo que se cambien en alguna futura version...
Estoy viendo como puedo comprobar eso...
Saludos !!
Título: Re: Como anclar las variables de una rutina en CCS ??
Publicado por: PalitroqueZ en 24 de Abril de 2015, 19:10:16
si las variables no las creas tú, entonces no puedes controlarlas, porque ya sería un proceso interno del compilador para la función spi_xfer-

la otra forma es que escribas las función spi_xfer a pie.