Para explicar mais sobre o que é o firmware por dentro.
O firmware é um código que é executado em um hardware muito específico, o que significa que os códigos operacionais são específicos para o hardware para o qual foram escritos, pode ser uma família de chips ou interfaces ou para apenas um item.
Essencialmente, o que o firmware faz é isso;
Possui instruções para um determinado processador executar e executar, isso é chamado de "inicialização". Quais os computadores mais inicializáveis têm isso no BIOS.
Inicialize o referido hardware através das instruções no firmware.
Carregar / subir a mesa de salto.
Torne acessível o acesso aos registros em um determinado dispositivo.
Entregue o controle à rotina de saída assim que o BIOS for usado após um início frio (estado desligado) ou quente (reinicialização normal ou pino de redefinição).
A maioria dos BIOSs (firmware) é projetada para um chipset específico e elimina todas as funções desses itens e detalha todos os dados que possam ser anexados a uma determinada linha de ônibus em um computador ou dispositivo incorporado.
Os discos rígidos são um bom exemplo de uma solução de armazenamento que, por si só, é um dispositivo incorporado, que também possui um BIOS e uma forma de firmware em um chip.
Essencialmente, todo o firmware é um conjunto de instruções que outro processador faz para obter a funcionalidade do referido dispositivo. É um software carregado em um dispositivo físico, ao perder energia, ele estará presente quando o dispositivo recuperar a energia.
Tecnicamente, você pode usar qualquer linguagem de programação ou de script para criar arquivos binários. Você só precisa saber como o processador que você irá direcionar funciona, os códigos operacionais reais, o registro interno (sem falar no que eles servem), para aprender sistemas de números binários e hexadecimais e como criar um assembler que pode salvar seu código na linguagem assembly. Após a conclusão, você pode executar outro programa para convertê-lo em binário e salvá-lo como um arquivo .bin ou .hex.
Se você quiser saber como o Ada, C, C ++, D e outras linguagens de programação convertem seus "tokens", que são o código nativo que é dividido em pseudo-códigos op em linguagem de máquina. Existem vários livros que eu recomendo que você leia, alguns são bastante elementares e estão centrados em processadores muito específicos, mas é bom aprender sobre isso. Por enquanto, darei a você um livro, porque não quero afogar você ou qualquer outra pessoa que estiver lendo isso em informações.
- Crafting A Compiler with 'C' de Charles N. Fischer e Richard J. LeBlanc, Jr.
- Visite este site, ele é baseado no chipset x86 encontrado no IBM PC;
http://www.laynetworks.com/assembly%20tutorials.htm
Essa é a introdução à programação em linguagem assembly em PCs desde o início. Ele fala sobre como lidar com interrupções (interrupções de hardware e software) e muitos outros tópicos, explica mais detalhadamente o que um BIOS realmente faz e como trabalhar com ele.
Diferente da linguagem assembly e da linguagem de máquina, você pode se dar muito bem em Ada, C, C ++, D, se não souber suas especificações de hardware. Em linguagem assembly e de máquina, se você não sabe o que está fazendo, algo ruim acontecerá ou o código não funcionará. Eu prefiro o último caso, não trabalhando contra algo ruim.
Nota: Sobre a resposta acima, sobre RAM flash, não existe, existem ROMs flash, mas não RAMs flash. As ROMs flash possuem o firmware, as RAMs suportadas por bateria ou capacitor ou outra ROM flash que contém parâmetros para as opções do BIOS que você definiu.
Existe um código no firmware sobre como armazenar ou limpar a memória de dados (versus a própria memória / firmware do programa), se for uma ROM flash ou um chip de RAM. Nos PCs, se a senha do BIOS for distorcida ou você não se lembrar dela (ou alguém estiver mexendo com você), você pode abrir o gabinete e encontrar os dois pinos chamados "CMOS CLR / CMOS CLEAR / BIOS RESET / BIOS RST", colocar um curto-circuito nesses dois pinos também limpa a memória; tudo o que você precisa fazer depois é pressionar o botão de reset, quando os dois pinos ainda estão em curto. Isso limpa a senha e permite acesso total ao BIOS do seu PC (supondo que você tenha um computador mais novo a partir dos anos 90).
Nos novos PCs, você tem memória flash para o firmware e SRAM com bateria (não precisa ser constantemente atualizado como chips DRAM, é baseado em uma tecnologia mais antiga).