Загрузчик Arduino

Кто-нибудь может объяснить, как работает загрузчик Arduino ? Я не ищу здесь высокоуровневого ответа, я прочитал код и понял его суть.

Вот ' Это связка протокольного взаимодействия, которое происходит между IDE Arduino и кодом загрузчика, что в конечном итоге приводит к ряду встроенных инструкций сборки, которые самопрограммируют флеш-память с программой, передаваемой через последовательный интерфейс.

То, что мне непонятно, находится в строке 270:

void (*app_start)(void) = 0x0000; 

... которую я распознаю как объявление и инициализацию NULL указателя функции. Последующие вызовы app_start выполняются в тех местах, где загрузчик предназначен для делегирования выполнения кода, загруженного пользователем.

Конечно, как-то app_start нужно в какой-то момент получить значение, отличное от NULL, чтобы все это собралось вместе. Я не вижу этого в коде загрузчика ... это волшебно связано с программой, загружаемой загрузчиком? Предполагаю, что основная часть загрузчика - это точка входа в ПО после перезагрузки чипа.

Около 70 строк сборки должно быть заключено в секретное кольцо декодера, которое сообщает основной программе, где на самом деле находится app_start? Или, может быть, это какое-то неявное знание, используемое IDE Arduino? Все, что я знаю, это то, что если кто-то не изменит app_start так, чтобы он указывал где-нибудь, кроме 0, код загрузчика просто вращается сам по себе вечно ... так в чем же фокус?

Edit

Меня интересует попытка портируйте загрузчик на Tiny AVR, в котором нет отдельного места в памяти для кода загрузчика. Поскольку мне становится очевидным, что код загрузчика зависит от определенных настроек предохранителя и поддержки чипа, я думаю, что я

"Illegal use of -style tag without  as its direct parent"

Разве вам не разрешено так глубоко вкладывать теги условий в JSTL?


    
    altname
    
    
        
        altname
            
            
                
                altname
                    
                    altname
                    
                
            
            
        
    
    
    

10
задан Egg Yolk 6 September 2010 в 15:13
поделиться