Autor Tema: Tema Dividido. ¿ASM Vs C?  (Leído 25058 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Tema Dividido. ¿ASM Vs C?
« Respuesta #15 en: 18 de Octubre de 2006, 19:12:04 »
carcass como queres que te traten cuando decis que los que no utilizan tus sacrosantos metodos  son unos vagos.

Que sentido tienen la ciencia y la ingenieria si no son para mejorar determinadas condiciones, vos decis que el unico lenguaje valido es el asm, yo creo que el C es un avance, un paso adelante con respecto del asm, seguramente le falte mucho para equiparar, en determinadas ocaciones, al asm.

De otra forma que sentido tienen todos tus proyectos ¿para que un molinete si se puede poner una persona para que una barrera infrarroja si podemos poner una soga con campanitas, ¿para que multiplicar si podemos sumar?

Para que avanzar en la simplificacion de las cosas si podemos seguir realizandolas de la misma manera?

Creo que decir que el C no sirve en la programacion de PICs es totalmente falto de criterio.

Decir que los que utilizamos el C somos vagos es como decirte a vos que sos un cavernicola porque usas el asm, ubiera bastado con una disculpa pero no tenias que aser gala de tus dotes de semidios.

un saludo a todos

PD: Navaismo lo que no entendiste es que sos un vago :D
« Última modificación: 18 de Octubre de 2006, 19:15:23 por juanacho_ar »
Existo, aunque pienses que no pienso

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Tema Dividido. ¿ASM Vs C?
« Respuesta #16 en: 18 de Octubre de 2006, 19:35:03 »
Hola a todos

Me parece que hasta aquí debe llegar esta discusión.

El usuario Carcass ha ofendido a muchos usuarios que trabajamos en lenguaje C llamándonos vagos. En mi opinión, puede llamarnos como quiera, cada quien sabe lo que es y de lo que es capaz. No tiene caso seguir discutiendo sobre esto.

Así que los invito a olvidar esta discusión.  :mrgreen:

Mejor sigamos viendo cuál es el lenguaje más popular entre los usuarios de este foro, que es el tema principal de este grupo de mensajes.

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Tema Dividido. ¿ASM Vs C?
« Respuesta #17 en: 18 de Octubre de 2006, 19:57:50 »
 :shock:

Desconectado Toph

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 84
Tema Dividido. ¿ASM Vs C?
« Respuesta #18 en: 18 de Octubre de 2006, 20:10:44 »
Es cierto es mejor olvidar la discucion como dice migsantiago, Pero no creo que ningun usuario tenga el derecho de llamar VAGO a alguien por usar un lenguaje de programacion, porque este foro no es para insultar hasta donde yo se ni tampoco para despreciar a ningun usuario,luego carcass  dice que creia que en este foro encontraria gente con mucho conocimiento, para poder debatir y aprender sobre algunos temas pero que estaba desepcionado, solo queria aclararle que no sabe de que habla  :?: en este foro hay usuarios que son una EMINENCIA en esto de los microcontroladores pero no todos van por ahi diciendo todo lo que han hecho  ;-)
Yo que llevo pocos años en esto de los PIC me alegra mucho haber encontrado este foro y he aprendido mucho de personas como los que carcass menciona que tienen bajo nivel, segun el claro :shock: 
En este foro ya se discutio antes esto de C vs ASM y cada quien dio su punto de vista y se respeto porque nadie insulto



El tiempo perdido es dificil de recuperar, trata de no desperdiciarlo
atrevete de vez en cuando a hacer algo nuevo
¿Sera este el año que tanto he deseado?

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Tema Dividido. ¿ASM Vs C?
« Respuesta #19 en: 19 de Octubre de 2006, 02:42:07 »
Hola carcass, gracias por la respuestas, intentaré a ver si me sale algo de eso.

Yo voy a aportar mi opinión, y lamentablemente esta en contra de la del colega carcass, a pesar de que soy un fanático del .asm creo que el C para los micros mayores es mucho más práctico (esto sin saber nada de C) lo que comento ya es de notar con los micros de familia mediana, mientras que un programador hacer un programita en .asm para un micro, el de lenguaje C es capas de hacer 2 con resultados muy similares.

En la mayoría de los casos el tema de la optimización no es estricto, pero en algunos si los hay de que solo es posible la función si esta está programada en .asm, por lo tanto creo que los mejores resultados se consiguen de complementar un lenguaje con el otro y tratar de conseguir lo mejor de ambos.

