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

RomanG

Участник
  • Постов

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

  • Посещение

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


  1. Данные и адреса - в какой-то энергонезависимой памяти. С форматами сложнее. Видимо так считает большинство разработчиков, поэтому такого устройства не видно. Кроме того, как заметил HardError, форматы посылок могут немного отличаться. Поставим МК.
  2. Добрый день всем! Многие микросхемы, например, видео кодеры/декодеры требуют настройки регистров по I2C. В проектируемом мной устройстве эти настройки не нужно менять в процессе работы, поэтому ставить для загрузки микроконтроллер совсем не хочется. Может кто-нибудь предложить микросхему, reference desing, открытый проект, который обеспечивал бы загрузку регистров по I2C по включениию питания?
  3. А если предположить, что для обоих платформ существуют готовые дистрибутивы Android и Linux с необходимыми драйверами (про совместимость драйверов данных нет)? С андроидом, как я уже писал, наблюдаем очень хорошую переносимость: экранчик, USB, мышка/тачпад работают на всех протестированных устройствах без какого бы то ни было портирования нашего ПО. После обсуждения в данной теме складывается впечатление, что от Linux такого ожидать не стоит. Это так?
  4. Задача следующая: выбираем вычислительную платформу для одного мобильного устройства, то есть как аппаратуру, так и ОС. Хотелось бы иметь возможность перехода на другую аналогичную аппаратуру, если выбранный OEM-модуль снимут с производства. Меня сейчас интересует выбор ОС: Linux, либо Android ( Windows будет тяжеловат). Android в наших экспериментах обеспечивал 100% переносимость (как и следовало ожидать). Программа работает на разных платах, устройствах, смартфонах одинаково. Минус - ограниченный набор интерфейсов и потери производительности на Java-машине. Спасибо!
  5. Нельзя ли примерчик такого фреймворка? В таком случае, если я использую такой фреймворк и перехожу, например, на OEM-модуль Colibri от Toradex для которого драйверы имеются, шанс на переносимость кода по работе с аппаратурой на другую платформу есть? (То, что грабли, в принципе, могут встретиться в любом месте я уже понял :) )
  6. Честно говоря, я предполагал, что где-то так: Но все же хотелось верить во все хорошее.... Насколько я понял, чем менее стандартный драйвер, тем более вероятны проблемы при каких бы то ни было переходах. Поэтому при использовании не очень стандартной аппаратуры (GPIO, I2C, LCD(?)) "светлого будущего" с полной переносимостью кода между разными embedded платформами на Linux пока нет. Может, конечно, повезет, но рассчитывать на это, наверное, не стоит. Такое вот впечатление... Спасибо всем за ответы, жаль, что тема (как это часто бывает) перерастает во flame :smile3009:
  7. Переносимость на embedded Linux

    Доброго времени суток всем! Сейчас выпускается много плат на микроконтроллерах с поддержкой того или иного дистрибутива Linux. Насколько переносим код, например, для Linux Ubuntu при переходе к другой плате на таком же дистрибутиве? Существуют ли в Linux (и Ubuntu в частности) стандартные драйверы для LCD, GPIO, UART, USB, Ethernet? Для более специфических интерфейсов, таких как I2C, SPI, PWM? Как изменится ситуация, если придется переходить на другой дистрибутив?
  8. Добрый день всем! Работаю над проектом для МК XC2765 Infineon, среда разработки Tasking C166 VX Lite. Проблема: в обработчике прерывания (обычное прерывание, не FIRQ) вызываю функцию и передаю ей в качестве параметра указатель на структуру. Вызываемая функция записывает данные в структуру, но после возвращения в вызывающую ISR данные в структуре изменены до неузнаваемости да еще попорчены соседние переменные :(((. Эта же функция при ее вызове из main работает совершенно нормально. Фрагмент программы: // обработчик прерывания _interrupt(CAN_INT_VECT1) void CAN_IRQRcvHiPriority(void) { stCAN_SWObj RcvMessage_local; // структура, которая передается и портится uword msg_id = 0x0020; .... CAN_GetMsgObj( (ubyte)msg_id, &RcvMessage_local); // та самая проблемная функция .... } //Прототип функции CAN_GetMsgObj uword CAN_GetMsgObj(ubyte ubObjNr, stCAN_SWObj __far *pstObj); Пробовал использовать глобальную, а не локальную переменную типа stCAN_SWObj - никакой разницы :( После возврата из функции портится и msg_id Pls помогите....
  9. Точно! Большое спасибо! Зарботало! Не подумал, что код-то получается разный - в обработчике Arm, а функция в interwork. Весь проект действительно собирается в режиме Thumb. Замена _interwork на _arm решила проблему.
  10. Не хочет инлайнить

    Пишу программу в IAR Kickstart for ARM 6.10. Есть небольша функция, которая вызывается из обработчика перываний. Объявил ее как inline при чем force: #pragma inline=forced __interwork int HexToBin( char* chr) { if ( *chr <= 0x39 ) .......... else return (ERR_BAD_SYMBOL); return (OK); }; Вызываю так __irq __nested __arm void UART1_Handler( void ) { char chr[2]; .......................... if ( HexToBin(chr) != OK ) { RS485_buff.RxLastError = ERR_BAD_SYMBOL; continue; } ..................... Компановщик как ни в чем не бывало выдает предупреждение: [Go004] Could not inline function. Больше эту функцию нигде не использую. Фунция определена в одном файле с вызывающей. Уровень оптимизации максимальный. Ради эксперимента пытался заменить в параметре указатель на char просто - ноль эмоций. Может быть кто-нибудь подскажет как с этим бороться? Можно ли где-нибудь прочитать при каких условиях возможен inline, а при каких нет? В IAR C/C++ Development Guide сведения крайне скудные.
  11. USB с DMA в UC3A3

    К сожалению в данном примере USB не использует DMA, возможно используется DMA для доступа к SSC/I2S. Сами атмелевцы сказали, что у них пока примера USB с DMA нет, поэтому и обращаюсь к народу в надежде на то, что кто-то из наших уже это делал на AVR32.
  12. USB с DMA в UC3A3

    Насколько мы поняли эти макросы ничего не делают. Это просто заглушки. Поддержка Атмеля отсылает к примерам по DMACA, а они, к сожалению, не отражают специфики USB.
  13. USB с DMA в UC3A3

    Пытаемся работать с USB на МК AT32UC3A3 с использованием DMA. Задачу затрудняет практически полное отсутствие описания работы USB DMA контроллера в data sheet, а также примеров его использования. Может быть кто-нибудь сможет поделиться примерами использования USB с DMA на AVR32, желательно AT32UC3A? Также помогло бы описание использования DMA для USB, подозреваю, что у DMA USB есть некоторая специфика по сравнению с обычным DMA.
  14. Кто-нибудь имел опыт общения с фирмой Фидэс? Ассортимент у них как-будто неплохой и сроки радуют, только вот сайт очень очень куцый. Настораживает и существенное отличие по срокам поставки от конкурентов, не есть ли это все "липа"?
  15. Не так уж плохо. Как считает народ можно ли на Full Speed в принципе получить большую скорость для Mass Storage Host? Что в данном случае ограничивает скорость производительность МК или что-то другое?
  16. Требуется установить какая нужна мощность МК, чтобы успешно справляться с протоколом Usb Mass Storage Host + FAT на скорости Full Speed (~1MByte/s). Сможет ли, например, LPC2468 (ARM7 CPU - 75МГц) со встроенным USB FS дать требуемую пропускную способность? Может у кого-нибудь есть практический опыт?
  17. Вопрос по использованию PowerPC в ПЛИС Virtex4/5. Можно ли подключить внешнюю периферию напрямую к шине PLB или OPB? В частности нужно подключить к шине процессора HS USB-контроллер ISP1761.
  18. Спасибо, вроде бы понял. Отдельное спасибо за ссылку на статеечку, попробовал описанный там вариант фильтра - вроде на модели заработал, буду пробовать в железе. Угу, спасибо.
  19. Я реализовал алгоритм не полностью, а только ту его часть, которая вычисляется на каждом отсчете: s(n) = x(n) + 2cos(2πω)s(n − 1) − s(n − 2) и решил, что это и будет мой фильтр :). Мощность сигнала (magnitude?) я вообще не считал. Правильно я поступал или нет? Можно ли вообще реализовать ВЕРМЕННУЮ фильтрацию с помощью ДПФ или Герцеля??? Конкретные цифры пока не известны. Фильтр нужен для звука, параметры буду подбирать экспериментально. тогда не понимаю что означает запись: hf = h.*sin(2*pi*f/Fs*(1:length(h)) нужно рассчитать для всех элементов массива? Тогда, какого массива?
  20. Так, вроде, все по книжке (Сергиенко А.П. "ЦОС"): "ДПФ можно представить набором фильтров, а дискретную фильтрацию можно организовать с помощью ДПФ", там еще и АЧХ двух частотных каналов ДПФ приведены...
  21. Кое-что по фильтрам читал, но на решение поставленной задачи меня не хватает... Задача-то не учебная, а вполне рабочая. За ссылочку большое спасибо! Попробуем... Только по-моему алгоритм Герцеля попроще считается, за то описанный в работе вариант, наверное, более гибкий.
  22. Может быть укажете какую-нибудь ссылочку по теме?
  23. Поясните пожалуйста запись (1:length(h)) в формуле (я почти не знаком с м-языком).
  24. Спасибо большое всем за советы. Не сразу удалось попробовать. Пытаюсь применить Герцеля и что-то совсем не то получается. Моделирую в MathCAD (наверное уже смешно?). На входе обычная синусоида. Пропускаю ее через фильтр: y(n) = x(n) + 2cos(2*pi*f/Fd)*y(n-1) - y(n-2) В результате получаю, то модулированную синусоиду, то вообще что-то не понятное... Может быть подскажете где ошибка? Прилагаю скриншот из MathCAD ( в данном случае частота дискретизации 2000, искомая частота - 10, рассчитываю на 2000 отсчетов входного сигнала)
×
×
  • Создать...