Почитал
http://pygmy.utoh.org/3ins4th.html про простейший конечный автомат, управляемый командами с последовательного порта. Судя по тексту, этот прием работает только на микроконтроллерах с фон-неймановской архитектурой, и не подходит для современных распространенных контроллеров, так как в общем случае нет возможности переписывать память программ, и использовать команду call (хотя старшие AVRы вроде умеют переписывать память программ кусками).
Кто применял что-то подобное для AVR или MSP430 ? Сколько и какие команды должны поддерживаться контроллерной прошивкой, чтобы можно было работать со связкой контроллер + хост в интерактивном режиме ? Насколько использование чтения/записи памяти программ в старших AVR ATmegaXXX позволяет реализовать интерактивную модификацию кода контроллера ?
Естественно можно реализовать полную поддержку нескольких десятков команд типичной форт-машины, но при этом придется отказаться от возможности работы с маш.кодом микропроцессора, получим переносимость, похерим скорость и потеряем несколько Кб на код интерпретатора.
Почитал [url]http://pygmy.utoh.org/3ins4th.html[/url] про простейший конечный автомат, управляемый командами с последовательного порта. Судя по тексту, этот прием работает только на микроконтроллерах с фон-неймановской архитектурой, и не подходит для современных распространенных контроллеров, так как в общем случае нет возможности переписывать память программ, и использовать команду call (хотя старшие AVRы вроде умеют переписывать память программ кусками).
Кто применял что-то подобное для AVR или MSP430 ? Сколько и какие команды должны поддерживаться контроллерной прошивкой, чтобы можно было работать со связкой контроллер + хост в интерактивном режиме ? Насколько использование чтения/записи памяти программ в старших AVR ATmegaXXX позволяет реализовать интерактивную модификацию кода контроллера ?
Естественно можно реализовать полную поддержку нескольких десятков команд типичной форт-машины, но при этом придется отказаться от возможности работы с маш.кодом микропроцессора, получим переносимость, похерим скорость и потеряем несколько Кб на код интерпретатора.