С чего начать, чтобы написать свою библиотеку по загрузке бинарника в микроконтроллер?
Есть микроконтроллер ATmega328p
Хочу написать библиотеку на С, при помощи которой прошью этот МК.
Знания, которые, я думаю, мне пригодятся, это: понимание работы линковщика и умение писать конфигурацию для него; знание того, как работает flash-память; понимание работы памяти у этого МК; если передача через UART, то принцип его работы и как по нему передавать данные в той ОС, через которую собираюсь прошивать; что такое Intel hex (может есть и другой формат, я не знаю) и как его отправить в программатор, чтобы произошла прошивка.
С чего стоит начать? Что почитать? Есть, может, какие-то специальные книги по этой теме?
mayton2019, твой пример обращается к материальным сущностям.
В моем примере, тебя, наверное, смутил переход от абстракции в виде "Библиотека на Си" к конкретной (т.е. материальной) железке - микроконтроллеру. Получается, мне нужно добавить пару деталей: библиотека хранится в виде электронов в конкретной железке под названием "оперативная память", результатом работы которых являются такие же электроны, но уже в другой последовательности. Эта последовательность передается по проводу в микроконтроллер, в котором тоже работают электроны, и, реагируя на мои переданые электроны, вместе образуют новые (прошивку)
Теперь, надеюсь, у тебя не будет возникать вопросов
У твоей задачи есть как минимум два решения. Одно, попроще: взять готовую программу прошивки, посмотреть, как она работает, написать библиотеку реализующую то же самое. Другое, посложнее: начать со спецификации контроллера который ты собираешься прошивать и раскручивать зависимости с той стороны. Поскольку ни то, ни другое решение сами по себе большого смысла не имеют (потому что есть уже программы для прошивки), тебе надо решить, чего ты сам хочешь получить от этого упражнения.
Есть, может, какие-то специальные книги по этой теме?
Спецификации на контроллер, а недостаток большой картины можно покрыть википедией и всяким osdev.org