Ответы на вопросы о микроконтроллерах MCS-51, Atmel AVR, PIC, Ubicom, ST10

     

Что такое микроконтроллеры Z8, какие


>Q: Что такое микроконтроллеры Z8, какие у них особенности и области применения ? A: Андрей Мозжевилов
Микроконтроллеры Z8 - это 8-ми разрядные СISC-контроллеры. На борту от 124 до 220 регистров общего назначения, которые могут адресоваться непосредственно по адресу или как регистр в текущем банке регистров. 4 младших байта в регистровом файле отведено под порты ввода-вывода. Старшая область в 16 байт отведена для регистров специальных функций. Архитектура не содержит аккумулятора как такового. В качестве приемника результата может выступать любой регистр, что уменьшает количество пересылок и сокращает объем кода программы. Определенные модели МК Z8 позволяют подключать внешюю память данных и/или программ. Стек может находится как во внутреннем, так и во внешнем ОЗУ. Архитектура предусматривает только 6 прерываний. Обычно - 4 от внешних сигналов, и 2 от таймеров. Если добавляется источник прерывания (например UART) то его прерывания садятся уже на существующие вектора, как следствие - нужно анализировать дополнительно источник прерывания программно. Более подробно об архитектуре Z8 прочитать на http://www.zilog.com/ Облаcти применениия практически любые, не требующие очень высокого быстродействия. По приведенным параметрам потребления можно сказать, что Z8 вполне можно применять в устройствах с батарейным питанием. Напимер для Z86E04 заявлено потребление 80uA при 3.2V и 32kHz в активном режиме и 1uA в режиме останова. Но поскольку я не сталкивался с подобными задачами применительно к Z8, то и утверждать здесь ничего не буду. > Q: Какие особенности отладки устройств с Z8 существуют? При помощи чего отладить программу для Z8? Как и чем можно запрограммировать Z8 ? A: Андрей Мозжевилов
Микроконтроллеры Z8 в своем большинстве выпускаются только с масочным или однократно программируемым ПЗУ. Выпускаются несколько типов Z8 с УФ-EPROM, но цена на них очень высока по сравнению с OTP, и они подходят, разве что для проверки устройства на конечном объекте, когда невозможно применение эмулятора. Большинство устройств с Z8 (особенно младших моделей Z86E02-08, которые не поддерживают внешнее ПЗУ) можно отладить только при помощи эмулятора. Политика Zilog в области ценообразования на эмуляторы очень дружественна именно для разработчиков. Эмуляторы продаются по довольно смешным ценам, если сравнивать их с ценами на эмуляторы для других семейств МК (PIC, AVR...). По моим сведениям цена на эмулятор, поддерживающий МК от Z86E02 до Z86E40 составляет менее $100. Эмулятор является и программатором в одном флаконе. Эмулятор поддерживают 2 оболочки - ZDS и ICEBOX (возможно есть и другие сторонних фирм). О ZDS будет сказано подробнее ниже. ICEBOX - достаточно примитивная оболочка. Особого сервиса не замечено, но для несложных проектов ее вполне достаточно. При использовании эмулятора нужно иметь ввиду некоторые особенности портов ввода/вывода эмулируемого МК и того чипа, который используется в эмуляторе. Например, стоит обратить внимание на тип входа, который в МК может не иметь триггера Шмитта, а в эмуляторе иметь. > Q: А на чем, собственно, программировать для Z8? A: Андрей Мозжевилов
Ответ на этот вопрос, возможно, не является всеобъемлющим. Я попытаюсь немного осветить только те средства, с которыми я пытался работать или работал. Их не так и много. 1.Пакет ZDS (Zilog Development Studio). Свободно лежит на http://www.zilog.com/ в разделе Development Tools для Z8. Это интегрированная среда разработки, которая включает в себя ассемблер, отладчик и много разных фенечек по организации и отладке проекта. Поддерживает все виды эмуляторов и соответственно отладку на уровне исходных текстов и прочие прелести. Я с ней не работал, поэтому ничего конкретного сказать не могу. И почему же я с ней не работал, если она такая вкусная то? Ах да :-), ну конечно, а где собственно Си? А Си затерялся в недрах могучей корпорации Zilog. Немного подробнее на эту тему. Внимание!!!, информация на август 2000 г. На сайте Zilog есть ссылка на компилятор, который является компонентом ZDS. В базовую (бесплатную) версию ZDS он не входит, потому как за него хотят денег, иначе с чего бы ссылка отправляла за компилятором к дистрибьюторам? Письмо в Zilog подтвердило, что компилятор доступен через представительства, но как выяснилось, в Выборгской Гамме, которая и является таким представителем в России, возможности приобрести компилятор нет (пока). Отсюда у меня возникает цепочка логических выводов - ах, еще нельзя ? - а, ну это значит его только выпустили - да,да, и версия небось 0.00 бета - глюкодром, наверняка, полнейший - а нафига мне это надо, да еще за деньги? Может такие выводы где-то и несправедливы, но я для себя так решил :-) Если бы проект был простой и хватило бы ассемблера, и было бы время и желание этот ассемблер досконально изучать, то тогда без вопросов ZDS. 2.На сайте Zilog предлагается еще один пакет для разработки. Вот выдержка из readme "ZiLOG Z8/Z8Plus Tool Set Release 4.05". Файл назывался z8cc405p.exe и занимал около 2.8M В пакет входит компилятор Си, ассемблер, линкер, библиотекарь, документация в pdf. Никакой IDE нет. Все работает из командной строки. С этим компилятором мной был реализован проект средней сложности с объемом бинарного кода около 4К. По результатам можно сказать следующее:
а) Компилятор в некоторых случаях создает неправильный код. В процессе написания программы было поймано 2 такие ситуации на отметке 265 байт бинарного кода. Глюки были устранены отключением оптимизации. При дальнейшей работе с отключенной оптимизацией глюки не отмечены.
б) Оптимизации, можно сказать нет. При отключении оптимизации при объеме кода в 265 байт, увеличение лишь на 4 байта. Поэтому и включать ее не особенно и нужно.
в) Код получается неплохой. Заметны места, где можно сделать лучше, но в общем все довольно не плохо.
г) В пакет включены исходники библиотечных функций, большинство на Си.
д) Линкер имеет кучу команд, позволяющих линковать, как душе угодно. Как отлаживаться? Здесь все хуже. Отладки на уровне исходных тесктов добиться не удалось. Оболочка для поддержки эмулятора ICEBOX в принципе имеет возможность отладки на уровне исходника, но создать нужные для этого форматы файлов не получилось. Ответ от Zilog на письмо по этому поводу подтвердил это. Так что пришлось загружать hex-файл. При отладке функции ее адрес можно найти в map-файле и поставить точку останова в нужном месте, сравнивая дизассемблированный текст в окне отладчика с lst-файлом, созданным компилятором. Дополнения, пожелания присылайте Алексею Владимирову, avlad@mailbox.riga.lv

Содержание раздела