Você gostou do post,
e
quer mais?
Me paga um café! :) PIX consultoria@carlosdelfino.eti.br
Curta o post no final da página, use o Disqus, compartilhe em sua rede social. Isso me ajuda e motiva
Obrigado.

O QEMU é um emulador de que nos permite executar códigos desenvolvidos para determinados processadores em outros, por exemplo tendo um código desenvolvido para ARM posso executa-lo em uma maquina i386, porém em muitos casos é preciso o respectivo sistema operacional. Neste estudo estarei propondo estudos com QEMU para uso da arquitetura Cortex-M na modalidade BareMetal e no máximo com RTOS como FreeRTOS

Pré-revisado em 15 de Janeiro de 2018!

Qual o melhor lugar para começar a estudar o QEMU

Comece seus estudos lendo todo este artigo, se souber inglês ou tiverfácil entendimento de textos traduzidos livremente pelo tratutor do google, use o link para o Documentation/GettingStartedDevelopers

Se leu o link acima, deve ter percebido que antes de começar é preciso ter um profundo conhecimento do que já foi desenvolvido, portanto não faça nada antes de ter absoluta certeza que conhece o código do QEMU e principalmente domina o que pretende mudar. Leia detalhamente todo o código que pretende intervir e se certifique que não há algo similar ou outra pessoa já discutindo tal mudança.

Clonando o repositório

Eu estou mantendo 3 clones referentes ao QEMU em meu workspace, assim posso estudar o que está acontecendo em cada um deles, e sugiro fazer o mesmo, portanto segue os links:

  • git://git.qemu-project.org/qemu.git Repositório oficial do QEMU.

  • git://git.linaro.org/people/pmaydell/qemu-arm.git

  • http://git.linaro.org/qemu/qemu-linaro.git

Por onde começar nos código

Bem, antes de começar recomendo que leia o arquivo HACKING que está no raiz do repositório oficinal do QEMU, este arquivo vem algumas orientações que podem contribuir com seu entendimento de porque as coisas são feitas como são e também ir se acostumando com os padrões de códigos.

Leia também o arquivo CODING_STYLE, este arquivo irá lhe apresentar o estilo de codificação adotada, ajudando também a compreender o porques e lhe treinando como deve ser escrito o código do QEMU.

Preparando o GIT para Commits e Patchs

Para que tenha bons resultados na proposta de seus Patchs para o QEMU é preciso que siga algumas orientações. Abaixo irei falar superficialmente de algumas.

Se estiver achando o código confuso, veja isso

Baseado em Getting confused when exploring Qemu source? gcc comes to rescue!

Se a leitura do código está confusa, devido ao excessivo uso de macros e a concatenação de tokens no preprocessador do GCC, veja os códigos gerados em arquivos temporários adicionando a diretiva -save-temps com o GCC. O GCC deverá ter esta opção ativa em sua compilação, caso contrário você terá que recompila-lo.

Verificando os Patch

Esta seção é baseada no link “How to automatically run checkpatch.pl when developing QEMU”, tradução livre do conteúdo.

Para cada patch gerado é importante fazer uma verificação usando o script checkpath.pl que foi adicionado a pouco tempo ao repositorio do QEMU.

Este script pesquisa os patches criados por violações dos padrões de codificação definidos pela equipe do QEMU. Para executar o script automaticamente a cada commiting no repositório git (prática sugerida: faça pequenos ajustes validos sempre e faça logo em seguida um commit), e caso haja alguma violação abortar o processo para ajustes.

$ cd qemu
$ cat >.git/hooks/pre-commit
#!/bin/bash
exec git diff --cached | scripts/checkpatch.pl --no-signoff -q -
^D
$ chmod 755 .git/hooks/pre-commit

Alguém commit que vilar o padrão de codificação como verificado por checkpatch.pl será abortado.

Se vier a encontrar algum falso positivo, use git commit --no-verify para pular o pre-commit. Seja cuidadoso ao usar este recurso.

Alguns Repositórios de código

  • git://git.linaro.org/people/pmaydell/qemu-arm.git ARM Guest - Paul Brook, Peter Maydell
  • http://git.linaro.org/qemu/qemu-linaro.git Linaro QEMU; see https://wiki.linaro.org/WorkingGroups/ToolChain/QEMU
  • git://git.qemu-project.org/qemu.git Original QEMU

Fontes:

Não deixe de me pagar um café, faz um PIX: consultoria@carlosdelfino.eti.br de qualquer valor.


Carlos Delfino

Escrito por:

Desenvolvedor e consultor para projetos com Microcontroladores e Mobile

Google LinkedIn Digg Reddit StumbleUpon

Atualizado em