Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 09.12.2007, 00:47  
sergey_as
Прохожий
 
Регистрация: 08.12.2007
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergey_as на пути к лучшему
По умолчанию нужен совет специалиста по MSC51 at89c51ed2

добрый ночи.

Такоя проблема есть контроллер at89c51ed2, размер встроенной памяти данных 1792, но для использования такого обьема нужно в регистр AUXR записать значение 0x10 ( размер по умолчанию 789). комп keil, Эту настройку произвожу в файле Startup.a51 в строчке Startup1: вписываю MOV 0x8E , 0x10. компилю прогу и загружаю её в контроллер (использую Flip),жму кнопу start application прога запускается и работает , но если снять перемычку , то есть усрановить выс уровень на ноге
Psen и перезагрузить контроллер то программа не стартует. если установить на psen ноль и перезагрузить контроллер запустится бот заг , далее подключится с помощью Flip и нажать кнопку start application программа запустится. программа запускается только через бот загрузчик. Но если убрать строчку MOV 0x8E , 0x10 все работает тлька размер памяти по умолчанию 789.

Код:
; 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   // вот               
эта строчка, настройки размера памяти Xdata 

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
уже все перепробовал Bljb enboot
bsb =00 eb =FF sbv =FC В чем дело ума не приложу?
Реклама:
sergey_as вне форума  
Непрочитано 09.12.2007, 19:34  
sergey_as
Прохожий
 
Регистрация: 08.12.2007
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergey_as на пути к лучшему
По умолчанию

есть такая мысль что startup фаил выполняется не первым,
может как то можно выставить приоритет на выполнение.?
То есть получается компилятор создает такой код что сначала, заполняется буфер Xdata, а потом происходит настройка (размера xdata) регистра auxr. но если запускть,из boon loader все работает почемуто.
sergey_as вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен совет. sciff Отвлекитесь, эмбеддеры! 11 20.06.2009 12:59
Нужен совет! yushkin Делимся опытом 20 05.01.2009 01:58
Программирование на C++. Нужен совет. chipen Микроконтроллеры, АЦП, память и т.д 24 21.02.2008 08:07
нужен совет прошаренных ndreich Автоматика и аппаратура связи 2 29.11.2007 01:14


Часовой пояс GMT +4, время: 17:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot