Главная
страница 1
СРЕДА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ «СИСТЕМ НА КРИСТАЛЛЕ» СЕРИИ «МУЛЬТИКОР» MCSTUDIO_LNX

В.В. Синицын, С.А. Косырев, В.Ф. Никольский

ГУП НПЦ «ЭЛВИС», sectetary@elvees.com

Платформа «МУЛЬТИКОР» разработана в ГУП НПЦ «ЭЛВИС» и предназначена для проектирования широкого спектра СБИС для коммерческих, военных и космических применений, которые различаются по вычислительной мощности, стоимости и функциональным возможностям. СБИС платформы «МУЛЬТИКОР» можно отнести к классу «Систем на кристалле» (СнК) [1].

В последние годы СнК получают все более широкое распространение. СнК принципиально отличаются от традиционных специализированных СБИС, как структурой, так и методологией проектирования. В СнК используются Intellectual Property (IP) блоки, которые, в определенной мере, можно считать аналогами готовых электронных компонент. Принципиальная особенность IP-блоков заключается в возможности их повторного использования в других проектах СнК. Этим объясняется их название - IP, т.е. объект интеллектуальной собственности.

Примеры IP-блоков:



  • Микропроцессор: RISC, Цифровые Сигнальные Процессоры (ЦСП);

  • память: RAM, DRAM, Flash;

  • стандартные интерфейсы: UART, PCI, USB, Ethernet, I2C;

  • видео- и аудио- декодеры: JPEG2000, MPEG2;

  • цифро-аналоговые блоки: ЦАП, АЦП;

  • аналоговые компоненты: ФАПЧ;

  • контроллеры жидкокристаллических мониторов;

  • интерфейсы смарт-карт.

Фактически, на одном кристалле собираются системы, которые в недалеком прошлом делались на печатной плате [2]. При этом СнК обладает целым рядом преимуществ по сравнению с классическими «Системами на печатной плате»:

  • Миниатюризация - СнК позволяет интегрировать на кристалле компоненты, которые раньше использовались в виде дискретных микросхем;

  • снижение потребляемой мощности - СнК изготавливается по технологии «глубокого субмикрона» (0.35 мкм и меньше), что позволяет снизить напряжение питания, и, как следствие, существенно уменьшить потребляемую мощность, кроме того, СнК может включать динамическое управление питанием;

  • повышение надежности – объединение нескольких компонент (IP-блоков) на одной пластине кремния позволяет существенно уменьшить число паяных соединений.

Области применения СнК:

  • Системы связи и телекоммуникаций, в частности, беспроводная связь стандартов GSM и WCDMA;

  • информационные сети (LAN, Интернет), в частности, беспроводные сети стандарта IEEE 802.11 (BlueTooth, Wi-Fi);

  • радионавигация (GPS, Glonass);

  • локация и гидроакустика;

  • мультимедийная обработка звука (MPEG-1 Audio Layer3 [MP3], AMR, WMA, AAC и другие звуковые кодеки);

  • устройства защиты информации;

  • охранные устройства;

  • системы промышленной автоматики, контроля и управления;

  • PDA (Personal Digital Assistants);

  • фото- и видео- камеры.

Уровень развития инфраструктуры средств, обеспечивающих разработку цифровых систем, является одним из основных критериев выбора элементной базы для реализации алгоритмов цифровой обработки сигналов (ЦОС). Это заставляет фирмы-изготовители ЦСП активно развивать построение комплексов аппаратных и программных средств проектирования и отладки цифровых систем, создающих условия для максимально быстрого и эффективного перехода от алгоритмического решения прикладной задачи к конечному продукту.

Именно этой цели и служит среда разработки программного обеспечения для СнК серии «Мультикор» MCStudio_Lnx.

Среда разработки MCStudio_Lnx базируется на оценочных комплектах (evaluation board) MC-12EМ и МС-24ЕМ. Основой комплекта MC-12EM является сигнальный микроконтроллер 1892ВМ3Т, а комплекта МС-24ЕМ - сигнальный микроконтроллер 1892ВМ2Т. 1892ВМ2Т и 1892ВМ3Т являются КМОП СБИС, изготовленными по технологии 0.25 мкм. Тактовая частота в нормальных условиях – 100 МГц. Питание 3.3 В. Оба имеют два микропроцессорных ядра (RISC-ядро и ЦСП-ядро):

