kalexi Опубликовано 18 декабря, 2015 Поделиться Опубликовано 18 декабря, 2015 (изменено) Вопрос в том как это сделать? И можно ли? Что нужно: * Загрузиться * Сгенерировать байткод прямо в программе * Передать ему выполнение * После окончания его работы вернуться в место вызова и получить результат. Примером самой простой подпрограммы может быть: var + 1. Изменено 18 декабря, 2015 пользователем kalexi 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
COKPOWEHEU Опубликовано 18 декабря, 2015 Поделиться Опубликовано 18 декабря, 2015 man stlf-programming ; man bootloader Если не смущают трудности в виде поблочного доступа (вместо побайтного), ограниченного ресурса перезаписи, времени перезаписи (в течение которого остальная программа просто ждет, даже прерывания не работают), тогда смотрите в сторону самозагрузчиков, в Евстифееве, например. На счет "передать выполнение и получить результат" - так вызов подпрограммы по известному адресу - команда icall. Через какие регистры возвращать результат - это уже на ваш выбор. В avr-gcc принято через r24-r25, кажется, можно уточнить в соответствующей документации. Но поскольку писать будете на ассемблере (на Си в данном случае ИМХО сложнее), соглашения вызова подпрограмм целиком на ваше усмотрение. 0 Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз. Часть моих наработок. Ссылка на комментарий Поделиться на другие сайты Поделиться
Реле, вентиляторы, корпуса, разъемы, а так же любые электронные компоненты в нашем каталоге! Бесплатная доставка + 15% кэшбэк + скидки!Перейти на сайт ТМ Электроникс Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.