Un saludo a todos, y espero no incentivar la discución.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
Tema Dividido. ¿ASM Vs C?
« Respuesta #20 en: 19 de Octubre de 2006, 03:03:35 »
Estoy de acuerdo contigo Chaly.

Yo opino que no importa el lenguaje que usemos si  llega al fin que nos proponemos.

Solo es cuestión de Equilibrio.

De que me sirve que el código ocupe la mitad del flash si el resto me sobra y hace exactamente lo mismo. Otra cosa seria la inversa, que no tuviésemos suficiente espacio y tuviésemos que cambiar a un dispositivo con mas capacidad y mas caro por culpa de un código poco optimizado.

No tiene por que ser siempre un código escrito en C más largo o peor que uno en Ensamblador. No es importante el lenguaje que usemos, si no  como lo usamos.

Con el Ensamblador y si no sabes usarlo, crearas códigos  largos también.
Los lenguajes de alto nivel solo son macros en ensamblador escritas por alguien.
Si ya están escritas y nos sirven, por que vamos a escribirlas de nuevo.

Solo un ejemplo para no aburrir … En “ C “
B = 10;

El resultado es este , donde esta el problema ?
movlw  0x0A
movwf B

No declararemos word si con  byte es suficiente .
Si sumamos bytes no haremos esto A=((B+C) /2 )*36. creara un monton de registros word temporales innecesarios con el correspondiente aumento del codigo . etc++;.

Un código con todo de calls constantemente en lenguaje ensamblador tampoco optimiza mucho que digamos .

Lo ideal es poder combinar los dos según convenga y lo mas importante , saber usarlos .

FIN del capitulo 11

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Tema Dividido. ¿ASM Vs C?
« Respuesta #21 en: 23 de Octubre de 2006, 14:04:50 »
Pues como no tengo mucho que hacer hasta que se calienten algunas máquinas, me metí al foro a lugares donde nunca estoy.

Lo que comenta carcass es muy cierto, y todos los que han programado en ensamblador pueden ratificarlo. El ensamblador siempre será mejor que cualquier compilador de cualquier lenguaje.

Cuando uno utiliza un compilador, solo el que realizó el compilador sabe cómo se va a generar el código. Si uno hace el programa en ensamblador hace todo, desde mover a W, hasta mover a los puertos.

El lenguaje de programación que no sea el "nativo" para cada µicro, pudiera considerarse una pérdida de recursos como lo plantea carcass.

Y para todos los que dicen que C es de alto nivel:
"C is a relatively "low level" language."

¿Quién se atreve a decir esto?

Pues nada menos que Brian W. Kernighan y Dennis M. Ritchie, en THE C PROGRAMMING LANGUAGE, segunda edición, 1988.

¿Y quiénes son ellos para decir esto?
Pues solamente son los creadores del lenguaje C.

Este es un foro de exposición de ideas sobre µicrocontroladores, el hacer comentarios sarcásticos sobre otra persona es, en mi opinión, deplorable y denota inmadurez.

Eso con lo que respecta a la postura de carcass.


Ahora el otro punto:
Donde trabajaba se fabrica el sistema de entretenimiento de los aviones, las televisiones, teléfonos, las unidades de distribución de RF para el video y audio, y demás aparatos para el mismo fin.
Utilizan un DSP de TI además de un ARM7 de no recuerdo el fabricante; I²C, SPI, RS232 y 485; RF y muchos otros medios y protocolos de comunicación.

Un día, durante una prueba, no podía determinar la causa de una falla. Me metí al código fuente (es lab view, no se nada pero lo hice) y resultó ser C.
Aunque no se C, me resultó relativamente sencillo saber el por qué estaba fallando la unidad.

Ahora viene la cuestión, ¿C? ¿Por qué no ensamblador?.

Les hice la pregunta a los diseñadores en Pomona, California, USA. Resularon ser índios (de la India, y no podemos negar que los índios son los que abarcan el mercado de programadores) y me dijeron que, aunque con ensamblador es una utilización óptima de recursos, tal magnitud del proyecto y los tiempos de diseño (tiempo no en espacio, sino en tiempo) no permitían un "óptimo" diseño del mismo porque, tendrían un producto 50% (en el mejor de los casos) terminado para la fecha en que debería estar al 100% terminado con 100% de confiabilidad.

Desde ese entonces me interecé, en algún compilador y, debo admitirlo, compré lo más básico de lo básico, el PBP.

