Programación Específica > Programación en C

 C ó Asm?

(1/5) > >>

Huguen_aus_Tirol:
Saludos a todos! En vista de algunas diferencias que existen entre la conveniencia de programar micros en C ó asembler, me tomo la libertad de abrir ésta nueva discusión.
La idea es ir sacando cosas en claro, y exponer aquí nuestras experiencias. En primer lugar, para no confundir y desanimar a los que comienzan :(  Segundo, para ampliar nuestros conocimientos.
Bien, en lo posible seamos imparciales y objetivos... :)

Comienzo: recién comparé dos rutinas relacionadas con el manejo de un display LCD, una de inicialización del display y la otra para escribir un dato en el display. Las rutinas fueron escritas en asembler y en C (compiladas con el CCS C), están probadas, y realizan exactamente la misma función.
Resultados:
En C, las rutinas me ocupan 106 y 78 bytes para la inicialización y la escritura, respectivamente; en asembler, 66 y 68 bytes. Tengo 40 bytes menos (en asm) para la inicialización, y 10 menos (en asm) para la otra rutina.
Conclusión (mía):
*En asm necesito menos ROM.
*En C fué mucho más rápida y simple la escritura del código.

Bien, compartan sus opiniones, y entre todos encontremos las pautas para definir cuál es la herramienta más conveniente para cada proyecto que iniciemos.

Saludos :hola:

Kain589:
A mi particularmente me gusta mas el asm, tambien es que he usado poco el C, pues tampoco llevo en esto de los pics mucho. Para aprender a usarlos creo que es mejor el asm que te permite ver como se debe configurar el pic para cada proposito y para el uso de los perifericos.

Una de las grandes pegas es que el codigo te llena mucho espacio (en cantidad de codigo escrito me refiero), y es mas dificl, a priori, llevar una idea de todo lo que se va haciendo; ademas en assembler es mas facil cometer errores pues tienes que ir configurando todos los bits y registros, y es facil que se te pase alguno o que intercambies el orden de las acciones que a veces da igual pero otras no. como ventajas, el codigo resultante es mas compacto y por tanto tardara menos en ejecutarse y un control total sobre el pic

La "pega" de C,a mi forma de ver, es esa que las aplicaciones ocupan mas espacio y tardan ams en ejecutarse cosa que en la mayoria de los procesos no es muy relevante, y el problema del tamaño esta solucionado debido al aumento de la capacidad de memoria de los pics que se hacen para facilitar su programacion en C. Por otra parte, la programacion en C es mas simple y facil de llevar, ademas de ser mas legible a simple vista por el usuario. Tambien los compiladores mejoran cada vez permitiendo codigos mas compactos

Como conclusion, para empezar con los pics recomendar el assembler si se quiere paralelamente con c, pero creo que todo el que programe pics deberia pasar por assembler. Y para grandes funcionalidades, como por ejemplo teclado que permita configuara parametros a usar en el programa, sacar datos por lcd conversiones adc y comunicaciones pues la resolucion desde c parece mas viable, aunque con assembler se pueda aunque quedara un tocho considerable de codigo

x.cyclop:

--- Citar ---Conclusión (mía):
*En asm necesito menos ROM.
*En C fué mucho más rápida y simple la escritura del código.
--- Fin de la cita ---
Es obvio. Asm es lenguaje de máquina, es más tardado hacerlo en Asm que en C. :D

Ya lo sacaste tu solo:
Asm es mejor pero más tardado, C es más rápido pero se necesita más ROM.

{una cosa más aprendida en este día :kicking: }
 :comp:

Huguen_aus_Tirol:
Gracias muchachos! Mi conclusión es más que obvia, pero debemos decírla a todos! :D
Sigamos por aquí, que nos queda mucho por aprender... ;)

Saludos :hola:

lalo_soft:
Esta ves no hare comparacion entre C y ASM como suguiere Tirol les hablare de mi experiencia en C.
Yo he usado tres tipos de compilador C para el desarrollo de proyectos profecionales.

1.- CCS para Pics.         calificacion "Regular"  precio us$ 1000 aprox.
2.- ICC para Atmel Avr  calificacion "Optima"   precio us$ 700 aprox.
3.- IAR para ARM core   calificacion "Una Maravilla" precio us$ 2000 a us$ 5000 aprox.

CCS:
Lo Malo:
No es standar ANSI la columna verterbrar de un progama escrito con este compilador no es portable a micros de otras marcas,requiere de manuales del fabricante ya que todo el manejo del hardware viene soportado con funciones tipo CUSTOM, no trae optimisador de codigo para ahorrar memoria.
Lo Bueno:
La ultima version maneja toda la familia Pics,las librerias Custom configuran con eficiencia casi todos los modulos de hardware para luego solo interactuar con ellos.

ICC:
Lo Malo:
La documentacion de fabricante es deficiente.
Lo Bueno:
Full ANSI, todo lo leido en los libros standar de C (ej: El lenguaje de programacion  C autor Dennis M Ritchie ) corre en este compilador,con pequeños cambios he portado funciones hacia otros micros, tiene optimisador de codigo con un algorismo  bastante eficiente para ahorrar memoria.

IAR:
Lo Malo:
Aun no lo encuentro.
Lo Bueno:
Este compilador es un caso especial sumando las caracteristicas de ICC y varias otras mas, nos permite progamar en C,C++,POO.Para los que dominan programacion POO se daran cuenta la potencialidad de este compilador para realizar proyectos de altas prestaciones.

Saludos.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa