Jump to content

    

psL

Свой
  • Content Count

    520
  • Joined

  • Last visited

Everything posted by psL


  1. видимо имеется ввиду вот этот http://www.freescale.com/webapp/sps/site/p....jsp?code=VF6xx Кстати, Timesys это проприетарный Linux
  2. Debian/Ubuntu

    Дистрибутив Linux собирается системами сборки. Если система сборки конкретного дистрибутива поддерживает конкретную плату, дистрибутив можно установить на эту плату и даже возможно существуют репозитории двоичного софта под нее. Основная проблема, насколько понимаю, порт ядра под плату, который вообще может не сливаться в майнлайн. Видимо вам нужен Embedded Linux. Это обычно BSP от производителя платы в виде системы сборки yocto (buildroot, ltib и т.д.). В нем ядро портировано под плату, написаны модули ядра и библиотеки под железо. Пакеты и средства разработки либо уже в составе, либо тянутся по сети. Закрытый код может быть в виде бинарников или блобов под коммерческой лицензией. Особенно это касается всяких crypt, h264 ускорителей и т.п.
  3. можно попробовать что-то типа: { int res=0; if (signal(Str_1)) { res=key_mass[0][0]; } else if (signal(Str_2)) { res=key_mass[0][1]; } return res; } или даже volatile res
  4. За вас в гугле поискать или что? http://www.gurucoding.com/en/raspberry_pi_..._in_eclipse.php http://janaxelson.com/eclipse5.htm
  5. В Linux нет exe-шников и dll. Одно ядро в памяти это где-то 6-8Мб, а еще нужно куда-то смонтировать файловую систему и запускать где-то приложения. Микроконтроллеров с таким обьемом памяти на кристалле не существует. Скорость разработки embedded Linux платы в большей степени заввисит от качества BSP. Linux плата не сможет управлять процесcом в реальном времени - нужен будет внешний контроллер, например, как сейчас у вас. Возможно вам просто нужна дополнительная коммуникационная плата к уже существующей. И не обязательно с Linux.
  6. Переходим на личности? :smile3009: Приходилось быть и фрилансером, и заказчиком. Поэтому есть мнение, что команда разработчиков должна состоять из постоянных специалистов. фриланс - только если нужно форсировать решение узкоспециализированной задачи. Мнение это свое никому не навязываю. А где Вы увидели про бесплатно? Не бесплатно, но приоритет у такой работы будет существенно ниже, чем у основной работы/текущего проекта. Поэтому есть разница между фрилансером и постоянным работником, хотя бы и "на удалении".
  7. Да никто фрилансеров не пинает. Просто полагать, что железо сделалось в последний раз и навсегда, а ошибок в софте уже нет - по меньшей мере наивно. Даже в условиях пряморукого производства. В жизни на удаленного фрилансера никакой надежды. Удаленно с железом особо не поработаешь. Сложный тестовый стенд в бытовых условиях не соберешь. Т.е. работу фрилансера должен курировать постоянный сотрудник, который "в теме". Тех. поддержки от фрилансеров, как правило, тоже никакой - максимум доводка при приемке, а далее: договор подряда выполнен - "деньги получены - интерес потерян"... Т.е. это кто-то "постоянный" должен изучить код/железо и дорабатывать их по мере необходимости. В общем, можно уметь профессионально забивать гвозди, но профессионально забивать гвозди в китайскую стену, "территориально находясь" в подмосковье - это нонсенс. Очень большое заблуждение. ТЗ обычно пишет сам исполнитель, согласовывая это ТЗ с заказчиком. ТЗ это не только требования к изделию, как их понимает исполнитель, но и сроки выполнения, метолике приемки и тд При формальном подходе работа забуксует на этапе ТЗ. При неформальном - работу иногда сложно закрыть, чтобы все остались довольны.
  8. Это пример. А что, макрос MAKE_MENU делает что-то принципиально иное? :laughing: Просто подумал, что раз меню статически задается, то нет необходимости в двусвязном списке - можно узлы подуровеня в дереве сразу в массиив положить, тогда поля.Next и .Prev будут не нужны.
  9. Видимо плагин предполагает, что Вы будете использовать стандартные библиотеки CodeSourcery.
  10. С фрилансерами ведь как? Сделал (не сделал) и пропал. Интересно, инженеры сопровождения (те, которые работают за "от 30тр") не взвоют?
  11. А что за устройство? Рефлектометрия? >Нужен Capture Timer на сотни МГц Десять сотен мегагерц это уже гигагерц, двадцать - 2 гигагерца. Как-то странно вопрос поставлен. Какая должна быть расрешающая способность счетчика? Например: 10нс (максимальный измеряемый интервал 10нс*2^16)? Или 10нс/(2^16) (максимальный измеряемый интервал:10нс)?
  12. Структура меню же не меняется в процессе работы? Может тогда проще __flash сразу ко всем menu_item? menu_item __flash submenu1[] = { { .Parent=&main[0], Child=&submenu2[0], .Next=&submenu1[1], .Prev=&submenu1[0], ..., .Text="Submenu1" }, ... } menu_item __flash main[] = { { .Parent=&main[0], Child=&submenu1[0], .Next=&main[0], .Prev=&main[0], ..., .Text="Main" } }
  13. из правды жизни: электронное зажигание на pic16, http://twowheel-oppozit.narod.ru/ , так понимаю этому проекту уже 10 лет.
  14. для указателя на функцию можно попробовать так: void a(void) { printf("a"); } typedef void (*function)(void); function ptr_funca = a; int main(void) { if (a != ptr_funca) { printf("!"); } return 0; }
  15. можно просто bin заливать dfu-util -v -d 0483:df11 -a 0 -s 0x08000000 -D firmware.bin или проще: dfu-util -a 0 -s 0x08000000 -D firmware.bin
  16. Какой компилятор? Если формат hex, используйте hex2bin http://hex2bin.sourceforge.net/
  17. Если не хочется заморачиваться с обеспечением достоверности данных в канале видимо лучше использовать CAN. В поле данных кадра можно передавать до 8 байт. Контроль целостности кадра при этом будет выполнять узел CAN контроллера. В противном случае нужно защищать кадр хотябы при помощи контроля четности, как говорили выше. Либо любой мусор, принимаемый с линии, будет восприниматься как адрес-команда. Прошивать адреса не очень удобно, поскольку при переконфигурировании сети (тестировании, ремонте и т.п.) придется каждый раз перепрошивать часть устройств сети, следить чтобы адреса не пересекались.
  18. Посмотрите: strace ifconfig eth0 Возможно нужно поднять интерфейс: ioctl(s, SIOCGIFFLAGS, &ifr); // флаги интерфейса ifr.ifr_flags |= IFF_UP | IFF_RUNNING; ioctl(s, SIOCSIFFLAGS, &ifr); close(s);
  19. обычно все начинается с мигающего светодиода)
  20. на 9600 1 байт передается ~1 мс, но у вас будет не 1 байт. Посмотрите описание CAN, либо Modbus. В кадрах для канального уровня присутствует синхронизация и контроль целостности, для сетевого уровня - адрес. Опять же скорость обмена определяется "задумчивостью" при обработке запроса подчиненным и ответа мастером, таймаутами. Поэтому времена в общем случае будут разные. А еще для "самодельной" сети существует проблема распределения адресов между подчиненными.
  21. Через пкм, в свойствах элемента контроллера. Чтобы отладка работала, лучше elf цеплять с отладочными символами. Или что там умеет ваш компилятор.
  22. Про байт понятно:) Непонятно назначение этого байта. Байты же сами собой по сети не ходят. Вообще, если не секрет, какое назначение у подчиненных устройств? Modbus RTU - неформальный стандарт для всякого АСУТП.
  23. Трансивер CAN умеет автоматическое переключение направления обмена, а трансивер RS485 - нет. CANOpen умеет PDO, а Modbus - нет. Если подчиненные - датчики, то CAN предпочтительней. Но CANOpen сложнее Modbus. Видимо пакет управления длиной 8 бит - очень оптимистично. 8 бит - это 8 портов GPIO?
  24. Blackfin Lockbox http://www.analog.com/ru/content/bf_lockbo...nology/fca.html вообще довольно проблематично это все отлаживать: ключи прошиваются в otp память, jtag отключается также через otp Видимо самая лучшая защита от копирования, это когда цена реверсинга оригинала и получения копии существенно выше самого оригинала.