Atualmente, entre minhas varias atividades, leciono Linguagem de Programacao para algumas turmas de ensino medio. Traduzindo: ensino a programar em Delphi/Pascal.Esses alunos sao curiosos, e ao saber que programo Microcontroladores, com frequencia perguntam: "Professor, programar Microcontroladores e mais dificil ou mais facil do que nas maquinas grandes?"Eu realmente tenho um dom para provocar perguntas dificeis...A programacao de grandes sistemas e bem diferente da programacao dos microcontroladores. Mas a maior diferenca nao se deve ao tamanho da maquina. Sao filosofias completamente diferentes.Em primeiro lugar, sistemas comerciais, que rodam nas grandes maquinas, geralmente sao MUITO maiores e mais complexos. Por outro lado, sao desenvolvidos por equipes de programadores. Dificilmente um unico programador e responsavel, sozinho, por um grande sistema. Isso leva a necessidades - trabalho em equipe, controle de disponibilidade de codigos, controle de versoes - muito mais complexos do que num pequeno sistema, desenvolvido por um programador.Por outro lado, em um sistema microcontrolado e comum estarmos utilizando os recursos no limite. O hardware e limitado, o software precisa ser muito eficiente. Isso leva a complexidades de logica nao encontradas num grande sistema.Ou seja, nao se pode dizer que um e "mais dificil" do que o outro. Sao expectativas diferentes, filosofias diferentes, habilidades e conhecimentos necessarios - tudo diferente.O que tenho observado na pratica e que existem poucos profissionais competentes na area de microcontroladores. Mas ha razoes claras para isso:- O programador de grandes sistemas trabalha em equipe. Assim fica facil comecar como "junior" e ir aprendendo com os mais experientes, ate chegar, um dia, a lider da equipe. Ja nos microcontroladores trabalha-se sozinho. Quantos de nos gostamos de estudar e podemos ser autodidatas?- O sistema microcontrolado controla uma maquina. E preciso conhecer, ao menos em linhas gerais, a eletronica e a mecanica da maquina, compreender todo o seu funcionamento, para ser capaz de desenvolver o sistema. Quantos Programadores + Eletronicos + Mecanicos existem por ai?Eu tenho essa formacao por uma serie de eventos pouco comuns. Sempre fui apaixonado por mecanica, e na minha epoca (sim, estou ficando mais... errr... experiente! Ta bom, ta bom, mais velho, pronto!) nao existiam microcomputadores. Eu nunca tinha visto um computador ate iniciar a faculdade. Por isso cursei Engenharia Mecanica. Ai, ja na faculdade, conheci e me apaixonei tembem pelos computadores. Resolvi trabalhar na area, mas nao abandonei minha paixao mais antiga e completei o curso em Mecanica.A Informatica me levou a Eletronica, na qual sou autodidata, e tanto me interessei por esse novo campo que hoje sou professor de Eletronica.Ou seja, essa serie de eventos me levou a ser o "Programador + Eletronico + Mecanico" que citei acima.Talvez seja por isso que nos chamam, aos microprogramadores, de "loucos furiosos"... voce tem que ter uma curiosidade insaciavel, o verdadeiro prazer em estudar e conhecer coisas novas."to boldly go where no man has gone before", como diria nosso velho conhecido James T. Kirk. Bom, para discutirmos implementacao temos que ser mais especificos. A ferramenta que utilizo para programar os S08 e o Freescale CodeWarrior, e e sobre este ambiente que vamos discutir.A primeira providencia para utilizar parte da Flash