Comments 29
UFO landed and left these words here
UFO landed and left these words here
Сама библиотека к платформе никакой привязки не имеет. Требуется дописать 2 функции — прием и передачу символов (связку между железом и библиотекой).
UFO landed and left these words here
Совершенно верно, спасибо theaspin! Действительно, ее можно прикрутить, по идее, куда угодно, я хотел ее сделать как можно более простой и понятной, ведь Embedder-ские компиляторы не всегда такие же умные и удобные как GCC…
UFO landed and left these words here
Автор, правильно ли я понимаю: в памяти контроллера хранятся некие функции, которые вызываются в зависимости от того, что пришло по UARTу (или другому интерфейсу)? Т.е. можно реализовать следующее — прошить контроллер «реакциями» (функциями). и все. а программу писать на любом языке на компьютере. в свою очередь эта программа посылает команды по УАРТу, например, и контроллер делает то, что мы от него хотим. То есть ОДИН РАЗ ПРОШИЛ, и используй в разных целях НЕ ПРОШИВАЯ. Я правильно понимаю цель?
и еще вопрос. почему бы не написать приложение-терминал самому? например для того, чтобы на стороне компьютера организовать автодополнение и историю команд. чтобы этой информацией не забивать память МК. в бльшинстве случаев память — очень критичный момент для контроллеров)
Мне кажется основная выгода в том, что телнет уже есть готовый для кучи девайсов, и если на плате есть, например, bluetooth, то рулить ей можно будет с одинаковым удобством как с компа под виндой или линуксом, так и с андоидофона.
А как терминал узнает какие команды есть в железке на том конце провода?
А тем более про аргументы этих команд, где и какую надо дополнять? ;)

Историю да — по идее можно сделать и в терминале.
Я вас понял, вы хотите некую виртуальную машину, которая выполняет команды, причем передаваемые с компьютера а не зашитые в скрипте, вот тут человек сделал нечто подобное bitlash.net/wiki/start#how_does_it_work
Это интерпретатор который выполняет функции из EEPROM или с SD карточки (понимает FAT и файлы).

Я хотел сделать либу для консольного ввода, интерпретатор я намеренно сделал для демонстрации отдельно, можете сделать свой или найти готовый, суть в том, что сам по себе интерпретатор вещь специфическая, всем (и мне) нужные разные системы команд и разный функционал в разных проектах.

Его мы пишем под необходимую задачу, тем более что это довольно просто и не отнимает много времени. Ведь где то надо больше интер-активности, поддержка скриптов, куча команд, а иногда хватит и 3 команд для всего.
не подумал. действительно, мобильность достигается за счет этого. хотя, этими удобствами можно и пожертвовать (история команд, автодополнение), дабы беречь память мк.
Отличная библиотека. Давно искал такую, а самому влом было писать. Поэтому пользовался совсем простенькой из avrlib. Там, например, история только одной команды, нет управляющих символов, да и много чего еще.
В общем, автор, большое спасибо за открытые исходники!
Рад если воспользуетесь, пишите в личку или в IssueTracker на github.com если будут проблемы, баги или предложения!
Если хотите получить больше отзывов и пожеланий технического плана, советую опубликовать разработку на тематических сайтах. Например, здесь: forum.electronix.ru
Примите и от меня благодарность, я как раз недавно хотел заиметь простенький шелл на своёй платке с STM32, прямо мысли мои прочитали (:
По-идее так можно узнать о наборе команд: из терминала посылается запрос в железку «выдать список команд». а описание команд хранить на стороне терминала. может и бред сейчас говорю, но как вариант годен.

знаете, я когда прочел Вашу стать, то сразу появилась такая мысль. Ведь флеш память МК выдерживает около 100000 циклов перезаписи. А такой подход с консолью решает эту проблему. нужно только раз прошить МК набором функций самых элементарных (записать значение в порт, считать и т.д.) и писать скрипт на компьютере, который просит выполнить набор этих команд. То есть к МК можно будет подключать разную периферию без перепрошивки кода внутри МК. стоит только изменить скрипт выполняемый на стороне компьютера. правда в этом случае скорость последовательности выполнения команд ограничивается скоростью передачи данных в МК (UART, USB, BLUETOOTH). очень мощный и интересный подход.ь на стороне терминала. может и бред сейчас говорю, но как вариант годен.

знаете, я когда прочел Вашу стать, то сразу появилась такая мысль. Ведь флеш память МК выдерживает около 100000 циклов перезаписи. А такой подход с консолью решает эту проблему. нужно только раз прошить МК набором функций самых элементарных (записать значение в порт, считать и т.д.) и писать скрипт на компьютере, который просит выполнить набор этих команд. То есть к МК можно будет подключать разную периферию без перепрошивки кода внутри МК. стоит только изменить скрипт выполняемый на стороне компьютера. правда в этом случае скорость последовательности выполнения команд ограничивается скоростью передачи данных в МК (UART, USB, BLUETOOTH). очень мощный и интересный подход.
Для процесса разработки, такое количество циклов можно считать бесконечным.
Плюс есть внутрисистемные отладчики(JTAG, debugWire для AVR) которые позволяют ускорить отладку и снизить количество необходимых перепрошивок.
А я вот на днях запилил работу с SD-картами, FAT32 и парсер ini-файлов под STM32. Теперь можно конфиг прямо на SD-карте хранить. Ещё всё хочу Scheme туда впихнуть в виде байткода или в нативном (ещё компилятор найди, ага), тогда можно будет и скрипты с карты прожёвывать. Что-то меня в сторону Linux несёт, чувствую (:
> В ближайшее время сделаю библиотеку для Arduino SDK
Быть бы в курсе такого события… )
Only those users with full accounts are able to leave comments. Log in, please.