В общем, поскольку изготовление плат подходит к концу, плюсом уже подьезжают платы расширения ОЗУ до 520кб суммарно (8кб своих + 512кб) и они будут со встроенным держателем SD-карт на SPI интерфейсе Меги, то .. возникла идея:
Разместить в зоне загрузчика (выделить из него) код, позволяющий доливать в процессе работы куски во флеш или оперативу с SD-карты. Получается "этакий Bios" .. как себе это вижу:
Из скетча, предварительно сложив "команду и адрес" в 3 резервных регистра GPIO (они есть!) вызываем "ОС" (загрузчик) с "дальнего адреса" (можно реализовать таблику переходов, типа номера функции), и загрузчик, т.к. он сидит во "втором блоке флеша", вполне может дозалить нечто указанное из SD сразу во флеш, точно также как он заливает скетч при загрузке.
Возможно это долго и гемморно, но у меги 256кб флеша и редко какой скетч "долетает даже до середины Днепра" .. аналогично, (там около 4 килобайт макс!) можно сделать заливку из SD в SRAM в т.ч. и вот эту "расширенную" блоками по 16кб.
Что ищу (хочу найти):
1. Исходники бутлоадеров. Желательно разных для сравнения решений;
2. Есть ли готовый бутлоадер скетчей с SD карт или с чтением исходника по SPI?
3. Какой механизм обращения в зону бутлоадера наиболее применим для вызова его подпрограмм (библиотеки, Биос, и т.д.)?
В результате хочу получить в верхней 4кб области флеша набор утилит, позволяющий читать SD по SPI, возможно (если влезет) по UART0..3 и напоследок если останется место по I2C .. который позволит читать блоки по этим интерфейсам и заливать их в нижнюю (программную) область, тем самым доливая/изменяя скетч или его часть.
В Максиуме - аналогичное действие для чтения/записи в SRAM по всей ширине адресной шины в 64кб (листать страницы интерфейса расширения SRAM, ПО у меня уже есть)..
Как-то так .. идеи, помощь, критика?
Разместить в зоне загрузчика (выделить из него) код, позволяющий доливать в процессе работы куски во флеш или оперативу с SD-карты. Получается "этакий Bios" .. как себе это вижу:
Из скетча, предварительно сложив "команду и адрес" в 3 резервных регистра GPIO (они есть!) вызываем "ОС" (загрузчик) с "дальнего адреса" (можно реализовать таблику переходов, типа номера функции), и загрузчик, т.к. он сидит во "втором блоке флеша", вполне может дозалить нечто указанное из SD сразу во флеш, точно также как он заливает скетч при загрузке.
Возможно это долго и гемморно, но у меги 256кб флеша и редко какой скетч "долетает даже до середины Днепра" .. аналогично, (там около 4 килобайт макс!) можно сделать заливку из SD в SRAM в т.ч. и вот эту "расширенную" блоками по 16кб.
Что ищу (хочу найти):
1. Исходники бутлоадеров. Желательно разных для сравнения решений;
2. Есть ли готовый бутлоадер скетчей с SD карт или с чтением исходника по SPI?
3. Какой механизм обращения в зону бутлоадера наиболее применим для вызова его подпрограмм (библиотеки, Биос, и т.д.)?
В результате хочу получить в верхней 4кб области флеша набор утилит, позволяющий читать SD по SPI, возможно (если влезет) по UART0..3 и напоследок если останется место по I2C .. который позволит читать блоки по этим интерфейсам и заливать их в нижнюю (программную) область, тем самым доливая/изменяя скетч или его часть.
В Максиуме - аналогичное действие для чтения/записи в SRAM по всей ширине адресной шины в 64кб (листать страницы интерфейса расширения SRAM, ПО у меня уже есть)..
Как-то так .. идеи, помощь, критика?