Pero el PBP me sirvió enormemente y con él se pudo hacer un proyecto para Nestle (de aquí en Mexicali) y con ese proyecto se concursó en el Nacional de Tecnológicos de México (6to lugar).
El PBP ha servido a las generaciones de ingenieros que salen del ITM (Instituto Tecnológico de Mexicali) para desarrollar mejores aplicaciones en sus proyectos, tanto para ellos como para las empresas donde laboran.

Expondré dos ejemplos:

Realizar un desplegado en un LCD requiere de controlar los tiempos de escritura hacia el LCD, las líneas de control, y muchas situaciones solo para representar un mensaje en el LCD.
Con un compilador sólo utilizas la instrucción propia para desplegar el mensaje.

Una rutina de división o multiplicación de 32 bits; cada compilador provee una forma de realizar esto, a diferencia del ensamblador que debes llamar a rutinas y llamar a rutinas y cuidar que no tengas sobreflujo.

Mire carcass, aunque no es apropiado, me citaré:
"Existe un artículo que escribio Bonnie Baker, Microchip Technology Inc. "Hardware versus software: You decide", en la revista EDN, 10 de Junio 2004, página 30.
En este artículo hace mención a las opciones que tiene el diseñador en cuanto a si es mejor el software que el hardware. En resumidas cuentas expone que si es de vital importancia terminar a una fecha y es posible hacer unas funciones en software (con el PBP serin,serout,PWM,freqout,etc), es recomendable hacerlo, después se realizarán los cambios necesarios a hardware; si es un proyecto en el cual se cuenta con el hardware necesario, sería recomendable realizarlo por hardwre (HPWM,Hserin, u otro dispositivo que realice funciones adicionales y libere el trabajo del procesador principal).
Hace alución a que en hardware es menos complicado saber cómo trabaja el dispositivo, en software estaríamos haciendo pruebas hasta que obtengamos lo que queremos pero, se requiere tiempo (y dinero).
En software eliminamos la necesidad de algún componente con funciones específicas (costos)."


Ella es una de las personas que trabaja directamente en Microchip y ha realizado numerosos programas y publicaciones en ensamblador.

Si bien es cierto que no discute sobre lenguaje de programación, expone un punto crítico en el cual el programador debe decidir si implementar operaciones en software o realizar todo por hardware; teniendo en cuenta el tiempo de diseño.

Como usted lo ha sugerido, es tentador moverse a lenguajes y es completamente válido; y no por elejir un lenguaje u otro, usted será lo que asevera que son las personas que usamos otro lenguaje además del ensamblador.

Y la ventaja es que si usted tiene rutinas en ensamblador, las puede incluir dentro de sus programas de lenguaje diferente a él y le funcionarán.


Espero que el presente esté fundamentado de manera que usted no se sienta ofendido o criticado, y los demás también; bueno, Navaismo está chico (23) y no sabe cómo comportarse  :D.

"Quizá no esté de acuerdo con lo que dices, pero defenderé a muerte tu derecho a decirlo"
No recuerdo quién lo dijo pero me parece apropiado incluirlo.

Y:
Uso ASM, Basic (PBP) y estoy viendo C (Primer C, de Pratta; C, de K&R)
« Última modificación: 23 de Octubre de 2006, 14:21:45 por Mario »
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Tema Dividido. ¿ASM Vs C?
« Respuesta #22 en: 24 de Octubre de 2006, 10:35:57 »
Mario, muy detallada y madura tu respuesta a Carcass.
Yo hace 20 años que programo microprocesadores y microcontroladores y la eleccion de tanto el dispositivo como el lenguaje de programacion depende de muchos factores como:
*El tamaño de memoria RAM/ROM del dispositivo.
*El tiempo de respuesta que se espera del mismo.
*El tamaño del proyecto y la complejidad del mismo.
*Otros que no me vienen a la mente ahora.

Esto definira si usar assembler, C o incluso encima del C un RTOS.

Para vos Carcass, fijate si se puede realizar multiples tareas en assembler sin desperdiciar tiempo de micro ni desatender procesos (y que sea depurable facilmente) sin tener que realizar algo completamente especifico para dicho dispositivo.

Saludos
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado marmatar

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1220
    • MSTools
Tema Dividido. ¿ASM Vs C?
« Respuesta #23 en: 24 de Octubre de 2006, 18:37:21 »
Estimado Carcass...
...En que brete te has metido  :lol:, creo que has desvirtuado el tema original del hilo y lamentablemente con una falta de respeto, que ha generado una catarata de reacciones.

