Jump to content

    

lolikandr

Свой
  • Content Count

    56
  • Joined

  • Last visited

Community Reputation

0 Обычный

About lolikandr

  • Rank
    Участник

Контакты

  • ICQ
    Array
  1. Вы прямо читаете наш код )) В МК уже сделали передачу по 32 пакета. Осталось сделать группировку пакетов с подтверждением на Linux, однако есть непонимание, по какому принципу начинать отправку пакетов потдверждения, поскольку поток не регулярный. То есть можем собрать 8 ответов и недопустимо долго ждать следующего пакета. Придётся какой-то таймер завести. Да и в Linux пока такое безобразие не добавлено. Думалось, может можно как-то на корню решить проблему быстродействия (пусть даже kernelspace) и выкинуть код не заморачиваться передачей много пакетов за раз. to BaN Спасибо за статистику, весьма совпадает с реальностью нашего Linux и userspace. Посмотрим, что за зверь этот xenomai.
  2. Сначала опишу ситуацию: Микроконтроллер (МК) подключен по UART к AT91SAM9XE512 (Linux 3.0.4). У микроконтроллера ограничено ОЗУ, поэтому реализован обмен пакетами динамического размера - от 3 до 48 байт. При скорости 500000 бод время передачи пакета не более 1мс. В Linux написали приложение в юзерспейсе (кушает 2...5%CPU). И теперь ответный пакет (3-5байт) из Linux приходит не сразу, а с задержкой до 10 мс (подозрение на переключение контекста). Работать без ответов нельзя - МК должен убедиться, что доставил пакет в Linux приложение. При этом МК тратит на обработку пакета до 80 мкс. В итоге средняя скорость данных - около 4700 байт/сек. Что хочется сделать: Главное - максимально быстро дать знать МК, что пакет принят. Теоретически, если бы в большинстве случаев (иногда задержки до 10 мс допустимы) Linux по UART-у отвечал так же быстро, как и МК, то: - в течении 10 мс может прийти до 10 пакетов и нужно сделать 10 ответов. - скорость может быть почти 41000 байт/сек, то есть почти в 9 раз больше! - обработку собранных пакетов можно сделать и позже (приемлемо до 100 мс). Теперь собственно вопрос: Как в Linux сделать быстрый ответ по UART? В данном случае уже всё равно - userspace or kernelspace. Изучая этот вопрос, склоняюсь к написанию специальной line discipline, однако не могу найти вразумительное описание как это делается.
  3. Компилятор работает, насколько правильно - еще руки не дошли проверить. Но по крайней мере он не ругается опцию -mv67p. Остальное, кроме эмуляции, от архитектуры не зависит (я надеюсь).
  4. Еще бы знать, есть ли у них С6726 на роадмапе для CCSv5?
  5. xdsprobe с драйвером 0.0.4 отработал iso и non-iso без проблем.
  6. Кто-нибудь знает причины очень медленной работы SAU510 в CCS под Virtualbox? Ubuntu 10.10 / Virtualbox 3.2.12 with USB support / WinXP SP3 / CCSv4.2.1 / Helloworld project / SAU510 / TMS320C6726 -> 30 секунд загрузки. WinXP SP3 / CCSv4.2.1 / Helloworld project / SAU510 / TMS320C6726 -> менее 1 секунды загрузки. Считал от появления прогрессбара до его заполнения.
  7. Новая руля прошла успешно. non-iso прошел все три xdsprobe успешно. iso ругается: The value is '-157' (0xffffff63). The title is 'SC_ERR_POD_STARTUP' Написал пару скриптов для запуска тестов. Скрипты и результат прилагаю. sau510_test.tar.gz ----------------- UPD: видимо это были проблемы проводов. На другой плате всё прошло. После переподключения из CCS3.1 и на первой тоже.
  8. 1. ccs при переустановке из под sudo предложила по умолчанию /usr/local/CCSv5. Там теперь и стоит. 2. Запуск sudo ./install.sh сначала был неудачным. Поправил немного - сработал. Что получилось - положил в архив. Как отрабатывало в консоли - в install_shell.log. Кратко: sh->bash, udevinfo -> udevadm info. 3. С новыми скриптами 71-sauris.rules не получилось. Погуглив, нарыл http://igorka.com.ua/2010-03-24/znakomstvo-s-udev-v-ubuntu/. 4. Открыл /lib/udev/rules.d - оказывается используется ATTRS а не ATTR, а вместо SUBSYSTEM - ENV{DEVTYPE}. Вложил всю папку /lib/udev из убунты, может поможет. 5. Сделал соотвественно дебажное правило 71-sauris.rules, его тоже вложил. 6. В правиле скриптик sau_loader.sh вместо sau_loader. И его вложил. 7. Протестил подключение non-iso sau510, прихватил с работы. Результат из /tmp/saulog (тоже положил): 2-1.1 Incorrect format of argument sau510_lin_0.0.3_testlog.tar.gz UPD: Пока баловался с udev - перезапускал ее вручную /etc/init.d/udev restart. Инсталлятор этого не делает. Результат команд с udevinfo прилагаю. echo "udevadm info -e | grep 17ba -A3 -B7" > udevinfo1.log udevadm info -e | grep 17ba -A3 -B7 >> udevinfo1.log echo "udevadm info -a -p /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1" > udevinfo2.log udevadm info -a -p /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1 >> udevinfo2.log udevinfo.tar.gz
  9. Не пошел первый шаг. Пробовал 71-sauris.rules версии 0.0.1, 0.0.2, а также с SYSFS и ATTR. Есть два емулятора iso и non-iso. iso светит и зеленым и красным в act. non-iso не засветил act вообще.
  10. Да, действительно поддержки еще нет: http://processors.wiki.ti.com/index.php/Linux_Host_Support Ждем апдейтов от Texas. ------- По теме: dmesg показывает [77271.035158] usb 2-1.1: new high speed USB device using ehci_hcd and address 14 Что еще потестить незнаю :(
  11. CCSv5.0.1, Ubuntu 10.10, ccs ставил в /home/zlolik/bin/ti/ccsv5 = <ccsroot>, sauris -> /home/zlolik/bin/ti/sauris. ccs качнул вчера по той же ссылке, sauris - из этой ветки. При установке ccs снял галку с Emulators, но поставил на XDS100. SYSFS поменял на ATTR, так как увидел ATTR в каком-то 70-persistent-net.rules, ссылку на "sau_loader" переделал под полный свой путь. Сделал проект helloworld для TMS320C6726. При попытке запустить дебаг ругнулось на <ccsroot>/ccsv5/ccs_base_5.0.1.00036/emulation/drivers/libtixds6000.so какое-то. И этой либы там действительно нет. Запуск инсталлятора заново со всеми галками не помог. Проверял пока без подключения, sau510 на работе. PS: Аналогичный helloworld в ccs 4.2.1 под Virtualbox/WinXP дебажится под симулятором нормально. А при дебаге без SAU510 ругается: Error connecting to the target: Error 0x80000200/-141 Fatal Error during: OCS,
  12. Да, спасибо за наводку, GDI. Почему-то думалось, что ветке про програматор олжно быть всё про него в том числеи и про запуск под Линукс. Хорошенько попользовав поиск по форуму, взял прошивку из этого сообщения и попатчил, как сказал GDI здесь. Использовал штатный Makefile от winavr, указав программатор stk500v2 и порт avrdoper. Теперь программатор от prottoss-а работает у меня и в линуксе. Большое всем спасибо. Что получилось - прикрепил. LinProtDoper.2008_11_27.zip
  13. Собрал программатор, прекрасно работает на работе на винде. Дома линукс на eeepc. На команду "avrdude -P /dev/ttyACM0 -c avr910 -p8535 -U flash:w:main.hex:i" говорит: avrdude: ser_send(): write error: Invalid argument Что я делаю не так и что вообще надо делать, чтобы завести программатор под линуксом?