![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Новый проект: ejtagproxy, утилита для отладки микроконтроллеров PIC32 с помощью GNU debugger. Подключается к процессору через адаптер PICkit2, PICkit3 scripting edition или Olimex JTAG USB-Tiny. Реализует стандартный GDB remote serial протокол. Поддерживает все семейства PIC32, включая mx1/mx2. Работает под Linux, Windows и Mac OS X. Годится не только GDB, но и другие его инкарнации: Insight, DDD, Eclipse.






no subject
Date: 2012-07-20 17:44 (UTC)p.s.: где-то видел отладчики с ethernet-интерфейсом, где gdb по сети пробрасывался.
no subject
Date: 2012-07-20 21:49 (UTC)Бывают коробочки с Ethernet, но дорогие обычно. По жизни проще для отладки старую писишку с Линуксом приспособить.
no subject
Date: 2012-07-21 19:11 (UTC)no subject
Date: 2012-07-24 21:14 (UTC)Я постепенно обдумываю мысль, как развернуть лабу про Uno32 в осмысленный семестровый курс по встраиваемым системам. С практическим подходом, минимум теории. Чтобы студенты сами, на ряде постепенно усложняющихся примеров, осваивали и придумывали свои реализации переключения задач, обработки прерываний, синхронизации мутексами, семафорами, мониторами и т.п.
no subject
Date: 2012-07-25 15:22 (UTC)Сейчас мы на школе за несколько занятий освоили базовые вещи в примитивном режиме ардуины (ввод/вывод) - углубляться дальше в эту платформу (изучать всякие шилды и соответствующие вызовы mpide) не имеет смысла - теперь школа автоматически вылилась в проектный практикум - "программисты" пока опять в таком же простом режиме пробуют управлять разными внешними двигателями типа обычного 5тивольтового моторчика, моторчика помощнее 12вольт (питание от внешнего источника, а не от платы), шаговыми двигателями. Машиностроители и автомибилисты в это время начали работать над внешними корпусами пары роботов (которые мы надеем распечатать на 3д-принтере), электронщики соединяют все это дело вместе проводами. В общем, когда дело дойдет (а это уже следующий шаг) до реализации на всем этом деле неких конкретных алгоритмов, вся эта алгоритмическая конкретика типа прерываний и переключений станет крайне необходимой, т.к. одним ардуиновским циклом loop() я думаю будет уже невозможно отделаться.
И далее тут можно выделить 2 возможных направления:
Первый относительно простой путь - это изучить, каким образом все эти алгоритмические строительные блоки можно применять в рамках стандартных решений (насколько я понимаю, речь идет о применении RTOS - я пока туда еще сам не углублялся).
Второй путь посложнее - научиться делать все эти штуки самим с нуля опять же на голом железе как в последней лабе, т.е. в конечном итоге каким-то образом построить эту урезанную RTOS самим.
Первый подход мог бы оказаться более универсальным в плане охвата аудитории и получения быстрых практических результатов, на которые мы нацелены. Как я говорил, у нас сейчас совместно взаимодействуют не только прикладники, но и автомобилисты и машиностроители и электронщики - у них немного своя специфика работы в этой области. Они тоже пытаются программировать контроллеры самостоятельно при помощи каких-то своих инструментов высокого уровня абстракции типа матлаба или каких-то графических тулзовин, которые для них потом генерируют необходимый низкоуровневый код. Но при этом они совершенно не прочь спустить на несколько уровней ниже - уровень с/с++ для них вполне подходит, т.к. они в текущем подходе на практике ощущают множество недостатков и сообщают о них - работа высокоуровневыми инструметами логично имеют побочный эффект в виде тяжелого кода, который практически не поддается оптимизации или заточке под конкретные задачи/железо. При этом с с/с++ они играть сами вполне могут тоже, но при условии, что для них будет обеспечен низкий порог вхождения в плане выбора инструментов, возможности быстрого запуска их алгоритмов на реальном железе (реальные платы в аудитории, а не эмуляторы) и предоставления некоего набора стандартных путей решения их стандартных задач (элементароно - как сделать таймер). На первом этапе у нас это уже получилось достигнуть и я получил от них очень позитивные отзывы даже после первых простых занятий (их впечатлило, что вот перед ними самая минимальная программа на с, на которой они вполне способны реализовать своих алгоритмы и вот она уже запущена на плате без кучи монстроузных промежуточных слоев).
Второй подход подошел бы больше конкретно студентам прикладной математики, для которых способность освоения любой новой среды разработки, языка программирования или внешней библиотеки является чем-то само собой разумеющимся, а пощупать, как некоторые стандартные вещи реализованы внутри тех же операционных систем и реализовать их самим могло бы стать как раз задачей для их уровня. Хотя конечно и навыки в области стандартных реализаций на данном этапе будут крайне полезны для них тоже, т.к. та же RTOS для них пока еще будет сама по себе новым материалом.
no subject
Date: 2012-07-25 15:55 (UTC)Нашли вот такую инструкцию http://hackaday.com/2010/11/03/how-to-program-pics-using-linux/ с микрочиповской утилитой pk2cmd (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805), но она судя по всему подходит только для PICkit 2 (хотя даже при этом не поддержвается официально микрочипом), а для PICkit 3 не подходит (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en538340), а специальной линуксовой версии для PICkit 3 микрочип видимо решил вообще не писать.
Также нашелся еще какой-то PonyProg (http://www.lancos.com/ppwin95.html), который уже давно протух - линуксовый бинарь не запустился из-за проблем с glibc, из исходников не скомпилировался по каким-то своим причинам, в которых не было времени разбираться, ну и в конечном итоге он все равно работал только с COM-портом, а не с USB (поэтому не полулось прошить им и с виндовой версии тоже).
Нашли также ваш pic32prog (http://code.google.com/p/pic32prog/), но в аудитории его сегодня запустить не получилось, т.к. бинарных сборок не нашлось, а интернет у нас через прокси для браузеров и как его приделать к svn, который качает из командной строки, не было времени разбираться. Ближайшие дни будут пробовать это сделать дома - сейчас вся надежда на него, но пока не ясно, сможет ли он прошить PIC16.
Вообще не знаю, как с этим дела обстоят у других производителей, а у микрочипа наблюдается какая-то странная политика в плане предоставления вспомогательных инструментов для собственных разработчиков - вместо того, чтобы брать и решать на их чипах реальные задачи, приходится тратить время на какие-то второстепенные вещи и разбираться с запуском простых утилит, хотя по моейло логике им должно быть выгодно, чтобы они работали вообще где угодно, а вместо этого они специально ставят такие глупые палки в колеса своим же пользователям (кстати, MPLAB с диска PICkit 3 тоже по какой-то причине не установился на Windows, который был в аудитории на ноутбуке, так что дело видимо не только с пользователями Linux). Возможно я просто отвык иметь дело с проприетарными разработками. Надеюсь при случае получится изложить им эту позицию.
no subject
Date: 2013-04-08 03:17 (UTC)Летняя шЛетняя школа по основам мехатроники - промежут
Date: 2012-08-05 22:43 (UTC)Новости про микроконтроллерные приложения MIPS из Нижне
Date: 2012-08-09 07:15 (UTC)Подготовка к лабораторным работам с промышленной реал
Date: 2013-04-07 23:40 (UTC)no subject
Date: 2014-06-04 10:51 (UTC)http://www.segger.com/pr-jlink-pic32.html
А это означает поддержку Eclipse. Оригинальные конечно уж очень дорогие, но Китай нас спасет :)
no subject
Date: 2014-08-27 10:58 (UTC)https://digilentinc.com/Products/Detail.cfm?NavPath=2,892,1078&Prod=chipKIT%20PGM
не уверен, что он поддерживает JTAG, вероятно только ICSP
В MPLAB X он называется Licensed Debugger: Chipkit Programmer