Перейти к содержанию
    

Вопросы чайника ADSP SHARC

Привет ув. специалисты!!!

 

Ситуация следующая. Занялся изучением DSP на примере ADSP-21363 от аналога. Выбрал я именно этот камень по причине того, что на рабочих платах нашего предприятия они активно применяются. Т.е. покупать китов не придется (деньги в общем экономлю)=))

 

Задачу я себе сформулировал следующую:

1. Запрограммировать процессор по SPI (так уж они у нас тут на всех платах шьются).

2. После запуска программы подергать одним из флагов.

 

На пути к решению этой задачи мной было сделано:

1. Скачал, крякнул VisualDSP 5.1 (Среда программирования имеется).

2. Запасся докой, а именно "ADSP-2136x SHARC® Processor Hardware Reference Includes ADSP-21362, ADSP-21363,ADSP-21364, ADSP-21365, ADSP-21366"

3. Соответственно аппаратная платформа с кристаллом имеется.

 

Трудности:

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

тактовую частоту выводить её на флаг. Внимание вопрос: Я так понимаю, что нужно проинициализировать системные регистры для корректной работы процессора, но не могу найти их в доке. Вы не подскажете может быть доку еще какую-то нужно или я плохо в этой ищу? Правильно ли я себе представляю работу программы, чтобы подергать флагом?

2. Хотел бы попросить ссылки с примерами или какая-то инфа есть все с теме же примерами.

3. Язык программирования я выбрал "С++"

 

Буду благодарен за любую помощь!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Запуском платформ не занимаюсь, работаю на прикладном уровне, но в директории, куда установлен Visual DSP, есть директория Examples, посмотрите там

2. С++ - это для embedded не гуд, в основном пишут на С (примеры, библиотеки и т.п. написаны на С), будете постоянно иметь проблемы с линковкой. Решаемо, но С++ здесь избыточен. ИМХО.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Запуском платформ не занимаюсь, работаю на прикладном уровне, но в директории, куда установлен Visual DSP, есть директория Examples, посмотрите там

2. С++ - это для embedded не гуд, в основном пишут на С (примеры, библиотеки и т.п. написаны на С), будете постоянно иметь проблемы с линковкой. Решаемо, но С++ здесь избыточен. ИМХО.

 

Спасибо большое за ответ!!

По поводу С++ понял, так считают многие....Думаю что не буду отличаться и сконцентрируюсь тоже на С.

Да, действительно...все гораздо проще оказалось. Благодарю за подсказку, буду внимательней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишу на С++ для SHARC на протяжении 12 лет и считаю, что разницы, что использовать C или С++ нет, на плюсах во много раз удобнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишу на С++ для SHARC на протяжении 12 лет и считаю, что разницы, что использовать C или С++ нет, на плюсах во много раз удобнее.

 

Возможно!

 

Я посмотрел примеры предлагаемые от Analog там С или asm. Если у вас есть примеры, то поделитесь пожалуйста. Может быть есть примеры на С.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Примеров нет, т.к. это работа. Могу сказать только одно компилятор для SHARC достаточно приличный и вообще-то он C++, режим C включается по расширению и/или после установки флагов для компилятора. Принципально не важно, на чем вы пишите С или С++, но могу вас уверить, что если вы выбираете для работы SHARC разницы вы не увидете. Размер кода на C и С++ конечно будет разный, для проекта (a+B), но при написании программы в пару тысяч строк на С или С++ вам будет все равно. И еще раз хочу сказать именно для этой платформы выбор С или С++ значения не имеет, т.к. практически использовать наработки от PC или похожей платформы вы без изменения кода и без знания глюков компилятора и особенносте конкретного процессора просто не сможете, я молчу про то, что весь код который должен исполняться во времени быстро вы будете писать на ассемблере, т.к. компилятор не всегда правильно понимает конструкции С и/или просто не может реализовать то, что вам надо. Использование языка высокого уровня в данном случае подходит только для описания неких логических ветвлений или кода инициализации. Могу сказать так, мной созданный проект живет уже много лет и включает ETH, USB, GUI все это написано на ++, а обращения к внешнему железу на asm.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишу на С++ для SHARC на протяжении 12 лет и считаю, что разницы, что использовать C или С++ нет, на плюсах во много раз удобнее.

 

Не холивара ради :)))

 

На вкус и цвет фломастеры, конечно, разные, но сам по себе С++ предназначен для облегчения написания больших проектов благодаря ООП (вопрос, о котором уже много лет идет спор) и большому количеству библиотек (тут споров меньше).

1. Большой проект для DSP представить себе затрудняюсь (например, реализация базовой станции GSM/UMTS проект небольшой (по сути DSP и предназначены для таких задач) по сравнению с какими-нибудь СУБД (желающих реализовать ORACLE на DSP пока не встречал :).

2. Большинство библиотек для PC использовать на DSP невозможно в силу слабости компилятора, небольшого объема памяти и т.п., а практически все библиотеки, ориентированные на DSP, реализованы на С.

 

Вот и получается, что в большинстве случаев использование C++ сводится к "С с классами", когда указатель на this передает не программист ручками, а компилятор.

 

Более 10 лет пишу и на С, и на С++. Раньше был горячим сторонником С++ и ООП, а на С писал "потому что система так построена", но с опытом пришел к выводу, что за небольшой синтаксический сахар плачу разгребанием всякого геморроя типа исключений, который выбрасывают библиотеки, несовместимостью компиляторов и т.д. Сейчас большинство новых проектов сразу пишу на С. Разве что по STL иной раз взгрустну...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не холивара ради :)))

 

На вкус и цвет фломастеры, конечно, разные, но сам по себе С++ предназначен для облегчения написания больших проектов благодаря ООП (вопрос, о котором уже много лет идет спор) и большому количеству библиотек (тут споров меньше).

1. Большой проект для DSP представить себе затрудняюсь (например, реализация базовой станции GSM/UMTS проект небольшой (по сути DSP и предназначены для таких задач) по сравнению с какими-нибудь СУБД (желающих реализовать ORACLE на DSP пока не встречал :).

2. Большинство библиотек для PC использовать на DSP невозможно в силу слабости компилятора, небольшого объема памяти и т.п., а практически все библиотеки, ориентированные на DSP, реализованы на С.

 

Вот и получается, что в большинстве случаев использование C++ сводится к "С с классами", когда указатель на this передает не программист ручками, а компилятор.

 

Более 10 лет пишу и на С, и на С++. Раньше был горячим сторонником С++ и ООП, а на С писал "потому что система так построена", но с опытом пришел к выводу, что за небольшой синтаксический сахар плачу разгребанием всякого геморроя типа исключений, который выбрасывают библиотеки, несовместимостью компиляторов и т.д. Сейчас большинство новых проектов сразу пишу на С. Разве что по STL иной раз взгрустну...

 

Большое спасибо за ваши мнения. Все же остановился на Си. И сейчас сижу упорно пытаюсь проинициализировать необходимые регистры чтобы флагом помигать. Если в эту тему есть какой-то материал буду благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...