por xultz » 10 Mai 2008 15:22
Wagner, o maior problema de rodar Linux é RAM, e não flash. No caso do 2148, ele tem 42k de RAM e não tem interface para memória externa. Se você fosse pendurar memória nele, teria que ser via GPIO, teria que escrever um módulo para o kernel entender como usar aquela memória, ficaria lento, etc etc.
Se você pegar toda a linha LPC22XX vai ver que todos têm interface para memória externa. Os ARM possuem um barramento de 32 bits onde é acessado tudo, memória RAM, flash, registradores, etc. 32 bits são 4G posições de 8 bits, certo? Isso quer dizer que teoricamente você poderia colocar 4G de memória no micro, poderia colocar 2G de flash e 2G de RAM por exemplo. Porém, uma parte dessa memória é usada nos registradores de configuração, mas mesmo assim dá prá colocar memória prá burro. Quando você usar uma interface de memória no micro, a memória que você colocar ligado nele vai ser acessada por meio desse barramento de 32 bits, ou seja, o kernel só precisa saber onde a memória começa (qual endereço) e onde termina, e só, o hardware do microcontrolador se encarregar de gravar e ler o dados nessa memória. O mesmo ocorre com a flash.
No caso do Linux e do uCLinux, normalmente a imagem do kernel é gravada compactada da flash e é descompactada na RAM para ser executado a partir dela. Este é um motivo por que é importante ter bastante RAM. É possível ter a imagem não compactada na flash e rodar a partir dela, mas existe um ganho de velocidade em rodar a aplicação da RAM do que na flash, sem contar que na flash terão ainda os arquivos dos aplicativos que vão rodar no sistema, além do kernel, então guardar o kernel compactado costuma ser uma boa.
Resumindo: não, o 2148 não roda Linux, o ideal é usar LPC22XX com memória externa. É possível rodar o Linux a partir de uma SD, na flash vai conter um bootloader capaz de acessar a SD, ler o kernel, e descompactar na RAM, depois o kernel monta a SD como / e executa a partir dela, é uma excelente opção também. Mas não adianta, o Linux precisa de RAM, e 2M é um bom tamanho para começar.
98% das vezes estou certo, e não estou nem aí pros outros 3%.