O tamanho da flash do DVP3040Eu pesquisei o assunto, mas a melhor informação que obtive (praticamente a única), foi
este post de Lisa_tv.
First about flash size, U can read it in the firmware, 8032 part
block 0:
first 3 bytes is a jump to Startup1 label: (example from 6700 fw)
ROM:0000 start:
ROM:0000 02 22 7B ljmp Startup1
At this label:
ROM:227B Startup1:
ROM:227B mov DPTR, #0xF86C
ROM:227E movx A, @DPTR
ROM:227F anl A, #0xF0
This 0xF0 ends with 4 zeroes, so number of address bits for flash =
4 + 16 = 20 bits -> 1MB flash
In 6600 fw:
ROM:22B2 Startup1:
ROM:22B2 mov DPTR, #0xF86C
ROM:22B5 movx A, @DPTR
ROM:22B6 anl A, #0xE0
this is a 0xE0, has 5 zeroes at the end, flash address is 5 + 15 =
21 bits -> 2 MB flash
I think this is true for all mt1389 firmwares.
Mas isso só serviu para tornar a coisa ainda mais confusa, porque o ponto indicado no firmware do DVP3040 é este:
B0:2294 B0_Start_Handler: ; CODE XREF: FLASH_Reset:B0_Startj
B0:2294 90 F8 6C mov DPTR, #BIM_IODOM
B0:2297 E0 movx A, @DPTR
B0:2298 54 E0 anl A, #0xE0
B0:229A F0 movx @DPTR, A
B0:229B 90 F8 69 mov DPTR, #BIM_IOENM
B0:229E E0 movx A, @DPTR
B0:229F 44 1F orl A, #0x1F
B0:22A1 F0 movx @DPTR, A
B0:22A2 90 F8 66 mov DPTR, #BIM_PCTL1 ; Pin Control 1 Register
B0:22A5 E0 movx A, @DPTR
B0:22A6 44 30 orl A, #0x30
B0:22A8 F0 movx @DPTR, A
B0:22A9 C2 90 clr P1.0 ; Port 1
B0:22AB C2 91 clr P1.1 ; Port 1
B0:22AD C2 92 clr P1.2 ; Port 1
B0:22AF 90 F8 66 mov DPTR, #BIM_PCTL1 ; Pin Control 1 Register
B0:22B2 E0 movx A, @DPTR
B0:22B3 54 F8 anl A, #0xF8
B0:22B5 F0 movx @DPTR, A
B0:22B6 74 24 mov A, #0x24 ; '$'
B0:22B8 90 F8 25 mov DPTR, #AUD_IECCFG ; IEC958 Configuration
B0:22BB F0 movx @DPTR, A
B0:22BC 78 7F mov R0, #0x7F ; ''
B0:22BE E4 clr A
B0:22BF
B0:22BF B0_22BF: ; CODE XREF: FLASH_Reset-CD40j
B0:22BF F6 mov @R0, A
B0:22C0 D8 FD djnz R0, B0_22BF
B0:22C2 75 A0 F9 mov P2, #0xF9 ; '¨' ; Port 2
B0:22C5 75 81 AE mov SP, #WMKEY ; Stack Pointer
B0:22C8 02 23 06 ljmp B0_2306
B0:22C8 ; END OF FUNCTION CHUNK FOR FLASH_Reset
E0 = flash de 2MB
já no firmware do DVP5140...
B0:2294 B0_Start_Handler: ; CODE XREF: FLASH_Reset:B0_Startj
B0:2294 90 F8 6C mov DPTR, #BIM_IODOM
B0:2297 E0 movx A, @DPTR
B0:2298 54 F0 anl A, #0xF0
B0:229A F0 movx @DPTR, A
B0:229B 90 F8 69 mov DPTR, #BIM_IOENM
B0:229E E0 movx A, @DPTR
B0:229F 44 0F orl A, #0xF
B0:22A1 F0 movx @DPTR, A
B0:22A2 90 F8 66 mov DPTR, #BIM_PCTL1 ; Pin Control 1 Register
B0:22A5 E0 movx A, @DPTR
B0:22A6 44 10 orl A, #0x10
B0:22A8 54 DF anl A, #0xDF
B0:22AA F0 movx @DPTR, A
B0:22AB C2 90 clr T2 ; T2
B0:22AD C2 91 clr P1.A17 ; A17
B0:22AF C2 92 clr P1.A18 ; A18
B0:22B1 90 F8 66 mov DPTR, #BIM_PCTL1 ; Pin Control 1 Register
B0:22B4 E0 movx A, @DPTR
B0:22B5 54 F8 anl A, #0xF8
B0:22B7 F0 movx @DPTR, A
B0:22B8 74 24 mov A, #0x24 ; '$'
B0:22BA 90 F8 25 mov DPTR, #AUD_IECCFG ; IEC958 Configuration
B0:22BD F0 movx @DPTR, A
B0:22BE 78 7F mov R0, #0x7F ; ''
B0:22C0 E4 clr A
B0:22C0
B0:22C1
B0:22C1 B0_22C1: ; CODE XREF: FLASH_Reset-CD3Ej
B0:22C1 F6 mov @R0, A
B0:22C2 D8 FD djnz R0, B0_22C1
B0:22C2
B0:22C4 75 A0 F9 mov P2, #0xF9 ; '¨' ; Port 2
B0:22C7 75 81 AE mov SP, #WMKEY ; Stack Pointer
B0:22CA 02 23 08 ljmp B0_2308
B0:22CA
B0:22CA ; END OF FUNCTION CHUNK FOR FLASH_Reset
F0 = Flash de 1MB
E é bom lembrar que mtkRemaker diz que
ambos são de aparelhos com 1MB. Logo o mtkRemaker olha em outro lugar.