Puedo hacerte una pregunta?... realmente crees que el asm además de optimizar espacio y tiempos de ejecución, es eficaz a la hora del desarrollo?
En mi humilde opinion por mas módulos, rutinas, etc que crees guardes y reutilices, nunca tendrás todas las que necesites para algo "a medida" por lo que el tiempo de desarrollo en asm superaría al utilizado con C, y ese tiempo tambien es dinero.

Tengo otra pregunta para hacerte,... además de no tenér jefe (como te envidio), no tienes colaboradores?, porque supongo que desarrollos tan complejos estén a tiempo debes trabajar con un equipo, y al menos los que trabajen con el código del micro deben estar a la par tuyo en programación asm, sinó retrasarían el proyecto y eso haría que dejara de considerarse eficaz. 20000 líneas de código son mucho trabajo para una sola persona, si te tardas tanto, desarrollarás un solo producto cada 6 meses con lo que será dificil manetener una estructura comercial.
Otra vez le doy puntos al C en eficacia, donde varios pueden trabajar en distintas partes a la vez y unirlas en un proyecto en común sin tanta diferencia en el talento de cada uno. (lo digo por experiencia, soy un desastre en C)

Ahora una sugerencia, no es un consejo (eso solo lo dan los padres... y solo a veces)... aprender a trabajar en equipo, no solo hace las cosas mas aliviadas, prolijas y agradables, sinó que te da margen para aprender de los demás.
Si consideras que no sabes suficiente de otros lenguajes mas eficientes para hacer el soft, no será hora de que consigas alguien que lo haga por ti, con un aspecto incluso mas agradable.
El que mucho abarca, poco aprieta... no puedes saber todo, de todo...

Ahora hay una pregunta que me hago yo mismo...  si sabes tanto, me imagino que solo entraste al foro por curiosidad, solo para ver de que se trataba, porque no creo que necesitaras hacer alguna consulta.
Si la idea es dar una mano, porque no aceptas que el "modo" en que te has referido  a un gran grupo de usuarios (en que me incluyo) no fué lo que se dice "cortés", y tratas de dar una mano de una vez.

Y por último, aunque soy un convencido de que el origen no tiene mucho que ver, creo haber presenciado en todos los años que pertenezco al foro, muy pocos debates con malos modos que no hayan sido originados por argentinos... ésto es una autocrítica porque me incluyo entre ellos, y lo único que hacemos es alimentar cada vez mas nuestra fama de agrandados y faltos de modestia.

Hay que hablar menos y aprender a escuchar... éste foro es una fuente inagotable de recursos, técnicos, didácticos, pero principalmente humanos... si eso no te interesa, hay infinitos lugares de consulta en internet donde podrás sentirte agusto.

Un saludo...
marmatar

Lo posible ya está hecho, entonces hagamos lo imposible - Platón

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Tema Dividido. ¿ASM Vs C?
« Respuesta #24 en: 24 de Octubre de 2006, 18:45:21 »
Hola:

Acalorada discusión se ha armado. En mi opinión creo que cada lenguaje tiene su utilización en distintos casos y se lo debe elegir de acuerdo a las condiciones de cada proyecto. Hay veces que se usa ensamblador, otras C y otras veces algún lenguaje de más alto nivel.
Los fanatismos y las discusiones no llevan a nada y cada uno es libre de usar el lenguaje que más le gusta o le parece más apropiado. También está el peso de la historia y del mercado donde las empresas se decantan por uno y le meten marketing y demás.
En todo caso como dije cada cual tiene sus gustos y como ejemplo está este programador que empezó a portar el GTA III a NES con un lenguaje que es mezcla de ensamblador para el 6502 y uno que inventó él mismo.

Les dejo el enlace:

http://www.grandtheftendo.com/

Otros enlaces:

http://forevergeek.com/games/grand_theftendo_port_of_gta_iii_to_8bit_nes.php
http://www.vidaextra.com/archivos/2005/05/30-grand-theftendo-gta-para-nes.php

Por último Carcass si te parece este foro muy básico te invito que te des una vuelta por el foro en ingles de EdaBoard en donde podrás cambiar ideas con muchas personas de todo el mundo. Te dejo el enlace:

www.edaboard.com

En lo personal este foro me parece el mejor en habla hispana tanto en contenido técnico como humano y quisiera felicitarlos a todos. Muchas gracias.

Para Darukur. Salutes, nos vemos a la tarde.

