TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ECHA en 09 de Mayo de 2011, 16:53:43
-
no entiendo porque al compilar con un programa u otro el hex da diferente:
en Pic C compiler:
3000 008A 287A 0000 3026 0084 1383 0800
1903 2818 3001 00F8 01F7 0BF7 280D 0BF8
280C 304A 00F7 0BF7 2813 2816 0B80 280A
3400 3012 02A7 1C03 282C 3027 0084 1383
30FC 0580 1003 0C80 0C80 0800 1903 282C
282A 0000 0B80 2829 3400 01A5 130B 138B
1B8B 282F 300D 0095 3009 00A6 2004 0195
3004 00A6 2004 3002 00A6 30F7 00A7 2019
0BA6 283D 0825 3C1F 1C03 286F 1FA4 285B
300D 0095 30BA 00F7 0BF7 284C 0000 0195
3001 00A6 2004 3003 00A6 30E3 00A7 2019
0BA6 2855 2868 300D 0095 30BA 00F7 0BF7
285F 0000 0195 30BA 00F7 0BF7 2865 0000
1003 0DA1 0DA2 0DA3 0DA4 0AA5 2842 300D
0095 30BA 00F7 0BF7 2873 0000 0195 30C0
048B 3400 0184 1383 301F 0583 1683 141F
149F 151F 119F 3007 009C 30FF 1283 00A0
1120 0820 1683 0087 1283 1107 300C 0097
0195 3000 00F8 3804 0092 301A 1683 0092
30C0 1283 048B 1C06 28A8 3020 00A4 30DF
00A3 01A2 30FF 00A1 202D 3028 00A6 2004
1C86 28B6 3020 00A4 30DF 00A3 3080 00A2
307F 00A1 202D 3028 00A6 2004 1D06 28C4
3020 00A4 30DF 00A3 3040 00A2 30BF 00A1
202D 3028 00A6 2004 1D86 28D2 3020 00A4
30DF 00A3 30C0 00A2 303F 00A1 202D 3028
00A6 2004 1E06 28E0 3020 00A4 30DF 00A3
3010 00A2 30EF 00A1 202D 3028 00A6 2004
1683 2898 0063 3FFF 3FFF 3FFF 3FFF 3FFF
y esto con mplab:
0000 3000 008A 287A 3026 0084 1383 0800
1903 2818 3001 00F8 01F7 0BF7 280D 0BF8
280C 304A 00F7 0BF7 2813 2816 0B80 280A
3400 3012 02A7 1C03 282C 3027 0084 1383
30FC 0580 1003 0C80 0C80 0800 1903 282C
282A 0000 0B80 2829 3400 01A5 130B 138B
1B8B 282F 300D 0095 3009 00A6 2004 0195
3004 00A6 2004 3002 00A6 30F7 00A7 2019
0BA6 283D 0825 3C1F 1C03 286F 1FA4 285B
300D 0095 30BA 00F7 0BF7 284C 0000 0195
3001 00A6 2004 3003 00A6 30E3 00A7 2019
0BA6 2855 2868 300D 0095 30BA 00F7 0BF7
285F 0000 0195 30BA 00F7 0BF7 2865 0000
1003 0DA1 0DA2 0DA3 0DA4 0AA5 2842 300D
0095 30BA 00F7 0BF7 2873 0000 0195 30C0
048B 3400 0184 1383 301F 0583 1683 141F
149F 151F 119F 3007 009C 30FF 1283 00A0
1120 0820 1683 0087 1283 1107 300C 0097
0195 3000 00F8 3804 0092 301A 1683 0092
30C0 1283 048B 1C06 28A8 3020 00A4 30DF
00A3 01A2 30FF 00A1 202D 3028 00A6 2004
1C86 28B6 3020 00A4 30DF 00A3 3080 00A2
307F 00A1 202D 3028 00A6 2004 1D06 28C4
3020 00A4 30DF 00A3 3040 00A2 30BF 00A1
202D 3028 00A6 2004 1D86 28D2 3020 00A4
30DF 00A3 30C0 00A2 303F 00A1 202D 3028
00A6 2004 1E06 28E0 3020 00A4 30DF 00A3
3010 00A2 30EF 00A1 202D 3028 00A6 2004
1683 2898 28E2 3FFF 3FFF 3FFF 3FFF 3FFF
no entiendo el porque??? alguien podría explicarme o al menos decirme en que link puedo informarme...saludos
-
Hola ECHA, es muy posible que al utilizar la IDE de Mplab, no tengas activada la casilla que hay en: Menu -> Configure -> Configuration bits... -> Configuration Bits set in code. Esta casilla debe estar activada para que el compilador utilice los fuses que tienes escritos en tu programa, que es lo que puede estar causando la diferencia.
Saludos!
-
Hola.
Yo veo que son los mismos a diferencia del primer dato .... a ese dato te refieres cierto? :oops:
-
Si el programa funciona normalmente con uno u otro .hex no hay problema de compilador, está todo bien. Entiendo que al ser de diferentes fabricantes el interprete de C de cada uno no genera exactamente lo mismo, puede que en el .asm intermedio varíe alguna instrucción o agregue algún nop (0000) pero el resultado final es el mismo.
-
3000 008A 287A 0000 3026 0084 1383 0800
0000 3000 008A 287A 3026 0084 1383 0800
si la diferencia esta en la primera línea...no he notado ninguna diferencia en el funcionamiento...bmb esa configuración si la tengo activada...quizás cada compilador lo hace a su manera y no importa al final...muchísimas gracias por su respuestas...
-
...quizás cada compilador lo hace a su manera y no importa al final...muchísimas gracias por su respuestas...
Hola ECHA, no te entendí lo anterior. Como es eso que cada compilador? El Mplab no es compilador sino una IDE y allí uno escoge el compilador con el que quiere trabajar. Como solo mencionaste un compilador (PIC C compiler), yo estaba suponiendo que era el mismo en los dos casos. Cual sería el otro compilador? Ahora, si estamos hablando de dos compiladores diferentes allí si habría razones para que el .hex fuese distinto. No todos los compiladores son iguales de eficientes al generar los archivos .hex.
Saludos!
-
disculpa no soy una experta jejejeje...en mplap utilizo el ccs como compilador
-
disculpa no soy una experta jejejeje...en mplap utilizo el ccs como compilador
Hola ECHA, no te preocupes por nada que yo tampoco soy un experto ni nada parecido :oops: Acabo de hacer un programita pequeño directamente en la ide del CCS y lo compilé; luego tomé el archivo .c y creé un proyecto en Mplab y lo compilé. Los dos archivos .hex son exactamente iguales! Creo que hay algo más que te podría estar generando la diferencia. Fíjate en la ventanita de selección de 'Build Configuration' en la parte de arriba del Mplab si está en Debug o en Release. Lo mismo aplicaría para la compilación en CCS. Yo hice ambas compilaciones sin la opción Debug.
Saludos!
-
Hola.
Pero ahí el compilador es el mismo bmb ... cierto? lo que cambia es el IDE. Habría que hacer un programa en CCS y otro que haga lo mismo en HiTech, por ejemplo, y comparar los .hex -es mas que obvio que van a dar diferentes jeje-
-
Hola.
Pero ahí el compilador es el mismo bmb ... cierto? lo que cambia es el IDE. Habría que hacer un programa en CCS y otro que haga lo mismo en HiTech, por ejemplo, y comparar los .hex -es mas que obvio que van a dar diferentes jeje-
Claro MLO__, tienes razón porque lo más seguro es que tengan algunas instrucciones diferentes, es por eso que yo supongo que ECHA tiene el problema con el mismo compilador, pero en diferentes IDEs.
Saludos!