Как получить более быструю загрузку с Adafruit Feather SAMD21?
Adafruit Feather SAMD21 занимает около двух секунд от подачи питания до запуска функции setup (). Как я могу сократить это время, чтобы setup() запустилась раньше? Я измеряю это время с помощью источника питания, а другие, похоже, измеряют то же время своими глазными яблоками.
Я понимаю, что 328 микроконтроллеров можно заставить загружаться быстрее (почти мгновенно с человеческой точки зрения), например, используя различные загрузчики, но я не нашел ни одного для M0 SAMD21, ни другого метода.
Код не имеет отношения к делу, потому что пример blink показывает один и тот же таймфрейм, но вот еще один пример:
//никаких библиотек, глобальных переменных, ничего.
setup(){
digitalWrite(LED_BUILTIN, HIGH);
}
loop(){
}
@rfii, 👍1
Обсуждение1 ответ
Лучший ответ:
Сверившись со спецификацией SAMD21, я убедился, что процессор запускается сразу же, как только внутренние часы становятся стабильными. Это происходит быстро. Вектор сброса направляет выполнение на загрузчик Arduino, который, безусловно, вращается в ожидании подключения программатора Arduino. Если этого не происходит во время этой задержки, загрузчик переходит к резидентному приложению. Задержка без активности-это то, как загрузчик определяет, что вы хотите запустить приложение. Вы можете устранить это, запрограммировав процессор с помощью аппаратного программатора/отладчика и избавившись от загрузчика Arduino.
Аппаратные программаторы также позволяют отлаживать точки останова исходного уровня. Вам просто нужно научиться использовать приличную среду программирования IDE. Хороший prgrammer обойдется вам примерно в 160 долларов.
Потрясающая идея и исследование! Спасибо. Есть ли у вас ссылка на тип программатора и IDE или что вы подразумеваете под удалением загрузчика? Может быть, это? https://learn.adafruit.com/how-to-program-samd-bootloaders, @rfii
- Высокочастотный PWM на Adafruit Feather M0
- Не удается успешно реализовать синглтон
- Код Neopixel не работает на плате Adafruit Feather
- Несовместимость микроконтроллера MacBook + BLE?
- Интеграция гелия с перьями Adafruit
- Возникли проблемы с пониманием того, что делает "#define GET_STATUS"
- Как записать загрузчик?
- Не удается снова загрузиться после смены платы
Я не думаю, что это имеет значение, потому что другие люди наблюдают одно и то же время начала. Во всяком случае, извиняюсь за форматирование
setup(){ digitalWrite(LED_BUILDIN,HIGH);} loop(){}
Больше ничего нет ни до, ни после. Стандартный пример мигания показывает то же самое., @rfiiИзмеряется с помощью источника питания. Другие люди наблюдают примерно в то же время., @rfii