Коллеги, добрый день. Есть ли среди вас владельцы STM32F4 с Espruino? Помогите пожалуйста разобраться: 1. Для работы с IDE требуется подключать два USB кабеля. Один на стороне ST-Linc ради питания. Другой на стороне контроллера для связи с IDE. Можно ли подавать питание через разъём на стороне контроллера? 2. Я загрузил в STM32F4 программу, которая появляется при открытии IDE Код (C++): var on = false; setInterval(function() { on = !on; LED1.write(on); }, 500); и у меня начал мигать светодиод. Но при нажатии на кнопку RESET на контроллере происходит: -- отсоединение платы от IDE (внизу появляется надпись Disconected) -- светодиод на плате тухнет и больше не мигает. Похоже, что по RESET не перезапускает загруженную программу или стирает её. Это корректное поведение кнопки RESET?
Да. Это корректное поведение. В настройках IDE, на вкладке Communication есть галочка «Save on Send». Поставьте её, чтобы программа сохранялась.
Коллеги, обнаружил что с этой опцией программа перестаёт грузиться в discovery Вот такое сообщение: Нашёл на форуме Espruino свежее сообщение о этой ошибке http://forum.espruino.com/conversations/285341/ если я правильно понял, то это будет исправлено в ближайшей версии.
Для Discovery опция Save on Send заработает, когда выйдет прошивка 1v86. Для Iskra JS опция работает уже сейчас.
А сегодня для Discovery есть способ оставить программу в контроллере после передёргивания питания? Похоже что нет.
Есть. После загрузки в консоли исполните: save(); Однако, имейте в виду, что это сохранит состояние интерпретатора по итогу исполнения загруженной программы: после ресета у вас продолжат работать функции, висящие на setInterval, но код инициализации исполнен заново не будет. Чтобы что-то было исполнено при загрузке, поместите это что-то в E.on('init', …): Код (Javascript): E.on('init', function() { A0.set(); A1.reset(); });
Может я пропустил. Есть ли подробное объяснение логики сохранения законченных программ? Сделал я некоторую программу, она работает так как нужно. Каковы дальнейшие действия?
Вариант 1: выполнить `save()`. Это сохранит состояние интерпретатора в flash. Т.е. сделает дамп из оперативной памяти в флеш. Этот вариант — аналог гибернации ПК. Вариант 2: выполнить `E.setBootCode('var myJava = 'script'; code()…'). Это запишет в флеш текстовую программу, переданную в строке. Эта программа будет выполнена всякий раз, когда делается обычный сброс платы. Этот вариант — аналог прошивки Arduino. Первый вариант хорош, если вы из костылей и палок составили нужное поведение через консоль. Второй вариант хорош, если вам просто нужно, чтобы код из «правой» панели выполнялся при старте платы.
Чет до конца не въехал в этот вариант... Мой вариант. Скрипт закончен. Обрамлаяю скрипт так: Код (Javascript): E.on('init', function() { // Ниже мой скрипт полностью ... ... }); Загружаю кнопкой в IDE Iskra JS После чего в терминале набираю команду save() Работает...