Autor Tema: Convertir sketch a ensamblador  (Leído 19060 veces)

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

Desconectado Loudness

  • PIC16
  • ***
  • Mensajes: 147
Convertir sketch a ensamblador
« en: 19 de Abril de 2018, 10:28:56 »
Hola a todos

Llamarme loco que lo estoy :D pero hay queda la pregunta:

Se puede pasar un sketch de arduino a ensamblador?

O un poco mas: se puede programar arduino en ensamblador?

Me vais a decir que es una locura, que no es necesario, que aprenda c...
Pero todavia no tengo valor (tiempo) para ponerme con el c y lo de utilizar un sketch o cualquier programa sin entenderlo, la verdad es que no me gusta.

Por eso quiero pasarlo a ensamblador, para comprenderlo, modificarlo y utilizarlo con seguridad e, incluso dado el momento pasarlo a un pic 8)

Espero cualquier comentario, idea o reprimenda sobre el tema

Saludos

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Convertir sketch a ensamblador
« Respuesta #1 en: 19 de Abril de 2018, 10:38:34 »
Que tal loudness,

No conozco ningun software que lo haga de forma automatica. En el caso de arduino, en realidad es C y el compilador usado es el AVR GCC y este no genera ningun archivo ensamblador, lo compila directamente generando un archivo HEX. A excepcion de que alguien conozca algun otro compilador que genere el archivo assembler pasar de C a Assembler es un procedimiento manual lo que es muy inconveniente.
Lo mejor es programar el arduino en ensamblador, ya que este es un microcontrolador AVR así que si tienes experiencia en ensamblador para AVR no debe haber ningun problema. Para programarlo simplemente usa un programador externo como el USBasp que es super barato y listo. Cualquier arduino basado en AVR se puede programar en assembler.

saludos,

elreypic.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Convertir sketch a ensamblador
« Respuesta #2 en: 19 de Abril de 2018, 11:17:53 »
Se puede pasar un sketch de arduino a ensamblador?

Si

O un poco mas: se puede programar arduino en ensamblador?

Si

Pero todavia no tengo valor (tiempo) para ponerme con el c y lo de utilizar un sketch o cualquier programa sin entenderlo, la verdad es que no me gusta.

Por eso quiero pasarlo a ensamblador, para comprenderlo, modificarlo y utilizarlo con seguridad e, incluso dado el momento pasarlo a un pic 8)

Espero cualquier comentario, idea o reprimenda sobre el tema

Es una locura. Como no entiendes algo que te llevaría 10 horas comprender, entonces le quieres dedicar 100 horas....
 

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Convertir sketch a ensamblador
« Respuesta #3 en: 19 de Abril de 2018, 11:22:23 »
Que tal loudness,

No conozco ningun software que lo haga de forma automatica. En el caso de arduino, en realidad es C y el compilador usado es el AVR GCC y este no genera ningun archivo ensamblador, lo compila directamente generando un archivo HEX. A excepcion de que alguien conozca algun otro compilador que genere el archivo assembler pasar de C a Assembler es un procedimiento manual lo que es muy inconveniente.

No es cierto. Si quieres, el compilador de C AVR GCC puede generar el listado en ensamblador.
Creo recordar que la opción es -fverbose-asm

Saludos.


Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Convertir sketch a ensamblador
« Respuesta #4 en: 19 de Abril de 2018, 11:52:30 »
No es cierto. Si quieres, el compilador de C AVR GCC puede generar el listado en ensamblador.
Creo recordar que la opción es -fverbose-asm

Saludos.

Gracias por la aclaracion Picuino, desconocía esa opción del AVR GCC.

elreypic.

Desconectado Loudness

  • PIC16
  • ***
  • Mensajes: 147
Re:Convertir sketch a ensamblador
« Respuesta #5 en: 19 de Abril de 2018, 21:26:55 »
Gracias por sus respuestas.


Lo mejor es programar el arduino en ensamblador, ya que este es un microcontrolador AVR así que si tienes experiencia en ensamblador para AVR no debe haber ningun problema. Para programarlo simplemente usa un programador externo como el USBasp que es super barato y listo. Cualquier arduino basado en AVR se puede programar en assembler.


Gracias elreypic, como te va?.

Antes de meterme de lleno con los pic habia estudidao un poco de AVR asi que creo que, si me pongo, podria conseguirlo.
Solamente me queda la duda si me interesa "perder" el tiempo con el assembler o empezar a estudiar c de una vez.


Es una locura. Como no entiendes algo que te llevaría 10 horas comprender, entonces le quieres dedicar 100 horas....
 