RISC-ядро – это 32-разрядный процессор, архитектурно подобный MIPS32 с аппаратно поддержанными операциями умножения и деления. Включает устройство управления памятью (MMU – Memory Management Unit) на основе полностью ассоциативного буфера преобразования адресов (TLB).

ЦСП-ядра серии ELcore™ из IP –библиотеки платформы «МУЛЬТИКОР» разработки НПЦ «ЭЛВИС» – это оригинальные, масштабируемые по SIMD –типу ядра цифровой обработки сигналов с плавающей и фиксированной точкой. В них поддержана аппаратная реализация стандарта плавающей точки IEEE754 [3]. Микросхема сигнального контроллера 1892ВМ3Т имеет ЦСП-ядро Elcore-14™ со скалярной архитектурой (SISD - Single Instruction Single Data), а в микросхеме 1892ВМ2Т использовано расширенное ЦСП-ядро Elcore-24™ с архитектурой 2SIMD (SIMD - Single Instruction Multiple Data). Скалярная архитектура - SISD – это классическая архитектура процессоров, позволяющая за один такт исполнять одну команду с одним или несколькими операндами на одном операционном блоке ЦСП. Векторная архитектура - SIMD – это архитектура процессоров, позволяющая за один такт исполнять одну команду над множеством (вектором) операндов в нескольких операционных блоках ЦСП одновременно. Ядро Elcore-24 (в микросхеме 1892ВМ2Т) – имеет 2SIMD-архитектуру, т.е. одна команда может исполняться над двумя множествами операндов. Фактически, микросхемы 1892ВМ3Т и 1892ВМ2Т отличаются, главным образом, ЦСП-ядрами. Первое имеет SISD-архитектуру, второе 2SIMD-архитектуру, но может работать и в cкалярном режиме (SISD). Еще одна особенность ЦСП-ядра – это процессор с «Гарвардской архитектурой», т.е. имеет раздельные адресные пространства кода и данных.

На процессорах 1892ВМ3Т и 1892ВМ2Т имеется внутреннее ОЗУ данных и программ, распределение которых указано в Табл. 1.

Таблица 1

Распределение внутренней памяти RISC- и ЦСП-ядер




1892ВМ3Т (MC-12EM), Кб

1892ВМ2Т (MC-24ЕМ), Кб

ОЗУ данных RISC-ядра

64

32

Кэш команд RISC-ядра

16

16

ОЗУ данных ЦСП-ядра

144

176

ОЗУ команд ЦСП-ядра

16

16

Каждый из сигнальных микроконтроллеров имеет по 16 32-разрядных регистров общего назначения, которые могут быть представлены как 32 16-разрядных, а также:


  • 12 каналов DMA;

  • 1 порт UART;

  • 4 байтных порта, совместимых с SHARC AЦПОС21160 (линковый порт);

  • 2 последовательных порта, совместимых с SHARC AЦПОС21160 (порт обмена последовательным кодом);

  • 4 внешних прерывания;

  • 4 внешних запроса DMA;

  • 64-битный порт данных;

  • 32-битный порт адреса;

  • встроенный контроллер управления статической памятью типа SRAM, FLASH, а также синхронной памятью типа SDRAM;

  • программное задание циклов ожидания при работе с внешней памятью.

Кроме описанных сигнальных микропроцессоров в состав оценочных комплектов входят:

  • Статическая память 1 Мбайт;

  • динамическая память 128 Мбайт;

  • приемопередатчик канала RS-232, подсоединенный к порту UART;

  • адаптер связи параллельного порта IBM PC (EPP) с JTAG портом сигнального микропроцессора;

  • 4 разъема линковых портов;

  • 2 разъема портов обмена последовательным кодом.

Для поддержки программных проектов на всех стадиях разработки для нескольких серий чипов на базе платформы «МУЛЬТИКОР» разработана комплексная система проектирования программного обеспечения MCStudio_Lnx (MCS_Lnx) в среде Linux. Среда разработки MCS_Lnx обеспечивает разработчикам полный контроль над созданием, редактированием, компиляцией, компоновкой и отладкой встраиваемых приложений на языках ассемблера и C/C++. Для функционирования системы программирования MCStudio_Lnx рекомендуется компьютер со следующими характеристиками:



  • CPU x86 от 800 MHz;

  • RAM не менее 128 MHz;

  • место на диске не менее 500 Мб.

