Bom livro para iniciantes no ARM [fechado]

26

Estou procurando um bom livro para iniciantes para microcontroladores ARM. Deve abranger a arquitetura da CPU e a sequência de inicialização e, idealmente, também assembler, C e periféricos.

Eu tenho um livro como este para AVRs e parece haver várias boas opções para os chips Atmel. O cenário do ARM é mais complexo com vários fornecedores e várias classes de chips. Uma olhada na Amazon não revelou um favorito claro. Gostaria de receber algumas recomendações.

kwo
fonte
Qual é o seu livro para AVRs? Estou curioso. Além disso, tenho um pacote de curso da minha universidade para os braços, mas eu tenho medo que nunca verá publicação ...
Kevin Vermeer
11
@ kevin-vermeer É um livro em alemão: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie, escrito por um professor aposentado. Ela aborda todos os tópicos que mencionei na minha pergunta, incluindo algumas coisas interessantes, como contar as instruções do assembler para determinar quanto tempo um loop precisará por iteração.
KWO
Acho que preciso aprender alemão ...
Kevin Vermeer
Isso parece uma pena interessante do livro. Não sei muito bem o alemão para poder lê-lo e entendê-lo.
Dean
@ kwo Acho que não há esperança de obter uma versão traduzida, certo?
precisa saber é o seguinte

Respostas:

3

Sugiro que você vá ao centro de informações da ARM. É um bom começo para mim. Muitas informações são fornecidas mesmo quando você está migrando de um MCU para o ARM. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0211a/index.html Além disso, o site ATMEL em seus chips ARM será muito bom. Boas documentações e muitas notas de aplicação. Muito bem sucedida.

Paul A.
fonte
Obrigado. Existem alguns livros recomendados no site também.
KWO
13

Procure o manual ARM ARM, ARM Architectural Reference. Abrange o processo de inicialização, arquitetura, montagem (ARM, thumb e thumb2), tudo. O ARM ARM é genérico; para o núcleo específico em que você está interessado, também haverá um TRM, Manual de Referência Técnica. Todos esses documentos estão disponíveis gratuitamente no site da ARM. O TRM entrará em detalhes específicos desse núcleo, principalmente se você quiser usar um dos microcontroladores mais recentes baseados em Cortex-M3, a sequência de inicialização ou digamos que a tabela de exceção seja diferente do ARM tradicional e você precise do TRM para o Cortex-M3 para encontrar as informações.

se você acabar com um braço com um cache ou mmu, também poderá precisar obter o TRM para isso no site da ARM. Você precisa conhecer o núcleo específico incorporado ao chip de fornecedores específicos, por exemplo, o PL310 r2p0 pode / pode ser diferente do r3p0. O fornecedor deve ter essas informações e pode fornecer links para os documentos do braço, ou talvez diretamente, normalmente eles não incorporam os documentos do braço em sua própria documentação. Eu acho que a ARM prefere assim.

No que diz respeito a C, é apenas C, nada de especial, o ARM é suportado pelos compiladores convencionais, gcc, llvm, Keil (agora propriedade da ARM), IAR, green hills, etc. A Microsoft ainda tem / teve um (evitaria embora). Nada de especial para o ARM, mas você precisa conhecer as nuances para o compilador específico e seus links. Atualmente, o Code Sourcery é o caminho a seguir para um compilador ARM baseado em gcc pronto para usar, a versão LITE é gratuita para baixar e usar, e há versões pagas se você quiser suporte (mais suporte gratuito para braço gcc no google.com do que você tem tempo para ler). Antes do código fonte, o emdebian era um lugar para ir, para algumas coisas, o yagarto, o devkitarm e o winarm todos tinham / têm pronto para usar soluções (para embutidos e não necessariamente linux, Code Sourcery ou emdebian, se você deseja compilar o linux).