Gracias Picuino. Entendido :D. Como dije arriba mejor empezar con el c?

Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Convertir sketch a ensamblador
« Respuesta #6 en: 19 de Abril de 2018, 21:46:24 »
O un poco mas: se puede programar arduino en ensamblador?

Voy a hacer una aclaracion, Arduino no es un microcontrolador. SI se puede programar el microcontrolador de Microchip (ex-Atmel) en el lenguaje ensamblador.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Convertir sketch a ensamblador
« Respuesta #7 en: 20 de Abril de 2018, 02:46:46 »
Sin duda lo mejor es empezar con el c.
Es un lenguaje con muchos detalles y sintaxis no sencilla. Además te costara quitarte alguna costumbre como el goto.
Pero en dos o tres dias puedes aprender lo suficiente como para manejar las estructuras más habituales.

Si te sientes más seguro, en c se pueden incluir instrucciones en ensamblador y con Atmel es más sencillo el ensamblador que con pic. Por eso tiene compilador gcc mientras que el pic no lo tiene.

Un saludo.

Desconectado Loudness

  • PIC16
  • ***
  • Mensajes: 147
Re:Convertir sketch a ensamblador
« Respuesta #8 en: 20 de Abril de 2018, 03:04:42 »
Voy a hacer una aclaracion, Arduino no es un microcontrolador.

Mi explicacion no ha sido buena :oops:. Gracias por la aclaracion.

Sin duda lo mejor es empezar con el c.


Entendido. Me lo pensare en serio.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Convertir sketch a ensamblador
« Respuesta #9 en: 20 de Abril de 2018, 03:14:10 »
El C lo inventaron hace casi 50 años los mismos que programaron el sistema UNIX, para sustituir el lenguaje ensamblador y hacer su sistema más portable. Como puedes ver tuvieron éxito en las dos empresas.
El C es hoy por hoy y desde hace décadas el sustituto universal del ensamblador para hacer código portable. Es uno de los lenguajes más usados y más copiados por otros lenguajes (Java, JavaScript, PHP, bash, Python, etc)
Lo extraño es que no sepas C. En la mayoría de academias y facultades es obligatorio (a pesar de no ser una buena opción para empezar a programar) y lleva mucho tiempo siendo uno de los más usados:
https://www.tiobe.com/tiobe-index/

El C del Arduino a un nivel de iniciación lo aprenden relativamente rápido los chavales de 14 años en la escuela. Aunque conocer bien algunos temas es bastante complejo, lo que necesitas para sustituir al ensamblador no es tanto.

Saludos.

Desconectado Loudness

  • PIC16
  • ***
  • Mensajes: 147
Re:Convertir sketch a ensamblador
« Respuesta #10 en: 20 de Abril de 2018, 05:15:09 »
Gracias por la explicacion Picuino


Lo extraño es que no sepas C. En la mayoría de academias y facultades es obligatorio


En lo de la programacion empeze hace unos anos como hobby.
Al fijarme en los pic, el entorno MPLAB y el ensamblador eran gratuitos y, a nivel inicial, habia bastante informacion en la red asi que me decidi por este camino.
Poco a poco al intentar ahondar mas en este mundo y hacer programas un poco mas complicados, he visto que el c se impone y creo que me equivoque en la eleccion del idioma.
Aunque en mi trabajo uso el pic o el arduino para pequenos proyectos para salir del paso, este no es mi trabajo principal asi que tampoco puedo dedicarle tanto tiempo como me gustaria y, empezar a estudiar otro idioma.... me cuesta decidirme :?.



El C del Arduino a un nivel de iniciación lo aprenden relativamente rápido los chavales de 14 años en la escuela.


Alguien me comento que antes de empezar a estudiar c me metiera con el arduino, que puede ser un primer paso.
Y ademas de descargarme sckeths y librerias y hacerlos funcionar tambien escribo mis propios programas (faciliiisimos).

Pero lo de utilizar una libreria o un porgrama corta/pega sin saber lo que tiene dentro o como funciona no me gusta nada de nada.
Y al intentar comprender las librerias de arduino me rindo.

Por eso pregunte si se podian pasar a assembler. Pense que podai ser mas facil, pero al contrario, parece que se puede complicar incluso mas....

Me pongo a buscar informacion de c

Saludos

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Convertir sketch a ensamblador
« Respuesta #11 en: 20 de Abril de 2018, 05:55:38 »
Al fijarme en los pic, el entorno MPLAB y el ensamblador eran gratuitos y, a nivel inicial, habia bastante informacion en la red asi que me decidi por este camino.

