Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-дек-15 03:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 2013-окт-14 12:37 
Не в сети

Зарегистрирован: 2012-фев-06 08:39
Сообщения: 11
Есть ли готовый демонстрационный пример по инициализации DSP ядра контроллера и его взаимодействию с RISC-ядром? Если есть (хотя бы простейший) прошу выложить в доступ (в данной теме). Заранее благодарен!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2013-окт-14 15:37 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 733
Откуда: АО "ПКК Миландр"
Пример взаимодействия двух ядер на основе прерываний от DSP к RISC.
Также необходимо прочитать readme.txt из архива.


Вложения:
RISC_DSP_communication_final.rar [229.6 КБ]
Скачиваний: 319
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2013-окт-15 11:49 
Не в сети

Зарегистрирован: 2012-фев-06 08:39
Сообщения: 11
Уважаемый Petr! Спасибо за предоставленный пример. В процедуре main RISC-проекта есть следующие закомментаренные процедуры, необходимые при вызове программы для DSP-ядра:
DownloadProgrammDSP(tms_prog,CODE_ADDR_ARM,DSP_CODE_SIZE);
DownloadRAMDSP(tms_data,DATA_ADDR_ARM,DSP_DATA_SIZE);
EnablePeriphDSP();
EnableCoreDSP();
Подскажите пожалуйста какие указать данные для tms_prog и tms_data и как их "привязать" к *.out-файлу программы DSP-ядра. Проект построен при помощи студии Keil.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2013-окт-16 09:15 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 733
Откуда: АО "ПКК Миландр"
Michail писал(а):
Уважаемый Petr! Спасибо за предоставленный пример. В процедуре main RISC-проекта есть следующие закомментаренные процедуры, необходимые при вызове программы для DSP-ядра:
DownloadProgrammDSP(tms_prog,CODE_ADDR_ARM,DSP_CODE_SIZE);
DownloadRAMDSP(tms_data,DATA_ADDR_ARM,DSP_DATA_SIZE);
EnablePeriphDSP();
EnableCoreDSP();
Подскажите пожалуйста какие указать данные для tms_prog и tms_data и как их "привязать" к *.out-файлу программы DSP-ядра. Проект построен при помощи студии Keil.

Мы делали следующим образом:
в режиме отладки сохраняли дамп памяти необходимых областей (программной, данных) в CodeComposerStudio в отдельные файлы;
далее из этих файлов формировали массивы данных и объявляли их как константы в Keil, а потом просто их перемещали в область программ/данных в DSP (после включения тактовых сигналов DSP-подсистемы).
Из *.out файла все необходимые данные тоже можно "вытащить", но как точно это сделать я вам подсказать не могу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-25 15:33 
Не в сети

Зарегистрирован: 2012-июн-01 14:12
Сообщения: 38
Доброго времени суток!

Разбирался с проектом RISC_DSP_communication_final , ситуация следующая:

1. Запуск CMA. С раскомментированной строкой «EnableCoreDSP();» В обработчике прерывание стоит точка останова.
Постоянно обрабатывается прерывание – ходить программа в этом обработчике
На отладчике J-Em горят PWR постоянно и RUN от запуска и до останова на точке отладки.
2. С закоменитрованной строкой «EnableCoreDSP();» в цикле «while» На отладчике J-Em горят PWR и RUN.

3. Запускаю CCS – Эффект тот же, вне зависимости от того ставлю ли точки останова в CCS.

Да, ещё в Setup CCS выбран симулятор C54x. Может в этом дело? Если да, то как надо настроить CSS.

Спасибо за ответы!

P.S. CMA -CodeMaster ARM 2.40.00; CCS -Code Composer Studio v.3.3


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-26 08:59 
Не в сети

Зарегистрирован: 2012-июн-01 14:12
Сообщения: 38
Собственно считаю, что неправильно настроил Setup CSS.

Как необходимо его настроить для отладочной платы 1901ВЦ1Т?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-26 11:43 
Не в сети

Зарегистрирован: 2010-июн-04 13:52
Сообщения: 29
Откуда: АО "ПКК Миландр"
Алгоритм писал(а):
Доброго времени суток!

Разбирался с проектом RISC_DSP_communication_final , ситуация следующая:

