Alguém conhece algum tutorial de programação de kernel / driver?

12

Estou interessado em usar o RPi para me ensinar programação em nível de hardware. Eu procurei na Internet por alguns tutoriais para RPi, mas tudo o que encontro são tutoriais gerais sobre "como compilar o kernel". Estou mais interessado nos tutoriais reais do tipo "como escrever código do kernel / drivers de dispositivo". Existem tutoriais específicos para RPi ou qualquer tutorial * nix para programação em nível de hardware é suficiente?

Jakub
fonte
Duplicata possível de Existe uma coleção de materiais de ensino?
Jivings
2
@Jivings: O duplicado sugerido não trata de nenhuma das partes da minha pergunta. O Elinux e o CAS não parecem ter nada sobre a programação do kernel RPi, enquanto a programação GPIO mal arranha a superfície dos drivers de gravação. Além disso, não há menção na duplicata sugerida de RPi vs. tutoriais gerais * nix.
Jakub

Respostas:

5

Acho que você não encontrará um recurso melhor do que esse, a menos que conheça alguém pessoalmente.

Desfrutar

PS No caso de o link acabar, o livro chama-se Linux Device Drivers.

NickHalden
fonte
Parece muito bom, eu sempre fui fã da série O'Reilly.
26412 Jakub
Então, acho que a programação do driver no kernel do Linux será transferida facilmente para o Raspbian?
26412 Jakub
Raspbian é basicamente apenas uma distribuição Debian menor compilada com parâmetros especiais específicos para o hardware no Raspberry Pi. Então sim que deveria, embora eu não sou um especialista em ambos programação condutor nem o Raspberry Pi modo de espera Vamos para alguém mais experiente para carrilhão no.
NickHalden
Parece muito desatualizado (Kernel 2.6 e de 2009). Alguma coisa mais atualizada?
Lukas Knuth
2

Além do livro do LDD, você também pode consultar os documentos do curso de treinamento em free-electrons.com . Lá, todos os materiais do curso são de código aberto. Bastante adequado para quem iniciou um pouco a programação do kernel linux ou para quem está procurando um entendimento mais profundo e amplo de tópicos / áreas específicos.

Para começar, você pode procurar pelo menos os dois primeiros cursos:

E não se esqueça do site de referência cruzada do código-fonte lxr em free-electrons.com , onde você pode verificar o código-fonte para várias versões do kernel.

Se você prefere um IDE, especialmente o NetBeans ou o Eclipse, e sabe como executar scripts perl e Makefile, consulte as ferramentas Nbk do meu projeto no github.com . O script permite indexar completamente um projeto de kernel com o kit NetBeans C ++. Ajuda muito a melhorar a experiência para entender melhor as estruturas e relações internas do código fonte. Normalmente, faço uma configuração mínima do kernel, mais o dispositivo específico que estou vendo, faço uma compilação e faço um índice no NetBeans apenas para analisar o código do kernel. Enquanto faz o desenvolvimento real em outro projeto. Esse script é testado diretamente no NetBeans, mas com o Eclipse a idéia seria a mesma (você precisa modificar o script para se adequar ao Eclipse).

minghua
fonte