Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 02:13

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Форт-система для смарт-карт AtMega163+24c256
Автор Сообщение
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
paskal писал(а):
одна линия данных к порту

линия данных то явно двунаправленная
Сообщение Добавлено: Чт авг 30, 2012 15:56
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Не могу сказать уверенно, но похоже он будет работать и на AtMega16.

Назови мне все отличия AtMega163 и AtMega16 и тогда я скажу точно.
Ну не сравнивать же мне по буквам два даташита.
По ключевым местам в даташитах, разницы между ними я не увидел.
Сообщение Добавлено: Ср авг 29, 2012 22:28
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Разобрался. Я не знал что карты по UARTу обмениваются. А то что контакты идут на MISO, MOSI, SCK сбило с толку - подумал что обмен по SPI.
Но есть другая неясность - на чем бы этот форт попробовать.
Такой карты у меня нет, да и процессор давно снят с производства. Однозначно, надо пробовать в Протеусе. Но и тут засада. В Протеусе тоже нет модели ATmega163. Ближайший аналог который есть - ATmega16. Поэтому вопрос: а будет ли этот форт работать на ATmega16?
Сообщение Добавлено: Ср авг 29, 2012 21:44
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Контакты оригинальной смарт-карты, если карту положить контактными площадками вверх и чипом влево :
Изображение
Контактный пятак Vpp использовался только на самых древних оригиналках на чипе Mc68hc05sc21 от Моторолы.
paskal писал(а):
В карте контакты 4 и 8 подключены к mosi и sck соответственно. А на схеме феникса на них ничего не идет.
Контактные пятаки mosi и sck используются только для прошивания процессора в пиратской карте AtMega.
Но не для работы с готовой (прошитой) пираткой или c оригиналкой.
Они используются в программаторе, но не в Фениксе.
paskal писал(а):
Получается на карту поступает резет, тактовая частота процессора и одна линия данных к порту. Но IMHO этого недостаточно для обмена.
Почему недостаточно ?
Если все без исключения смарт-карты именно так и работают.
Через сброс, клок и единственный пятак для обмена данными.
paskal писал(а):
Что я не так понял?
Контактный пятак для обмена данными - есть выход с открытым коллектором стоком. Он должен быть подтянут к питанию через сопротивление. И карта и устройство с которым она общается пользуются этим пятаком по очереди, вырабатывая импульсы для передачи данных коммутацией этого пятака на землю.
Сообщение Добавлено: Вт авг 28, 2012 20:05
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Ethereal писал(а):
Вот простой его вариант : http://killall.net.ru/wp-content/upload ... oenixs.bmp

Что то я не въезжаю как это будет работать.
По-моему такая схема феникса не стыкуется со схемой карты выложенной в первом посте. В карте контакты 4 и 8 подключены к mosi и sck соответственно. А на схеме феникса на них ничего не идет. Получается на карту поступает резет, тактовая частота процессора и одна линия данных к порту. Но IMHO этого недостаточно для обмена. Что я не так понял?
Сообщение Добавлено: Вт авг 28, 2012 19:19
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Вот простой его вариант : http://killall.net.ru/wp-content/upload ... oenixs.bmp
Взял отсюда : http://killall.net.ru/phoenix-interface ... to-feniks/
Сообщение Добавлено: Вт авг 28, 2012 03:02
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Ethereal писал(а):
Итак, Форт-система для смарт-карт. Зашивается в смарт-карту, там и работает.
Общение с ней происходит через терминал. Через принятый для работы со
смарт-картами Phoenix-интерфейс, который подключается к COM-порту.

А можно схему этого феникс-интерфейса показать?
Сообщение Добавлено: Пн авг 27, 2012 22:27
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Обновил версию в связи с исправлением ошибок в документации и оптимизацией кода.
Ссылка на новую версию в первом сообщении топика.
Сообщение Добавлено: Сб авг 25, 2012 15:54
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
А, пожалуйста ! Вставил ссылку в самый конец своего сообщения выше.
Сообщение Добавлено: Ср авг 22, 2012 15:55
  Заголовок сообщения:  Re: Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Цитата:
Выложил ее на сайте Пирамида, посвященном спутниковому телевидению.

А можно еще куда-нибудь? Влом регистрироваться.
Сообщение Добавлено: Вс авг 19, 2012 15:43
  Заголовок сообщения:  Форт-система для смарт-карт AtMega163+24c256  Ответить с цитатой
Форт-система для смарт-карт AtMega163+24c256


Выложил ее на сайте Пирамида, посвященном спутниковому телевидению. Здесь :
http://viaccessfree.biz/forum/showthrea ... post718924

Итак, Форт-система для смарт-карт. Зашивается в смарт-карту, там и работает.
Общение с ней происходит через терминал. Через принятый для работы со
смарт-картами Phoenix-интерфейс, который подключается к COM-порту.

