July 12, 2025

Braço enferrujado

Você provavelmente já ouviu que a ferrugem é uma linguagem de programação de sistemas que tem o seguinte crescente. Ele pretende ser rápido como C, mas tem recursos como garantia de memória e segurança, genéricos e evita falhas de segmentação. Parece apenas a coisa para um sistema embutido, certo? [Jorge Aparicio] estava frustrado porque sua CPU de Escolha, um braço de STM32 Cortex-M não tinha suporte nativo para ferrugem.

Aparentemente, você pode facilmente vincular as funções C em um programa de ferrugem, mas não foi isso que ele era depois. Então ele partiu para construir programas puros de ferrugem que pudessem acessar o hardware do dispositivo e ele documentou o esforço.

Não só a postagem mostra as ferramentas que você precisa e as versões de software, mas usando o OpenACD, [Jorge] até mesmo conseguiu fazer alguma depuração. A técnica parece bastante tipicamente aplicável, também, como ele diz que fez o mesmo truque em seis controladores diferentes de três fornecedores diferentes sem problemas. Você tem que configurar o projeto alterando alguns valores em um modelo.

Embora não seja um tutorial de ferrugem, seguindo junto com o código [Jorge] e suas explicações lhe darão uma boa ideia de que a ferrugem parece. Ele também mostra uma ferramenta elegante, o Dashboard GDB. Para construir a API às regiões de memória especiais do braço, [Jorge] usa uma ferramenta chamada SVD2RUST para processar os arquivos SVD do fornecedor. Estes são normalmente usados ​​para programação e teste do JTAG, por isso pensamos que era uma nova maneira de criar suporte automaticamente para o processador.

Muitas línguas que oferecem recursos de segurança tendem a compilar o código de gordura. [Jorge] mostra um exemplo LED piscando e desmonta-o e parece bastante compacto cerca de 127 bytes. Ele então abstrai os registros do temporizador e o código é praticamente o mesmo tamanho quando compilado.

Nós cobertos de ferrugem brevemente um pouco de volta. Nós também vimos ferrugem em algum equipamento Wi-Fi mais recentemente.