|
TMS320 - начало пути, Прошу помощи в освоении |
|
|
|
Nov 16 2009, 17:09
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 4-04-08
Пользователь №: 36 480

|
Есть задача и желание разобраться и освоить работу c TMS320. Первый заход в поисковики и форумы - выдал примерную картину для меня: "обсуждения каких-то конкретных проблем есть, решения есть - но такое ощущение что все как бы сразу уже умеют работать с ними, а начального уровня нигде не увидел". Для освоения данных процессоров есть простая задача: сделать на базе тмс320 цифровой фильтр н-ого порядка. Первый вопрос который сразу же задал себе - чем и как программировать, среда разработки и т.п. Вообще куча вопросов (потому что опыта работы с ними нет вообще, есть большой опыт проектирования девайсов на авр - там то инфы было завались). Надеюсь что поможете добрым словом, и данный тред будет полезен таким же новичкам 1. Среда разработкиНу тут вроде все прозрачно, почти все упоминания сводятся к Code Composer Studio. Вроде все хорошо тут и на си кодится ) 2. ПрограмматорВот здесь у меня оооочень большие вопросы и сомнения. Схем программаторов как таковых не нашел вообще нигде, на форумах у всех есть тестовые-платы которые стоят очень много и заводские программаторы-эмуляторы, которые стоят ещё дороже. Единственное что нашел так это Olimex TMS320-JTAG программатор-эмулятор + на форуме по нему отзывы тоже разношерстные. В общем я очень сильно задаюсь вопросом - как прошивать-то?. Или я действительно оплошался, наивно полагая что заказав сэмпл проца с техаса и спаяв/купив дешевый программатор можно начать работать? 3. Какой проц взять?Из вашего личного опыта - с каким семейством проще начать работу и изучение? Пока склоняюсь, что надо заказывать TMS320FC28xx - исходя только из тех соображений, что именно их можно прошивать бюджетным программатором от Olimeх. 4. Примеры, схемыИ ещё один нюанс который не очень нравиться - почти нет схем, примеров проектов на данных процах. Все юзают отладочные платы, которые мне не под силу достать. Хоть парочку бы простеньких реализаций, посмотреть обвязку, как программить и подключать - хоть что-то. В даташите тоже ооочень скудно. Так что вот, пока смотрю как на большой черный ящик, у которого приоткрыл крышку - но пока все равно ничего не видно. Но желание осилить это дело есть - прошу добрых людей направить в нужную сторону и помочь добрым постом )
|
|
|
|
|
Nov 16 2009, 17:48
|

Местный
  
Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064

|
1) Если писать алгоритмы ЦОС, то писать на ассемблере 2) Грузить и прошивать можно разными способами, в том числе и через RS232. Софт для этого наверное можно найти на spectrumdigital.com. Про способы загрузки и прошивки есть пдфки на сайте техасцев. Вообще, у них на сайте можно найти много чего полезного. Есть простенький эмулятор XDS100. На сайте техаса выложена схема данного устройства - можно собрать самому, либо купить, благо стоит он 79$. Для начала пойдет. 3) 28хх больше ориентированы на управление двигателями и источниками питания и являются больше МК, чем ЦСП. Если нужно реализовывать алгоритмы ЦОС, то стоит обратить внимание на С5000 и С6000. Хотя в последнее время и среди 28хх появились интересные камни. 4) Куча разных примеров есть на сайте ti.com. На spectrumdigital.com можно найти схемы отладочников.
Но для начала стоит определиться, для каких целей предполагается использовать процессор. Потом выбрать семейство, а дальше будет легче со всем остальным.
UPD. Сечас sigmaN еще подкинет дровишек )
|
|
|
|
|
Nov 16 2009, 17:59
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
http://focus.ti.com/docs/toolsw/folders/pr...dx28027usb.htmlСтоит около 40баксов. Выглядит как флэшка, там на плате сразу контроллер и эмулятор. Можно и шить и отлаживать(хотя и медленно, конечно). Ну самоделок вы не найдете наверное....это ж не АВР всё таки  тут бабки делаются на всём чем можно.  Ну и искать нужно если чисто для C2000 - то цена будет ниже соответственно. с TMS320 начинается очень много процов. По С2000 это ИМХО самый дешевый вариант. 40$ Конечно, полноценная отладочная плата от Спектрум Дигитал за 500 баксов это может быть дороговато, но зато там реально БЫСТРЫЙ эмулятор на борту и некоторая переферия имеется.... Т.е. цена конечно завышена, спору нет, но зато это удобно  Купите ezDSP F28335 один раз и сможете много чего попробывать(на много круче, чем просто фильтр)...... Added: эх. Опять опередили, пока мой ADSL переподключался  А чё, в C2000 тоже неплохая DSP цифромельница стоит. Многое можно на ней обкатать. А ежели ещё проц с FPU сразу взять - так и ваще сказка. Другое дело, что памяти маловато и флэш тормознутая - это ДА
--------------------
The truth is out there...
|
|
|
|
|
Nov 16 2009, 18:52
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zi4rox @ Nov 16 2009, 20:09)  2. Программатор Вот здесь у меня оооочень большие вопросы и сомнения. Схем программаторов как таковых не нашел вообще нигде Ну плохо искали. Я довольно давно выкладывал. http://projects.caxapa.ru/?ID=6 И его суть - внутрисхемный отладчик, а не програмамтор, программировать/грузить можно почти все процы через их разнообразные интерфейсы, SPI, UART, USB, I2C, у кого что есть. Кстати, сейчас в принципе возможно убрать из схемы ACT8990, у меня уже есть решение для размещения внутри ПЛИС, но нет стимула возиться. Цитата(zi4rox @ Nov 16 2009, 20:09)  3. Какой проц взять? Из вашего личного опыта - с каким семейством проще начать работу и изучение? Пока склоняюсь, что надо заказывать TMS320FC28xx - исходя только из тех соображений, что именно их можно прошивать бюджетным программатором от Olimeх. Возьмите TMS320VC5509 или 5507. Их можно грузить просто через их же USB без каких либо программаторов. И для запуска ему достаточно питания и кварца 12-мгц-ового. Для старта самое то. А на 28хх пересядете если что легко. Цитата(kamil yaminov @ Nov 16 2009, 20:48)  1) Если писать алгоритмы ЦОС, то писать на ассемблере Ага, особенно под 6000-ки  Крышу на раз сносит!
|
|
|
|
|
Nov 17 2009, 08:50
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 17-05-06
Пользователь №: 17 198

|
Да не обидится на меня zi4rox создавший тему. У меня аналогичная ситуация со знаниями по этому DSP, но вопрос другой: как считать память из флэш? Уж и чем только не пробовал, везде erase, program, verify есть, а read нет. Почему? И как это можно сделать? В наличии TMS320F2811, XDS510, CCS4, SDFlash, SDConfig. Спасибо.
|
|
|
|
|
Nov 17 2009, 09:39
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 17-05-06
Пользователь №: 17 198

