Програмная часть: координаторыКоординатор: высший модуль, который вызывает процедуры инициализации прочих модулей и затем передает управление одному из модулей режимов. Существует два координатора: рабочий (main.asm) и отладочный (main_debug.asm). Координатор - это, одновременно и прошивка ATmega32. Одновременно в памяти плейера присутствует только один координатор, хотя, благодаря тому, что модуль внутрисхемной прошивки у них общий, менять координаторы можно даже не вскрывая корпус плейера. Рабочий координатор используется в обычном (автономном) режиме работы плейера и предназначен для повседневного использования. После инициализации аппаратуры и программных модулей из энергонезависимой памяти извлекается номер модуля, который должен быть активизирован и управление передаётся ему. При возврате управления координатор анализирует код возврата и по нему принимает решения по следующим вопросам: 1) какой модуль должен быть активизирован теперь ? 2) нужно ли сохранять номер активизируемого модуля в энергонезависимой памяти ? 3) нужно ли вновь выполнять инициализацию устройств и модулей ? Код рабочего координатора прост и незатейлив, сказать по нему больше нечего. А вот код отладочного координатора - это страшное дело :) Сложнее - только его интерфейс. Ему посвящен отдельный раздел. |