Bo jakoś mikrokontroler nie chce mi pracować, ustawiam sobie bity wymuszające pracę w trybie 22bitowego adresowania, oraz wewnętrzną pamięć jako pamięć danych w najwyższym z danych zakresów, z tego co pamiętam to początek tej pamięci ustawiam na 0x400000 i mikrokontroler odmawia posłuszeństwa. Natomiast bardzo dobrze pracuje ze standardowym stosem.
Dla ciekawych trochę kodu:
Kod: Zaznacz cały
.area HOME (CODE)
__interrupt_vect:
sjmp __reset_vect;
.ds 1
ljmp _KeyInt
.ds 4
ljmp _Timer0Int
.ds 4
ljmp _Touch_Pad
.ds 4
__reset_vect:
mov ta, #0xAA ;Enable access to ACON
mov ta, #0x55
orl acon, #0x06 ;24 bit mode, stos 10 bitowy
ljmp sanity_check ;Sanity check: Make sure 24 bit mode is on
sanity_check:
mov ta, #0xAA ;Enable access to MCON
mov ta, #0x55
mov mcon, #0xB0 ;Relocate I_DRAM to 400000 - 400FFF and CAN 401000 - 4011FF
mov ta, #0xAA
mov ta, #0x55
mov p4cnt, #0xB5 ;uruchom na linie adresowe A16 - A18
mov ta, #0xAA
mov ta, #0x55
mov p5cnt, #0x07 ;uruchom na PCE0; PCE1; PCE2; PCE3; linie adresowe
ljmp __sdcc_gsinit_startup