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

dxp

Свой
  • Постов

    4 526
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Весь контент dxp


  1. Ну, так и я о том же. Можно подумать, что у нас самая богатая страна в мире... Мне кажется, на такую технику все поборы нужно отменить - пока отечественный производитель не появится... Сумка для переноски на таможне может очень даже пригодиться... :) Тут может развиться тема, достойная форума "Общение". Вы сами все прекрасно понимаете - пока у руля... гм, как бы это помягче сказать, ну, в общем, посторонние для страны люди, сдвигов тут не будет. На такие вещи (ценное высокотехнологичное оборудование и материалы), имхо, на своей таможне препоны ставить - вообще преступление. О всяких пошлинах, удорожающих этот товар, должны заботиться "там", откуда везут.
  2. itoa куда дели?

    Никуда не дели - это нестандартная функция, ее и не обязано там быть. Можно пользоваться sscanf (стандартно и переносимо) или самому преобразователь написать. В последнем случае получится быстрее и компактнее, для МК этот вариант предпочтительнее, хотя возни и побольше.
  3. А это для где счет? В Штатах? В Европе? В России? И таможня? А налоги?
  4. IAR: Warning[Pa082]:

    И совершенно правильно он делает. И то, что докапывается до этого - честь ему и хвала, потому как действительно дотошный и придирчивый компилятор, генерирующий хороший код, глядя на который, писать что-то на асме пропадает в подавляющем большинстве случаев само собой. Что касается volatile. Volatile, как сказали, указание компилятору не оптимизировать объект. На самом деле это не совсем правильно, не совсем точно. Volatile - более близкий по смыслу перевод, - означает, что объект "подвижный", асинхронно изменяемый, т.е. объект может быть срытно изменен вне данного потока управления программы. И, следовательно, запрещает не все оптимизации, а только те, которые могут нарушить правильность работы по причине асинхронной изменяемости. Другие оптимизации вполне имеют право быть. Например, есть в EWAVR оптимизация clustering variables. Она сводится к тому, что компилятор логически объединяет рядом объявленные глобальные/статические объекты в "вируальную структуру" и обращается к этим объектам, не загружая каждый раз полный адрес для каждого объекта, а загрузив одни раз базовый адрес этой "виртуальной структуры", обращается к объектам со смещением, что есть наиболее эффективный способ адресации в AVR. И если пропускать обращение к объекту, объявленному как volatile, компилятор не имеет права, то делать кластеризацию с этим объектом - пожалуйста. Т.ч. тут все не в компилятор упирается, а в программиста. Ошибка эта очень распространенная, все на эти грабли наступают и не один раз. И даже опытные товарищи забывают (вернее, упускают из виду) и тоже мимо граблей не проходят. Но откаываться от хорошей оптимизации, имхо, все-таки неправильно.
  5. Это новая линейка нижнего ценового диапазона. В этих скопах нет PC, который не всем и нужен. Это прямой конкурент TDS-2000 и Agilent-3000. Да, это действительно клевый дивайс. :) Не расстраивайтесь - времена меняются очень быстро. Еще пять лет назад приборы, подобные WR 62Xi, были пределом мечтаний и стОили, как самолет, :) а сегодня они уже вполне доступны, правда, не радиолюбителям. Но это пока. Думается, года через два-три дивайс типа WaveJet будет доступен любому желающему.
  6. VisualDSP++ Automation.

    Вот хоцца использовать возможности автоматизации с помощью скриптов. Почитал бегло доку, выудил, что, типа, поддерживается много скриптовых языков. Ткнулся, на деле оказалсь, что реально есть VB Script, JScript и Tcl. А хотелось бы, вообще-то, Python, т.к. с ним уже есть кое-какое знакомство. Не дается никак. Если этот вариант не пройдет, то на что лучше ориентироваться? Пока склоняюсь к JScript, т.к. он по духу мне более соответствует. Есть ли подводные камни? Какие еще варианты? Поделитесь опытом, кто имел дело?
  7. Новичок на С

    Указатель содержит адрес. Адрес - это просто местоположение в памяти. Обычно измеряется в байтах (8-битных). К размеру объекта, расположенного по адресу, сам адрес никакого отношения не имеет. К размеру имеет отношение тип указателя. Собственно, он (тип) для того и задается, чтобы компилятор мог правильно работать с объектом, адресуемым указателем. Для писания на С/С++, если не использовать хаки и всякие низкоуровневые финты ушами, а также если опустить вопросы отладки, ровно пофигу, как объекты располагаются в памяти физически. Комплятор их положил, пусть с ними разбирается. Конкретно EWAVR - да кладет объекты младшими байтами по младшим адресам.
  8. Ну и зачем делать откат в начало? Пусть себе программа работает, если выдернули устройство, то программа переходит в один режим, если вставили, то в другой. Зачем что-то обнулять? Заведите переменную, обозначающую режим и проверяйте ее. Вот прикинье - вставили/вынули USB дивайс, винда перегрузилась - хорошо это? :) Логики IAR'а тут никакой нет - он действует в рамках Стандарта языков С/С++. longjmp действительно может реализовать такое, но все-таки, имхо, это не путь. Имхо, чего-то не того в дизайне проги. Вы бы чуть подробнее изложили преметную область, может чего и посоветовать удалось бы.
  9. Непонятно, откуда такое суровое требование - обнулять работу программы при отсутствии сигнала в каком-то порте. Да еще и не совсем обнулять, а частично. Неужели нельзя как-то штатно эту ситуацию обрабатывать? Ну нет сигнала - это, да, событие, которое трубует обработки (как и многие другие события в системе). Зачем работу программы-то рушить? Целостность работы нарушать...
  10. А если BF двуядренный взять - на одном ядре ОСь вращается, на другом ЦОС. Кажись, кто-то на телесиськах с полгода-год назад именно про такой вариант и говорил. По эффективности кода сам BF АРМу, насколько знаю, не уступает.
  11. Новичок на С

    Да. Вопрос непонятен. Параметры (аргументы функции) именно передаются, а не хранятся. Схемы есть разные, в версиях 1.хх была одна схема, начиная с 2.хх - другая. В ней, насколько помню, все, что влазит в 8 регистров с 16 по 23, передается в них (с учетом выравнивания, ессно), остальное через стек. Все это хорошо документировано. Подключать бинарный файл можно, если он в формате UBROF. :) Как сделать этот UBROF - пути все те же: скомпилить из сорца. :)
  12. Глупость несусветную говорите. Люди живут не так, как работают, а так, как ими управляют. Отсюда и результат - в тогдашнем руководстве страны и ищите. Ваше упорство непонятно. Если считаете, что знаете лучше, зачем спрашиваете? Делайте, как знаете - ответственность всегда Ваша.
  13. Точно так же - напишите низкоуровневую функцию манипуляции контекстами на асме, а вызывайте ее из С. Вообще-то, это что-то RTOS'ом попахивает. :)
  14. Ну, это как посмотреть. Вот, к примеру, если процессор задействован на обработке не одного потока данных, а у него таких потоков эн (при условии, разумеется, что успевает их обрабатывать с некоторым запасом) и они (потоки данных) еще и имеют разные скорости, источники и приоритеты (а кроме этого еще есть всякого другого служебного хозяйства и других задач, помимо ЦОС), то RTOS тут может оказаться очень кстати. Естественно, что накладные расходы на RTOS должны быть адекватными возможностям процессора и задаче, поэтому крутые и толстые ОС, сделанные по всем правилам, тут не рулят. А вот какая-нить uC/OS-II или ThreadX (и их калибра) могут вполне себе неплохо решать задачу. Вообще, в embedded (на МК, коим вполне может быть и DSP :) ), где система и программа зачастую составляют единое целое, процесс разработки программы и использования (при этом) RTOS весьма отличается от писания приложений под [RT]OS, когда система о приложении ничего не знает, а только лишь предоставляет правила и сервисы. При рассуждениях этот момент, имхо, упускать нельзя - он очень значим.
  15. Оптимизатор IAR

    :) Вы уверены, что это ошибка? А С++ включен? :) Например, вот этот код тоже не вызывает у него возражений: void delay(byte x) { while(x) x--; } void delay(word x) { while(x) x--; } А потом пишем: byte aaa = 5; word bbb = 5000; ... delay(aaa); delay(bbb); И смотрим результат: delay(aaa); ??Exec_3: delay(aaa); .... LDI R30, LOW(bbb) .... LDI R31, (bbb) >> 8 8102 LDD R16, Z+2 2300 TST R16 F011 BREQ ??main_0 ??main_1: 950A DEC R16 F7F1 BRNE ??main_1 delay(bbb); ??main_0: 8180 LD R24, Z 8191 LDD R25, Z+1 2F08 MOV R16, R24 2B09 OR R16, R25 F011 BREQ ??main_2 ??main_3: 9701 SBIW R25:R24, 1 F7F1 BRNE ??main_3 И видим, что все верно - каждый раз компилятор вызвал (точнее, тут он встроил, что есть хорошо и правильно) правильную функцию. Эта С++ фича, когда можно использовать одно и то же имя для разных функций, различающихся типами аргументов (не типом возврата), называется перегрузкой функций. А вот если мы захотим на С такое сделать, то получим: void delay(word x) { while(x) x--; } ^ "D:\slon\IAR\AVR\!V4\03_Overload\slon.cpp",7 Error[Pe247]: function "delay" has already been defined
  16. Во-первых, "<=" - это оператор неблокирующего присваивания. Во-вторых, блокирующий/неблокирующий - именно так правильно. И речь идет не о блоке (который, вообще-то, хоть и называется блоком, по сути является составным оператором выражения always или initial), а блокировании или не блокировании последующих выражений. Т.е. оператор "=" является блокирующим - и он блокирует все нижележащие операторы данного always/initial до тех пор, пока не будет выполнен сам. А "<=" является неблокирующим, потому что не блокирует все остальные операторы. Заметьте, речь идет не только об операторах присваивания, но и обо всех остальных операторах тоже.
  17. Данный пакет имеет хороший схемный редактор, отличную, имхо, систему навигации и глобального редактирования, интуитивно понятный простой интрефейс, средний по возможностям PCB и совершенно начального уровня все, что относится к ПЛИС. Поэтому для проектов "схема-плата" он неплох (если дизайн не предполагает крутого high-speed с выравниванием длин проводников, моделирования целостности и прочего), но для ПЛИС он так себе. И по возможностям, и по "сырости". Молодой еще. Тут лучше смотреть в сторону Альдека, Синплифая, Ментора и прочих.
  18. Нет. Менторовцы не понимают зачем это по большому счету нужно. Как это не понимают? Очевидно же - удобство совсем другого уровня, когда смотришь на плату и сразу видишь, где и что находится. Сразу легко ориентироваться. Фича-то элементарная.
  19. О, так у Вас трудность не в том, чтобы найти генератор, а в том, чтобы он был в вашем регионе в магазине? Ну, тут вряд ли помогу. Мы заказываем у фирм. Golledge торгует Точка Опоры. Мы чаще применяем Geyer (исторически так сложилось). Еще неплохой вариант тут, но высылают ли, не знаю.
  20. Сильнно не изуродует. Единственное, что резисторы придется ставить небольших номиналов (потребление) и, возможно, еще в параллель выравнивающие емкости ставить. Хотя, скорее всего, без них обойдется. Да Вы что!? :) Их просто тучи. Geyer, Jauch, Golledge и протчая, и протчая... :)
  21. Именно! Заведите сигнал со входа через макроячейку на выход и посмотрите задержку. Потом понагревайте или поохлаждайте чип и еще раз посмотрите, как меняется задержка. Будете удивлены. Температура не единственный фактор. Еще влияет напряжение питания и имеются разбросы от партии к партии. Крайне не рекомендуется так делать на ПЛИС, о чем Вам и толкуют. Зря спорите. Они не на ПЛИС сделаны.
  22. Оптимизатор IAR

    Дайте полный текст функции (в контексте обсуждаемого) и определение этой структуры. Чтобы можно было просто у себя попробовать.
  23. Совершенно правильно кажется - именно инфракрасные (ближнее ИК - около 0.8-0.9 мкм), у них значительно лучше квантовая эффективность и мощность. С этим тоже проблем нет - вон в волоконных линях передачи вообще гигагерцы гоняют (правда, там мощность небольшая). Т.ч. для ИК лазера десятки МГц, как правило, не проблема. Нужно только схему накачки сделать соответствующую, но сегодня это несложная задача - элементная база, однако. :)
  24. ADSP-219x тоже уже весьма устарели. И как совершенно правильно однажды сказали на форуме Телесистем, в плане затрат на начальный "подъем" ADSP-219x и Blackfin примерно одинаковы, но первый не развивается (о чем АД официально заявило уже несколько лет назад) и значительно слабее по всем характеристикам, начиная от производительности ядра и заканчивая набортной периферией. Т.ч. если уж копать в этом направлении, то среди продкутов АД - это Blackfin. Если, конечно, плавучка не нужна.
×
×
  • Создать...