1874ВЕ7Т

Модераторы: ea, Alis, pip, gurzzza, _sva_

sazonovsv
Сообщения: 56
Зарегистрирован: 02 сен 2014, 15:35

Re: JTAG-интерфейс

Сообщение sazonovsv »

dav писал(а):
sazonovsv писал(а):Здравствуйте!
Требуется ли подтяжка к земле/питанию сигналов JTAG-интерфейса (ТМС, TDI, TCK, TDO, TRST) процессора 1874ВЕ71Т на целевой (нашей) плате для подключения эмулятора JEM-96 ? Или их нужно просто соединить с одноименными выводами JTAG-разъема эмулятора JEM-96 ?
Проблема в том, что не получается заставить работать вместе 1874ВЕ71Т и JEM-96. CodeMaster-96 выдает сообщение «Код программы изменился по сравнению с кодом, прошитым в микросхему внешней памяти микроконтроллера….». ЦП 1874ВЕ71Т и JEM-96 точно рабочие, т.к. работают с вашей отладочной платой КФДЛ…И «Коды программ…» тоже совпадают.
Доброго времени суток!

Дополнительная подтяжка сигналов JTAG-интерфейса (ТМС, TDI, TCK, TDO, TRST) контроллера1874ВЕ71Т для подключения эмулятора JEM-96 не требуется.
Спасибо за ответ.
т.к. упомянутая проблема осталась, т.е. наша целевая плата не дружит с JEM-96, то дополнительно вопросы:
1) как эмулятор в JTAG-режиме определяет стартовый адрес программы ?
2) сигнал DBG# из универсального разъема определяет стартовый адрес программы. В руководстве на JEM-96 написано, что при использовании JTAG-интерфейса при отладке он не требуется, НО данное руководство старое, нет ли там ошибки ?
3) какой механизм возникновения сообщения об ошибке «Код программы изменился по сравнению с кодом, прошитым в микросхему внешней памяти.." ? ЦП сравнивает каждый байт из внешней памяти или проверяет некую контрольную сумму ?
2) может ли работать JEM-96 если на целевой плате нет внешнего ОЗУ ?
dav
Сообщения: 208
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: JTAG-интерфейс

Сообщение dav »

sazonovsv писал(а): Спасибо за ответ.
т.к. упомянутая проблема осталась, т.е. наша целевая плата не дружит с JEM-96, то дополнительно вопросы:
1) как эмулятор в JTAG-режиме определяет стартовый адрес программы ?
2) сигнал DBG# из универсального разъема определяет стартовый адрес программы. В руководстве на JEM-96 написано, что при использовании JTAG-интерфейса при отладке он не требуется, НО данное руководство старое, нет ли там ошибки ?
3) какой механизм возникновения сообщения об ошибке «Код программы изменился по сравнению с кодом, прошитым в микросхему внешней памяти.." ? ЦП сравнивает каждый байт из внешней памяти или проверяет некую контрольную сумму ?
2) может ли работать JEM-96 если на целевой плате нет внешнего ОЗУ ?
Доброго времени суток!
1) Стартовый адрес берется из скомпилированного проекта.
2) Все верно. В этом режиме управление контроллером осуществляется по JTAG интерфейсу, при этом задействуются следующие выводы контроллера:
ТМС - вывод №7
TDI - вывод №83
TCK - вывод №9
TDO - вывод №85
TRST - вывод №15 (Вывод TRST объединен с выводом сброса RESET# )
3)Данное сообщение возникает в случае не соответствия кода во внешней памяти с кодом скомпилированного проекта. Также стоит обратить внимание, что в случае использования отладки по JTAG в опциях отладки необходимо выбирать профиль микроконтроллера без отладочного монитора, например "К1874ВЕ71Т Rev.2".
Ниже приводится подробный алгоритм формирования .HEX файла для МК 1874ВЕ7Т:
1. В свойствах проекта выбрать микроконтроллер "K1874BE7T Rev.2 with Debug Monitor" (или "К1874ВЕ71Т Rev.2"), ниже в поле "Физическая память отлаживаемой системы" добавить область памяти, соответствующую используемой внешней памяти, в области "External Flash" (например, 0x2000 - 0xFFFF)
2. Выбрать в качестве отладчика - симулятор.
3. В меню "Компиляция" выбрать "Собрать проект и запустить отладку [Shift+F7]"
4. Во внешнюю флешь записать полученный HEX файл и установить микросхему памяти на отладочную плату.
5. Установить конфигурацию на выводах P0.4, P0.5 в соответствии с выбранным интерфейсом отладки (UART0, UART1, SPI).
6. Подключить JEM-96 к USB.
7. Включить питание на отладочной плате.
8. В среде CodeMaster-96 в качестве отладчика выбрать JEM-96.
9. В опциях отладки указать выбранный интерфейс отладки (SPI или UART).
Примечание: при отладке по JTAG пункты 5 и 9 не выполнять.