|
Да да. Сам перечитал, улыбнулся, но, подумал, ведь профи-то меня поймут. В CCS4 есть Tools->On-Chip Flash. Раскрывается закладка, а там Erase, Program, Verify. Чуть ниже Program, Verify и еще ниже Load RAM only. И все.
|
|
|
|
|
Nov 17 2009, 11:04
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 17-05-06
Пользователь №: 17 198

|
Уррря. Нашел. View->Memory, откроется окно, а тум уж правой мышкой выбрать. Казалось бы просто, но с наскока не видел пока с каждой кнопочкой не разобрался. Собственно, задавал вопрос только для того, чтобы вдруг не искать долго и нудно то, чего нет и не предусмотрено. Когда сказали есть, стал искать. Спасибо за помощь.
|
|
|
|
|
Nov 18 2009, 14:00
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 4-04-08
Пользователь №: 36 480

|
Начальный курс понял - закажу процы, проштудирую дш, и буду уже ручками пробывать. Тогда уже конкретные вопросы будут. спасибо
|
|
|
|
|
Dec 10 2009, 10:48
|

Частый гость
 
Группа: Свой
Сообщений: 86
Регистрация: 22-03-07
Из: Санкт-Петербург
Пользователь №: 26 406

|
Цитата(kamil yaminov @ Nov 16 2009, 20:48)  1) Если писать алгоритмы ЦОС, то писать на ассемблере Голословно.
|
|
|
|
|
Jan 9 2010, 14:28
|
Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688

|
Добрый день! С TMS320VC5507 при загрузке через USB возникла следующая проблема - процессор не определяется компом. Для загрузки, следуя инструкциям из мануала, выполняю следующие шаги : 1. Включаю питание 2. Перевожу проц в режим загрузки с USB 3. Делаю сброс проца после сброса никаких эмоций... если линии данных USB подтянуть к 3.3В ( D- через 1.5К, D+ через 1М резисторы), то появляется неизвестное устройство с пустыми вид и пид, что естественно ни о чем не говорит... Уровни напряжений на линиях данных - 0,5 на D- и 0 D+ USBVdd = Vdd = 3,33В. CVdd = 1,26В. кварцевый резонатор стоит на 12 МГц. соответственно, возникло несколько вопросов : 1. +5В от USB не подключено никуда? 2. PU ( через 1,5К подключено к D+, по даташиту ) должно быть внутри проца соединено с 3,3В, однако даже при отключенном шнуре USB, на данном пине этими 3,3 В и не пахнет... Каюк USB модулю в проце? P.S. Отсутствие КЗ или непропаев исключено - проверял множество раз уже...
|
|
|
|
|
Jan 11 2010, 17:35
|

пуля
   
Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959

|
Всем добрый день! Вот смотрю в сторону TMS320F28234 и понять не могу по поводу частоты переключения "ног". Может кто нить пояснить? Вот в даташите написанно мол скорость на выход макс 25 МГц, а на вход? там чёт такое написанно, а разобраться не могу... Если кому не трудно, поясните пжлст. Дело в том что хочу ентот камень на ацп 20MSPS подключить. Вот думаю буду ли я успевать читать с портов? Или может какой другой камень лучше подойдёт?
|
|
|
|
|
Jan 15 2010, 21:03
|
Частый гость
 
Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821

|
1) Обычно у таких АЦП LVDS выходы, а у DSP'ков вроде как нет LVDS интерфейсов. 2) Для работы со скоростными интерфейсами лучше применить ПЛИС, возможно даже FPGA (в них и поддержка LVDS имеется). 3) В даташите пишут: If QUALPRD = 00, then the sampling period is 1 SYSCLKOUT cycle, т.е. при отключении входного "фильтра", частота опроса равна 150 МГц.
--------------------
Чудес не бывает - бывает мало знаний и опыта!
|
|
|
|
|
Jan 20 2010, 12:36
|
Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688

