AN3927 Freescale USB Mass Storage Device Bootloader Application Note Rev. 0, 11/2009 (перевод)

Шапка

USB Mass Storage Device Bootloader. 24.09.10

Содержание


  1. Введение
  2. Функциональное описание
    2.1 Общее описание

    2.2 Режимы загрузчика и приложения

    2.3 Опознание USB устройств

    2.4 Псевдо FAT

    2.5 Разбор записей формата S19

    2.6 Повторное опознание устройства

    2.7 Статус загрузчика

    2.8 Защита программной памяти

    2.9 Переадресация таблицы векторов прерываний

    2.10 Использование стека и оперативной памяти

    2.11 Карты распределения памяти

    2.12 Использование ресурсов
  3. Структура проекта
    3.1 Структура каталогов проекта

    3.2 Структура проекта для ColdFire V2

    3.3 Структура проекта для ColdFire V1

    3.4 Структура проекта для MC9S08
  4. Использование загрузчика
    4.1 Предупреждение перекрёстных вызовов

    4.2 Использование загрузчика с отладочными платами

    4.3 Создание нового проекта с загрузчиком

    4.4 Добавление загрузчика в проект для ColdFire V2

    4.5 Добавление загрузчика в проект для ColdFire V1

    4.6 Добавление загрузчика в проект для MC9S08

    4.7 Перенос загрузчика на другие контроллеры
  5. Устранение неисправностей
    5.1 Вектор сброса

    5.2 Вектор пользователя

    5.3 Прерывания

    5.4 Загрузчик затирает собственный код

    5.5 Ошибки перекрытия сегментов при компоновке

    5.6 USB диск не появляется в управляющей системе

    5.7 Ошибка до начала записи файла

    5.8 Ошибки при стирании/записи программной памяти

    5.9 Перекрёстные вызовы
  6. Заключение

Приложения

  1. mcf5222x_vectors.s из примера CMX для Coldfire V2
  2. LCF-файл из примера CMX для Coldfire V2
  3. hid_main.c из примера CMX для ColdFire V2
  4. usr_entry_V2.c из примера CMX для ColdFire V2
  5. LCF-файл из примера CMX для ColdFire V1
  6. hid_main.c из примера CMX для ColdFire V1
  7. PRM-файл из примера CMX для MC9S08
  8. hid_main.c из примера CMX для MC9S08


1 Введение

Freescale предлагает широкую гамму контроллеров с USB-портами. Использование USB в изделии позволяет легко обновлять внутреннее программное обеспечение в "полевых" условиях. Данная статья описывает USB загрузчик в виде съёмного носителя данных, пригодный для работы на нескольких семействах контроллеров Freescale. Устройство с загрузчиком подключается к управляющему компьютеру и опознаётся им как новый диск. Новое программное обеспечение копируется на этот диск, после чего устройство программирует само себя.

Компания Freescale предлагает и другие варианты, например, описаный в статье "USB загрузчик для MC9S08JM60" (AN3561) для семейства Flexis JM.

Загрузчик в виде съёмного носителя данных имеет следующие преимущества:

  • не требуется установка драйверов на управляющем компьютере;
  • не требуется запуск специальных приложений для обновления программы;
  • не требуются специальные знания и обучение. Единственная необходимая операция - копирование файла на диск;
  • совместимость со многими операционными системами.

Представляемая программа специально писалась под несколько семейств контроллеров Freescale, использующих сходные периферийные модули USB. Эти семейства включают Flexis JM, MC9S08JS и модели с портом USB из семейства ColdFire V2 MCF522xx. Предлагаемый код должен работать на всех этих контроллерах с минимальными правками. Примеры были написаны и проверены на следующем оборудовании:

Проверенные контроллеры Freescale:

MCF52259 32-х битный ColdFire V2;
MCF51JM128 32-х битный ColdFire V1, входит в семейство Flexis JM;
MC9S08JM60 8-и битный S08, входит в семейство Flexis JM;
 

Проверенные отладочные платы:

M52259DEMO отладочная плата под семейство MCF5225x;
DEMOJM отладочная плата под семейство Flexis JM;
 

Проверенные операционные системы:

Windows XP Pro, Service Pack 2;
Windows Vista business, 32-bit, Service Pack 1;
Fedora 8 с ядром Linux 2.6.26.
 
ПредпросмотрAttachmentSize
an3927_html.zip258.37 КБ