НПЦ 'ЭЛВИС' - Отечественные DSP процессоры Мультикор
Поиск Домой Карта сайта

MCStudio-ECL

Продукты > Инструментальные средства. Программное обеспечение > Инструментальное ПО > MCStudio-ECL > 

border=0Последние новости
border=0



DSP-технологии
Платформа "МУЛЬТИКОР"
Микросхемы базовых серий
Инструментальные средства
Программное обеспечение
Аппаратные средства

Пакет средств разработки программ MCStudio-ECL является совместной разработкой компаний ЗАО «Интерстрон» и ГУП НПЦ «ЭЛВИС» и представляет собой интегрированную среду (IDE) разработки и отладки программного обеспечения для изделий, построенных на базе сигнальных процессоров «Мультикор». MCStudio-ECL функционирует на инструментальном компьютере типа IBM-PC под операционной системой Windows XP.

Пакет средств разработки MCStudio-ECL включает в себя:

  • пользовательскую среду разработки программ на С/С++, реализованную для режимов создания и отладки;
  • компилятор программ на С/С++, реализующий стандарты ISO/IEC 9899:1999(C99) языка С и ISO/IEC 14882:1998 языка С ++ для сигнальных процессоров «Мультикор» (для 1892ВМ2Я и 1892ВМ3Т)
  • объединенный Ассемблер для RISC- и DSP-ядер процессоров серии «Мультикор»;
  • линкер выполняемого файла и библиотекаря для создания пользовательских библиотек;
  • системные библиотеки языков С и С++;
  • отладчик программ С/С++.
Пользовательская среда разработки программ MCStudio-ECL

Рис. 1. Пользовательская среда разработки программ MCStudio-ECL

Одной из существенных особенностей компилятора С++ для процессоров "Мультикор" является возможность смешанного программирования. При смешанном программировании программист-разработчик создает специальное ПО для различных процессорных ядер в едином синтаксисе языка и в рамках единого проекта, указывая с помощью директивы #pragma, какие подпрограммы и функции будут обрабатываться DSP-ядром, а какие RISC-ядром.

К примеру,

	#include 
	    . . .
	# pragma dsp  a1,b1
	   . . .
	void vvod (float x, float cc, int d);
	float raschet(float x, float cc, int d, int c);
	float a1(int c, int d, float x);
	float b1(int d, float cc);
	    . . . 
	void main(void)
	{
	  int c,d;
	  float x,cc,rez;
		/* тело программы */

	vvod (x,cc,c,d);
	rez = raschet(x,cc,c,d);
	printf(rez);
	return;
	}
	/* -----------------------------------------------*/
	void vvod (float x, float cc, int c, int d)

	{
	   /* Ввод значений x,cc,c и d в тело программы*/
	return;
	}
	/* -----------------------------------------------*/
	float raschet(float x, float cc, int c, int d)
		
	{
	  float rez;
	  rez = a1(c,d,x) / b1 (d,cc);
	  return rez;
	}
	/* -----------------------------------------------*/
	float a1(int c, int d, float x)
		
	{
	   return (x / (c+d));
	}
	/* -----------------------------------------------*/
	float b1(int d, float cc)
		
	{
	  return ( cc / d);
	}

В данном примере, описывающем единый последовательный процесс вычислений, используются пять функций - main, vvod, raschet, a1 и b1. Функции а1 и b1, объявленные в директиве #pragma, будут выполняться на DSP-ядре, а остальные - на RISC-ядре. При этом процесс подготовки и активизации ядер будет возложен на компилятор.

Компилятор С/С++ программ работает в двух режимах: отладочном и оптимизирующем, включающем в себя набор независимых от платформы оптимизаций, таких как:

  1. продвижение переменных в регистры;
  2. понижение степени адресных выражений;
  3. глобальное продвижение констант;
  4. глобальное распределение регистров;
  5. удаление мёртвого кода;
  6. «планирование» инструкций (instruction scheduling).

позволяющих, в настоящее время, на 20 - 25% сократить объем выполняемого кода, первоначально сгенерированного отладочной версией компилятора. Для повышения эффективности выполняемого кода планируется включение в утилиту компилятора ряда зависимых от платформы оптимизаций.

Компилятор позволяет также создавать исполняемый код для различных режимов функционирования вычислительной архитектуры, то есть для штатного (скалярного) и SIMD- режима. Данные возможности открывают перед разработчиками достаточно широкие перспективы, т.к. снимают с них необходимость аппаратно-программной организации вычислительного процесса, оптимальность которого не всегда может быть достигнута.

Для увеличения области применения разрабатываемых аппаратно-программных средств и создания возможностей использования ПО, написанного на GNU C, компилятор поддерживает диалекты GNU C и GNU C++.

Существенным преимуществом компилятора "Интерстрон" является наличие в нем унифицированной системы подготовки и обработки отладочной информации. Данная система позволяет корректно визуализировать информацию о значениях переменных не только в отладочной, но и в рабочей версиях разрабатываемых программ. Данное свойство особенно ценно, когда возникает необходимость трассировать программу с использованием различных видов оптимизации.

Отладка программ в среде MCStudio-ECL

Рис. 2. Отладка программ в среде MCStudio-ECL

Результатом функционирования компилятора является текст на макроассемблере для сигнального процессора, что позволяет разработчику получить еще один инструмент для повышения эффективности создаваемого им ПО.

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

Таким образом, "Пакет" предоставляет разработчикам широкий спектр услуг по эффективному использованию вычислительных возможностей архитектуры сигнальных процессоров серии "Мультикор"