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.