1. Запуск CMA. С раскомментированной строкой «EnableCoreDSP();» В обработчике прерывание стоит точка останова.
Постоянно обрабатывается прерывание – ходить программа в этом обработчике
На отладчике J-Em горят PWR постоянно и RUN от запуска и до останова на точке отладки.
2. С закоменитрованной строкой «EnableCoreDSP();» в цикле «while» На отладчике J-Em горят PWR и RUN.

3. Запускаю CCS – Эффект тот же, вне зависимости от того ставлю ли точки останова в CCS.

Да, ещё в Setup CCS выбран симулятор C54x. Может в этом дело? Если да, то как надо настроить CSS.

Спасибо за ответы!

P.S. CMA -CodeMaster ARM 2.40.00; CCS -Code Composer Studio v.3.3


В Setup CCS должен стоять JEM-MultiChip.drv Необходимо установить его и настроить в качестве активного в разделе "My System"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-26 14:10 
Не в сети

Зарегистрирован: 2012-июн-01 14:12
Сообщения: 38
Спасибо, совет помог!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-апр-16 15:00 
Не в сети

Зарегистрирован: 2013-дек-19 09:39
Сообщения: 19
Не получается запустить DSP ядро с помощию "RISC_DSP_communication_final" на отладочной плате 1901ВЦ1Т.
Что я делаю не так?

1) Открываю проект в CMA.
2) Добавляю в настройке проекта путь к /inc.
3) Ставлю точку останова на строчке ClockConfig().
4) Запускаю отладку.
5) Запускаю CCS3.2 с установленным JEM-MultiChip__8_11_2012
6) Открываю проект в CCS, нажимаю кнопку Build, затем кнопку Run (слева внизу CCS появляется надпись RUNNING и зелеленый огонек).
7) Перехожу в CMA.
8) Ставлю точку останова в обработчике прерывания от DSP
(строка DSP_IRQ->IRQ = 0x0001; //сброс 0-го прерывания от DSP к RISC)
9) Запускаю проeкт. Программа висит в цикле while(1) функции main;, а прерывание от DSP не приходит.


Последний раз редактировалось Андрей33 2014-май-23 12:37, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-апр-29 14:43 
Не в сети

Зарегистрирован: 2012-ноя-07 08:16
Сообщения: 10
Здравствуйте! Пытаюсь прошить из RISC ядро DSP и столкнулся с такой проблемой: после загрузки программы DSP начинает отвечать на запросы RISC (аналогично Вашему примеру), потом прекращает и также прекращает работать цикл main. Есть подозрение что я не все нужные байты копирую в DSP. Я копирую DSP программу с адреса 0x8200 массивом в 1000 элементов по 2 байта
Код:
MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
PAGE 0:
  PRAM                  00008200   00001388  000000d7  000012b1  RWIX
  VECS                  0000ff80   00000080  00000077  00000009  RWIX

PAGE 1:
  REGS                  00000000   00000080  00000001  0000007f  RWIX
  DATA                  00000100   00001400  00000036  000013ca  RWIX
  STACK                 00001600   00000170  00000170  00000000  RWIX
  DATA_B                0000a540   00005abf  00000001  00005abe  RWIX

по тому же адресу и записываю. Может что-то еще надо передавать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-апр-30 11:05 
Не в сети

Зарегистрирован: 2010-июн-04 13:52
Сообщения: 29
Откуда: АО "ПКК Миландр"
Андрей33 писал(а):
Не получается запустить DSP ядро с помощию "RISC_DSP_communication_final" на отладочной плате 1901ВЦ1Т.
Что я делаю не так?

1) Открываю проект в CMA.
2) Добавляю в настройке проекта путь к /inc.
3) Ставлю точку останова на строчке ClockConfig().
4) Запускаю отладку.
5) Запускаю CCS3.2 с установленным JEM-MultiChip__8_11_2012
Изображение
6) Открываю проект в CCS, нажимаю кнопку Build, затем кнопку Run (слева внизу CCS появляется надпись RUNNING и зелеленый огонек).
Изображение
7) Перехожу в CMA.
8) Ставлю точку останова в обработчике прерывания от DSP
(строка DSP_IRQ->IRQ = 0x0001; //сброс 0-го прерывания от DSP к RISC)
9) Запускаю проeкт. Программа висит в цикле while(1) функции main;, а прерывание от DSP не приходит.

