User Tag List

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 31 по 40 из 73

Тема: Изучаем микроконтроллер КР1878ВЕ1.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    17.02.2005
    Адрес
    USA
    Сообщений
    371
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Написал постфиксный ассемблер для КР1878ВЕ1. Хотел попробовать написать ассемблер для микроконтроллера, простоты ради выбрал именно этот. Написал на Forth, поэтому синтаксис у ассемблера соответствующий: вместо instruction <destination> <source> пишется <source> <destination> instruction. Привычный синтаксис только у команд jmp/jnz/jz/... : instruction <label>. Это связано с тем, как ассемблер обрабатывает ссылки вперед.

    Не суть важно. Можно это воспринимать просто как аналог ассемблеру от Ангстрема (который TESSA.EXE на их сайте).
    • Программа-пример из документации микроконтроллера: test.mic, я скармливал ее TESSA.EXE и сравнивал получившийся результат со своим
    • ассемблер вместе с программой-примером, она начинается после комментария "test program", можно сравнить синтаксис с оригиналом: test.fs, запускать на Linux/BSD/OS X под gforth
    • несколько слов, опосредованно относящихся к ассемблеру: common.fs, вынес их в отдельный файл


    Итак, подхожу к собственно вопросу...

    В процессе сравнения результатов заметил несоответствие в обработке инструкции LDR. Согласно документации, она имеет такой формат:
    Код:
    0010 0ccc cccc cnnn
          constant  reg
    Мой ассемблер, как и в случае с остальными инструкциями, у которых два операнда, генерирует опкод так: операнд2 (в данном случае constant) сдвигается влево на ширину операнда1 (в данном случае register), потом OR их вместе, потом еще раз OR с кодом команды. Следуя этой логике, строка LDR #C,15 должна генерировать такой опкод:
    Код:
    0010 0000 0111 1010
    Вместо этого TESSA.EXE генерит такой код:
    Код:
    0010 0000 0000 1010
    Я поэкспериментировал, и получается, что для инструкции LDR ассемблер Ангстрема не сдвигает константу влево, и накладывает три бита регистра прямо поверх нее. Еще показательный пример: LDR #A,7. В теории опкод такой:
    Код:
    0010 0000 0011 1000
    У TESSA.EXE такой:
    Код:
    0010 0000 0000 0000
    У меня есть сильное подозрение, что это баг или глюк в TESSA.EXE. Но как-то трудно поверить, что программисты в Ангстреме могли его не заметить. Эта инструкция, кажется, четыре раза встречается в программе-примере из официальной документации, и дважды она генерирует неверный код (в моем понимании).

    Есть ли у кого-нибудь возможность проверить работу программы на реальном микроконтроллере? Может, я что-то неверно понял в логике работы инструкции LDR?

    P.S. Насчет самого ассемблера: я таки могу допилить его напильником и сделать менее похожим на полуфабрикат. Как минимум, скомпилировать на Windows в виде отдельного EXE-файла, который будет кушать ассемблерный исходник в STDIN. Если кому интересно, конечно.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    28.10.2010
    Адрес
    г. Пермь
    Сообщений
    50
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    [QUOTE=как-то трудно поверить, что программисты в Ангстреме могли его не заметить[/QUOTE]
    Многие жаловались на ляпы в документации, так что, вполне возможно, что программисты просто учли фактическое положение дел :-)
    Насчет ассемблера - было бы интересно, особенное, если в комплекте с "средой разработки" типа Borland Pascal (городить что-то более навороченное, думаю, смысла нет, а вещицу, которая знает понятие "проект" и позволяет сделать несколько файлов, а заодно скрывает от пользователя командную строку - это то, что надо :-))
    Robotron CM6329.01M - 100%
    Robotron K6314 - 95% (не хватает рукоятки прокрутки)
    Prasident K6320 Commodore (трэба компутер - а самотест проходит)
    D-100M - 80%
    Электроника МС6312 - ???
    УПЗ - under construction
    Электроника МС6313 (нераспакован)
    Остальное перечислять не интересно :-)

  4. #3

    Регистрация
    17.02.2005
    Адрес
    USA
    Сообщений
    371
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прошу прощения за то, что пытался ввести в заблуждение. Моя вина. Вкурил документацию и увидел там следующее:
    Формат команды: ldr #n , значение

    где: n - номер служебного регистра

    Номер служебного регистра лежит в диапазоне 0-7, определяя один из регистров SR0-SR7. Загружаемое значение может быть константой, меткой или выражением, задающим адрес в памяти данных или памяти команд.

    При загрузке регистров SR0-SR3 загружаемое значение является адресом в памяти данных. Константа или выражение, загружаемое в регистр, преобразуется в адрес сегмента путем отсечения младших 3-х разрядов значения.
    Это, оказывается, фича языка ассемблера. При загрузке регистров #5, #6, #7 -- нужно сдвигать константу влево. При загрузке регистров #a, #b, #c, #d -- не нужно...

    ---------- Post added at 14:19 ---------- Previous post was at 13:34 ----------

    Цитата Сообщение от Andrei88 Посмотреть сообщение
    Насчет ассемблера - было бы интересно, особенное, если в комплекте с "средой разработки" типа Borland Pascal (городить что-то более навороченное, думаю, смысла нет, а вещицу, которая знает понятие "проект" и позволяет сделать несколько файлов, а заодно скрывает от пользователя командную строку - это то, что надо :-))
    Ну, полноценную среду разработки я вряд ли потяну. И, как показали последние события, сам код ассемблера тоже надо проверить на (невольные) неточности.

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

    Синтаксис не смущает? Я-то привык.

  5. #4

    Регистрация
    28.10.2010
    Адрес
    г. Пермь
    Сообщений
    50
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хех, давно ничего не постили :-)
    Сам сегодня наконец собрался силами и поставил на частотомер, собранный по схеме Радио №10 2000 супервизор питания. Воткнул DS1813 (пробовал с 1171СП42, но не пошло. Видно, то, что он генерит простой перепад из нуля в единицу, а микроконтроллеру нужен похоже именно импульс). Из изменений в схеме (см. схему из "Радио") - выкинул R5, R7, C3. Супервизор включил по типовой схеме:
    Выв. 1 (собственно сброс) к выв. 4 микроконтроллера
    Выв. 2 на питание (R5 был заменен перемычкой)
    Выв. 3 на землю
    Так как в плате R7 и C3 были размещены весьма компактно (R7 стоймя), то микросхему воткнул без проблем - выводы сильно разводить в стороны не понадобилось.
    Robotron CM6329.01M - 100%
    Robotron K6314 - 95% (не хватает рукоятки прокрутки)
    Prasident K6320 Commodore (трэба компутер - а самотест проходит)
    D-100M - 80%
    Электроника МС6312 - ???
    УПЗ - under construction
    Электроника МС6313 (нераспакован)
    Остальное перечислять не интересно :-)

  6. #5

    Регистрация
    28.10.2010
    Адрес
    г. Пермь
    Сообщений
    50
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как знать, может быть, и такое где попробуем :-)

  7. #6

    Регистрация
    14.04.2008
    Адрес
    Новомосковск
    Сообщений
    405
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто знает где можно скачать эту программу для ZX-Profi:

    Нажмите на изображение для увеличения. 