|
Добрый день! Получилось завести железяку tms320vc5507, определятся через USB, грузится и через SPI EEPROM и через USB. Возник вопрос по программированию - как выставлять данные на линии D0-D15 (как при использовании EMIF, так и при HPI)? насколько я понял - регистры связанные с данными интерфейсами содержат только флаги управления и состояния. В CSL обнаружил функции только для конфигурирования (( Подскажите пожалуйста.
|
|
|
|
|
Jan 20 2010, 12:57
|
Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688

|
Спасибо!
|
|
|
|
|
Jan 23 2010, 01:22
|
Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688

|
Возник новый вопрос по TMS320VC5507/09A  Существует ли возможность однократного вывода данных на линии D0-D15? Другими словами мне необходимо на данные линии в произвольные моменты времени выводить некоторые данные. Возможно ли это реализовать и если да то как лучше?
|
|
|
|
|
Jan 23 2010, 09:42
|
Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688

|
Грубо говоря - да, на манер GPIO. Ведь когда данные выводишь через EMIF, он начинает последовательно перебирать содержимое отведенной памяти. Что данные линии (Д0-Д15) линиями GPIO не являются я знаю, но возможно существует какой-либо фокус с конфигами EMIF или с использованием однократного DMA DARAM -> EMIF, чтобы их можно было использовать как таковые?
|
|
|
|
|
Jan 23 2010, 10:31
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Сигналы данных и управления так использовать не представляется возможным. А вот сигналы шины адреса - A15...A0 - можно, переключив режим в регистре EBSR на DATA EMIF или MULTIPLEXED HPI. Цитата Ведь когда данные выводишь через EMIF, он начинает последовательно перебирать содержимое отведенной памяти Извините, но это какой-то бред. EMIF сам никогда и ничего перебирать не начинает. Сделали один вывод в адресное пространство, соответствующее EMIF-у, он, EMIF, сгенерировал один цикл доступа в внешнюю память. А вот останется ли после этого цикла линия данных в том состоянии, в котором была во время цикла - смотрите осциллографом. Возможно и останется, там есть bus holder-ы. А возможно и нет... Никто не обещает.
|
|
|
|
|
Jan 24 2010, 11:52
|
Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688

|
Поначалу разбирался с tms320vc5502, там половину линий данных можно под пользовательские нужды задействовать, потому никак не мог предположить что такая засада может быть  Хранители действительно как-то странно работают здесь... В итоге решил оставить в покое эти Д0-Д15 и использовать преобразователь I2C -> параллельные 8/16 бит. Для поставленной задачи производительности I2C за глаза. Спасибо всем за ответы!!!
Сообщение отредактировал segnetik - Jan 24 2010, 11:59
|
|
|
|
|
Jan 28 2010, 11:43
|

Местный
  
Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064

|
Спрошу и я. Никак не могу сообразить как заинлайнить функцию. Процессор F2809. В хидере пишу вот такое: Код inline void CanWrite(Uint16 CHAN_NUMBER, TCAN_DATA *DATA); В сишном файле вот такое: Код inline void CanWrite(Uint16 CHAN_NUMBER, TCAN_DATA *DATA) { //тут код, который запихивает данные в дата-регистры меэйлбокса } Компилятор, соответственно ругается матом, говорит, что function "CanWrite" was declared but never referenced. Что почитать? Керниган и Ритчи по этому поводу молчат. Понимаю, что K&R C не самой последней свежести, хочется поднять свой уровень с быдлокодерства чутка повыше ). PS. Товарищам модерам: может данную тему закрепить как важную сверху, чтобы тут те кто присматривается/начинает спрашивали/читали, дабы каждый раз не плодить новую тему?
|
|
|
|
|
Jan 28 2010, 12:09
|

Местный
  
Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064

|
Да вроде используется она, в другом месте: есть сишный файлик с основным циклом, там делаю: Код #include "CAN.h" ....... CanWrite(AnswerTx, &TxData); ....... CAN.h - это там, где объявлена функция CanWrite
|
|
|
|
|
Jan 28 2010, 13:28
|
.NET developer
  
Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532

|
тело inline-функций должно размещаться в месте объявления. вот это все должно быть написано в хедэре: Код inline void CanWrite(Uint16 CHAN_NUMBER, TCAN_DATA *DATA) { //тут код, который запихивает данные в дата-регистры меэйлбокса } дядька Страуструп об этом писал английским по белому.
|
|
|
|
|
Oct 17 2010, 12:35
|
Группа: Новичок
Сообщений: 1
Регистрация: 22-12-08
Пользователь №: 42 672

|
Ребят, очень надеюсь, что тема не умерла. Прошу помощи по TMS320VC5506. Где можно посмотреть любой готовый проект на данном (или хотя бы из серии C55xx) процессоре? Интересует банальный запуск сего камня с загрузкой через USB, т.е. что и как нужно в нем запитать (в частности, питание 1.2 вольта относится ТОЛЬКО к ядру и модулю USBPLL? т.е. управление всеми логическими уровнями (в т.ч. GPIO для выбора boot-loader'а) производится с помощью +3.3 В? какие еще выводы (кроме RESET и вышеупомянутых EMU0,1) нужно повесить на "1" (или "0"))?
Сообщение отредактировал C-r-o-w - Oct 17 2010, 12:36
|
|
|
|
|
Oct 19 2010, 06:29
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 21-09-10
Пользователь №: 59 621

|
Возникла проблема при программировании CAN в TMS320F2812. Решил руководствуясь даташитом настроить CAN и отправить данные -- отправка в шину не идёт. Скачал пример sprc097 ecan_back2back, изменил в нём бит STM=0 -- тот же результат. Может кто-нибудь сталкивался с программированием CAN и есть рабочие проекты, как увидеть хоть что-нибудь на выходе? И ещё вопрос: необходимо ли подключать на шину хотябы одно устройство CAN чтобы пошла передача от модуля CAN в TMS?
|
|
|
|
|
Jan 20 2011, 19:44
|
Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 26-04-09
Из: Москва
Пользователь №: 48 283

|
Цитата(Fedor_spb-2 @ Nov 17 2009, 14:04)  Уррря. Нашел. View->Memory, откроется окно, а тум уж правой мышкой выбрать. Казалось бы просто, но с наскока не видел пока с каждой кнопочкой не разобрался. Собственно, задавал вопрос только для того, чтобы вдруг не искать долго и нудно то, чего нет и не предусмотрено. Когда сказали есть, стал искать. Спасибо за помощь. Уважаемый Fedor_spb-2, подскажите, как вам удалось скачать программу из памяти? У меня в указаном окне все элементы неактивны!
|
|
|
|
|
Nov 21 2011, 12:31
|
Группа: Новичок
Сообщений: 2
Регистрация: 21-11-11
Пользователь №: 68 432

|
Ломаю прошивку для TMS320C28xx под Code Composer Studio. Прошивка мне досталась "в наследство" от ушедшего сотрудника.
Суть проблемы: На данный момент отведено под прошивку только три сектора памяти, а сама прошивка вылезла за пределы. Необходимо подцепить четвёртый сектор. Кто может внятно рассказать где и как это сделать? Заранее спасибо.
|
|
|
|
|
Nov 21 2011, 12:39
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 30-06-10
Пользователь №: 58 210

|
Цитата(Spinch @ Nov 21 2011, 15:31)  Ломаю прошивку для TMS320C28xx под Code Composer Studio. Прошивка мне досталась "в наследство" от ушедшего сотрудника.
Суть проблемы: На данный момент отведено под прошивку только три сектора памяти, а сама прошивка вылезла за пределы. Необходимо подцепить четвёртый сектор. Кто может внятно рассказать где и как это сделать? Заранее спасибо. У Вас исходники есть или нет?
|
|
|
|
|
Nov 21 2011, 13:06
|
Группа: Новичок
Сообщений: 2
Регистрация: 21-11-11
Пользователь №: 68 432

|
Цитата(Matic @ Nov 21 2011, 15:39)  У Вас исходники есть или нет? Исходники в полном объёме. Их и дорабатываю. Правда пока не постиг полного дзена приходится консультироваться у гуру  Нашел файл f2812.cmd Вроде интересубщее место тут: Код SECTIONS { /* Allocate program areas: */ .cinit : > FLASHB PAGE = 0 .pinit : > FLASHB, PAGE = 0 .text : > FLASHC PAGE = 0 codestart : > BEGIN PAGE = 0 ramfuncs : LOAD = FLASHC, RUN = RAML0, LOAD_START(_RamfuncsLoadStart), LOAD_END(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), PAGE = 0
csmpasswds : > CSM_PWL PAGE = 0 csm_rsvd : > CSM_RSVD PAGE = 0 собственно текст ошибки: Код <Linking> >> error: can't allocate ramfuncs, size 00000360 (page 0) in FLASHC (avail: 00000331) >> error: errors in input - ./Debug/iss.out not built
>> Compilation failure ---------------------------------------------------------------------------------------------- UPD: Всем спасибо, что выслушали. Внимательное прочтение всоего же сообщения выявило подсказку sm.gif Вроде всё заработало после переноса ramfuncs в сектор D
Сообщение отредактировал Spinch - Nov 21 2011, 13:07
|
|
|
|
|
Dec 14 2011, 07:47
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Всем доброго времени суток. Осваиваю TMS320F2808 всего пару недель, есть несколько вопросов по тактам и по реализации точных временных задержек. ЦСП установлен на планке, заводском контрольном модуле под DIMM100, отладочной плате кто-то приделал ноги, поэтому сделал свою, программирование и отладка в CCS4.1.3 через XDS100V2 USB JTAG, DSP/BIOSа нету.
Тестовая небольшая программка моргает парой светодиодов в разных режимах. В ней реализована обычная программная задержка, прерывания все отключены. Частота кварца 20МГц, SYSCLKOUT проца 10МГц, выход внешнего такта 10/4=2.5МГЦ (точно измерено), то есть все по умолчанию.
В автономке JTAG отключен, общая программа записана во флэш (конвейер отключен), но подпрограмма задержки при инициализации копируется один раз в RAM L0 и там выполняется все время (проверено дизассемблером). Подпрограмка задержки на С простая. ------------------------------------------------ void delay_loop(Uint32 tmp) { do{ tmp--;} while (tmp>0); } ----------------------------------------------- Соответствующий asm дизассемблера, цикл который крутится, от него в основном и зависит длительность задержки отрабатывает за 7 тактов, то есть по идеи за 0.7мкс на 10_МГц, цикл крутится 428571 раз (расчет 0.3сек)
m1: movb acc,#1 (1 такт) subl *-sp[2],acc (1 такт) movl acc,*-sp[2] (1 такт) sbf m1, NEQ (4 такта)
Но реально измеренная задержка больше расчетной на 30%, 0.4с вместо 0.3с. Почему? Выходит, что доступ к RAM L0 работает с циклами ожидания? хотя в даташите написано 0-wait? Либо какая-то команда выполняется больше, чем 1 такт?
|
|
|
|
|
Dec 14 2011, 09:32
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Так я и измеряю на больших задержках на ножке порта, я в курсе, что порт не сможет отработать микросекунды. Но отработать несколько герц порт явно сможет.  Вопрос в другом, почему проц не выполняет команды за те такты, что написаны в даташите?
|
|
|
|
|
Dec 14 2011, 10:46
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Конечно учитываю, 4 цикла на условный переход sbf (метка), NEQ (4 такта) Конвейер выборки из флэш отключен, если вы про это, но так как программка работает из RAM, может быть так, что конвейер там свой и не отключается? В доках по этому поводу ничего не сказано.
|
|
|
|
|
Dec 14 2011, 13:47
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Ну вот я делал тестовый проект на F2808, загрузка с флэш, запись в RAM пользовательского кода, выход в GPIO. Только нужно поправить cmd-файл распределения памяти под свой ЦСП. Программа пока без прерываний, не разобрался с ними. Примерами не пользуюсь, а вытаскиваю из них нужный код, слишком много там лишнего мусора. По Piccolo есть интересные материалы для начинающих.Мой проект в CCS4
Led.zip ( 131.84 килобайт )
Кол-во скачиваний: 189
|
|
|
|
|
Dec 15 2011, 02:08
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Генератор я не настраивал, он работает на установках по умолчанию 10Мгц, половина частоты кварца, без синтезатора. Кстати в примерах как раз и делается много лишней работы по установке регистров значениями умолчанию. Зачем, если они после сброса и так находятся в этом состоянии. Файлы заголовков находятся в примерах DSP280x_common\include и DSP280x_headers\include. К ним нужно прописать путь в настройках CCS4 ( project/properties/C2000 compiler/include options/иконка add), тогда они появятся в директории Includes проекта. Оператор goto в данном случае делает банальный безусловный переход [SB (метка), UNC] можно и бесконечный for сделать, но в асме все равно будет тот же безусловный переход. Вообщем-то это моя первая программа на Си для контроллеров вообще, до этого на 51-ых и avr обходился ассемблером, так что за некоторую кривость програмки простите. Вообще заметил, что компилятор не воспринимает некоторые классические конструкции си, нельзя допустим объявлять переменную в цикле, например на такую конструкцию выдает ошибку, for(int i=0;i<10;i++).
|
|
|
|
|
Dec 15 2011, 13:18
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Так он и не должен так сразу компилится при копировании всего проекта, так как он рассчитан на F2808. Надо создать новый проект под ваш Piccolo 28027 контроллер и изменить следующее. 1. заменить хидеры в .с, кроме DSP280x_GlobalVariableDefs.c, его заменить своим из примеров, он не менялся. 2. DSP280x_CodeStartBranch.asm, в нем только отключается сторожевой таймер, думаю что его регистры в 28027 аналогичные. 3. DSP280x_Headers_nonBIOS.cmd заменить своим, не менялся 4. F2808.cmd по аналогии, обращая внимание на название областей, изменить свой, так как некоторых областей памяти в Piccolo нет. Разобрался таки с созданием и копированием таблицы прерываний PIE, кстати вот здесь есть кое-что по русски.
|
|
|
|
|
Dec 16 2011, 06:41
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
А должен ли? Если в свойствах CCS выбрана модель 28027, а cmd файл в проекте под 2808?
|
|
|
|
|
Dec 16 2011, 10:31
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Ну так пишите, что непонятно, будем вместе разбираться. Написал второй тестовый проект, делает тоже самое, но полностью через обработчик прерываний таймера Т0. На сей раз задержки соответствуют расчетным, оно и понятно, таймер все-таки. Но есть пара вопросов в основном по Си, в файле DSP280x_Default_Isr.c пустой выход из всех неиспользуемых обработчиков прерываний сделал через return, это обязательно или можно оставить функции пустые? И второй вопрос, в подпрограмме таймера T0 объявил переменные (файл Led2.c) как static, соответственно эти переменные не видны в функции main(), как бы их так объявить, чтобы ими можно было пользоваться вне подпрограммы прерываний?
Led2.rar ( 116.64 килобайт )
Кол-во скачиваний: 128
|
|
|
|
|
Dec 16 2011, 11:08
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952

|
оставляй пустые, return обычно когда функция какого то типа, чтобы возвращала какоето значение. Вообщем стандартными хидерами удобно пользоваться достаточно. По второму вопросу только на ум приходят переменную глобальной сделать. Ну или в шарпе давно писал прожку какуюто там через класс как то делал, но еще какойто служебное слово писал что то типа privat, но не уверен что тут так можно хотя по идее можно завести указатель на эту переменную, но опять же глобальный указатель и через него из любого места программы ссылаться на static, но всё приходит к одно му, что то должно быть глобальным.
кстати меня досих пор терзает вопрос, там всего три таймера, как модуль захвата и модуль PWM работают с этими таймерами или у них свои таймеры есть?
|
|
|
|
|
Dec 29 2011, 10:19
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Подскажите, как и чем через XDS100V2 прочитать прошивку из F2808 , с учетом того, что она не зашифрована. В CCS4 такой функции не нашел.
|
|
|
|
|
Dec 30 2011, 08:51
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Цитата(Andron77 @ Dec 29 2011, 14:19)  В CCS4 такой функции не нашел. Ищите лучше, где-то там есть запись куска памяти (любой, ОЗУ, флеши .. ) в файл.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jan 5 2012, 10:32
|
Группа: Новичок
Сообщений: 2
Регистрация: 5-01-12
Пользователь №: 69 189

|
Добрый день. Всех с Новым 2012 годом.
Проблема: вышел из строя DSP TMS320F241FNA, (100% пробит I/O PA3).
Примечание: на плате всего 3 таких DSP (плата от промышленного устройства, кот. необх. запустить), каждый DSP снабжен разъемом JTAG 2х7, (в каждом разъеме стоит перемычка TRST-GND). С DSP ранее сталкиваться не приходилось, только PLC и AVR (я электронщик с большим стажем, занимаюсь ремонтом промышленного оборудования, и многое мне знакомо).
Вопрос: хочу прикупить данный DSP (после праздников), а так же TMS320-JTAG (для прошивки). Скачал с сайта Ti CCS_V4.0 с ограничением по размеру кода, а так же SDFlash_v165 с патчем sdf241 (юзать буду что-то одно: мне нужно только слить и перезалить в новый проц прошивку). Кто может расписать по шагам неоходимые действия (в конце концов разберусь и сам, но хочется без лишнего гемора)?
Дополнение и возможные траблы: 1. Проц реально греется (горячее, чем два других), возможно с него не получится слить. 2. Большинство I/O всех процов соединены паралельно (возможно и прошивки у них одни), проверю (есть ли функция "compare"). 3. Если прошивка с защитой, то есть ли, в этом случае, возможность клонирования?
Заренее, спасибо.
|
|
|
|
|
Jan 10 2012, 08:02
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
На вход порта TMS320F2808 случайно попало 5в, вместо 3.3в, в результате контроллер греется так, что срабатывает защита у стабилизатора двойного питания, естественно проц не откликается, только замена.
|
|
|
|
|
Jan 19 2012, 11:43
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 16-05-07
Пользователь №: 27 774

|
Цитата(CDD @ Jan 5 2012, 14:32)  Добрый день. Всех с Новым 2012 годом.
Проблема: вышел из строя DSP TMS320F241FNA, (100% пробит I/O PA3).
Примечание: на плате всего 3 таких DSP (плата от промышленного устройства, кот. необх. запустить), каждый DSP снабжен разъемом JTAG 2х7, (в каждом разъеме стоит перемычка TRST-GND). С DSP ранее сталкиваться не приходилось, только PLC и AVR (я электронщик с большим стажем, занимаюсь ремонтом промышленного оборудования, и многое мне знакомо).
Вопрос: хочу прикупить данный DSP (после праздников), а так же TMS320-JTAG (для прошивки). Скачал с сайта Ti CCS_V4.0 с ограничением по размеру кода, а так же SDFlash_v165 с патчем sdf241 (юзать буду что-то одно: мне нужно только слить и перезалить в новый проц прошивку). Кто может расписать по шагам неоходимые действия (в конце концов разберусь и сам, но хочется без лишнего гемора)?
Дополнение и возможные траблы: 1. Проц реально греется (горячее, чем два других), возможно с него не получится слить. 2. Большинство I/O всех процов соединены паралельно (возможно и прошивки у них одни), проверю (есть ли функция "compare"). 3. Если прошивка с защитой, то есть ли, в этом случае, возможность клонирования?
Заренее, спасибо. лучше было взять xds100usb в терраэлектронике, - по цене примерно то же но проблем с ним нет. Можно ещё посмотреть в биосе конфигурацию порта LPT - EPP там итд.
--------------------
с polisoftlab.info
|
|
|
|
|
Feb 22 2012, 04:55
|
Группа: Новичок
Сообщений: 1
Регистрация: 22-02-12
Пользователь №: 70 405

|
Здравствуйте, я работаю на TMS320C24XX занимаюсь системами управления электродвигателями переменного тока, но они снятые с производства. Какой проц из новых моделей можноприменить в моём случае. Интересует быстродействующий шим и ацп, входы минимум под 2 датчика скорости. Пока склоняюсь к Piccolo или 28x Delfino™ Floating-point Series
Сообщение отредактировал Chip4ik - Feb 22 2012, 04:58
|
|
|
|
|
Feb 22 2012, 05:43
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952

|
Piccolo с двумя захватами посмотрите, или если асинхронник то QEP модуль чтобы был, это если вопрос цены важен производительность у них до 80MIPS (везде где видель её равняют с тактовой частотой у этих DSC). Ну а если цена особо не важна (рублей 400-800 разницы) применяёте Delfino, у него 12 ШИМ выходов(с различными решимами работы), 6 захватов, два QEP (ни разу не использовал, так как занимаюсь ВИРД, а не ассинхронниками), а вообще изучите Delfino, на Piccolo без труда перейти можно, а вот наоборот чуть подучить еще прийдётся., На ti.com зайдите посмотрите там достаточно подробная табличка с характеристиками что у каждого DSC есть. Можете посмотреть в сторону STM32F еще, если вопрос цены всётаки важен, там модуль аппаратного управления ассинхронником есть.
Сообщение отредактировал ELEKTROS - Feb 22 2012, 05:45
|
|
|
|
|
Jul 20 2012, 09:20
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Объясните, пожалуйста. Принес я на работу свою отладочную плату c TMS320C6455. Был с собой установочный диск с CCS и дровами. Начал установку CCS, как вывалилась ошибка (первый вложенный рисунок). ошибка говорит, что CCS уже был установлен (Предыстория: на работе пользую отладочную платку eZdsp TMS320F28335, когда учился ее крутить, тогда и установил CCS для нее). Решил не переустанавливать, как предлагалось в том диалоговом окне, т.к. уже установленный CCS более новой версии... Оставалось установить дрова для платы. После их установки появились ярлычки "6455 DSK CCStudio v3.3" и "6455 EVM CCStudio v3.3". Захожу по первому ярлыку, а он меня грузит еще проблемой (второй рисунок во вложении). Там посылают меня на ... переуказание используемого драйвера. Захожу в "Setup CCStudio v3.3", который раньше использовался для конфигурирования eZdsp TMS320F28335, там уже вижу такую картину (третий рисунок во вложении) вопрос: вроде ж само все стало автоматически (как я понял после установки драйверов), так почему не запускается CCS? и как побороть? естественно у меня не один CCS с полными правами и полной лицензией, а два CCS (бесплатных, но как-то обрезанных), идущих в комплекте с двумя разными DSK. Они не могу существовать одновременно на одном компе ??? Делаю все, как, например, в пособии Connecting Code Composer Studio to a TMS320C2000 Device со стр.3 пункты 1-6.
Сообщение отредактировал beaRTS - Jul 20 2012, 09:50
Эскизы прикрепленных изображений
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 20 2012, 15:38
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Я так думаю, что был указан одинаковый путь для установки как и для той, так и для этой версии. В результате ярлыки то разные, а вот одно переписало другое.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jul 20 2012, 17:31
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(SAURIS GmbH @ Jul 20 2012, 18:38)  Я так думаю, что был указан одинаковый путь для установки как и для той, так и для этой версии. дык, я устанавливал только драйверы (после установки драйверов для платы C6000 появилсиь дополнительные ярлыки "6455 DSK CCStudio v3.3" и т.д.) .. так что CCS для С6000 я не устанавливал. или Вы как раз-таки говорите про драйверы ?
Сообщение отредактировал beaRTS - Jul 20 2012, 17:31
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 20 2012, 17:38
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
упс. сорри.
У Вас вот что получилось. Вы поставили дрова для неподдерживаемого семейства в ограниченную версию композера, которая бесплатно шла с отладкой, но с другой. Два варианта - или установить другой ограниченный композер целиком в другую директорию, или поставить полный композер, а в него потом нужные дрова (но они там уже скорее всего изначально будут).
Сообщение отредактировал SAURIS GmbH - Jul 20 2012, 17:42
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jul 20 2012, 17:42
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(SAURIS GmbH @ Jul 20 2012, 20:38)  упс. сорри.
У Вас вот что получилось. Вы поставили дрова для неподдерживаемого семейства в ограниченную версию композера, которая бесплатно шла с отладкой. Два варианта - или установить другой ограниченный композер целиком в другую директорию, или поставить полный композер, а в него потом нужные дрова (но они там уже скорее всего изначально будут). огромное спасибо!!! а то сегодня весь день убил на поиски решения. более приемлемый для меня вариант - установить второй композер), т.к. полный - это накладно по денюжке (в плане лицензии)
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 21 2012, 05:49
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(beaRTS @ Jul 20 2012, 20:42)  более приемлемый для меня вариант - установить второй композер), итог такой, setup не дает установить поверх установленного композера еще один, но для другой платы, т.е. setup даже не запускается , где б я мог изменить папку установки, чтоб две версии (под разные платы имею в виду) композера не конфликтовали... как то непродумано у них данная ситуация. либо у меня руки кривые =), но имхо все должно быть интуитивное понятно, чтоб пользователи любили продукты компании (Apple же не зря любят - говорят, сам не знаю)... решил один удалить, другой поставить Как я полагаю, это все из-за того, что в комплекте с отладочными платами хоть и идет бесплатный композер, но он так хитро вы..... думанно обрезан, что не позволяет модифицировать настройки композера, задаваемые при в ходе в программу по ярлыку "Setup CCStudio v3.3", т.е. нельзя установить дрова под другую плату (проц), не относящиеся к данной версии композера.. =( вот такая печалька, друзья.
Сообщение отредактировал beaRTS - Jul 21 2012, 05:45
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 21 2012, 06:38
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Ну во первых изменить папку сетап 3.3 композера всегда дает, значит пропустили где, или запускали сетап не композера, а какой-то другой сетап (пакета программ платы наверное), который из-под себя его запускает. Поищите на диске, где именно находится сетап самого композера. У меня их для тестов понаставлено штук так целая куча. А во вторых, все же, что не дает поставить полный? Он не требует никакого "лечения", никаких регистраций, в отличие от 4 и 5, ставь и пользуй.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jul 21 2012, 06:54
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(SAURIS GmbH @ Jul 21 2012, 09:38)  А во вторых, все же, что не дает поставить полный? Он не требует никакого "лечения", никаких регистраций, в отличие от 4 и 5, ставь и пользуй. я значит криво понял.. Ставлю же на рабочий комп: а мы используем только лицензионное ПО. И как понял, эти композеры, что в комплекте с платами идут, можно ставить без зазрения совести (без всяких виртуалок). А думал, что ставить полный CCS v3.3 - табу... Как то так. На полный разве нет лицензии? т.е. я могу с торррента скачать и установить спокойно, и потом ни кто по голове не настучит, типа IT-службы. ?????
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 21 2012, 07:06
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
На полный лицензия на самом деле есть (на бумаге), он покупается. Но в нем нет никакой защиты от запуска, никаких кодов, файлов лицензий и т.п. А настучат или нет это не ко мне.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jul 21 2012, 07:10
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(SAURIS GmbH @ Jul 21 2012, 10:06)  На полный лицензия на самом деле есть (на бумаге), он покупается. не хочу никого подставлять на работе.. сейчас еще головой об стену побьюсь, помучаюсь... тема еще не закрыта, так что не забывайте, пожалуйста =) . получилось запустить "6455 DSK CCStudio v3.3" только после второй переустановки.. вроде все нормально. буду dsp/bios изучать. спасибо за помощь
Сообщение отредактировал beaRTS - Jul 21 2012, 07:48
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 23 2012, 09:13
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(beaRTS @ Jul 20 2012, 12:20)  Объясните, пожалуйста.
вопрос: вроде ж само все стало автоматически (как я понял после установки драйверов), так почему не запускается CCS? и как побороть? естественно у меня не один CCS с полными правами и полной лицензией, а два CCS (бесплатных, но как-то обрезанных), идущих в комплекте с двумя разными DSK. Они не могу существовать одновременно на одном компе ??? Звонил добрый человек из СкантиРУС. мило побеседовали. Он дал однозначный ответ, что со всеми отладочными платами идет обрезанный, кастрированный композер и, если имеешь несколько отладочных плат, то нет возможности установить одновременно на комп два "кастрата" =) как-то так). так что смело удаляйте прошлый композер и ставьте нужный, а потом понадобилась другая плата, удаляйте установленный и ставьте композер для другой платы.
Сообщение отредактировал beaRTS - Jul 23 2012, 09:17
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 23 2012, 09:27
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
странно это, я точно как-то поставил два композера - для 6711 DSK и для 6416 DSK на разные пути. Хотя не помню, как именно.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jul 24 2012, 09:58
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(SAURIS GmbH @ Jul 23 2012, 13:27)  странно это, я точно как-то поставил два композера - для 6711 DSK и для 6416 DSK на разные пути. Хотя не помню, как именно. Он при запуске установщика сразу делает проверку на наличие уже установленного композера (после двойного клика по сетапу), и не позволяет выбирать, соответственно, папку. Если что-то уже было - то установки вообще не будет. опять огорчают танцы с бубном вокруг композера.. Нажимаю кнопочку File->New->DSP/Bios configuration а он мне выводит окно с названием ScriptPane, которое ругается так : "Unable to create BIOS Config Server" .. нажимаешь единственную кнопку ОК и вылазит следующее диалоговое New DSP/Bios Configuration ( первое вложение) - только там пусто в окошках все (наверно, так не должно быть). Как полагаю, в папке с Биосом надо покопаться найти какой-то файл (не забываем, что я чайник=) ) и исправить ситуацию, но все тщетно. Лезу сюда: C:\CCStudio_v3.3\bios_5_31_02\packages\ti\platforms\dsk6455\ нет ничего, да и в C:\CCStudio_v3.3\bios_5_31_02\packages вообще нет ничего!!! Полез тогда в Hepl-> about -> Component Manager. ну а там все пусто (такого ж не должно быть?? какая-нибудь да тулза должна быть установлена..) (картинка во втором вложении) А должно быть вот так (третье вложение), как в этом документеКак? из-за чего все это? неужто такой сильно обрезанный диск попался...
Сообщение отредактировал beaRTS - Jul 24 2012, 10:10
Эскизы прикрепленных изображений
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 24 2012, 10:10
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
ну DSP/BIOS то можно отдельно скачать и установить.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jul 24 2012, 10:57
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(SAURIS GmbH @ Jul 24 2012, 14:10)  ну DSP/BIOS то можно отдельно скачать и установить. этим и занимаюсь... просто возмущен от обилия косяков, на которые тратится психо-кинетическая (или как ее там) энергия. Как все видят, я кручу верчу Техас (а они меня), а так как от самовара не далеко ушел))) , то будет много вопросов.. Надеюсь кому-то из молодежи мои потуги и ваша помощь помогут Цитата(beaRTS @ Jul 24 2012, 13:58)  Полез тогда в Hepl-> about -> Component Manager. ну а там все пусто (такого ж не должно быть?? какая-нибудь да тулза должна быть установлена..) (картинка во втором вложении) Был с моей стороны косячок: надо было установить галочку в Component MAnager-> View -> All CCS Installations и появляется все что и ожидалось Как бы то ни было переустановил DSP/BIOS и это тоже дало результат: по адресу C:\CCStudio_v3.3\bios_5_41_10_36\packages\ti\platforms\dsk6455\ в папке под мою плату лежит уже Platform.tci ! Еще необходимо перезапустить композер, войти в компонент манагер раскрыть список Target Content'а(DSP/BIOS) и расскрыть подсписок с названием семейства вашего камня и установить галочку (см рисунок) Цитата(beaRTS @ Jul 24 2012, 13:58)  Нажимаю кнопочку File->New->DSP/Bios configuration и теперь получаю что-то более правдивое (смотри второе вложение)
Сообщение отредактировал beaRTS - Jul 24 2012, 10:58
Эскизы прикрепленных изображений
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 25 2012, 05:26
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Есть такой сайт C6000 Embedded Design Workshop Using BIOS . Наткнулся там на понятную презентацию, которая по первой сильно поможет начинающим в понимании DSP/BIOS PPT Slides Rev 6.50 (.zip). Поэтому качайте, смотрите. Куча презентаций. в Основном про Sys/BIOS (но походу это нынче мейнстрим). но есть и про DSP/BIOS: название BIOS_13a_Intro_to_DSPBIOS. смотрим. Нашел ответы на некоторые мелкие свои вопросы. Так же только что хотел задать вопрос: чем отличаются Sys/BIOS и DSP/BIOS, почему две версии, для чего? что изучать, что ставить и т.д... ну и тут же нашел в скачанных презентациях. Ответ находится в BIOS_03_BIOS_Basics (смотри вложение)
Сообщение отредактировал beaRTS - Jul 25 2012, 06:39
Эскизы прикрепленных изображений
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 26 2012, 03:57
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
запустил не без проблем первый примерчик (до этого хотел сам разобраться, но все-таки лучше с примеров начинать - так быстрее)на плате TMS320C6455 DSK. Проблема была следующей: начинаю грузить .out файл File->Load Program из папки дебаг, так CCS выдает ошибку " Does not match the target endianness, not loaded. Check build options, or use the setup program" . А на плате у меня (думаю, что и у большинства плат с навороченными камнями) стоит dip-switch (smd-переключатель), на одну ногу которого заведена опциональная функция установки формата big endian и little endian. Поэтому переведя выключатель в противоположное состояние, повторил попытку заливки программы и все получилось.
либо, как вариант, в Build Options -> Compiler -> Advanced в графе Endianness поменять формат и попробовать снова загрузить - может, получится. не пробовал.
Сообщение отредактировал beaRTS - Jul 26 2012, 04:34
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 26 2012, 07:52
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Смотрю 2 конфигурационных файла DSP/BIOS из разных примеров. Вопрос: что такое KNL_swi, PRD_swi? Просто вот понятно, например, что такое PRD_blinkLED0 - это поток, относящийся к периодически выполняемым, и функция его выполнения называется _blinkLED0() (если С-функция,но в С-файле будет просто blinkLED0() ) (The leading underscore is required because blinkLED0() is a C function. Functions written in assembly do not need the underscore. ). Понятно, что мы его создали, он нам нужен, т.к. будем в нем мигать светодиодом.. А для чего существуют KNL_swi (полагаю kernel-swi), PRD_swi (periodic-swi) непонятно?! Картинка во вложении. Приведу код Код /*H*************************************************************************** * * $Archive:: /boards/dsk6455_v2/examples/ledprd/ledprd.c $ * $Revision:: 2 $ * $Date:: 6/27/06 9:29a $ * $Author:: Shilpab $ * * *H***************************************************************************/
/* * ======== ledprd.c ======== * * This example blinks LED #0 at a rate of about 2.5 times per second using * the LED module of the the DSK6455A Board Support Library. The example * also reads the state of DIP switch #3 and lights LED #3 if the switch * is depressed or turns it off if the switch is not depressed. * * When the program is run, DSP/BIOS initializes itself and calls the main( ) * function. Main( ) initializes the BSL then exits and returns control back * to DSP/BIOS. The real work is done inside blinkLED0( ) which is a DSP/BIOS * periodic thread that is run every 200ms. * * A second thread named blinkLED1( ) is also included that blinks LED #1 * asynchronously with blinkLED0( ) to demonstrate DSP/BIOS multitasking. * It is not enabled by default but can be added by creating a new periodic * thread entry for it in the DSP/BIOS scheduler. * * Please see the DSK6455 help file in the docs\hlp directory for more detailed * information. */
/* * DSP/BIOS is configured using the DSP/BIOS configuration tool. Settings * for this example are stored in a configuration file called ledprd.cdb. At * compile time, Code Composer will auto-generate DSP/BIOS related files * based on these settings. A header file called ledprdcfg.h contains the * results of the autogeneration and must be included for proper operation. * The name of the file is taken from ledprd.cdb and adding cfg.h. */ #include "ledprdcfg.h"
#include "dsk6455.h" #include "dsk6455_led.h" #include "dsk6455_dip.h"
/* * blinkLED0( ) - Blink LED #0 and set LED #3 based on the state of DIP switch * #3. If the switch is down, the LED is turned on. If the * switch is up, the LED is turned off. * * blinkLED0 is a periodic thread that is called every 200ms * from the DSP/BIOS scheduler. It is configured in the * DSP/BIOS configuration file ( ledprd.cdb ) under Scheduling * --> PRD --> PRD_blinkLED0. Right click PRD_blinkLED0 and * select Properties to view its settings. */
void blinkLED0( ) { /* Toggle LED #0 */ DSK6455_LED_toggle( 0 );
/* Check DIP switch #3 and light LED #3 accordingly, 0 = switch pressed */ if ( DSK6455_DIP_get( 3 ) == 0 ) /* Switch pressed, turn LED #3 on */ DSK6455_LED_on( 3 ); else /* Switch pressed, turn LED #3 off */ DSK6455_LED_off( 3 ); }
/* * main( ) - Initialize BSL then drop into DSP/BIOS idle loop */
void main( ) { /* Initialize the board support library, must be first BSL call */ DSK6455_init( );
/* Initialize the LED and DIP switch modules of the BSL */ DSK6455_LED_init( ); DSK6455_DIP_init( ); }
Сообщение отредактировал beaRTS - Jul 26 2012, 08:19
Эскизы прикрепленных изображений
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 26 2012, 10:32
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(beaRTS @ Jul 26 2012, 10:52)  . Вопрос: что такое KNL_swi, PRD_swi? Попробую сам же и поразмышлять... Начинает складываться общая картинка об DSP/BIOS. А складывается она на фоне параллельного изучения freeRTOS. во freeRTOS мы все файлы ядра добавляем ручками в папку нашего проекта, ручками же правим какие задачи будут включаться в сконфигурированное ядро (например, по-моему, в файле FreeRTOSconf.h, где в дефайнах выставляем 0ки или 1чки) С DSP/BIOS дела обстоят, видимо, по-иному. Поправьте меня если неправ!. В DSP/BIOS среда разработки за нас сделает всю эту черную работу, а нам же остается в конфигурационной тулзе, да еще и с графическим интерфейсом (альтернатива - Tconf скрипты), настроить нужные задачи. Вот и все. и К тому же среда разработки сама пропишет нужные пути к файлам и библиотекам ядра, чтоб была возможность его скомпилировать, т.е. нет необходимости лазить по папкам и собирать в папку своего проекта все разрозненные файлы ядра.. Это было лирическое отступление. Теперь к обозначенному вопросу. (Рассматриваем стандартный пример под названием "ledprd"). НА картинке выше, где было изображение открытой конфигурационной тулзы в Software Interrupt Manager'е был модуль например KNL_swi, за который отвечает некая функция "KNL_run();"... Итак, нашел в файле ledprdcfg.h62 (или YourNamecfg.h62) Код .global null .global _IDL_loop .global IDL_F_loop .global _KNL_run //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .global IDL_F_stub .global IDL_F_calibrate .global IDL_F_busy что объявление _KNL_run , видимо глобальное (поправьте если что), хотя ".global" - вроде бы, секция памяти какая-то на ассемблере.... тогда полез искать это имя уже за пределы папки проекта (до этого пытался искать Тотал командером в папке проекта). ЗА пределами (в папке с биосом) нашел файл knl.h: Код #ifdef _BIOSROM_
extern Void (*KNL_enterPtr)(Void); extern Void (*KNL_exitPtr)(Void); extern Void (*KNL_ipostPtr)(KNL_JobHandle job); extern Void (*KNL_postPtr)(KNL_JobHandle job); extern Void (*KNL_readyPtr)(KNL_Handle task); extern Void (*KNL_runPtr)(Arg mode_arg); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! extern Void (*KNL_switchPtr)(Ptr *oldsp, Ptr *newsp);
#define KNL_enterJ() (KNL_enterPtr)() #define KNL_exitJ() (KNL_exitPtr)() #define KNL_ipostJ(job) (KNL_ipostPtr)(job) #define KNL_postJ(job) (KNL_postPtr)(job) #define KNL_readyJ(task) (KNL_readyPtr)(task) #define KNL_runJ(mode) (KNL_runPtr)(mode) #define KNL_switchJ(oldsp, newsp) (KNL_switchPtr)(oldsp, newsp)
#else
#define KNL_enterJ() KNL_enter() #define KNL_exitJ() KNL_exit() #define KNL_ipostJ(job) KNL_ipost(job) #define KNL_postJ(job) KNL_post(job) #define KNL_readyJ(task) KNL_ready(task) #define KNL_runJ(mode) KNL_run(mode) //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #define KNL_switchJ(oldsp, newsp) KNL_switch(oldsp, newsp)
#endif
#ifdef __cplusplus } #endif /* extern "C" */
#endif /*KNL_*/ осталось осмыслить для полного понимания... Вроде, теперь мы знаем, что KNL_run(mode) соответствует внешне определенной функции, возвращающей указатель, а именно: extern Void (*KNL_runPtr)(Arg mode_arg);
Сообщение отредактировал beaRTS - Jul 26 2012, 10:47
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Jul 27 2012, 04:24
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111

|
Цитата(beaRTS @ Jul 26 2012, 10:52)  Смотрю 2 конфигурационных файла DSP/BIOS из разных примеров. Вопрос: что такое KNL_swi, PRD_swi? Нашел ответ. KNL_swi, PRD_swi - Это стандартные встроенные объекты (вроде, так называются) ядра. А _KNL_run и PRD_F_swi - стандартные функции (где-то =) и не понятно где определенные, теперь хоть ясно чем они занимаются) В spru303b.pdf "TMS320C6000 DSP/BIOS User’s Guide" в разделе 1.3.3 " Operation Names" об них и говорится. Кроме того, в моем примере (ledprd) светодиодом мигают в потоке PRD_blinkLED0 (см. periodic function manager в картинке). Ссылаясь на spru303b.pdf раздел 1.3.3: "PRD_F_swi. Run by the highest priority SWI object, PRD_swi, to run the PRD functions.", делаем вывод: чтобы запустить нами созданные периодические функции (в periodic function manager'е), нам необходим вспомогательный встроенный объект (создаваемый, скорее всего, нами) под названием PRD_swi (и только таким названием!), который создается в "SWI - Software Interrupt Manager'е" (с приоритетом выше наибольшего: в моем примере у объекта PRD_swi на 1 больше приоритет,чем у KNL_swi) и который использует стандартную функцию ядра PRD_F_swi. А эта функция уже, имея наибольший приоритет, уже используется для запуска PRD -функций из PRD - Periodic Function Manager. Вот! Сие понимание у меня сложилось. Так ли?И теперь стало понятно почему в другом примере (его конфигурационный файл led.tcf в левой части открытого композера на картинке, которая все мусолится здесь) в конфигурационном файле "led.tcf" отсутствует объект PRD_swi - т.к. в этом примере мигают периодически не при помощи второго PRD-потока, а в main'е: Код void main( ) { /* Initialize the board support library, must be first BSL call */ DSK6455_init( );
/* Initialize the LED and DIP switch modules of the BSL */ DSK6455_LED_init( ); DSK6455_DIP_init( );
while( 1 ) { /* Toggle LED #0 */ DSK6455_LED_toggle( 0 ); /* Check DIP switch #3 and light LED #3 accordingly, 0 = switch pressed */ if ( DSK6455_DIP_get( 3 ) == 0 ) /* Switch pressed, turn LED #3 on */ DSK6455_LED_on( 3 ); else /* Switch not pressed, turn LED #3 off */ DSK6455_LED_off( 3 ); /* Spin in a software delay loop for about 200ms */ DSK6455_waitusec( 200000 ); } }
Сообщение отредактировал beaRTS - Jul 27 2012, 04:56
--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
|
|
|
|
|
Aug 1 2012, 09:19
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762

|
Подскажите, как заставить работать эмулятор XDS100v2 в CCS 3.3 SR12, последний доступный апдейт установлен. Читал, что официально XDS100v2 не поддерживается в CCS 3.3, только XDS100v1, но вроде бы в последнем релизе SR12 неофициально внедрена поддержка XDS100v2. Поиском нашел, что нужно переписать какой-то xml-файл и jioserdesusb.dll из CCS 4 в CCS3.3. Сам работаю с CCS4 без DSP/BIOS с F2808, а прошлые старые проекты были написаны до меня в CCS3.3 с DSP\BIOS и импортируются в CCS 4 с конфликтами версий.
|
|
|
|
|
Aug 1 2012, 09:47
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Если используется xds100v2 в виде SAU100-USB - то можем официально поддержать (где-то в течение недели выпустить драйвер), если в этом есть интерес.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|