4)Для JEM-96 не важен тип внешней памяти. Профиль "К1874ВЕ71Т Rev.2 with External RAM" позволяет по JTAG записывать программу во внешнюю RAM память.
sazonovsv
Сообщения: 56
Зарегистрирован: 02 сен 2014, 15:35

Re: JTAG-интерфейс

Сообщение sazonovsv »

dav писал(а):
sazonovsv писал(а): Спасибо за ответ.
т.к. упомянутая проблема осталась, т.е. наша целевая плата не дружит с JEM-96, то дополнительно вопросы:
1) как эмулятор в JTAG-режиме определяет стартовый адрес программы ?
2) сигнал DBG# из универсального разъема определяет стартовый адрес программы. В руководстве на JEM-96 написано, что при использовании JTAG-интерфейса при отладке он не требуется, НО данное руководство старое, нет ли там ошибки ?
3) какой механизм возникновения сообщения об ошибке «Код программы изменился по сравнению с кодом, прошитым в микросхему внешней памяти.." ? ЦП сравнивает каждый байт из внешней памяти или проверяет некую контрольную сумму ?
2) может ли работать JEM-96 если на целевой плате нет внешнего ОЗУ ?
Доброго времени суток!

3)Данное сообщение возникает в случае не соответствия кода во внешней памяти с кодом скомпилированного проекта. Также стоит обратить внимание, что в случае использования отладки по JTAG в опциях отладки необходимо выбирать профиль микроконтроллера без отладочного монитора, например "К1874ВЕ71Т Rev.2".
Доброго времени суток!
1) Из-за чего возникает данное сообщение в принципе я и сам догадался) Вопрос в том, как проверяется это несоответствие: побайтное сравнение содержимого ПЗУ и файла на компе, или сравнение неких контрольных сумм, или сравнение даты записанной в ПЗУ и даты формирования HEX-файла ?
2) Как при компиляции задавать стартовый адрес программы ?
dav
Сообщения: 208
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: JTAG-интерфейс

Сообщение dav »

sazonovsv писал(а): Доброго времени суток!
1) Из-за чего возникает данное сообщение в принципе я и сам догадался) Вопрос в том, как проверяется это несоответствие: побайтное сравнение содержимого ПЗУ и файла на компе, или сравнение неких контрольных сумм, или сравнение даты записанной в ПЗУ и даты формирования HEX-файла ?
2) Как при компиляции задавать стартовый адрес программы ?
1) Проверка осуществляется по-байтным сравнением скомпилированного проекта с содержимым ПЗУ. Никакие даты не учитываются.

2) Стартовый адрес всегда фиксированный - 2080h. Название сигнала DBG# - "выбор стартового адреса в программной памяти" имеет актуальный характер только для ИС 1874ВЕ96Т и 1874ВЕ8Т, т.к. вход в режим отладки (по UART и SPI) осуществляется стартом контроллера с альтернативного адреса 9000h, по которому во внутренней Flash памяти расположена программа - отладочный монитор. Для ИС 1874ВЕ7Т, 1874ВЕ71Т отладочный монитор (в случае выбора профиля микроконтроллера с отладкой по SPI/UART) интегрируется в начале проекта на этапе компиляции, при этом, вход в режим отладки осуществляется формированием логического уровня на входе P0.6.