Siento decirte que caíste en la trampa de Microchip.  :(
Por eso Arduino lleva un Atmel. Su compilador es estupendo y es open-source (gratuito y de código abierto).


Alguien me comento que antes de empezar a estudiar c me metiera con el arduino, que puede ser un primer paso.
Y ademas de descargarme sckeths y librerias y hacerlos funcionar tambien escribo mis propios programas (faciliiisimos).

Arduino se programa en C. No existe el lenguaje Arduino, es C ni más ni menos (en realidad C++). Si empiezas con Arduino estás empezando con lenguaje C.
Lo que ocurre es que el entorno Arduino añade ciertas funciones y definiciones al C estándar, que hacen un poco más sencillo comenzar.


¿Por qué no pruebas a hacer un programa y te ayudamos? Esa es la mejor manera de comprobar si te puede valer. Prueba a aprender durante unas horas y luego decides.


Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Convertir sketch a ensamblador
« Respuesta #12 en: 20 de Abril de 2018, 10:09:19 »
Que tal Loudness,

Como bien te comenta Picuino, en realidad comenzar el lenguaje C no es tan complicado y usando las librerias y funciones que se le han agregado al entorno Arduino, la programacion se hace mas sencilla.

Yo te recomiendo que comiences a ver el lenguaje C y para ellos hay bastantes libros y recursos en linea:

https://cs.indstate.edu/~cbasavaraj/cs559/the_c_programming_language_2.pdf
http://www.dc.fi.udc.es/~so-grado/current/Varios/CursoC.pdf
https://www.amazon.com/Embedded-C-Programming-Atmel-AVR/dp/1418039594

Esto por mencionar algunos. Pero hay infinidad de recursos gratuitos en linea.

elreypic.

Desconectado locodelafonola

  • PIC10
  • *
  • Mensajes: 43
Re:Convertir sketch a ensamblador
« Respuesta #13 en: 20 de Abril de 2018, 13:40:01 »
Hola ., bueno creo que aqui hay confucion  ., primero el lenguaje de arduino es C++ (no C)
Lo segundo ., dudo que puedas programar un arduino en ASM ., a menos que desbloques los "FUSEBIT" y borres su BOOTLADER
LO tercero es que al ser C++ ., tiene funciones "emascaradas" ., a la cuales no tienes acceso
Si usas la herramienta de compilacion gratuita ATMELstudio 7xxx ., tenes la posibilidad de programar en tres tipos de lenguaje C++ ., C y ASM
Tambien tiene la funcion de "DISSEMBLER" ., que te podria servir de guia ., para la programacion de un chip nuevo y normal en ASM  .,  sin ser arduino 
yo solo se que ...nose nada

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Convertir sketch a ensamblador
« Respuesta #14 en: 20 de Abril de 2018, 14:49:19 »
Hola ., bueno creo que aqui hay confucion  ., primero el lenguaje de arduino es C++ (no C)
Lo segundo ., dudo que puedas programar un arduino en ASM ., a menos que desbloques los "FUSEBIT" y borres su BOOTLADER
LO tercero es que al ser C++ ., tiene funciones "emascaradas" ., a la cuales no tienes acceso
Si usas la herramienta de compilacion gratuita ATMELstudio 7xxx ., tenes la posibilidad de programar en tres tipos de lenguaje C++ ., C y ASM
Tambien tiene la funcion de "DISSEMBLER" ., que te podria servir de guia ., para la programacion de un chip nuevo y normal en ASM  .,  sin ser arduino 

Hay muchas cosas que desacuerdo con eso. Pero esto no viene al caso, asi que voy a continuar con el tema.

C es un lenguaje, y C++ es otro, Picuino lo simplifico diciendo que es C ( a pesar que aclaro que es C++ ), y al menos yo los considero 2 lenguajes distintos a pesar que poseen algunas similitudes.
C le va a dar una base, y le va a permitir entender/programar cuaquier micro sin mirar atras, entonces es mi eleccion para el autor del hilo. Por otra parte si te interesa entender las librerias de Arduino vas a tener que ademas de aprender C agregar unas cuantas cosas mas, todo lo referente a clases, inheritance, overloading y no se si se me escapa alguna otra cosa.
Con un conocimiento de C mas un minimo o base de que son las cosas que nombre podrias entender las librerias de Arduino.

Por eso mismo sigo pensando que C seria la mejor opcion.

Respecto a los compiladores, en AVR no puedo proveerte informacion, pero en PIC si venis del ASM, pienso que vas a disfrutar mas usando XC8, y que vas a encontrar muy distinto que CCS por ejemplo, a pesar que este ultimo es muy lindo para alguien que comienza. Esto ya queda a tu criterio de eleccion.

Tutoriales hay bastantes en internet.


 

anything