É possível portar o Linux para Teensy 4.1?
"Linux" geralmente requer "paginação de memória" - a capacidade de mapear pedaços de memória "em algum lugar" (e talvez dispersa) na memória física para um espaço de memória contíguo que as aplicações do usuário vêem. Os chips ARM Cortex-M não têm essa funcionalidade, nem mesmo nos grandes e rápidos chips Cortex M7 usados no Teensy 4.x. Você precisa de um chip Cortex-A (ou talvez um sistema de memória externa extravagante.)
Então você não pode executar o Linux diretamente em qualquer microcontrolador Cortex-M.
alguns dos chips PIC32 (baseados em uma CPU MIPS) possuem um MMU (Mapping, mas sem paging, IIRC) primitivo, e isso permite que alguns dos sistemas operacionais mais primitivos do tipo unix sejam executados. 2.10BSD, por exemplo.
(Mas, por favor, não vamos fingir que o que as pessoas querem dizer com "Linux" hoje em dia tem muita semelhança com o unix PDP11, ou 2.10BSD, ou mesmo a uma das minúsculas versões de linux descascado como o tomsrtbt (que requer cerca de 8MB de RAM)...)
BSD Unix em PIC32 microcontrollerBSD Unix em PIC32 microcontroller RetroBSD é uma porta UNIX que roda no microcontrolador PIC32 : O sistema é destinado a um mercado de pequenos sistemas embarcados. As principais características incluem: Pequenos requisitos de recursos: O RetroBSD requer apenas 128 kbytes de RAM para ser instalado e rodar aplicações do usuário. Proteção de memória: Usando mecanismos de hardware, a memória do kernel é totalmente protegida da aplicação do usuário. Funcionalidade aberta: Normalmente, um aplicativo de usuário é fixo na memória Flash, mas no caso do RetroBSD, qualquer número de aplicativos pode ser colocado no cartão SD, e rodar conforme necessário. Multitarefa real: API POSIX padrão é implementada (fork, exec, wait4 etc). Sistema de desenvolvimento embarcado: É possível ter um compilador C no sistema, e recompilar a aplicação do usuário (ou todo o sistema operacional) quando necessário. Posted by Ian August 19, 2011 August 19, 2011 Posted in PIC Tags: microcontroller , PIC32http://dangerousprototypes.com/blog/2011/08/19/bsd-unix-on-pic32-microcontroller/ Unidade de gerenciamento de memória - WikipediaHardware traduzindo endereços virtuais para endereço físico Uma unidade de gerenciamento de memória ( MMU ), às vezes chamada de unidade de gerenciamento de memória paginada ( PMMU ), é uma unidade de hardware de computador com todas as referências de memória passadas por ela mesma, realizando principalmente a tradução de endereços de memória virtual para endereços físicos . Uma MMU executa efetivamente o gerenciamento de memória virtual, gerenciando ao mesmo tempo a proteção da memória, controle de cache, arbitragem de barramento e, em arquiteturas mais simples de computadores (especialmente sistemas de 8 bits), comutação de bancos. Visão geral [ edit ] Esquema da operação de uma MMU [1] : 186 ff. As MMUs modernas normalmente dividem o espaço de endereços virtuais (o intervalo de endereços usados pelo processador) em páginas , cada uma com um tamanho que é uma potência de 2, geralmente alguns kilobytes , mas podem ser muito maiores. Os bits inferiores do endereço (o offset dentro de uma página) são deixados inalterados. Os bits superiores do endereço são os números das páginas virtuais. [2] Entradas na tabela de páginas [ edit ] A maioria dos MMUs usa uma tabela na memória de itens chamada " tabela de páginas ", contendo uma " entrada na tabela de páginas " (PTE) por página, para mapear números de páginas virtuais para números de páginas físicas na memória principal. Um cache associativo de PTEs é chamado de buffer de tradução (TLB) e é usado para evitar a necessidade de acessar a memória principal toda vez que um endereço virtual é mapeado. Outras MMUs podem ter uma matriz privada de memória [3] ou registros que contenham um conjunto de entradas de tabela de páginas. O número de página física é combinado com o deslocamento de página para dar o endereço físico completo. [2] Um PTE também pode incluir informação sobre se a página foi escrita (o " bit sujo "), quando foi usada pela última vez (o "bit acessado", para um algoritmo de substituição de página menos usado recentemente (LRU) ), que tipo de processos (modo usuário ou modo supervisor) podem lê-la e escrevê-la, e se ela deve ser armazenada em cache . Às vezes, um PTE proíbe o acesso a uma página virtual, talvez porque nenhuma memória de acesso aleatório (RAM) física foi alocada a essa página virtual. Neste caso, a MMU sinaliza uma falha de página para a CPU. O sistema operacional (SO) então lida com a situação, talvez tentando encontrar um frame de RAM de reserva e configurar um novo PTE para mapeá-lo para o endereço virtual solicitado. Se nenhuma RAM estiver livre, pode ser necessário escolher uma página existente (conhecida como "vítima"), usando algum algoritmo de substituição, e salvá-la no disco (um processo chamado " paging "). Com algumas MMUs, também pode haver falta de PTEs, neste caso o sistema operacional terá que liberar um para o novo mapeamento. [2] A MMU também pode gerar condições de erro de acesso ilegal ou falhas de página inválidas em acessos de memória ilegais ou inexistentes, respectivamente, levando a condições de erro de segmentação ou de bus quando manipuladas pelo sistema operacional. Benefícios [ edit ] Em alguns casos, uma falha de página pode indicar um bug de software , que pode ser prevenido usando a proteção de memória como um dos principais benefícios de uma MMU: um sistema operacional pode usá-la para proteger contra programas errantes bhttps://en.wikipedia.org/wiki/Memory_management_unitArtigos semelhantes
- É possível instalar uma playstore na TV inteligente baseada em Linux? Ou pelo menos aplicativos baseados em Linux usando USB?
- Posso portar um número pré-pago para um número pré-pago?
- Devo considerar portar o meu aplicativo iOS para o Android? Qual é o bom e o ruim de fazer isso?
- Devo portar um aplicativo móvel para um site ou vice-versa?