Нам не удается воспроизвести вашу ошибку. Пожалуйста, запустите “CodeMaster-96” в диагностическом режиме, повторите последовательность действий до получения сообщения об ошибке и закройте “CodeMaster-96”. Среда создаст в текущем каталоге (если запуск производился через меню “Пуск”, то это корневой каталог среды) два файла “CM-96.log” и “JEM96.lgm”. Пришлите мне их на почту: dykhno@niiet.ru
sazonovsv
Сообщения: 56
Зарегистрирован: 02 сен 2014, 15:35

Re: JTAG-интерфейс

Сообщение sazonovsv »

dav писал(а):
sazonovsv писал(а): Доброго времени суток!
1) Из-за чего возникает данное сообщение в принципе я и сам догадался) Вопрос в том, как проверяется это несоответствие: побайтное сравнение содержимого ПЗУ и файла на компе, или сравнение неких контрольных сумм, или сравнение даты записанной в ПЗУ и даты формирования HEX-файла ?
2) Как при компиляции задавать стартовый адрес программы ?
1) Проверка осуществляется по-байтным сравнением скомпилированного проекта с содержимым ПЗУ. Никакие даты не учитываются.

2) Стартовый адрес всегда фиксированный - 2080h. Название сигнала DBG# - "выбор стартового адреса в программной памяти" имеет актуальный характер только для ИС 1874ВЕ96Т и 1874ВЕ8Т, т.к. вход в режим отладки (по UART и SPI) осуществляется стартом контроллера с альтернативного адреса 9000h, по которому во внутренней Flash памяти расположена программа - отладочный монитор. Для ИС 1874ВЕ7Т, 1874ВЕ71Т отладочный монитор (в случае выбора профиля микроконтроллера с отладкой по SPI/UART) интегрируется в начале проекта на этапе компиляции, при этом, вход в режим отладки осуществляется формированием логического уровня на входе P0.6.

Нам не удается воспроизвести вашу ошибку. Пожалуйста, запустите “CodeMaster-96” в диагностическом режиме, повторите последовательность действий до получения сообщения об ошибке и закройте “CodeMaster-96”. Среда создаст в текущем каталоге (если запуск производился через меню “Пуск”, то это корневой каталог среды) два файла “CM-96.log” и “JEM96.lgm”. Пришлите мне их на почту: dykhno@niiet.ru
Здравствуйте!
Та же ситуация и с вашей отладочной платой КФДЛ... На вашу почту скинул логи и подробное описание проблемы
sazonovsv
Сообщения: 56
Зарегистрирован: 02 сен 2014, 15:35

Внутренняя и внешняя память

Сообщение sazonovsv »

Здравствуйте!
Хотелось бы уточнить, правильно ли я понимаю работу микроконтроллера (далее МК) 1874ВЕ7Т(71Т) с внутренней и внешней памятью. Если что-то не так, то поправьте меня:
1) Внешнее ПЗУ доступно с 0х2000 по 0хFFFF. Доступ к этому пространству сопровождается генерацией сигналов (INST, ALE, RD/) на выводах МК. 2) МК из ПЗУ с адреса 0х0000 по 0х1FFF НИКОГДА не выбирает коды команд и это пространство ему не доступно.
3) Внешнее ОЗУ доступно с 0х2080 по 0хFFFF. Доступ к этому пространству сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК.
4) Обращение к ОЗУ по адресам с 0х0000 по 0х17FF и 0х2000 по 0х207F относится к оперативной памяти встроенной в МК и НЕ сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК. Исключение составляет CCB по адресу 0x2018.
5) Не понятно куда отображается оперативная память с 0х1800 по 0х1FFF : на встроенную в МК или на внешнюю память? Если на внешнюю память, то обращение по этим адресам сопровождается ли генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК ?
dav
Сообщения: 208
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: Внутренняя и внешняя память

Сообщение dav »

