Загрузчики Blackfin |
![]() |
Добавил(а) microsin |
На сайте uclinux.org [1] описано несколько способов готовых загрузчиков для Blackfin, поддерживаемых uclinux: Boot ROM. Стандартная опция для загрузки - встроенное в кристалл процессора Blackfin ПЗУ с кодом загрузчика (on-chip bootrom). Также это может быть и самописный загрузчик [4]. Ниже показан общий обзор того, что происходит при включении питания/сбросе типовой системы на основе процессора Blackfin. 1. При включении питания процессоре переходит в режим супервизора на уровне приоритета прерывания IVG5. I. Если происходит пропуск загрузки (bypass), то выполнение кода начинается с адреса 0x20000000 (первый банк асинхронной памяти). II. Если активируется встроенный загрузчик, то код начинает выполняться с адреса 0xEF000000 (Boot ROM [2]). 2. Начинает выполняться код Boot ROM. I. Проверяются логические уровни на выводах BMODE (они определяют режим загрузки процессора [3]). II. Проверяется память OTP (если она доступна). III. Конфигурируется выбранный источник загрузки. IV. Загружается LDR (что такое LDR и его формат описано в статье [4]) из выбранного источника, и выполняется код инициализации (init section). • Перепрограммируется тактирование процессора (SCLK, CCLK). V. Загружается остальная часть приложения во внутреннюю и внешнюю память (если это необходимо). • Обычно этим приложением служит загрузчик Das U-Boot. VI. Происходит переход на начало приложения. 3. Если не приложение, то на этом шаге работает так называемый загрузчик второй стадии (2nd stage boot loader, Das U-Boot или MicroMonitor). I. Выполняется любое необходимое перераспределение памяти. II. Опционально выполнение кода переводится на более низкий уровень приоритета IVG15. III. Инициализируются устройства (встроенные в процессор, внешние, и т. д.). IV. Выполняется последовательность команд: a. Настройка рабочего окружения (setup environment). • Это может быть обычная встроенная программа (на основе VDK, другой RTOS или просто приложение с одним потоком и прерываниями). 4. Загружается Linux. I. Инициализируются устройства (встроенные в процессор, внешние, и т. д.). II. Запускаются приложения уровня пользователя. 5. Возврат на верхний уровень: I. Если приложение не уничтожило содержимое областей памяти, где находится U-Boot, то приложение может вернуть управление в U-Boot. II. Выполняется программный сброс системы (software system reset) для возврата в Boot ROM. [Ссылки] 1. Blackfin Bootloaders site:blackfin.uclinux.org. |