Рекомендуется использовать CCS 3.3 тк драйвера JEM-MultiChip эмулятора работают нестабильно с версией CCS3.2 в силу beta версии последней.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-апр-30 12:17 
Не в сети

Зарегистрирован: 2010-июн-04 13:52
Сообщения: 29
Откуда: АО "ПКК Миландр"
Lebedev_Alex писал(а):
Здравствуйте! Пытаюсь прошить из RISC ядро DSP и столкнулся с такой проблемой: после загрузки программы DSP начинает отвечать на запросы RISC (аналогично Вашему примеру), потом прекращает и также прекращает работать цикл main. Есть подозрение что я не все нужные байты копирую в DSP. Я копирую DSP программу с адреса 0x8200 массивом в 1000 элементов по 2 байта
Код:
MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
PAGE 0:
  PRAM                  00008200   00001388  000000d7  000012b1  RWIX
  VECS                  0000ff80   00000080  00000077  00000009  RWIX

PAGE 1:
  REGS                  00000000   00000080  00000001  0000007f  RWIX
  DATA                  00000100   00001400  00000036  000013ca  RWIX
  STACK                 00001600   00000170  00000170  00000000  RWIX
  DATA_B                0000a540   00005abf  00000001  00005abe  RWIX

по тому же адресу и записываю. Может что-то еще надо передавать?

Для анализа проблемы нужно увидеть код под RISC загрузчика DSP и какие области PAGE 0,1 DSP Вы загружаете.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-май-12 08:52 
Не в сети

Зарегистрирован: 2012-ноя-07 08:16
Сообщения: 10
nikita писал(а):
Lebedev_Alex писал(а):
Здравствуйте! Пытаюсь прошить из RISC ядро DSP и столкнулся с такой проблемой: после загрузки программы DSP начинает отвечать на запросы RISC (аналогично Вашему примеру), потом прекращает и также прекращает работать цикл main. Есть подозрение что я не все нужные байты копирую в DSP. Я копирую DSP программу с адреса 0x8200 массивом в 1000 элементов по 2 байта
Код:
MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
PAGE 0:
  PRAM                  00008200   00001388  000000d7  000012b1  RWIX
  VECS                  0000ff80   00000080  00000077  00000009  RWIX

PAGE 1:
  REGS                  00000000   00000080  00000001  0000007f  RWIX
  DATA                  00000100   00001400  00000036  000013ca  RWIX
  STACK                 00001600   00000170  00000170  00000000  RWIX
  DATA_B                0000a540   00005abf  00000001  00005abe  RWIX

по тому же адресу и записываю. Может что-то еще надо передавать?

Для анализа проблемы нужно увидеть код под RISC загрузчика DSP и какие области PAGE 0,1 DSP Вы загружаете.


К сожалению, только сейчас смог добраться до рабочего компьютера. Прикладываю версии программ RISC и DSP ядер. Программа переключает PORTB Pin15 в цикле main и B13 по прерываниям таймера и ответа DSP. Т.к. при загрузке я не использую никаких переменных, то записываю в DSP только раздел PAGE0->PRAM.


Вложения:
winch_1.rar [352.28 КБ]
Скачиваний: 152
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-май-13 08:18 
Не в сети

Зарегистрирован: 2012-ноя-07 08:16
Сообщения: 10
Пока ждал ответа, разобрался в проблеме. Я так понял, что помимо записи PRAM в область PAGE0 нужно записывать еще и REGS в область PAGE1. Причем если использовать для этого функцию DownloadRAMDSP, то нужно изменить константу начального адреса на 0x30000000.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-июл-28 11:05 
Не в сети

Зарегистрирован: 2014-июл-28 10:25
Сообщения: 23
Добрый день. Не сразу завелся этот пример (в случае запуска DSP из RISC). В config.c нембходимо строчку DSP_CLK->CLKMD=0xFE50; //Enable DSP Clock поставить выше функции сброса DSP подсистемы - это конечно же описано в документации, но пример оказался не рабочим.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB