Booboo fala sobre a exeução de código no Gemei A330.
O CC1800 é de 16KB SRAM localizado no 0x0010000, e também mapeadas em 0x00000000 se determinado bit de um registro especial está definido. Na altura do arranque, este bit é clara e ROM é mapeado em 0x00000000.
O A330 pode ser feito para arrancar a partir do cartão SD, pressionando para baixo durante a alimentação. Neste modo, o código de ROM irá carregar em 17/02 setores da SRAM no endereço 0x00100000 e executar.
O A330 pode ser feito para arrancar a partir do cartão SD, pressionando para baixo durante a alimentação. Neste modo, o código de ROM irá carregar em 17/02 setores da SRAM no endereço 0x00100000 e executar.
O código na rom.bin então, por sua vez executa o código de inicialização USB, e a partir de então você pode usar o usbtool acima para carregar e executar o seu código através de USB. Muito mais conveniente que se deslocam em torno de um cartão SD.
Note, porém, que, desde o código de inicialização USB não é executado a partir da ROM, mas de SRAM, a SRAM mesmo será fazer o upload para (pelo menos até o controlador de memória SDRAM foi inicializado), com algumas restrições: o código de inicialização USB de código em rom.bin é carregado no 0x00100000, e primeira coisa que ele parece fazer é mover-se para 0x00102000, isto é, para o segundo semestre do 16K de SRAM disponível. Isto significa que você pode usar somente a primeira 8KB para o seu código e da pilha.
Note, porém, que, desde o código de inicialização USB não é executado a partir da ROM, mas de SRAM, a SRAM mesmo será fazer o upload para (pelo menos até o controlador de memória SDRAM foi inicializado), com algumas restrições: o código de inicialização USB de código em rom.bin é carregado no 0x00100000, e primeira coisa que ele parece fazer é mover-se para 0x00102000, isto é, para o segundo semestre do 16K de SRAM disponível. Isto significa que você pode usar somente a primeira 8KB para o seu código e da pilha.
0 comentários:
Postar um comentário