sazonovsv писал(а):Здравствуйте!
Хотелось бы уточнить, правильно ли я понимаю работу микроконтроллера (далее МК) 1874ВЕ7Т(71Т) с внутренней и внешней памятью. Если что-то не так, то поправьте меня:
1) Внешнее ПЗУ доступно с 0х2000 по 0хFFFF. Доступ к этому пространству сопровождается генерацией сигналов (INST, ALE, RD/) на выводах МК.
2) МК из ПЗУ с адреса 0х0000 по 0х1FFF НИКОГДА не выбирает коды команд и это пространство ему не доступно.
3) Внешнее ОЗУ доступно с 0х2080 по 0хFFFF. Доступ к этому пространству сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК.
4) Обращение к ОЗУ по адресам с 0х0000 по 0х17FF и 0х2000 по 0х207F относится к оперативной памяти встроенной в МК и НЕ сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК. Исключение составляет CCB по адресу 0x2018.
5) Не понятно куда отображается оперативная память с 0х1800 по 0х1FFF : на встроенную в МК или на внешнюю память? Если на внешнюю память, то обращение по этим адресам сопровождается ли генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК ?
1) Не совсем так, внешняя память (ПЗУ/ОЗУ) доступна в диапазонах 0x1800-0x1EFF и 0x2000 - 0xFFFF, при этом выборка кода команд возможна только из диапазона 0x2000 - 0xFFFF
2) Верно, в соответствии с архитектурой МК исполнение программы возможно в диапазоне 0x2000 - 0xFFFF, но диапазон 0x1800-0x1EFF доступен для чтения/записи данных
3) Для МК по большему счету нет разницы - подключено внешнее ПЗУ или ОЗУ. При обращении в диапазонах 0x1800-0x1EFF и 0x2000 - 0xFFFF будет формироваться сигналы (INST, ALE,RD/, WR/)
4) Для МК области памяти 0x1800-0x1EFF и 0x2000 - 0xFFFF - являются внешней, а область внешней памяти 0x2000 - 0x207F содержит ячейки памяти специального назначения, которые приводятся в ТО в таблице 5.2. При обращении МК к данной области также сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК. Здесь следует отметить, что к векторам прерывания МК обращается только при запросах на прерывание при условии разрешения в регистрах масок (INT_MASK, INT_MASK1)
5) Адресное пространство 0x1800-0x1EFF - отображается во внешнюю память - доступно для чтения/записи данных. В диапазоне 0x1F00 - 0x1FFF располагаются регистры SFR. Обращение по адресам 0x1800-0x1EFF сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК.
sazonovsv
Сообщения: 56
Зарегистрирован: 02 сен 2014, 15:35

Re: Внутренняя и внешняя память

Сообщение sazonovsv »

dav писал(а):
sazonovsv писал(а):Здравствуйте!
Хотелось бы уточнить, правильно ли я понимаю работу микроконтроллера (далее МК) 1874ВЕ7Т(71Т) с внутренней и внешней памятью. Если что-то не так, то поправьте меня:

5) Не понятно куда отображается оперативная память с 0х1800 по 0х1FFF : на встроенную в МК или на внешнюю память? Если на внешнюю память, то обращение по этим адресам сопровождается ли генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК ?

4) Для МК области памяти 0x1800-0x1EFF и 0x2000 - 0xFFFF - являются внешней, а область внешней памяти 0x2000 - 0x207F содержит ячейки памяти специального назначения, которые приводятся в ТО в таблице 5.2. При обращении МК к данной области также сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК. Здесь следует отметить, что к векторам прерывания МК обращается только при запросах на прерывание при условии разрешения в регистрах масок (INT_MASK, INT_MASK1)
5) Адресное пространство 0x1800-0x1EFF - отображается во внешнюю память - доступно для чтения/записи данных. В диапазоне 0x1F00 - 0x1FFF располагаются регистры SFR. Обращение по адресам 0x1800-0x1EFF сопровождается генерацией сигналов (INST, ALE, RD/ или WR/) на выводах МК.
Спасибо, однако...
1) тогда ваш пункт 5 совершенно не отражен ни в рисунке 5.2, ни в таблице 5.2 Тех.Описания. Надо бы поправить))
2) В Тех.Описании ничего не сказано про регистры SFR в диапазоне 0x1F00 - 0x1FFF. Что это за регистры и чем они отличаются от регистров SFR в других диапазонах ?
3) Правильно ли я понимаю, что если целевая плата НЕ имеет внешней памяти, то не получится использовать прерывания, т.к. нет места хранения векторов прерываний ?
dav
Сообщения: 208
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: Внутренняя и внешняя память

