{"id":95,"date":"2014-05-05T09:50:58","date_gmt":"2014-05-05T07:50:58","guid":{"rendered":"http:\/\/www.rtbasics.com\/WP_2\/?p=95"},"modified":"2014-05-05T11:05:08","modified_gmt":"2014-05-05T09:05:08","slug":"por-que-el-nombre-de-rtbasics","status":"publish","type":"post","link":"https:\/\/www.rtbasics.com\/WP_2\/archives\/95","title":{"rendered":"\u00bfPor qu\u00e9 el nombre de rtBasics?"},"content":{"rendered":"<body><p>Estaba yo pensando, \u00bfpor qu\u00e9 le he puesto este nombre? \u00bfQu\u00e9 es eso de Back to Real Time Basics?<\/p>\n<p>Bueno, quer\u00eda reivindicar un poquito los tiempos en los que estas cosas del software embebido eran sencillas por necesidad.<\/p>\n<p>Digo por necesidad porque la ROM era EPROM (con una E) y porque toda la RAM era est\u00e1tica. Claro, as\u00ed contar con m\u00e1s 128KB de cada una era un lujo. Eso si ten\u00edas la suerte de que tu procesador pudiera direccionar m\u00e1s de 64KB. Yo tuve la suerte: Motorola 68008, que recuerdos!<\/p>\n<p><!--more-->Digo por necesidad porque program\u00e1bamos en ensamblador y, claro, hacer un programa de m\u00e1s de 128KB de ROM que funcionara era un reto. Incluso siendo ensamblador del 68000.<\/p>\n<p>Digo por necesidad porque depur\u00e1bamos con un aparato que se llamaba MICE (Micro In Circuit Emulator) del tama\u00f1o de una caja grande de zapatos que sustitu\u00eda al micro y que para que funcionara aquello ten\u00edan que estar todos los conectores de un mont\u00f3n de cables perfectamente puestos, conectados y colocados ortogonalmente respecto al borde de la mesa. Todav\u00eda me estoy preguntando por qu\u00e9 eso ser\u00eda necesario.<\/p>\n<p>Despu\u00e9s de esto, los microprocesadores dejaron de ser procesadores y se convirtieron en microcontroladores. Lo que antes eran perif\u00e9ricos empezaron a estar dentro del micro. Cuando ya no cab\u00edan las patas, se inventaron las BGAs y los micros ya pod\u00edan volver a tener m\u00e1s patas.<\/p>\n<p>Ahora ya todo est\u00e1 dentro, controladores de NAND FLASH, de memorias din\u00e1micas, de video, \u2026 s\u00f3lo hace falte ponerle un reloj, unos cuantos GB de NAND, muchos cientos de MB de DDRX y ya est\u00e1. Bueno, casi, ahora hay que tener cuidado con la alimentaci\u00f3n. Con tantas cosas dentro suelen necesitar varias alimentaciones con una secuencia de arranque determinada.<\/p>\n<p>No est\u00e1 mal. Mucho mejor. Y, adem\u00e1s, en una gran variedad. Desde micros de cierta capacidad con todo integrado, incluso las memorias y el cristal, que funcionan s\u00f3lo con la alimentaci\u00f3n, hasta micros con varios n\u00facleos homog\u00e9neos\u00a0o incluso heterog\u00e9neos que pueden correr varios sistemas operativos\u00a0simult\u00e1neamente. Hablaremos de esto alg\u00fan d\u00eda.<\/p>\n<p>Vale, parece claro que el hardware ha mejorado y, desde el punto de vista del \u201cusuario\u201d, se ha simplificado, pero \u00bfqu\u00e9 ha pasado con el software?<\/p>\n<p>El software\u2026 desde luego ha mejorado, pero no me atrevo a decir que se haya simplificado. Veamos\u2026<\/p>\n<p>En mi trayectoria, yo he sentido varios saltos cualitativos, que voy a tratar de describir aqu\u00ed. Son subjetivos, as\u00ed que otros lo habr\u00e1n percibido de manera distinta.<\/p>\n<p>Fue un salto cualitativo dejar el ensamblador y programar en C.<\/p>\n<p>Fue un salto cualitativo empezar a usar un sistema operativo. En mi caso, VRTX sobre procesadores de Motorola 68020 y 68302. \u00bfTe acuerdas, David, de los convertidores de protocolo Profibus para Oresund?<\/p>\n<p>Fue un salto cualitativo usar VxWorks sobre los PowerQUICC I de Freescale. Siempre funcionaba todo y, cuando no funcionaba, como todo estaba en su sitio, siempre sab\u00eda uno d\u00f3nde ir a mirar. Descubr\u00ed muchas cosas con VxWorks. Un recuerdo desde aqu\u00ed para Alberto Bonfiglio, que falleci\u00f3 a finales del a\u00f1o pasado.<\/p>\n<p>Y, para m\u00ed, el \u00faltimo gran salto cualitativo fue la compra de WindRiver por Intel. \u00bfY eso? \u00bfTanto tiene esto que ver?<\/p>\n<p>Yo dir\u00eda que s\u00ed. Cuando Intel compr\u00f3 WindRiver la mayor\u00eda de los equipos industriales que usaban VxWorks ten\u00edan procesadores de Freescale. \u00bfQuer\u00eda Intel cambiar esto y \u201cfomentar\u201d el uso de sus procesadores en los equipos industriales con VxWorks?<\/p>\n<p>No lo s\u00e9, la verdad. Si yo hubiese sido el CEO de Freescale en aquel momento del a\u00f1o 2009 hubiese pensado que s\u00ed. Creo que \u00e9l tambi\u00e9n lo pens\u00f3 porque a partir de entonces Freescale se ha preocupado m\u00e1s de tener bajo control el software m\u00e1s \u00edntimo, el que hace que sus procesadores sirvan para algo.<\/p>\n<p>\u00bfY c\u00f3mo lo ha hecho? Fundamentalmente, ofreciendo de manera gratuita, en c\u00f3digo fuente, el sistema operativo MQX para la mayor\u00eda de sus procesadores y mejorando y poniendo un precio razonable a su IDE CodeWarrior. Otro d\u00eda podemos dedicarle un monogr\u00e1fico a MQX. A m\u00ed me parece un regalo muy valioso. Est\u00e1 muy bien estructurado, incorpora drivers para pr\u00e1cticamente todos los dispositivos y proporciona a las aplicaciones los recursos habituales en este entorno como son stack TCP\/IP, sistema de ficheros, stack USB, etc.<\/p>\n<p>Acabo de decir que MQX es un regalo, pero no es as\u00ed. Freescale sabe muy bien que un factor muy importante, quiz\u00e1s el m\u00e1s importante, en la selecci\u00f3n de un procesador es su ecosistema software.<\/p>\n<p>Bueeeno, voy a mencionar otro salto cualitativo: la incorporaci\u00f3n de Linux al entorno de los sistemas embebidos. Es indudable que Linux ha ofrecido a los equipos industriales un crecimiento software muy importante, pero tambi\u00e9n es verdad que es un sistema complicado, con muchas posibilidades que hay que manejar con prudencia.<\/p>\n<p>No voy a decir nada malo de Linux, Dios me libre, adem\u00e1s, ser\u00eda pol\u00edticamente incorrecto, pero muchas veces se asume como la soluci\u00f3n por defecto sin haber medido despacio sus ventajas y sus inconvenientes.<\/p>\n<p>Quiz\u00e1s por esto \u00faltimo, y volviendo al t\u00edtulo, reivindico que mantengamos el software sencillo, que la soluci\u00f3n sea la soluci\u00f3n m\u00e1s sencilla posible, que pensemos activamente c\u00f3mo se puede simplificar la cosa porque aunque ya no es necesario que el software embebido sea sencillo, sigue siendo tremendamente recomendable.<\/p>\n<p>Have fun!<\/p>\n<\/body>","protected":false},"excerpt":{"rendered":"<p>Estaba yo pensando, \u00bfpor qu\u00e9 le he puesto este nombre? \u00bfQu\u00e9 es eso de Back to Real Time Basics? Bueno, quer\u00eda reivindicar un poquito los tiempos en los que estas cosas del software embebido eran sencillas por necesidad. Digo por &hellip; <a href=\"https:\/\/www.rtbasics.com\/WP_2\/archives\/95\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-95","post","type-post","status-publish","format-standard","hentry","category-broadcasting"],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4vaHY-1x","_links":{"self":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts\/95","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/comments?post=95"}],"version-history":[{"count":2,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts\/95\/revisions"}],"predecessor-version":[{"id":99,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts\/95\/revisions\/99"}],"wp:attachment":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/media?parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/categories?post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/tags?post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}