При этом должна быть установлена одна из следующих операционных систем:

  • ASP Linux 9.2;

  • Mandrake 10.0;

  • Slackware 10.0;

  • Fedore Core 3.

и рекомендуются следующие версии подсистем:

  • kernel 2.4.22 и выше;

  • glibc 2.3.2 и выше;

  • XFree86 4.3.0 и выше;

  • j


    Рис. 1. Комплекс аппаратных и программных средств проектирования и отладки платформы «МУЛЬТИКОР» MCStudio_Lnx
    2sdk-1_4_2_06.

Система состоит из следующих частей:

  • Интегрированная среда разработки (IDE);

  • инструменты – кросс-компиляторы, кросс-ассемблеры, компоновщики (линкеры), библиотекари и ряд вспомогательных утилит;

  • cимвольные отладчики двух типов. Симулятор позволяют использовать для отладки программную модель процессора. Эмулятор предоставляет точно такой же программный интерфейс (API), но работает с оценочным комплектом, используя отладочный интерфейс JTAG. К симулятору можно подсоединять симуляторы (модели) внешних устройств;

  • библиотеки – как времени выполнения (run-time), так и прикладные.

Работа IDE MCS_Lnx происходит в ОС Linux и основана на современной технологии Eclipse [4]. Эта незаурядная технология достойна того, чтоб остановиться на ней несколько подробнее.

E




Рис. 2. Сеанс отладки в MCStudio_Lnx
clipse - независимая от поставщиков открытая платформа разработки. Первоначально это был внутренний проект фирмы IBM, затратившей на разработку более 40 млн долларов. В конце 2001 года IBM открыл исходный код Eclipse и вокруг него был образован специальный совет, призванный обеспечить развитие проекта и создать вокруг него сообщество разработчиков. В настоящий момент в разработке Eclipse, помимо независимых разработчиков, принимают участие ряд крупных фирм, таких как IBM, Oracle, QNX, Red Hat, SuSe, Sybase и многие другие. Проще назвать те крупные фирмы, которые не принимают участия в этом проекте – это Microsoft и Sun.

Eclipse – это среда разработки, полностью написанная на Java. Идеология Eclipse представляет собой распространение «принципа микроядра» на новую область применения – программный инструментарий. Основная идея «принципа микроядра» состоит в том, чтобы выделить в системе минимальный функционально полный набор базовых операций, через который можно легко выразить все остальные, и реализовать его в отдельном самостоятельном модуле, вокруг которого строится вся остальная функциональность системы [5]. Главные преимущества такого подхода - быстродействие (потому что элементарные операции выполняются быстро), расширяемость (потому что если базовый набор операций выбран корректно, то на его основе можно реализовать какой угодно алгоритм) и надежность (чем компактнее модуль, тем меньше вероятность ошибки в нем, и тем проще его отлаживать). Таким образом, Eclipse состоит из микроядра и множества подключаемых модулей расширения (plug-ins). Разрабатывая собственные (или дорабатывая существующие) подключаемые модули, можно получать полнофункциональные продукты. Разработка подключаемых модулей расширения поддерживается в Eclipse с помощью PDE (Plug-in Development Environment) [6]. Подключаемые модули расширения так же пишутся на Java. Использование Eclipse позволяет разработчикам и партнерам легко вносить изменения и дополнения, создавая специализированную и гибкую среду разработки, а также упрощает интеграцию программных продуктов от разных поставщиков.

Существуют модули расширения для поддержки систем контроля исходных текстов, таких как CVS, VSS, Clear Case, Subversion. Поддержка систем контроля исходных текстов значительно облегчает и упорядочивает совместную командную разработку.

Поскольку Eclipse целиком написан на Java и спроектирован таким образом, чтобы быть независимым от платформы, то работает на следующих операционных системах: Windows 98/ME/2000/XP, Linux, QNX, Solaris, AIX, HP-UX, Mac OSX. Перед установкой Eclipse достаточно всего лишь установить JRE (Java Runtime Environment) версии не ниже 1.4.1.

Основным средством разработки в MCStudio_Lnx является язык C/C++. Возможность разработки на этом языке поддерживается с помощью CDT (C/C++ Development Tools). Подключаемые модули расширения для CDT были созданы и развиваются корпорацией QNX, широко известной своей одноименной ОСРВ (Операционной Системой Реального Времени).