Терминальные программки для MS-DOS..Win-98 прилагаются. Для более поздних
Windows надо бы написать оконную терминальную программу, да у меня руки не
дошли. Одна из терминальных програмок предназначена для общения с картой,
а вторая для сбрасывания ей на компиляцию текстовых файлов. Исходники
прилагаются.

В Форт-системе используется механизм самоперешивания флеш кодом из флеш
(бутлоадера), который имеется у процессоров AtMega. Т.е. если вы при
работе с данной Форт-системой наберете в терминале
: HELLO ." Hello, world !" ;
то это слово сразу же скомпилируется во флеш.
Откат скомпилированного производится словом MARKER

Форт-система 16-разрядная. Соответствует стандарту ANS-Forth, за исключением
словарей. Я не стал делать стек словарей, поскольку у процессора на борту итак
совсем мало ОЗУ и реализовал некий гибрид словарей из Forth-79 и FIG-Forth.
А точнее сделал так, как прочел в книге Баранова и Ноздрунова.
Шитый код в Форт-системе подпрограммный. Оптимизатор кода ограничивается
вставкой однословного rcall там где это возможно вместо двухсловного call.

Словарь Форт-системы ведется во встроенной в карту 24c256, в самом ее хвосте.
Поэтому после написания приложения он отсекается автоматически. Его можно
стереть, а можно про него просто забыть.

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

Форт-система проиллюстрирована конкретным приложением для смарт-карты.
А именно - пиратской прошивкой, которая открывает канал MEZZO со спутника
HotBird 12245H идент 007400 системы условного доступа Виаксесс.

Форт-система содержит массу программистской шизы. Например
- Перешивание флеш кодом из флеш идет страницами. Т.е. страница в 128 байт
целиком стирается, а потом в нее прошиваются новые данные. Но менять-то мне
нужно, как правило, только один байт. Программист, начитавшийся Дейкстры,
обязательно задействовал бы для этого дела буфер в ОЗУ 128 байт длиной. Тем
более, что и документация на AtMega163 о том недвусмысленно говорит.
Мной же используется безбуферный метод перешивания единственного байта, пусть
и посредством перезаписи целого блока. Метод шизовый, я его лично придумал.
Буфер я выстроил не в ОЗУ, а на защелках внутренних регистров карты, отвечающих
за запись. Благодаря интуитивному пониманию процессов, что при этом происходят.
- В коде Форт-системы используются rjmp-ы с заворотом по адресному
пространству. rjmp из самых младших адресов до самых старших не дотягивается.
Ну так и не надо дотягиваться. Чтобы попасть в самый старшие адреса из
самых младших нужно прыгать в отрицательные адреса. До них-то рукой подать.
Адресное пространство ведь сложено гармошкой.
- Ассемблерный код написан так, что получающийся после его компиляции HEX
двойного назначения. Он - есть прошивка и для флеш AtMega163 и для 24c256.
- Ассемблерный код всюду оптимизирован самым жесточайшим образом. Повсеместно
код использует побочные эффекты предыдущего кода ради экономии такта и байта. В
результате код с трудом читаем и почти не модифицируем. Все переплетено так,
что тронь и рассыплется. Дейкстра сразу идет лесом.
- В той части системы, что написана на Форте, в одном месте используется вызов
не слова, а части слова. Вот здесь слово S> вызывает часть слова C> :
Код:
: C>
  [F]COUNT [ [F]HERE ] HERE 21 + 2DUP C! TUCK >R
  FOR CHAR+ OVER [F]C@ OVER C! SWAP CHAR+ SWAP NEXT
  2DROP R>
;
: S>  [ COMPILE, ] COUNT  ;
- В той-же части Форт-системы порой используются самые феерические
управляющие конструкции. Но они тщательно подобраны так, чтобы порождать
самый лаконичный шитый код.
Как вам, например, такие архитектурные построения :
Код:
: >NAME
  >R VOC-LINK
  BEGIN
    BEGIN
      [F]@ DUP
      WHILE [ ROT ]
        DUP CELL- [F]@ ?DUP
    UNTIL
    BEGIN
      DUP NAME> R@ <>
    WHILE [ ROT ]
      N>LINK [EE]@ ?DUP
  UNTIL
    REPEAT
        NIP
      THEN RDROP
;
Но все работает. И упомянутая прошивка для канала классическй музыки Mezzo этот Mezzo открывает.

Вот это карта для которой Форт :
Изображение
А вот ее схема :
Изображение

Download embedded Ethereal Forth V01.04 for AtMega163+24c256 smart-cards with sources :
http://www.karelmasters.com/download/viaforth_v0104.rar
Сообщение Добавлено: Сб авг 18, 2012 05:41

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB