vik0
-
Постов
381 -
Зарегистрирован
Сообщения, опубликованные vik0
-
-
Это USB 2.0 JTAG, которым можно свои платы отлаживать вместо того
ADZS-USB-ICE, который был за $1200, но для всех процессоров AD,
а этот только для BF
Добавлю что этот (дешевый) не поддерживает BTC и statistical profiling
Понятно также, что на корпусе сэкономили. Корпус как раз и стоит $1000 ))Не понятно только где POD? Наверное, здесь же на платеНу да, вверху видны запаянные штыри.
-
Вышел 7-й update
И еще весьма интересное чудо: http://www.analog.com/en/embedded-processi...ts/product.html
-
Если в 16-ти битном режиме, то:
BF -> Flash
-------------
A[19:1] -> A[18:0]
D[15:0] -> D[15:0]
AMSx -> CE
ARE -> OE
AWE -> WE
-
А нет ли в природе более строгого документа, где всё это описано?
Так там же эти регистры и описываются: C/C++ run-time model and environmnt. Начиная со стр. 1-343 в pdf версии мануала.
Если кратко, то:
- dedicated: p6, p7, l0-l3
- call preserved: p3-p5, r4-r7
- scratch: p0-p2, r0-r3, lb0-lb1, lc0-lc1, lt0-lt1, astat, a0, a1, i0-i3, b0-b3, m0-m3
В функцию первые три аргумента передаются в r0-r2, последующие на стеке, начиная с fp+0x14.
Возвращаемые значения: r0, если <=32 бит, r0:r1 если >32 и <=64 бит. Если больше 64-х бит - на стеке и указатель на них в p0.
PS. Решили таки изобрести велосипед, и написать свой fir на ассемблере? ;)
-
:bb-offtopic:
...Я с Украины...Это не оправдание. Перед написанием сообщения на форум, где официальным языком общения является русский, можно (нужно) хотя бы проверить его (сообщение) в spell-checker-е.
-
Как у вас буфера в sdram-е размещены?
Очень похоже на то, что у вас все буфера свалены в один (внутренний) банк sdram.
Разнесите буфера так, чтобы к одному банку шли обращения только от одного источника/приемника.
-
Ребята, почитал вас и удивился...
Интринсики, Си... всё это хорошо... Но ведь тут вы лезете в DSP - область, в которой С всегда испльзуется только что бы быстро получить какой-то результат. Конечный результат всегда достигается в ассемблере. Это вам не МК, не приложение с GUI, и не ползовательская программа под Windows или любой другой операционкой на PC или MAC. Поэтому вопросы: "как заставить Си всё делать правильно",- звучат странно. В любом случае, это выйдет во много раз дольше, чем, оптимизация кода. Поэтому, делайте прямые ассемблерные вствки в критичных местах, и будет вам счастье.
Простите, вы вообще с blackfin-ами работали? Это ведь не "чистый" dsp. На нем, помимо собственно dsp алгоритмов может крутится еще много чего (тоже самое GUI, к примеру).
Из личного опыта - на 537-м (тот же самый, что и у топикстартера) крутятся достаточно ресурсоемкие вычислительные алгоритмы плюс RTOS, TCP/IP стек (100 MBit ethernet), CANOpen slave и "недо"-GUI (на PAL видеовыход :07: + PS/2 клава). Все написано на С++. В пике процессор занят на 75-80%.
-
...можно пример Вашего кода, где именно Вы считаете к месту использование аккумулятора...
Присоединяюсь к просьбе.
Инициализацию на C для bf - это, как говорится, нужно увидеть :) . Да и пересылку (??? SPORT->DMA->SDRAM???) интересно глянуть .??? Может я не правильно понял, но чем вам не нравится инициализация фина на С (разве что вы имеете ввиду initcode...Хотя даже там можно использовать С.. В 54х серии к примеру ;) )? И какие проблемы с оргнизацией пересылки SPORT->DMA->SDRAM на С? Поясните свою мысль, пожалуйста.
Логичнее писать на C main()+хидеры :) , а вызываемые процедуры на asm.Очень спорное утверждение.
Причем нужно еще постараться чтобы не найти готовых, которые надо только чуток подправить.Угу. Мечтаю увидеть реализацию на asm-е TCP/IP стека под 537-й.
В техасовских DSP (2000, 5000, 6000 ) фильтры реализованы - все на ассемблере. А из C - вызываются стандартные функции. У вас должно быть то же самое.Есть, они, есть. Индусские, но работоспособные. И достаточно оптимальные.
Ну да. Тут естественно имелось ввиду то, что asm код быстрее и меньше по объёму, чем сишный.Нет, это понятно. Но в ПЯТЬ раз?
-
-
Да ничего не мешает.
Просто если в bla-bla-bla необходимо разместить много переменных, указывать для каждой из них секцию в явном виде... Некрасиво. IMHO.
-
С помощью supplemental interrupt
Ядро B:
... *pSICB_IWR1 |= 0x4000; // разрешаем пробуждение по supp-int0 ssync(); idle(); // спим... пока не получим supp-int0 *pSICB_SYSCR = 0x0800; // ack прерыванию ssync(); // и работаем дальше ...
Ядро A:
... *pSICB_SYSCR |= 0x0080; // будим второе ядро ssync(); ...
-
Я не хочу менять default_section. Я хотел бы следующее
...
Это возможно в принципе?
Понятно. Хелп на default_section вы решили не читать :)
Этот код:
#pragma default_section(DATA, "first") variable1; variable2; ... #pragma default_section(DATA, "second") second1; second2; ... #pragma default_section(DATA)
делает именно то, что вы хотели
-
Может существует другой способ, при котором секция или что-то еще указывается один раз в одном месте?
Речь ведь про VDSP, да?
Посмотрите в help-е по поводу #pragma default_section(...) (ну или как-то так - мануала на VDSP под рукой нет, по памяти точно не помню)
-
Картинка в SDRAM полностью. Берутся кадры из Flash, затем все кешируются в SDRAM. Потом перекидываются в ТВ (ну аля несжатый ролик)
А нельзя сохранять ваши картинки во flash уже в формате yuv?
ps. кстати, у 54х финов преобразование rgb<->yuv аппаратное :rolleyes:
-
Задача: hазработка видеорегистратора high resolution с нуля.
разршение сенсора 4000x4000 pixels, от 150 до 250 кадров в секунду.
32Gbit/s.... (если принять 8 бит на пиксель)
Интересует все - от вопросов- где купить (достать) в России такие датчики?
(в магазинах Москвы и Питера их нет).
А вы вообще в природе подобные датчики видели? Максимум что я встречал - 1280х1024 @ 500fps (lupa1300-2 от Cypress).
Kinor без объектива и регистратора (память) стоит 11000 баксов....
Поэтому придется делать самим.
Вы серьезно думаете что самостоятельная разработка вам обойдется дешевле?
-
Нету у меня такого. Там только file properties в котором кратко сведены те файлы что используютсянету там ничего, касающегося оптимизции. по-мойму это в pcf-е прописано но он полу-бинарныйRelease/bla-bla.doj :bla-bla.cpp .......
@echo ".\bla-bla.cpp"
$(VDSP)/ccblkfn.exe -c .\bla-bla.cpp -c++ -file-attr .... -O -Ov100 -ipa -g -structs-do-not-overlap no-multiline -double-size-32 ... -o .\Release\bla-bla.doj -MM
-
1. Есть ли способы это пролечить?
Затыкается на всех файлах проекта? У меня было что компилятор (именно 6-й update) замирал при использовании adi_acquire_lock/adi_release_lock. Вылечилось с помощью #pragma optimize_off
2. Можно ли файлы проджекта билдить отдельно с разными настройками оптимизации? если да, то как?ПКМ на файле в project window -> File options... -> Build with file specific settings
Ну и меняете то, что хотите
в каком файле проекта смотрятся ключи компилятора/ассемблера и линкера которые были установлены в середе VDSP ? (расширение файла ?)<имя_проекта>.mak в корневом каталоге проекта
-
А чем редактировали? Скорее всего редактор TABы заменил на пробелы. А для make это критично :laughing:
Я правил FAR-ом, никаких проблем не было.
-
в планах - полностью перейти на платфому "Eclipse"
Откуда информация?
Например чего стоит "gmake-378: *** No rule to make target", который меня сильно доставал, пока не догадался делать затычки из пустых хедеров вместо изменённых по имени.Проще удалить зависимость из файла <имя_проекта>.mak
-
Edit->Place->Via
-
Оопс. uriy, Вы правы.
Посыпаю голову пеплом :cranky:
-
Должны работать, по идее.
Правда еще от ревизии процессоров зависит.
-
По срокам более-менее нормально.
Серьезных (задержка более чем на 3-4 дня) проблем никогда не было.
-
В начале лета заказывали в Радаре.
Качество - отличное.
Единственный нюанс - по толщинам диэлектриков лучше консультироваться сразу, они далеко не все могут сделать.
VDSP Update. Для, тех, кто, возможно, еще не в курсе.
в Сигнальные процессоры и их программирование - DSP
Опубликовано · Пожаловаться
В release note к седьмому апдейту написано что не поддерживается.
Хотя в любом случае, цена перебивает все недостатки.