Графические средства пользовательского интерфейса базируются на специальном наборе компонент SWT (Standard Widget Toolkit) и максимально используют средства оконных менеджеров операционной системы (Win32, GTK, Motif), поэтому приложения, построенные на базе SWT, визуально не отличаются от приложений, разработанных специально для конкретной операционной системы. В Eclipse множество элементов пользовательского интерфейса: редакторов (Editors) с подсветкой синтаксиса, видов (Views), использующихся для навигации по иерархическому представлению проекта. Eclipse поддерживает различные виды заметок, которые существенно облегчают работу над крупными проектами: закладки (Bookmarks), задачи (Tasks) (то, что обычно называют TODO), проблемы (Problems). Поддерживается мощная поисковая система для навигации по исходным кодам проектов.

После передачи IBM проекта Eclipse в Open Source, данный проект включал лицензию CPL (Common Public License). Отличительной чертой CPL от большинства других лицензий Open Source, например - GPL - GNU General Public License, под которой сделано большинство проектов с открытым кодом, стала возможность использования Eclipse для создания коммерческих продуктов. Лицензия GPL обязывает предоставлять исходный код своих проектов в свободный доступ. Соответственно, это не позволяет вести коммерческую разработку продуктов. Поскольку Eclipse включает лицензию CPL (Common Public License), разрабатываемые модули могут использоваться, при желании, как коммерческие продукты, что исключено для систем с открытым кодом под GPL.

Eclipse предоставляет механизм интеграции различных инструментов. Инструменты - это кросс-компиляторы, кросс-ассемблеры, компоновщики (линкеры), библиотекари и ряд вспомогательных утилит. Для MCS_Lnx разработаны инструменты двух типов. В качестве базового инструментария использовалась линейка GNU C/C++. В рамках MCStudio_Lnx этот инструментарий носит название eltools. Второй тип инструментов разработан специально для платформы «Мультикор» фирмой «Интерстрон».

Использование линейки инструментов GNU C/C++ - довольно распространенный подход. Проект GNU C/C++ основывается на открытых кодах проекта GNU. Эти коды должным образом дорабатываются, после чего становится возможным использование инструментов с новым типом процессоров. Для RISC-ядра используется кросс-компилятор gcc версии 3.2.2, кросс-ассемблер, компоновщик (линкер), библиотекарь и ряд вспомогательных утилит. Для ЦСП-ядра нет кросс-компилятора, базирующегося на открытых кодах GNU, потому что доработка gcc для этой цели оказалась чересчур сложной. Поэтому, используя инструменты eltools для ядра ЦСП-ядра, можно писать программы лишь на языке ассемблера. В остальном инструменты ЦСП-ядра похожи на инструменты RISC-ядра: кросс-ассемблер, компоновщик, библиотекарь и ряд вспомогательных утилит. Эти утилиты были созданы с помощью доработки пакета binutils, который также доступен в открытых кодах.

С




Рис. 3. Сборка проекта с использованием eltools
борка происходит с помощью GNU make. Makefile автоматически формируется при создании проекта. Типичный цикл сборки проекта с помощью eltools в MCS_Lnx изображен на Рис. 3. Следует обратить внимание при сборке проектов для «Мультикора» в MCS_Lnx на совместную компоновку кодов для RISC-ядра и ЦСП-ядра. Для этого объектные файлы, получившиеся после ассемблирования и компоновки программ ЦСП-ядра обрабатываются специальной утилитой elcopy. После этого с помощью компоновщика RISC-ядра осуществляется финальная компоновка образа загружаемой программы. Благодаря постобработке с помощью утилиты elcopy ссылки в объектных файлах ЦСП-ядра корректным образом разрешаются при финальной компоновке.

П


Рис. 4. Сборка проекта с использованием инструментов «Интерстрон»


реимуществом инструментов фирмы «Интерстрон» является единый кросс-компилятор – как для RISC-ядра, так и ЦСП-ядра. Исходный код для разных ядер может находиться в одном файле. При этом секции для разных ядер (RISC и ЦСП) разделяются с помощью директив #pragma. Кроме того, это первый полностью оригинальный C/C++ кросс-компилятор для ЦСП-ядра платформы «МУЛЬТИКОР». Кросс-компилятор имеет несколько режимов оптимизации. Отладочная информация представлена в формате DWARF 3.0. Есть возможность делать ассемблерные вставки в тексте С/С++ программ или использовать ассемблерные файлы. Процесс сборки проекта (см. Рис. 4) теперь ничем не отличается от сборки проекта для обычного одноядерного процессора. С появлением данных инструментов значительно упрощается разработка программного обеспечения для платформы «МУЛЬТИКОР».