Сообщение dav »

sazonovsv писал(а): Спасибо, однако...
1) тогда ваш пункт 5 совершенно не отражен ни в рисунке 5.2, ни в таблице 5.2 Тех.Описания. Надо бы поправить))
2) В Тех.Описании ничего не сказано про регистры SFR в диапазоне 0x1F00 - 0x1FFF. Что это за регистры и чем они отличаются от регистров SFR в других диапазонах ?
3) Правильно ли я понимаю, что если целевая плата НЕ имеет внешней памяти, то не получится использовать прерывания, т.к. нет места хранения векторов прерываний ?
1) Внесем изменения в ТО
2) В таблице А.1 Приложения А перечислены регистры микроконтроллера, некоторые из них (регистры блоков ADC, UART1, BSI, CLKC, DEBUG, I2C, SpaceWire, SPI) расоложены в диапазоне 0x1F00-0x1FFF. Эти регистры отличаются лишь тем, что доступ к ним с применением команд прямой адресации (имеют минимальное время выполнения) возможен только через вертикальные окна.
3) Верно, вектора прерывания располагаются во внешней памяти.
sazonovsv
Сообщения: 56
Зарегистрирован: 02 сен 2014, 15:35

JTAG-интерфейс и эмулятор JEM-96 (продолжение)

Сообщение sazonovsv »

Здравствуйте!
К вопросу о несовместимости целевой платы и эмулятора JEM-96.
Исходная ситуация: имеется исправная целевая плата с микроконтроллеров 1874ВЕ71Т, к ней в режиме JTAG подключен эмулятор JEM-96. При попытке выполнить пошаговую отладку на экране появляется сообщение об ошибке: «Код программы изменился по сравнению с кодом, прошитым в микросхему внешней памяти микроконтроллера….».
Эта проблема была решена, но обнаружено, что:
1) Любое значение байта CCB, записанное во внешнюю память, и отличное от 0х1F воспринимается как неправильное, что есть ОШИБКА эмулятора (аппаратная или программная. В Тех.Описании нет такого ограничения на значение байта CCB.
2) Если в программе не задавать значение CCB, то CodeMaster самостоятельно делает его равным 0х1F.
3) Если однажды байт CCB с заданным значением, был подключен как ASM-файл к проекту и проект был собран, то потом избавиться от этого значения байта CCB просто удалением из проекта его ASM-файла и повторной пересборкой проекта не всегда получается. Помогает только ручная чистка всех рабочих каталогов EXE, OBJ, LIST.
4) Под управлением эмулятора микроконтроллер 1874ВЕ71Т неправильно формирует сигнал INST, что проверено с помощью осциллографа. В частности не всегда при выборке команды из ПЗУ сигнал INST=лог.1, что есть ОШИБКА эмулятора (аппаратная или программная), т.к. при одинаковом адресном пространстве внешних ПЗУ и ОЗУ сигнал INST - единственный способ их различить.
5) Даже при обходе ошибок описанных в четырех предыдущих пунктах, при попытке пошаговой отладки появляется только окно «Assembler», без окна исходного С-файла. Это при использовании операционной системы Windows XP Professional 2002, Service Pack 2. Что удовлетворяет требованиям CodeMaster, указанным на офиц.сайте НИИЭТ.
Однако Windows XP Professional 2002, Service Pack 3, на виртуальной машине VirtualBox фирмы Oracle не вызывает подобного эффекта.
Ответить

Вернуться в «Микроконтроллер 1874ВЕ7Т»