Br-Gogo: Construindo Firmware – I

Tanto o bootloader, quanto o firmware, são softwares gravados na memória do PIC, mas cada um ocupando regiões distintas de endereços.

No caso da Gogo Br, o bootloader ocupa o espaço entre 0000 à 154a, já o firmware esta alocado entre 1568 à 53c6. Estes dados são obtidos ao analisarmos os arquivos hex que devem ser gravados. Mas como determinamos estes endereços durante a programação?

Temos basicamente três compiladores para a famíilia 18F de PIC´s, o Ccs, Sdcc e C18. O primeiro destes é pago, o outro é livre e pode ser usado no Windows, Linux, Mac, etc. Já o último destes, tem sua versão gratuita para estudantes.

Em cada compilador há uma forma de reservar os endereços a serem usados, no Sdcc, basta inserirmos parâmetros na linha de comando, já no Ccs, utiliza-se “#org x, y {}” e “#build(reset=x, interrupt=y)”.

Para o C18, é um pouco mais complexo, porém, possível ser feito. O cuidado a ser tomado é nos arquivos de biblioteca que o C18 traz, já que alguns nativamente não permitem a reserva de endereços, mesmo com parâmetros específicos, então será preciso alterá-los e recompila-los.

Anúncios