Средства отладки MCS_Lnx обеспечивает загрузку программ в память симулятора цифрового микроконтроллера; задание точек останова программы по адресу в программе или на строке программы; запуск программы; исполнение программы до точки останова или по шагам, с заходом в вызываемую функцию или с пропуском вызываемых функций; получение сообщений об остановах и завершении программ; чтение данных из памяти симулятора по адресу или символическому имени переменной при остановах программы; чтение данных и запись данных с регистров симулятора чипа и запись данных в память и регистры; формирование протокола действий оператора и прочитываемых данных, использование командного файла для автоматического выполнения операторских действий интерпретатором командного файла. Отладчик автоматически определяет тип процессора при установке точек останова. Чтобы установить или удалить точки останова достаточно открыть в редакторе файл с исходным текстом и сделать двойное нажатие мышкой на левой кромке активного редактора. В качестве отладчика используется GNU отладчик – GDB. Графический отладчик MCStudio_Lnx CDT имеет специальный унифицированный интерфейс для взаимодействия с отладчиками, называемый CDI (C/C++ Debugger Interface). Любой специфический отладчик может быть выполнен как подмножество CDI. С используемым GDB CDI интегрирован с помощью строко-ориентированного текстового интерфейса GDB/MI (MI – Machine Independent). MCStudio может работать одновременно с несколькими оценочными комплектами, при условии использования в IBM PC дополнительных EPP/Printer адаптеров.



В последние месяцы ведущие фирмы-изготовители ЦСП и их партнеры стали активно создавать среды разработки для своих процессоров на базе Eclipse. Из этих продуктов можно отметить Code Composer Essentials для платформы Windows 2000/XP от компании Texas Instruments, QNX IDE для платформ QNX/Solaris/Windows от компании QNX, а также WindPower IDE 2 от компании Wind River, которая известна своей специализированной ОСРВ VxWorks.

ЛИТЕРАТУРА

  1. Петричкович Я.Я., Солохина Т.В. Цифровые сигнальные контроллеры “МУЛЬТИКОР” - новые отечественные серии систем на кристалле // Доклады 6-й Международной конференции «Цифровая обработка сигналов и ее применения (ЦПОСA-2004)» . - Москва. - 31 марта – 2 апреля 2004. – Т. 1. – С. 8 –15.

  2. Madisetti V., Arpnikanondt C. A Platform-Centric Approach to System-on-Chip (SOC) Design. – Springer, 2005. – 218 p.

  3. IEEE 754: Standard for Binary Floating-Point Arithmetic . - http://grouper.ieee.org/groups/754/.

  4. http://www.eclipse.org/.

  5. Holzner S. Eclipse. - O'Reilly Media, 2004. – 334 p.

  6. Гамма Э., Бек К. Расширения Eclipse: принципы, шаблоны и подключаемые модули. – Кудиц-Образ, 2005. - 384 с.

  7. http://www.elvees.ru.





Смотрите также:
В. В. Синицын, С. А. Косырев, В. Ф. Никольский
125.31kb.
1 стр.
Олег Синицын Астровойны
6368.08kb.
25 стр.
А. Я. Воронов, Д. И. Пионтковский, В. Ю. Синицын
134.52kb.
1 стр.
В. О. Синицын Научное сотрудничество историков России и Польши: казанский опыт
44.2kb.
1 стр.
Никольский алексей борисович
48.77kb.
1 стр.
Тема «Введение» 1
184.17kb.
1 стр.
Первая. История вопроса
26.3kb.
1 стр.
С. Петербург. Февраль, 1892 г. А. Никольский
100.68kb.
1 стр.
С. А. Никольский Глобализация и культура России: классическая
306.72kb.
2 стр.
«методика преподавания истории и обществознания в высшей и средней школе»
68.14kb.
1 стр.
«шедевры санкт-Петербурга» 5 дней (3 дня / 2 ночи)
36.72kb.
1 стр.
А. Ю. Синицын, «Рыцари страны восходящего Солнца», некоторые факты
394.37kb.
3 стр.