Ir ao conteúdo

Posts recomendados

Postado

tenho uma maquina de cartão (minizinhaNFC D175-BT) da PagBank que esta sem uso, e queria tentar trocar o sistema (fazer do 0).
ela esta em estado "POS TEMPERED" mas acho que da pra regravar a BIOS.
nas configurações achei:


BIOS: 72


e

 

CPU : Cortex-M3

FLASH: 8MB

RAM : 512KB

FS FREE: 2,308KB

MSR :[N] MODEM:[N]

 

na placa dela tem 2 chips que acho que seja a BIOS, eles tem:

XMC

QH32NHIG

PPA35500 02

2020S
 

pesquisando achei que o Cortex-M3 é ARM e queria saber como eu modifico o codigo dele "e se vai funcionar".
não entendo de asm arm mas levando em conta que eu compile ele para binarios e colocasse na BIOS via um regravador ele iria executar as funções ao iniciar?
e de qualquer forma como eu posso fazer para programar em asm arm? "eu uso o nasm normalmente"
 

[BITS 16]
[ORG 0x7C00]

msg db "hello world", 0

call print_string
call END

print_string:
  mov si, msg
  mov ah, 0Eh
  mov al, [si]
  print:
    int 10h
    inc si
    mov al, [si]
    cmp al, 0
    jne print
  mov al, 0Ah
  int 10h
  mov al, 0Dh
  int 10h
  ret

END:
    mov ah, 00h
    int 16h
    mov ax, 0040h
    mov ds, ax
    mov ax, 1234h
    mov [ds:0072h], ax
    jmp 0FFFFh:0000h

times 510 - ($-$$) db 0
dw 0xAA55

este codigo eu compilo via nasm (nasm -f bin src/kernel.asm -o bin/kernel.bin) para criar um arquivo de kernel, mas isso é apenas para asm x86_64 e roda como um sistema operacional. mas eu queria rodar o sistema diretamente na BIOS e não sei como compilar para ARM e muito menos programar ARM asm. se alguém poder me dar um exemplo de como eu conseguiria fazer a maquina dar um hello world na tela me ajude por favor

(marqueme nas respostas por favor)

Postado

@b.0463 Pra começar acho difícil você conseguir modificar alguma coisa np chip flash e a maquina ainda funcionar, como essas maquinhas lidam com dinheiro certamente ha alguma medida pra evitar ou ao menos dificultar que qualquer um troque o chip de flash e rode um código malicioso nela, por exemplo, talvez tenha algum hash md5 da flash de fabrica gravado na memória ROM do micro controlador, se a flash for modificada mesmo um único bit, o hash md5 não bate e ela da essa mensagem de POS TEMPERED...

 

Na parte do assembler eu também vou ficar devendo, mas na parte do hardware, o código que você usou acima usa chamadas de sistema, ele basicamente chama uma rotina do sistema operacional pra mostrar uma mensagem na tela, no caso de você querer rodar teu código direto na maquina e antes do sistema operacional, teu  programa precisa acessar o hardware diretamente.

 

Ai um simples hello word complica, envolve pesquisar o código do display pra ver no datasheet dele qual a interface dele, e tentar descobrir em quais pinos do micro controlador ele esta conectado, pra displays monocromáticos com interface paralela simples, geralmente envolve mandar os binários do caractere ASCII pelas portas do micro controlador para os pinos do display, mas tem displays que usam interface SPI ou I2C que são seriais são mais complicados de controlar no assembly.

 

Não é à toa que a turma do Arduino prefere sempre que possível codificar programas em C, já tendo a disposição varias libraries para cada tipo de display, memória flash sem precisar fazer a roda pra construir o carro....

  • 3 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!