Eu tenho alguns blogs que não são realmente blogs, mas lugares para colocar alguns exemplos de programas e informações sobre como criar alguns microcontroladores baseados em ARM. Alguns como C, os blogs mais antigos mostrados como criar seu próprio compilador cruzado baseado em gcc. Eu também posso ter informações sobre o llvm (o thumbulator possui alguns exemplos, mas não documentados); o llvm pode ser usado como um compilador cruzado para várias plataformas, você não precisa construí-lo para um destino como o gcc. E a geração de código do llvm alcançou o gcc 4.x (o gcc 4.x não é necessariamente melhor que o gcc 3.x e nem o gcc ou o llvm são tão bons quanto outros tipos de pagamento caro para aqueles como os próprios compiladores do ARM).

http://stm32stuff.blogspot.com/

A partir daí, você pode clicar no meu perfil e encontrar informações semelhantes para lpc, lmi (luminary micro, the stellaris parts, agora de ti) sam7. Eu não sou tão fã da família lpc, mbed2 está bem além dos dolorosos leds azuis. No momento, há uma placa baseada em US $ 12 stm32, alguma descoberta algo, pronta para ser usada imediatamente. O coridium possui uma placa que corresponde à pegada do arduino, assim como o bordo, pode obter uma ou ambas na sparkfun (muitos brindes na sparkfun). Se você está procurando algo mais poderoso, o beagleboard foi doloroso pela falta de interfaces, a versão chinesa pelo mesmo preço é / foi melhor (apareceu em uma semana ou duas, mas nenhuma informação de rastreamento de qualquer tipo), tem ethernet e um porta serial não parafusada. Eu gosto do Hawkboard, mas acho que eles não seguiram o guia de design e podem ter problemas com o omap. Gostei do openrd do pessoal da computação de plug, mas odiava a versão do plug. O openrd possui um conector SATA de energia e dados na placa; basta conectar um disco rígido, outras placas nesta classe vão forçar você a usar algo baseado em flash (leia-se: muito lento). de qualquer maneira, os núcleos maravilhosos estão circulando em torno dos mapas o tempo.

ou experimente meu simulador de conjunto de instruções para polegar (github) gratuitamente, mas limitado ao polegar, sem braço (você pode levar seu código para as placas stm32, como a de US $ 12). o armulator que está em gdb e em outros lugares provavelmente é mais doloroso de usar, mas suporta braço e polegar, e o qemu é fácil de usar se você não tiver interesse em ver o que seu código está fazendo além da saída da porta serial. qemu suporta braço, polegar e polegar2, acho que uma ou duas placas stellaris são modeladas lá.

Se você já conhece o AVR assembler, que não é tão bom como um conjunto de instruções (melhor que alguns, pior que outros), não deve ter nenhum problema com o ARM ou o polegar, um pouco mais limpo, um pouco mais simples. Da mesma forma, se você incorporou C (fora de uma caixa de areia) ao AVR, o ARM será o mesmo ou mais fácil. Você pode ir com o mbed ou o bordo, onde eles têm caixas de areia que facilitam o início e, se você quiser se aventurar por conta própria, pode fazê-lo sem muitos problemas. o mbed você simplesmente copia o .bin para a unidade flash virtual, o bordo que você usa o carregador ou o dfu-util ou algo do tipo que não me lembro.

old_timer
fonte
Resposta fantástica.
NickHalden
3

Bons livros sobre ARM são:

"ARM SOC Architecure" de Steve Furber

"ARM System Developers Guide" de Andrew Sloss, Dominic Symes e Chris Wright

"ARM Architecture Reference Manual" por ARM

O último está disponível gratuitamente no site da ARM .

Sloss, Symes e Wright são excelentes se você quiser se afastar das árvores para ver a floresta, especialmente se você tem sistemas embarcados para fazer.

Furber é um dos arquitetos originais do ARM e faz um excelente trabalho conduzindo você pela lógica do design do ARM e como os núcleos do processador ARM funcionam em geral.

É claro que tudo o que foi exposto acima é apenas uma recomendação baseada em minha opinião pessoal / subjetiva e não deve ser vista como um plug para um determinado produto ou autor.

darbehdar
fonte
Formatar a lista de livros como uma lista seria útil, incluindo também links para esses livros.
Trygve Laugstøl