AN3927 Freescale USB Mass Storage Device Bootloader Application Note Rev. 0, 11/2009 (перевод)
USB Mass Storage Device Bootloader. 24.09.10
Содержание
- Введение
-
Функциональное описание
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.1 Структура каталогов проекта
3.2 Структура проекта для ColdFire V2
3.3 Структура проекта для ColdFire V1
3.4 Структура проекта для MC9S08 -
Использование загрузчика
4.1 Предупреждение перекрёстных вызовов
4.2 Использование загрузчика с отладочными платами
4.3 Создание нового проекта с загрузчиком
4.4 Добавление загрузчика в проект для ColdFire V2
4.5 Добавление загрузчика в проект для ColdFire V1
4.6 Добавление загрузчика в проект для MC9S08
4.7 Перенос загрузчика на другие контроллеры -
Устранение неисправностей
5.1 Вектор сброса
5.2 Вектор пользователя
5.3 Прерывания
5.4 Загрузчик затирает собственный код
5.5 Ошибки перекрытия сегментов при компоновке
5.6 USB диск не появляется в управляющей системе
5.7 Ошибка до начала записи файла
5.8 Ошибки при стирании/записи программной памяти
5.9 Перекрёстные вызовы - Заключение
Приложения
- mcf5222x_vectors.s из примера CMX для Coldfire V2
- LCF-файл из примера CMX для Coldfire V2
- hid_main.c из примера CMX для ColdFire V2
- usr_entry_V2.c из примера CMX для ColdFire V2
- LCF-файл из примера CMX для ColdFire V1
- hid_main.c из примера CMX для ColdFire V1
- PRM-файл из примера CMX для MC9S08
- 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:
|
Проверенные отладочные платы:
|
Проверенные операционные системы:
|
- блог пользователя teap0t
- 57051 просмотр
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Recent comments
12 часов 22 минуты назад
21 час 3 минуты назад
1 день 4 часа назад
1 день 5 часов назад
1 день 17 часов назад
1 день 19 часов назад
2 дня 20 часов назад
3 дня 4 часа назад
3 дня 5 часов назад
3 дня 13 часов назад