Название:	profi_кр1878ве1.png 
Просмотров:	637 
Размер:	3.4 Кб 
ID:	52315

    Для этой программы еще должна быть схема программатора, который подключается к ZX-Profi
    Pentagon 1024SL 2.2 + Z-Controller + TSFM + GS + 512Kb + HxC Floppy Emulator
    Altera DE1
    Altera DE2
    Апогей БК-01Ц + Rom-Disk 512kb by Vinxru

  8. #7

    Регистрация
    14.04.2008
    Адрес
    Новомосковск
    Сообщений
    405
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Название программы:

    Программатор микроконтроллера КР1878ВЕ1 (Тесей).
    Revision 1.01, релиз для Profi (порты ВВ55).
    (С) Max/CBX/BDA & Cardinal/PGC/BDA, г. Кемерово, 24.05.2002.
    Pentagon 1024SL 2.2 + Z-Controller + TSFM + GS + 512Kb + HxC Floppy Emulator
    Altera DE1
    Altera DE2
    Апогей БК-01Ц + Rom-Disk 512kb by Vinxru

  9. #8

    Регистрация
    02.06.2009
    Адрес
    Искитим
    Сообщений
    1,275
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    если надо могу Кардиналу позвонить, может у него остался софт и схемы

  10. #9

    Регистрация
    14.04.2008
    Адрес
    Новомосковск
    Сообщений
    405
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    AHTuXPuCT,

    Надо и программу и схему программатора и схему подключения программатора к Profi
    Pentagon 1024SL 2.2 + Z-Controller + TSFM + GS + 512Kb + HxC Floppy Emulator
    Altera DE1
    Altera DE2
    Апогей БК-01Ц + Rom-Disk 512kb by Vinxru

  11. #10

    Регистрация
    02.06.2009
    Адрес
    Искитим
    Сообщений
    1,275
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    созвонился я с авторами. сказали что найдут исходники и схемы.
    надо маленько подождать

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Куплю КР1878ВЕ1
    от Protom в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 01.02.2012, 23:28
  2. микроконтроллер К1816 ВЕ51/31
    от zorel в разделе Для начинающих
    Ответов: 3
    Последнее: 07.05.2011, 16:10
  3. Профи 4.02 изучаем спрос .Украина.
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 25
    Последнее: 13.05.2010, 21:56
  4. Изучаем Ассемблер с ААА!
    от Addison в разделе Для начинающих
    Ответов: 33
    Последнее: 08.07.2009, 00:52
  5. Микроконтроллер в качестве памяти
    от Stealth в разделе ZX Концепции
    Ответов: 14
    Последнее: 16.10.2007, 13:30

Ваши права

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