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

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

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

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

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

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

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

 
Опции темы
Непрочитано 27.02.2012, 23:18  
Alexandergb
Частый гость
 
Регистрация: 29.08.2008
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Alexandergb на пути к лучшему
По умолчанию ADuC84x - MCS52 BASIC

Вопрос о переносимости ассемблерного кода для 8052 на ADuC842.

Попробовал модифицировать MCS52 BASIC, используя внутреннюю XRAM.
(прописал регистр CFG842, заменил фрагмент программы для определения скорости UART - просто прописал константы в регистры RCAP2H, RCAP2L.

В результате БЕЙСИК работает неправильно.
Пробовал моделировать в Протеусе (8K Code ROM, 2K XRAM, без внешнего ПЗУ по адресу 8000Н и выше), используя вместо ADuC842 "стандартную" 8052 (8032). Работает правильно!

Теряюсь в смутных догадках - почему не работает.
Возможно не прописал еще какой-то регистр ADuC842, не учел побочного эффекта от какой-то инструкции, особенностей чтения кода и внутренней XRAM и т.п.

Буду признателен за помощь.

ag.b@mail.ru
Реклама:
Alexandergb вне форума  
Непрочитано 27.02.2012, 23:30  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

сейчас набегут телепаты
Hives вне форума  
Непрочитано 28.02.2012, 19:05  
Alexandergb
Частый гость
 
Регистрация: 29.08.2008
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Alexandergb на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

Сорри, был неправ, сейчас прикреплю вложения.

basic-52.zip - это "фирменный" проект от Интел.
KeilB52.zip - это модифицированный для ADuC842 проект
8052 Basic.zip - это файлики для Протеус, включая "фирменный"
(basic-52.DSN - устанавливается вместе с установкой Протеус 7.2) и последний (aduc842.DSN).

Вроде бы все...
Вложения:
Тип файла: zip basic-52.zip (179.4 Кб, 61 просмотров)
Тип файла: zip KeilB52.zip (542.0 Кб, 67 просмотров)
Тип файла: zip 8052 Basic.zip (1.15 Мб, 69 просмотров)
Alexandergb вне форума  
Непрочитано 28.02.2012, 20:30  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

теперь мы напишем какое конкретно железо используется, под какой средой/компилером мы играемся, что должно в теории быть и как именно оно не работает...
Hives вне форума  
Непрочитано 28.02.2012, 21:58  
Alexandergb
Частый гость
 
Регистрация: 29.08.2008
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Alexandergb на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

1) Железо - АДУК в чистом виде: микросхема на плате, внешний источник +5В и кабель с драйвером RS232 (из стартового комплекта 842).
Во вложении sheetpcb.ZIP схема и рисунок платы.

2) Среда: их две: Keil uVision 7.04 и Aspire 1.05.
В предыдущем вложении проект под Keil.
Две среды проектирования взял для страховки. А зря - результат компиляции одинаков.
Для моделирования (ес-но вместо АДуКа брал 8052 или 8032) - Proteus 7.2 SP6.

3) Что должно быть? Во-первых корректное выполнение инструкций Бейсика (версии 1.1 и 1.31 ведут себя одинаково).
Например:

*MCS-BASIC-52 V1.31*
READY
›10 ? 10
›20?20
›list
10 PRINT 10
20 PRINT 20

READY
›run

10
20

READY
›fori=0to5: ?i:nexti
0
1
2
3
4
5



(это то, что дает Протеус - aduc842.DSN).
------------------
А вот то, что я получаю реально на экране терминала (эмулятора терминала TTerm1.exe - см. вложение):

*MCS-BASIC-52 V1.31*
READY
›10 ? 10
›20 ? 20
›list

READY
›run

READY
›fori=0to5: ?i:nexti
0
0.081


ERROR: C-STACK
READY

Т.е. строки 10 и 20 не были сохранены в ОЗУ,
цикл выполнен 1 раз правильно, второй - неправильно, дальше типа переполнен стек.

Еще "перлы":
›?MTOP,MBOT,FREE,MTOP-FREE
2047 -0.0000084 E-58 1535 512

›?MBOT
-0.0000184 E-97

›NEW

›?MBOT
0.081


›?len
1


Т.е. "вершину" памяти нашел верно, разность - верно, LEN=1 это верно, если пусто в памяти. ФРИ - тоже верно. А вот МБОТ должен быть равен 0.
Еще пример:
*MCS-BASIC-52 V1.31*
READY
›?mbot
0

›?355/113
3.1415929

›?mbot
0

›fori=10to1step-1 : ?i :nexti
-?.400121 E-113

›?mbot
0.001 E-0


В общем таких примеров много. Мне они ни о чем конкретно не говорят,
и подсказки не дают.
Дело осложняется тем, что отладка возможна через УАРТ, а он используется самим Бейсиком. Поэтому как только я дохожу до обращения к последовательному порту, происходит ошибка и в дальнейшем я не могу проследить за ходом выполнения программы.
А в Протеусе нет адекватной модели АДуКа.