Martín
« Última modificación: 24 de Octubre de 2006, 18:53:11 por Zaphyrus »
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Tema Dividido. ¿ASM Vs C?
« Respuesta #25 en: 26 de Octubre de 2006, 12:20:47 »
Para vos Carcass, fijate si se puede realizar multiples tareas en assembler sin desperdiciar tiempo de micro ni desatender procesos (y que sea depurable facilmente) sin tener que realizar algo completamente especifico para dicho dispositivo.

No soy Carcass, Pero quiero acotar que es totalmente posible, yo lo hago todo el tiempo, tengo muchas tareas  y todas se realizan en el momento que corresponde, sin usar mas procesador del absolutamente necesario , sin usar ni una sola rutina de delay(las tengo prohibidas).

Si sos ordenado para programar y pensas antes de empezar a escribir código, es simple de depurar
Inclusive la rutina de display LCD  no utiliza ningún delay

Con esto no quiero decir que asm sea mejor o peor de C pero que es posible hacer en asm sistemas en tiempo real sin complicaciones, yo lo vengo haciendo desde hace 3 años y es impresionante el jugo que se le puede sacar a los micros usando técnicas de tiempo real

Creo que el tema con C es que para que el código sea tan rápido como en ASM hay que saber escribir en C, es muy mucho mas fácil terminar con códigos terriblemente lentos en C que en ASM, si es que no se conocen de técnicas de programación y no se conoce en profundidad el compilador de C (C18)

Escribiendo en C siempre existe la tentación de olvidar que estamos en un microcontrolador y que los recursos de memoria y velocidad de ejecución son muy limitados en comparación con un PC

Gustavo T

Tucuman Argentina
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Tema Dividido. ¿ASM Vs C?
« Respuesta #26 en: 26 de Octubre de 2006, 16:49:46 »
Hola GustavoT:

¿Me podrías decir si usas algún Sistema Operativo en Tiempo Real (RTOS) o lo implementas todo vos?

En ensamblador no conozco ningún RTOS ni para la línea PIC16 ni para la PIC18. Los que conozcon en C son:

-PICOS18
-FreeRTOS
-Salvo RTOS

Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Tema Dividido. ¿ASM Vs C?
« Respuesta #27 en: 27 de Octubre de 2006, 00:07:00 »
Gustavo T:
Veo que hay gente aca que sabe del tema y lo aplaudo.
Yo sigo programando en assembler si es que es completamente necesario (tiempo vs espacio vs eficiencia).
Es verdad de que de nada sirve programar en C o cualquier otro lenguaje de mas alto nivel que el assembler sin pensar o fijarse como resulta el mismo o comprender el funcionamiento que tendra sobre el micro.
Tengo por costumbre cuando realizo algunas rutinas en C de verificar el desensamblado para ver que hace el compilador y "adaptar" mi codigo en C de manera de optimizar el assembler.
Me pregunto como manejas el context switch en assembler, la verdad me intriga ya que seria bueno aprender ;)
Trabajas maquinas de estados o guardas la info necesaria para saltar a otra tarea (PC, registros, etc)?
Aparte te comento de la cita que hiciste de lo que yo dije estaba el punto de que en assembler se realiza codigo específico para un dispositivo, con lo que "mudar" el codigo a otro microcontrolador diferente significa un desafio y un riesgo.
Ademas estan los tiempos de desarrollo y el mantenimiento del código que lo hace inviable para proyecto de gran envergadura.
Desde ya un saludo muy cordial desde Mar del Plata, y gracias por compartir tu opinion y conocimiento.

Carcass: no es mi intencion ofender a nadie y vos deberias aprenderlo tambien. El hecho de que hace 20 años que me dedico a la programacion (y trabajo en ello) desde lenguaje assembler a C# y RTOS o desde micros de 8 bits a 32 bits me da la perspectiva para opinar (y no obligar a que piensen como yo) con cierto criterio.
Yo se que es dificil despegarse de los viejos habitos pero a veces hay que ser mas flexibles e intentar expandir su universo.
Tal vez solo lo que querias era jactarte de lo que sabes, ofender a los que piensan diferente a vos y no aportar nada ni aprender nada.

