June 17th, 2020

core5277 - ядро на ассемблере для ATmega, поддержка ATmega16

Сегодня я ввел поддержку ATmega16 в своем ядре.

По сути, если задачи(как и задумано) используют функции ядра и драйвера, то их код будет идентичен для ATmega16,ATmega88,ATmega328. Понятно, что ввести поддержку после ATmega16 таких как ATmega8,48,168 не составит большого труда.

Единственное но, это конечно ресурсы, объем памяти разный, из-за этого есть ограничение по количеству задач и драйверов, например для ATMega16/88 я выставил максимальное общее количество - 8, для ATMega328 - 23. Такие проблемы, как отсутствие команд CALL и разные таблицы прерываний я решил.

Пока я еще не столкнулся с проблемой, например, когда на МК нет аппаратного TWI. Но для работы с I2C в моем ядре нужно использовать драйвер. Т.е. для МК без аппаратного TWI необходимо за место драйвера аппаратного TWI подгрузить драйвер программного TWI.