2017-02-01 4 views
-1

В настоящее время я собираю некоторые вещи с помощью Arduino Uno/Nano с использованием языка C, и мне нужно вставить некоторый уже скомпилированный код извне в исполняемый файл во время выполнения.Вставьте машинный код в код C во время выполнения

Я хочу использовать его как динамически связанную библиотеку, которую я могу обменять в рамках программы.

Вот код, чтобы показать, что я имею в виду:

int external_code(int); // the external code needs to be called some way 
void set_external_code(char*); // set the external code that gets executed 
+0

Arduino не является C! AVR - это архитектура гарвард и не очень подходит для динамического загрузки кода. Также код сборки должен быть переведен до использования. Если вы имеете в виду ** машинный код **: это совсем другое. – Olaf

+0

@Olaf Arduino просто использует чип AVR, и я скомпилирую C, чтобы создать необходимый байт-код. – CodenameLambda

+0

@Olaf Я имел в виду машинный код – CodenameLambda

ответ

2

Если вы собираетесь загрузить дополнительный программный код через последовательный порт, вы не можете сделать это.

От Arduino docs:

Примечания: Флэш-память (PROGMEM) может быть заполнена только в программе времени гореть. Вы не можете изменить значения во флэш-памяти после запуска программы.

AVR хранит программы в отдельной физической памяти (Flash). Вы можете читать, но не можете писать во время выполнения, в отличие от ОЗУ и EEPROM.

Смежные вопросы