Ну а во-вторых по определенным адресам внутренней XRAM должны быть прописаны определенные коды. Они не соответствуют тому, что должно быть либо функция XBY(‹адрес›) работает неправильно.
Например по адресу 266 (10АН) д.б. 7, а есть 50, по адресу 267 д.б. 255, есть 54.
Между прочим это ячейки, где записан МТОР, хотя МТОР = 2047 - верно.
Миниатюры:
Нажмите на изображение для увеличения
Название: aduc842.gif
Просмотров: 159
Размер:	87.2 Кб
ID:	32256  
Вложения:
Тип файла: zip sheetpcb.ZIP (154.7 Кб, 46 просмотров)
Тип файла: zip TTerm1.zip (230.6 Кб, 45 просмотров)

Последний раз редактировалось Alexandergb; 28.02.2012 в 22:05.
Alexandergb вне форума  
Непрочитано 28.02.2012, 22:12  
Alexandergb
Частый гость
 
Регистрация: 29.08.2008
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Alexandergb на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

Думал о том, что при чтении несуществующей Code ROM должен получаться код 0FFH, прописал незанятую память этим кодом - ничего не изменилось.
Порт 0 "притянул" резисторами 10К к +5В - ничего не изменилось.
Запретил прерывания и исключил переходы на несуществующие адреса - опять напрасно.
Да, конечно, ядро однотактовое, но причем тут арифметика?!
----------------------------------------------------
Несколько некстати: разумеется, есть существенно более сильные проекты "однокристального" Бейсик-контроллера, например вот:
http://www.geoffg.net/maximite.html
Но и на одной АДуК842, не правда ли?- тоже неплохо
----------------------------------------------------

Последний раз редактировалось Alexandergb; 28.02.2012 в 22:21.
Alexandergb вне форума  
Непрочитано 01.03.2012, 05:35  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

нда, в чужом коде копаться это смерть...
почитал на досуге про твоих коллег что смутило - поведение при отсутствие ram выше 2k оговорено только для версии 1.1
можешь попробовать перенаправить вывод с терминала в ram, а там нормально подключиться отладкой.
Hives вне форума  
Непрочитано 01.03.2012, 12:26  
Alexandergb
Частый гость
 
Регистрация: 29.08.2008
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Alexandergb на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

Да, можно, - до ввода первой строки. Т.е. сверить состояние sfr, содержимое ОЗУ. Наверное и все.

Но ввести строку и проследить, почему она не попадает из буфера (а ведь в буфере она есть, иначе бы вообще ничего не выполнялось!) в XRAM - это будет очень трудно.

Начинаю грешить на АДуК. Не слыхал об аномалиях при выполнении команд (ну кроме тех, что в эррата листах)?

Думаю может проще написать Бейсик под себя

Кстати, мож слыхал о подходящем бейсике с С -исходниками.
Я-то нет. Тайни-бейсики не в счет.
-----------------------------------------------
Какой облом!!! А как просто все казалось!
Alexandergb вне форума  
Непрочитано 01.03.2012, 12:49  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

адук это просто проц. я вот, взглянув на исходники этого бейсика, а потом почитав ЕГО ерату, вообще удивляюсь что хоть что то заработало. и что за переменная MBOT?
Hives вне форума  
Непрочитано 01.03.2012, 17:23  
Alexandergb
Частый гость
 
Регистрация: 29.08.2008
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Alexandergb на пути к лучшему
По умолчанию Re: ADuC84x - MCS52 BASIC

Ерата как раз по-моему нормальная. Ну кое-где теряет несколько последних цифр, ну может трактовать Н после номера строки как шестнадцатиричный номер. Это не суть важно.
Дело в том, что прога рабочая на 80С32. Сам собирал.
И работает в 2К (а пишут в мануале, что достаточно 1К. Если посмотришь АСМ, вначале где-то проверка ОЗУ, и если ошибка случается раньше, чем по адресу 3ФФФ, то будет переход в точку старта.)

Посмотри в протеусе - это проще.

А не слыхал, чтоб в АДУКе какой-то регистр после сброса неправильно работал или имел неправильное нач. состояние,
ну или там, какая-нибудь последовательность команд неправильно выполнялась?



Кстати, собрал вторую плату - аналогично. Поэтому монтажная ошибка, неисправный АДУК и прочие недоразумения очень маловероятны.

Т.е., думаю, все-таки должно быть какое-то отличие от 8052.

P.S. Милль пардон, МВОТ - это из другой оперы. В данном случае Бейсик завел новую переменную. Но вот интересно, почему это он ее изменил. Впрочем, все вопросы одинаково "хороши".

Последний раз редактировалось Alexandergb; 01.03.2012 в 18:23.
Alexandergb вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StickOS™ BASIC рекомендую Kabron Микроконтроллеры, АЦП, память и т.д 11 13.05.2010 12:15
Basic для PIC maxupp Микроконтроллеры, АЦП, память и т.д 2 25.01.2008 20:58
Basic Для Микроконтроллеров maxupp Proteus, KiCAD и другие ECAD 3 11.12.2007 11:19
По поводу Basic для PIC maxupp Proteus, KiCAD и другие ECAD 7 24.09.2007 12:06
Помогите с Pic Basic-ом andrey-u Микроконтроллеры, АЦП, память и т.д 27 19.04.2007 15:09


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


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