адрес исполнения программы 1874ВЕ7Т
Модераторы: ea, Alis, pip, gurzzza, _sva_
адрес исполнения программы 1874ВЕ7Т
Здравствуйте!
Подскажите пожалуйста, какой адрес загрузки программы?
Согласно примеру RunLeds не совсем понятно, сначало что-то записываеться в 2000H далее FFки, далее что-то в 2030H, далее FFки, далее что-то 2060H и далее FFки, далее уже c 2080H
Мне необходимо проверить связь с внешней флешкой,поэтому нужно чтобы на шине адреса были AA55 поэтому делаю тестовый hex файл, но файлы во вложении не работают как предполагается
Подскажите пожалуйста, какой адрес загрузки программы?
Согласно примеру RunLeds не совсем понятно, сначало что-то записываеться в 2000H далее FFки, далее что-то в 2030H, далее FFки, далее что-то 2060H и далее FFки, далее уже c 2080H
Мне необходимо проверить связь с внешней флешкой,поэтому нужно чтобы на шине адреса были AA55 поэтому делаю тестовый hex файл, но файлы во вложении не работают как предполагается
Re: адрес исполнения программы 1874ВЕ7Т
Здравствуйте!Подскажите пожалуйста, какой адрес загрузки программы?
1)Первый байт после сброса микроконтроллера, выбираемый из внешней памяти из ячейки с адресом 2018h - байт конфигурации кристалла CCB
Выполнение программы начинается с адреса – 2080h.
Векторы прерываний (см.ТО )
Например, 2000h - INT00 TOVF, адрес вектора прерывания от Таймер 1 или таймер 2
2030h - INT08, Флаги RI и TI модулей UART0 и UART1
Re: адрес исполнения программы 1874ВЕ7Т
Спасибо!, тогда не понятно почему Runkeds начинаеться с адреса 21B0
-
- Сообщения: 220
- Зарегистрирован: 14 дек 2015, 08:21
- Предприятие: АО НИИЭТ
- Откуда: АО НИИЭТ, Воронеж
Re: адрес исполнения программы 1874ВЕ7Т
Доброго времени суток!
В проекте RunLeds с адреса 0x21B0 располагается сама функция main(), а первый адрес, с которого микроконтроллер осуществляет выборку команд - 0x2080. Перед вызовом функции main() выполняется код инициализации переменных (присвоение первоначальных значений), констант, библиотек, стека, кучи (heap) и т.д. Это все характерно для проектов на C.
Re: адрес исполнения программы 1874ВЕ7Т
Спасибо за ответ!
В примере RunLEDs исходя из хекса запись в регистр CCR следующая:
:022018001F2087
Тоесть значение ССR = 1F20
И я не пойму как это возможно, ведь CCR 8-ми разрядный...
В примере RunLEDs исходя из хекса запись в регистр CCR следующая:
:022018001F2087
Тоесть значение ССR = 1F20
И я не пойму как это возможно, ведь CCR 8-ми разрядный...
Re: адрес исполнения программы 1874ВЕ7Т
и не совсем понятно где с коде С-примера происходит запись в этот регистр(прагмы нет)
Также не понятно где стартап.asm и линкер-скрипт
Также не понятно где стартап.asm и линкер-скрипт
Re: адрес исполнения программы 1874ВЕ7Т
ССR = 1FhТоесть значение ССR = 1F20
И я не пойму как это возможно, ведь CCR 8-ми разрядный...
-
- Сообщения: 220
- Зарегистрирован: 14 дек 2015, 08:21
- Предприятие: АО НИИЭТ
- Откуда: АО НИИЭТ, Воронеж
Re: адрес исполнения программы 1874ВЕ7Т
Если в проекте не указывается значение CCB (через #pragma CCB), то будет использовано значение по умолчанию - 0x1F.
Регистр CCR - внутренний регистр микроконтроллера, не имеющий отображения в адресном пространстве. Значение в регистр CCR записывается при первом после сброса чтении одного байта (CCB) внешней памяти по адресу 0x2018.
Отдельный стартап файл и линкер-скрипт по аналогии с микроконтроллерами арм в CodeMaster-96 не используется. Для распределения кода в памяти используются сегменты и настройка распределения памяти в опциях проекта. С сегментами можно ознакомиться во встроенной в CodeMaster-96 справке.
Просмотреть распределение памяти проекта можно в выходном Map-файле проекта.
Re: адрес исполнения программы 1874ВЕ7Т
Спасибо!
Поправил хекс(во вложении), но всеравно не вижу на шине 55АА
Скрин с логического анализатора во вложении
Частота 20 МГц, каналы соотвествуют разряднам шины
Поправил хекс(во вложении), но всеравно не вижу на шине 55АА
Скрин с логического анализатора во вложении
Частота 20 МГц, каналы соотвествуют разряднам шины
- Вложения
-
- osc.jpg (213.05 КБ) 9724 просмотра
-
- new4.hex
- (73 байт) 106 скачиваний
-
- Сообщения: 220
- Зарегистрирован: 14 дек 2015, 08:21
- Предприятие: АО НИИЭТ
- Откуда: АО НИИЭТ, Воронеж
Re: адрес исполнения программы 1874ВЕ7Т
Доброго времени суток!
Пример программы на ассемблере, переключающей линии портов IOPORT1, IOPORT3, IOPORT4, а также ALE, RD, WR в бесконечном цикле. Т.е. при корректном запуске по всем выводам портов IOPORT1, IOPORT3, IOPORT4 будут происходит переключения между логическими уровнями.
Пример программы на ассемблере, переключающей линии портов IOPORT1, IOPORT3, IOPORT4, а также ALE, RD, WR в бесконечном цикле. Т.е. при корректном запуске по всем выводам портов IOPORT1, IOPORT3, IOPORT4 будут происходит переключения между логическими уровнями.
Код: Выделить всё
.PMODULE TEST_PORTS
;==============================================================================
.INCLUDE 'tmpreg.inc'
;==============================================================================
; CCB value
;==============================================================================
?CCB_DATA .EQU 0Eh
.PUBLIC ?CCB_DATA
;==============================================================================
; EEPROM code:
;==============================================================================
.RSEG MAIN_CODE,code
.public ?start
.func ?start
LD AX,#0AAAAh
LD BX,#05555h
_L_START:
ST AX,[BX]
LDB IOPORT1,AL
LDB IOPORT2,AL
ST BX,[AX]
LDB IOPORT1,BL
LDB IOPORT2,BL
SJMP _L_START
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
.endf
.endseg
.END