Autor Tema: Listas en Ccs y consultas varias.  (Leído 4704 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: LISTAS EN C
« Respuesta #15 en: 06 de Marzo de 2012, 02:40:03 »
Buena recomendación, Carlos. Gracias

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Listas en Ccs y consultas varias.
« Respuesta #16 en: 10 de Marzo de 2012, 22:11:23 »
Quisiera saber si estas dos funciones son equivalentes:

Código: C
  1. //******************************************************************************
  2. //Mascara tipo digito display 7 segmentos
  3. //xpos = digito a procesar (0 a 9)
  4. //_nmr7seg, retorna la mascara de los segmentos a activar
  5. int8 _nmr7seg(int8 xpos) {
  6.    static const int8 Lookup[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
  7.    return LooKup[xpos];
  8. }

Código: C
  1. //******************************************************************************
  2. //Mascara tipo digito display 7 segmentos
  3. //xpos = digito a procesar (0 a 9)
  4. //_nmr7seg, retorna la mascara de los segmentos a activar
  5. int8 _nmr7seg(int8 xpos) {
  6.    const int8 Lookup[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
  7.    return LooKup[xpos];
  8. }

Ósea, si static es redundante porque se usa const.

Y otra cosa, las const se guardan en flash o ram, me interesa que se alojen en flash.
« Última modificación: 10 de Marzo de 2012, 22:24:26 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Listas en Ccs y consultas varias.
« Respuesta #17 en: 10 de Marzo de 2012, 22:45:32 »
Me contesto yo mismo:

La herramienta "Call Tree" del editor del CCS me indica que los datos declarados con "Const" quedan alojados en la Flash, por lo que "Static" es redundante.
Saludos desde Granada, España.

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Listas en Ccs y consultas varias.
« Respuesta #18 en: 11 de Marzo de 2012, 18:48:50 »
Hola dogflu, en este caso particular es redundante, pero no siempre lo es.
Si el compilador puede generar el código que utiliza un const sin recurrir a su dirección de memoria, no la pondrá en memoria, será una constante en tiempo de compilación, pero si utilizas con el modificador static, siempre posee dirección de memoria, por más que nunca la requieras. Cuando indexas un array const, como en este caso, static es ignorado porque no se puede resolver en tiempo de compilación el elemento del array al que se hace referencia.

@fabianjsm is on twitter

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Listas en Ccs y consultas varias.
« Respuesta #19 en: 12 de Marzo de 2012, 21:01:41 »
Ok, gracias fabianjsm todo muy claro.
Saludos desde Granada, España.