Marcelo L.
PD: Saludos a Zaphyrus y a ver si me ayudas a conseguir el salvo para DSPIC y PIC24
« Última modificación: 27 de Octubre de 2006, 00:22:20 por Darukur »
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Tema Dividido. ¿ASM Vs C?
« Respuesta #28 en: 27 de Octubre de 2006, 00:32:21 »
Una cosa mas...
Igual lo entiendo a Carcass.
Hay diferentes tipos de programadores, el que es mas amigo del usuario y el que es mas amigo del micro (claro que hay mas tipos de programadores pero no viene al caso).
Esto lo digo porque conozco como se despilfarran recursos a medida que las maquinas son mas potentes y los lenguajes de programacion de mas alto nivel.
Mi dicho mas repetido es que algunos programadores "para ir de A a B pasan por Z", haciendo referencia a cosas que las podrian haber hecho mas faciles, eficientes y menos costosas y se te responde "para que si sobra maquina" o "deja que total lo hace el componente".
Pero convengamos que si pensaramos en chiquito todavia estariamos con la consola de comandos (que todavia la amo) y no verian la luz los sistemas operativos u otros desarrollos que en otras epocas no se le hubieran ocurrido a nadie.

Saludos.

PD: esta diferencia entre el que es amigo del micro o amigo del usuario se resume a ...... sos un ingeniero electronico o un ingeniero en sistemas..... no?

PD2: Marmatar eso es devocion!! Comes y dormis en el foro????

PD3: Carcass, estaba mirando post anteriores y  hablas de eficiencia y usas en el soft de la PC VB??? Pfffff sin palabras
« Última modificación: 27 de Octubre de 2006, 00:53:43 por Darukur »
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Tema Dividido. ¿ASM Vs C?
« Respuesta #29 en: 27 de Octubre de 2006, 01:50:50 »
Hola Carcass, sin ánimos de ofender creo que juzgas a las personas sin conocerlas. A Darukur lo conozco desde hace 11 años y te puedo asegurar que la tiene muy clara en todo lo que respecta a microprocesadores y microcontroladores. Él empezó programando en basic y assembler en una Commodore 64 y te puedo decir que no podes estar más errado con lo que afirmás. No lo defiendo porque soy su amigo sino que conozco su trabajo y su facilidad con que lo hace.
Estoy de acuerdo con Marmatar los argentinos (entre los que me incluyo) somo muy individualistas y arrogantes, nos creemos los mejores pero así nos va. Solo es cuestión de dejarnos de mirar el ombligo y mirar a nuestro alrededor, si trabajaramos más en equipo seríamos potencia. Este país es muy rico en recursos naturales, materias primas y materia gris.La verdad que es una lástima que seamos así y que tengamos esa fama en el mundo.
Termino la autocrítica porque esto se va de tema.

Carcass y GustaboT me gustaría saber más, si están dispuestos de compartir, sobre que técnica usan para la programación en assembler. Cómo pregunté antes quisiera saber que sistema usan para realizar multitareas.
Los formas de programación para usar varias tareas que conozco son:

-Polled Loop: Utilización de banderas para ejecutar distintas porciones de código en la bucle principal
-Cyclic Executives: Donde se dá la ilusión que se están ejecutando muchas tareas a la vez pero lo que se está realizando son pequeños procesos en un bucle principal
-Staten-Driven Code: En el que se usan if anidados o autómatas de estado finito (switch-case) tanto Moore como Mealy para separar el procesamiento de las funciones en segmentos de código. Es decir se ejecuta la primera parte de la primer función, luego la primera parte de la segunda función, etc. Al terminar de ejecutarse las primeras partes de cada función, se empieza de nuevo el ciclo para ejecutarse las segundas partes de cada función y así sucesivamente
-Corutines o Sistema Operativo en Tiempo Real Cooperativo (Cooperative RTOS): No lo voy a explicar pero se dispone de un scheduler que hace el context switch entre las tareas pero el programador tiene la obligación de devolver al scheduler el control para que pueda cambiar de tarea. Ej. Salvo RTOS, FreeRTOS (modo cooperativo)
-Sistema Operativo en Tiempo Real Preemptivo (Preemptive RTOS): Tampoco lo voy a explicar pero en este caso si se está ejecutando una tarea de una determinada prioridad y se produce un evento que es manejado por otra tarea con mayor prioridad entonces esta última toma el control automáticamente. Ej. PICOS, FreeRTOS (modo preemptivo), etc.

Evidentemente utilizar RTOS en assembler es un martirio por eso la elección del C.

Me gustan las discusiones cuando se presentan conceptos técnicos.

Saludos.

Martín

PD: Lo que dice GustavoT sobre el lenguaje C es muy cierto. A mí también me gustan las cosas bien depuradas, ordenadas y que no consuman de más de gusto.
« Última modificación: 27 de Octubre de 2006, 02:04:05 por Zaphyrus »
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina