реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> не загружается программа
sergey sva
сообщение Dec 7 2007, 14:51
Сообщение #1


Гуру
******

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



Здравствуйте.
Помогите разобраться с такой проблемой, контроллер 89с51ed2 после включения питания не запускается программа. подключение ног контроллера такое : RST кондер к + и резистор к минусу. EA ALE_PROG PSEN к + . для программирования устанавливаю на PSE 0 (на плате джампер) запускается бут лоадер,
если из него запустить программу (кнопка flip start aplication) то все работает, а если снять джампер то есть на psen + . то программа не стартует. пробовал устанавливать бит BLGB и снимать, результат прежний.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Dec 7 2007, 16:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



BLJB должен быть незапрограммирован (BLJB=1), т.е. во Flip галки стоять не должно. Но, помниться, что в одной из партий Т89С51АС2 от Atmel W&M этот бит работал строго наоборот. Надеюсь, что когда Вы снимали галку с BLJB, то после этого нажимали кнопку "Set device special bytes". Можно еще посоветовать установить BSB в ноль (не забудьте нажать кнопку "Set..."). Кстати, результат установки Special Bytes можно (и нужно) проверить кнопкой "Reads device special bytes".
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 7 2007, 17:02
Сообщение #3


Гуру
******

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



Цитата(Палыч @ Dec 7 2007, 19:43) *
BLJB должен быть незапрограммирован (BLJB=1), т.е. во Flip галки стоять не должно. Но, помниться, что в одной из партий Т89С51АС2 от Atmel W&M этот бит работал строго наоборот. Надеюсь, что когда Вы снимали галку с BLJB, то после этого нажимали кнопку "Set device special bytes". Можно еще посоветовать установить BSB в ноль (не забудьте нажать кнопку "Set..."). Кстати, результат установки Special Bytes можно (и нужно) проверить кнопкой "Reads device special bytes".


а за что отвечают биты BSB EB SBV? в моей версии флип нет такой кнопки.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 8 2007, 10:58
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 8 2007, 19:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 9 2007, 15:38
Сообщение #6


Гуру
******

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



есть такая мысль что startup фаил выполняется не первым,
может как то можно выставить приоритет на выполнение.?
То есть получается компилятор создает такой код что сначала, заполняется буфер Xdata, а потом происходит настройка (размера xdata) регистра auxr. но если запускть,из boon loader все работает почемуто.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 9 2007, 18:13
Сообщение #7


Гуру
******

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



я с асмом мало работал поэтому такой вопрос, команда MOV 0x8E , 0x10 копирует значение 0x10 в регистр
по адресу 0x8E, или из адреса 0x10 в адресу 0x8E ?

Сообщение отредактировал sergey sva - Dec 9 2007, 18:13
Go to the top of the page
 
+Quote Post
DASM
сообщение Dec 9 2007, 18:22
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Она записывает в SFR (AUXR0) по адресу 0x8E значение из памяти по адресу 0x10, то есть скорее всего мусор.
Кооректно 0x10 константу пишем так - - mov AUXR0, #10
(ye или если в хидере нет этого регистра) то mov 0x8E, #0x10
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 9 2007, 18:42
Сообщение #9


Гуру
******

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



Цитата(DASM @ Dec 9 2007, 21:22) *
Она записывает в SFR (AUXR0) по адресу 0x8E значение из памяти по адресу 0x10, то есть скорее всего мусор.
Кооректно 0x10 константу пишем так - - mov AUXR0, #10
(ye или если в хидере нет этого регистра) то mov 0x8E, #0x10

вот блин я опростоволосился, все выходные провозился и только сейчас доперло что записывал не значение 0x10 в AUXR ,а значение из адреса 0x10 в AUXR .
сделал так и все пошло Mov 0x8E , #0x10. благодарю DASM за помощь smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 11:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01582 секунд с 7
ELECTRONIX ©2004-2016