|
|
  |
не загружается программа |
|
|
|
Dec 8 2007, 10:58
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Код $NOMOD51
; Standard SFR Symbols ACC DATA 0E0H B DATA 0F0H SP DATA 81H DPL DATA 82H DPH DATA 83H
NAME ?C_STARTUP
?C_C51STARTUP SEGMENT CODE ?STACK SEGMENT IDATA
RSEG ?STACK DS 1
EXTRN CODE (?C_START) PUBLIC ?C_STARTUP
CSEG AT 0 ?C_STARTUP: LJMP STARTUP1
RSEG ?C_C51STARTUP
STARTUP1: MOV 0x8E, 0x10 ; [b]вот если убираю эту строчку то программа начинает ; запускаться но размер XDATA уменьшается до 256 вместо ;1792[/b]
IF IDATALEN <> 0 MOV R0,#IDATALEN - 1 CLR A IDATALOOP: MOV @R0,A DJNZ R0,IDATALOOP ENDIF
IF XDATALEN <> 0 MOV DPTR,#XDATASTART MOV R7,#LOW (XDATALEN) IF (LOW (XDATALEN)) <> 0 MOV R6,#(HIGH (XDATALEN)) +1 ELSE MOV R6,#HIGH (XDATALEN) ENDIF CLR A XDATALOOP: MOVX @DPTR,A INC DPTR DJNZ R7,XDATALOOP DJNZ R6,XDATALOOP ENDIF
IF PPAGEENABLE <> 0 MOV PPAGE_SFR,#PPAGE ENDIF
IF PDATALEN <> 0 MOV R0,#LOW (PDATASTART) MOV R7,#LOW (PDATALEN) CLR A PDATALOOP: MOVX @R0,A INC R0 DJNZ R7,PDATALOOP ENDIF
IF IBPSTACK <> 0 EXTRN DATA (?C_IBP)
MOV ?C_IBP,#LOW IBPSTACKTOP ENDIF
IF XBPSTACK <> 0 EXTRN DATA (?C_XBP)
MOV ?C_XBP,#HIGH XBPSTACKTOP MOV ?C_XBP+1,#LOW XBPSTACKTOP ENDIF
IF PBPSTACK <> 0 EXTRN DATA (?C_PBP) MOV ?C_PBP,#LOW PBPSTACKTOP ENDIF
MOV SP,#?STACK-1
; This code is required if you use L51_BANK.A51 with Banking Mode 4 ;<h> Code Banking ; <q> Select Bank 0 for L51_BANK.A51 Mode 4 #if 0 ; <i> Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4. EXTRN CODE (?B_SWITCH0) CALL ?B_SWITCH0; init bank mechanism to code bank 0 #endif ;</h> LJMP ?C_START
END
Сообщение отредактировал sergey sva - Dec 8 2007, 11:00
|
|
|
|
|
Dec 8 2007, 19:20
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(sergey sva @ Dec 8 2007, 13:58)  Код $NOMOD51
; Standard SFR Symbols ACC DATA 0E0H B DATA 0F0H SP DATA 81H DPL DATA 82H DPH DATA 83H
NAME ?C_STARTUP ?C_C51STARTUP SEGMENT CODE ?STACK SEGMENT IDATA
RSEG ?STACK DS 1
EXTRN CODE (?C_START) PUBLIC ?C_STARTUP
CSEG AT 0 ?C_STARTUP: LJMP STARTUP1
RSEG ?C_C51STARTUP STARTUP1: MOV 0x8E, 0x10 ; [b]вот если убираю эту строчку то программа начинает ; запускаться но размер XDATA уменьшается до 256 вместо ;1792[/b] IF IDATALEN <> 0 MOV R0,#IDATALEN - 1 CLR A IDATALOOP: MOV @R0,A DJNZ R0,IDATALOOP ENDIF
IF XDATALEN <> 0 MOV DPTR,#XDATASTART MOV R7,#LOW (XDATALEN) IF (LOW (XDATALEN)) <> 0 MOV R6,#(HIGH (XDATALEN)) +1 ELSE MOV R6,#HIGH (XDATALEN) ENDIF CLR A XDATALOOP: MOVX @DPTR,A INC DPTR DJNZ R7,XDATALOOP DJNZ R6,XDATALOOP ENDIF
IF PPAGEENABLE <> 0 MOV PPAGE_SFR,#PPAGE ENDIF
IF PDATALEN <> 0 MOV R0,#LOW (PDATASTART) MOV R7,#LOW (PDATALEN) CLR A PDATALOOP: MOVX @R0,A INC R0 DJNZ R7,PDATALOOP ENDIF
IF IBPSTACK <> 0 EXTRN DATA (?C_IBP)
MOV ?C_IBP,#LOW IBPSTACKTOP ENDIF
IF XBPSTACK <> 0 EXTRN DATA (?C_XBP)
MOV ?C_XBP,#HIGH XBPSTACKTOP MOV ?C_XBP+1,#LOW XBPSTACKTOP ENDIF
IF PBPSTACK <> 0 EXTRN DATA (?C_PBP) MOV ?C_PBP,#LOW PBPSTACKTOP ENDIF
MOV SP,#?STACK-1
; This code is required if you use L51_BANK.A51 with Banking Mode 4 ;<h> Code Banking ; <q> Select Bank 0 for L51_BANK.A51 Mode 4 #if 0 ; <i> Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4. EXTRN CODE (?B_SWITCH0) CALL ?B_SWITCH0; init bank mechanism to code bank 0 #endif ;</h> LJMP ?C_START
END не пойму что я делаю не так, пробовал и через аккумулятор записывать в адрес 0x8E значение 0x10, не чего не помогает . MOV 0x8E, 0x10 если эу строчку убрать все ок, может нужно как то подругому записывать в регистр auxr число 0x10.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|