Содержание: Введение
Глава 1. Процессорное ядро ARM7
1.1. Основные положения
1.2. Конвейер
1.3. Регистры
1.4. Регистр текущего состояния программы
1.5. Режимы обработки исключительных ситуаций
1.6. Набор команд ARM7
1.6.1. Команды ветвления
1.6.2. Команды обработки данных
1.7. Команда обмена
1.8. Изменение регистров состояния
1.9. Программное прерывание
1.10. Модуль MAC
1.11. Набор команд THUMB
1.12. Резюме
Глава 2. Разработка программного обеспечения
2.1. Основные положения
2.1.1. Загрузка и установка пакета программ компании Keil
2.1.2. HCP uVISION
2.1.3. HCP HiTOP
2.1.4. Учебные примеры
2.2. Стартовый код
2.2.1. Определение карты памяти проекта
2.2.2. Определение карты памяти дчя компилятора GCC
2.3. Взаимодействие кодов ARM и THUMB
2.3.1. Обеспечение взаимодействия в компиляторе GCC
2.4. Библиотека STDIO
2.4.1. Библиотека STDIO и компилятор GCC
2.5. Организация доступа к периферийным устройствам
2.5.1. Организация доступа к периферийным устройствам в компиляторе GCC
2.6. Процедуры обработки прерываний
2.6.1. Обработка прерываний в компиляторе GCC
2.6.2. Отладка обработчиков системных ошибок
2.6.3. Программное прерывание
2.6.4. Программное прерывание и компилятор GCC
2.6.5. Размещение переменных по абсолютным адресам
2.6.6. Размещение кода в ОЗУ...............................................51
2.6.7. Загрузка кода и данных в ОЗУ при использовании компилятора GCC
2.7. Встраиваемые функции
2.7.1. Встраиваемые функции в компиляторе GCC
2.8. Встроенный ассемблер
2.8.1. Встроенный ассемблер компилятора GCC
2.8.2. Импортирование программ для компилятора GCC
2.9. Аппаратные средства отладки
2.9.1. Важное замечание!
2.9.2. Еще более важное замечание!
2.10. Резюме
Глава 3. Системные периферийные устройства
3.1. Основные положения
3.2. Внутренние шины
3.3. Организация памяти
3.4. Программирование регистров
3.5. Модуль ускорения работы памяти
3.5.1. Пример конфигурирования модуля МАМ
3.6. Программирование FLASH-памяти
3.6.1. Управление картой распределения памяти
3.6.2. Загрузчик
3.6.3. Внутрисхемное программирование (ISP)
3.6.4. Внутрипрограммное программирование (IAP)
3.6.5. Защита FLASH-памяти
3.6.6. Системные тактовые сигналы
3.6.7. Схема ФЛПЧ
3.6.8. Тактовые сигналы периферийных устройств
3.7. Управление электропитанием
3.7.1. Группы потребителей
3.7.2. Режимы пониженного энергопотребления
3.8. Система прерываний LPC2300
3.8.1. Блок управления выводами
3.8.2. Выводы внешних прерываний
3.8.3. Структура прерываний
3.8.4. Прерывание FIQ
3.8.5. Выход из прерывания HQ
3.8.6. Векторные прерывания IRQ
3.8.7. Выход из прерывания IRQ
3.8.8. Пример: прерывание IRQ
3.8.9. Программное прерывание
3.8.10. Вложенные прерывания
3.9. Контроллер DMA
3.9.1. Обзор модуля DMA
3.9.2. Синхронизация DMA
3.9.3. Пересылка из памяти в память
3.9.4. Пакетная передача
3.9.5. Поддержка модулем DMA периферийных устройств
3.9.6. Пересылка несмежных данных
3.10. Резюме
Глава 4. Периферийные устройства общего назначения
4.1. Основные положения
4.2. Порты ввода/вывода общего назначения
4.2.1. Быстрые регистры ввода/вывода
4.2.2. Прерывание от GPIO
4.3. Таймеры общего назначения
4-3.1. Режим захвата
4.3.2. Режим счетчика
4.3.3. Режим совпадения
4.4. Модуль ШИМ
4.4.1. Режим счетчика
4.5. Часы реального времени
4.5.1. Опорный сигнал модуля RTC
4.6. Сторожевой таймер
4.6.1. Период сторожевого таймера
4.7. Универсальный асинхронный приемопередатчик
4.7.1. Настройка скорости обмена
4.7.2. Авто определение скорости обмена
4.7.3. Передача данных
4.7.4. Организация обмена по протоколу IrDA
4.8. Интерфейс I2C
4.9. Интерфейс SPI
4.10. Аналого-цифровой преобразователь
4.11. Цифро-аналоговый преобразователь
4.12. Синхронный последовательный порт
4.12.1. Контроллер I2S
4.13. Интерфейс карт FLASH-памяти
4.13.1. Модуль MCI микроконтроллеров семейства LPC2300
Глава 5. Развитые периферийные устройства
5.1. Ethernet MAC
5.2. Протокол TCP/IP
5.2.1. Сетевая модель
5.2.2. Ethernet и IEEE 802.3
5.2.3. Дейтаграммы TCP/IP
5.2.4. Модуль Ethernet MAC
5.2.5. Стек uIP
5.2.6. Создание веб-сервера с использованием коммерческого стека TCP/IP
5.3. Полноскоростной интерфейс USB 2.0
5.3.1. Введение в USB
5.3.2. Модуль контроллера USB
5.3.3. Заключение
5.4. Контроллер интерфейса CAN
5.4.1. Семиуровневая модель ISO
5.4.2. Структура узла сети CAN
5.4.3. Объекты сообщений CAN
5.4.4. Арбитраж на шине CAN
5.4.5. Тактовая синхронизация
5.4.6. Передача сообщений CAN
5.4.7. Ограничение распространения ошибок
5.4.8. Прием сообщений CAN
5.4.9. Фильтрация сообщений
Глава 6. Использование ОС компании Keil
6.1. Возможности ОСРВ
6.2. Настройка проекта
6.3. Процессы
6.4. Запуск ОСРВ
6.5. Создание процессов
6.6. Управление процессами
6.7. Множество экземпляров
6.8. Управление временем
6.8.1. Формирование задержки
6.8.2. Периодический запуск процесса
6.8.3. Виртуальный таймер
6.8.4. Демон ожидания
6.9. Межпроцессное взаимодействие
6.9.1. События
6.9.2. Обработка прерываний в ОСРВ
6.9.3. Семафоры
6.9.4. Предостережение по поводу семафоров
6.9.5. Мьютексы
6.9.6. Предостережение по поводу мьютексов
6.9.7. Буферы сообщений
6.10. Конфигурация
Глава 7. Использование ОС FreeRTOS
7.1. Портирование ОС FreeRTOS на LPC2300
7.1.1. Тики таймера
7.1.2. Процедура обработки прерывания от таймера
7.1.3. Переключение контекста
7.1.4. Инициализация стека
7.1.5. Управление памятью
7.2. Конфигурация FreeRTOS
7.2.1. Запуск FreeRTOS
7.2.2. Процессы
7.2.3. Управление процессами
7.2.4. Ловушка на тики
7.2.5. Семафоры
7.2.6. Управление ядром
Глава 8. Учебное пособие
Введение
Упражнение 1. Знакомство с ИСР Keil
Установка аппаратных средств
Отладчик Keil
Редактирование проекта
Управление процессом выполнения программы
Просмотр данных
Упражнение 2. Стартовый код
Упражнение 3. Совместное использование команд ARM и THUMB
Упражнение 4. Программное прерывание
Упражнение 5. Модуль МАМ
Упражнение 6. Использование загрузчика от NXP
Упражнение 7. Схема ФАПЧ
Упражнение 8. Конфигурирование системы тактирования
Упражнение 9. Быстрое прерывание
Упражнение 10. Векторное прерывание
Упражнение 11. Пересылка данных из памяти в память при помощи DMA
Упражнение 12. Пересылка несмежных данных при помощи DMA
Упражнение 13. Порты ввода/вывода общего назначения
Упражнение 14. Прерывание от порта GPIO
Упражнение 15. Функция захвата (capture)
Упражнение 16. Функция совпадения (match)
Упражнение 17. ШИМ
Упражнение 18. Часы реального времени
Упражнение 19. UART
Упражнение 20. Аналого-цифровой преобразователь
Упражнение 21. Цифро-аналоговый преобразователь
Упражнение 22. Драйвер Ethernet
Упражнение 23. TCP/IP стек uIP
Упражнение 24. Передача по интерфейсу CAN
Упражнение 25. Прием по интерфейсу CAN
Упражнение 26. Прием в режиме FullCAN
Упражнение 27. Запуск двух процессов в ОСРВ
Упражнение 28. Управление временем
Упражнение 29. Приостановка и запуск процесса
Упражнение 30. Возобновление процесса из обработчика прерывания
Упражнение 31. Процесс Idle
Упражнение 32. Семафор
Упражнение 33. Очередь сообщений
Приложения
Список литературы
Полезные ссылки
Оценочные платы и модули