- A -

ADEOS

- C -

CodeWarrior

CRAMFS (Compressed RAM File System)

- E -

Eclipse

eProf — встраиваемый профилировщик

- K -

KDevelop

Kernel Function Instrumentation

- L -

Linux и работа в реальном времени

Linux и режим жёсткого реального времени

Linux на системах без MMU

- M -

MTD — Технологическое Устройство Памяти

- N -

Nano-X

NFS — Сетевая файловая система

- O -

OProfile

- R -

Ramdisk

RAMFS

- T -

TimeStorm

- U -

UART

- X -

XIP — eXecute In Place, выполнение на месте

- А -

Аппаратные требования

Архитектура MTD

Архитектура встраиваемого Linux

Архитектура программного обеспечения I2C

Архитектура программного обеспечения шины PCI

Архитектура ядра Linux

Асинхронное уведомление с помощью SIGEV_SIGNAL

Асинхронное уведомление с помощью SIGEV_THREAD

Асинхронный ввод-вывод

- Б -

Блокировка памяти

Блочные и символьные устройства MTD

- В -

Введение в оборудование для отображения

Включение BSP в процедуру сборки ядра

Внутреннее строение кадрового буфера

Время и таймеры POSIX.1b

Время работы планировщика

Встраиваемые системы и X

Встраиваемые файловые системы

Выбор стратегии переноса

Вывод dmalloc

Вывод OProfile с ассоциированными исходными файлами

Выполнение в режиме реального времени

- Г -

Глава 10, uClinux

Linux на системах без MMU

XIP — eXecute In Place, выполнение на месте

Аппаратные требования

Загрузка и выполнение программ

Загрузка файла bFLT

Загрузчик bFLT

Использование совместно используемой библиотеки в приложении

Куча

Модификация адресов, выполняемая загрузчиком

Ограничения mmap

Ограничения на память

Ограничения на уровне процесса

Отличия Linux и uClinux

Отображение файла / памяти — тонкости mmap() в uClinux

Перенос приложений на uClinux

Позиционно независимый код (PIC)

Полностью перемещаемые двоичные файлы

Программные требования

Распознавание символов совместно используемой библиотеки

Реализация malloc в uClibc с помощью "кучи"

Реализация mmap в uClinux

Реализация совместно используемых библиотек в uClinux (libN.so)

Сборка дистрибутива uClinux

Совместно используемые библиотеки

Создание процесса

Создание совместно используемых библиотек для uClinux

Созданий программ для uClinux

Стек

Управление памятью

Файловый формат bFLT

Глава 2, Начало работы

Архитектура встраиваемого Linux

Архитектура ядра Linux

Выполнение в режиме реального времени

Диспетчер памяти

Запуск ядра

Инициализация пользовательского пространства

Кросс-платформенные инструменты GNU

Межпроцессное взаимодействие

Микроядра

Монолитные ядра

Планировщик

Подсистема ввода/вывода

Пользовательское пространство

Последовательность запуска Linux

Распечатка символов с помощью nm

Сборка набора инструментов

Сборка набора инструментов для MIPS

Сетевые подсистемы

Уровень аппаратных абстракций (HAL)

Фаза начальной загрузки

Файловая система

Глава 3, Пакет поддержки платформы

IconГлава 3, Пакет поддержки платформы
Icon3.8.4 Унифицированная драйверная платформа для управления питанием

UART

Архитектура программного обеспечения шины PCI

Включение BSP в процедуру сборки ядра

Интерфейс KGDB

Интерфейс системного загрузчика

Карта памяти

Карта памяти платы

Карта памяти программного обеспечения

Карта памяти процессора — модель памяти MIPS

Поддержка энергосберегающих режимов процессора

Подсистема PCI

Приложения управления питанием

Пример скрипта компоновщика

Реализация консоли

Стандарты управления питанием

Таймеры

Уникальность архитектуры PCI

Управление оборудованием и питанием

Управление питанием

Управление прерываниями

Глава 4, Хранение данных во встраиваемых системах

CRAMFS (Compressed RAM File System)

MTD — Технологическое Устройство Памяти

NFS — Сетевая файловая система

Ramdisk

RAMFS

Архитектура MTD

Блочные и символьные устройства MTD

Встраиваемые файловые системы

Драйверы связи с флеш-памятью

Журналирующие файловые системы для флеш-памяти — JFFS and JFFS2

Заполнение mtd_info для микросхемы NAND Flash

Заполнение mtd_info для микросхемы NOR Flash

Имитация функции erase

Имитация функции probe

Имитация функции read

Имитация функции sync

Имитация функции write

Интерфейс между ядром MTD и низкоуровневые драйверы флеш-памяти

Карта флеш-памяти

Микросхемы флеш-памяти

Модель MTD

Оптимизации пространства, занимаемого приложениями

Оптимизация пространства хранения

Оптимизация размера ядра

Пакет mtdutils

Приложения для встраиваемого Linux

Пример драйвера MTD для NOR Flash

Пример драйвера связи для NOR Flash

Регистрация mtd_info

Структура данных mtd_info

Уменьшение размера памяти, занимаемого ядром

Файловая система PROC

Флеш диски

Функция init_dummy_mips_mtd_bsp

Глава 5, Драйверы встраиваемых устройств

Архитектура программного обеспечения I2C

Драйвер последовательного порта в Linux

Драйвер сетевого периферийного устройства

Загрузка и выгрузка модуля

Инициализация и закрытие устройства

Инициализация и старт драйвера

Интерфейсы модуля

Макросы доступа к оборудованию MY_UART

Модули ядра

Icon5.6 Модули ядра
IconРаспечатка 5.9 Модули ядра

Настройка termios

Icon5.1.5 Настройка termios
IconРаспечатка 5.5 Настройка termios

Обработчик прерываний

Основы USB

Передача данных

Передача и приём данных

Периферийные USB устройства

Подсистема I2C в Linux

Приём данных

Сетевой драйвер

Сторожевой таймер

Структуры данных MY_UART

Структуры данных драйвера периферийного USB устройства

Функции передачи

Функции приёма

Функции приёма и передачи

Функция зондирования

Шина I2C

Глава 6, Перенос приложений

Выбор стратегии переноса

Драйвер API ядра

Завершение потока

Заголовочный файл драйвера kapi

Использование драйвера kapi

Написание драйвера API ядра

Написание уровня переноса операционной системы (OSPL)

Написание функций-заглушек пользовательского пространства

Отдельные потоки

План переноса приложений

Пример функции-заглушки пользовательского пространства

Программирование с помощью pthread-ов

Реализация драйвера kapi

Синхронизация потоков

Создание потока и выход из него

Сравнение архитектур

Уровень переноса операционной системы (OSPL)

Эмуляция интерфейсов задачи RTOS

Эмуляция интерфейсов межпроцессного взаимодействия и таймеров

Эмуляция интерфейсов мьютекса RTOS

Глава 7, Linux для систем реального времени

IconГлава 7, Linux для систем реального времени
IconРаспечатка 7.14 Процесс LXRT

ADEOS

Linux и работа в реальном времени

Linux и режим жёсткого реального времени

Асинхронное уведомление с помощью SIGEV_SIGNAL

Асинхронное уведомление с помощью SIGEV_THREAD

Асинхронный ввод-вывод

Блокировка памяти

Время и таймеры POSIX.1b

Время работы планировщика

Задача RTAI в виде модуля ядра

Задержка планировщика

Задержка реакции на прерывание

Интерфейс приложения реального времени (RTAI)

Копирование файла с помощью асинхронного ввода-вывода

Модифицированный сценарий компоновщика

Операции блокировки памяти

Операции планирования процесса

Операции с общей памятью POSIX

Операции с очередью сообщений POSIX

Операции с семафорами POSIX

Операционная система реального времени

Очереди сообщений POSIX

Планирование процессов

Пользовательское пространство и режим реального времени

Программирование в режиме реального времени в Linux

Продожительность работы ISR

Семафоры POSIX

Сигналы реального времени

Совместно используемая память POSIX

Управление интервалами времени процесса SCHED_RR

Эффективная блокировка — 1

Эффективная блокировка — 2

Глава 8, Сборка и отладка

IconГлава 8, Сборка и отладка
IconРаспечатка 8.3 mkinitrd
IconРаспечатка 8.10 Вывод OProfile

CodeWarrior

Eclipse

eProf — встраиваемый профилировщик

KDevelop

Kernel Function Instrumentation

OProfile

TimeStorm

Вывод dmalloc

Вывод OProfile с ассоциированными исходными файлами

Интегрированная среда разработки

Использование dmalloc

Использование Electric Fence

Использование eProf

Использование mtrace

Как работает процедура сборки

Кросс-компиляция с помощью configure

Отладчики ядра

Платформа Makefile в ядре

Поиск и устранение проблем в конфигурационном скрипте

Пример Makefile в ядре версии 2.4

Пример Makefile в ядре версии 2.6

Пример работы KFI

Пример работы Valgrind

Профилирование

Процесс конфигурирования

Сборка корневой файловой системы

Сборка приложений

Сборка ядра

Устранение переполнений памяти

Устранение повреждений памяти

Устранение проблем, связанных с виртуальной памятью

Устранение утечек памяти

Глава 9, Встроенная графика

Nano-X

Введение в оборудование для отображения

Внутреннее строение кадрового буфера

Встраиваемые системы и X

Графика встраиваемого Linux

Графика настольного Linux - графическая система X

Графическая система

Графический драйвер встраиваемого Linux

Зависимые от оборудования определения драйвера кадрового буфера

Заключение

Интерфейс для ввода

Интерфейс кадрового буфера Linux

Обычный драйвер с кадровым буфером

Оконные среды, инструментарии и приложения

Пример приложения Nano-X

Пример работы с кадровым буфером

Система отображения

Глава 9, Заключение

Графика встраиваемого Linux

Графика настольного Linux - графическая система X

Графическая система

Графический драйвер встраиваемого Linux

- Д -

Диспетчер памяти

Драйвер API ядра

Драйвер последовательного порта в Linux

Драйвер сетевого периферийного устройства

Драйверы связи с флеш-памятью

- Ж -

Журналирующие файловые системы для флеш-памяти — JFFS and JFFS2

- З -

Завершение потока

Зависимые от оборудования определения драйвера кадрового буфера

Заголовочный файл драйвера kapi

Загрузка и выгрузка модуля

Загрузка и выполнение программ

Загрузка файла bFLT

Загрузчик bFLT

Задача RTAI в виде модуля ядра

Задержка планировщика

Задержка реакции на прерывание

Заполнение mtd_info для микросхемы NAND Flash

Заполнение mtd_info для микросхемы NOR Flash

Запуск ядра

- И -

Измерение времени загрузки

Имитация функции erase

Имитация функции probe

Имитация функции read

Имитация функции sync

Имитация функции write

Инициализация и закрытие устройства

Инициализация и старт драйвера

Инициализация пользовательского пространства

Интегрированная среда разработки

Интерфейс KGDB

Интерфейс для ввода

Интерфейс кадрового буфера Linux

Интерфейс между ядром MTD и низкоуровневые драйверы флеш-памяти

Интерфейс приложения реального времени (RTAI)

Интерфейс системного загрузчика

Интерфейсы модуля

Использование dmalloc

Использование Electric Fence

Использование eProf

Использование mtrace

Использование драйвера kapi

Использование совместно используемой библиотеки в приложении

- К -

Как работает процедура сборки

Карта памяти

Карта памяти платы

Карта памяти программного обеспечения

Карта памяти процессора — модель памяти MIPS

Карта флеш-памяти

Копирование файла с помощью асинхронного ввода-вывода

Кросс-компиляция с помощью configure

Кросс-платформенные инструменты GNU

Куча

- М -

Макросы доступа к оборудованию MY_UART

Межпроцессное взаимодействие

Методы сокращения времени инициализации загрузчика

Микросхемы флеш-памяти

Микроядра

Модель MTD

Модификация адресов, выполняемая загрузчиком

Модифицированный сценарий компоновщика

Модули ядра

Icon5.6 Модули ядра
IconРаспечатка 5.9 Модули ядра

Монолитные ядра

- Н -

Написание драйвера API ядра

Написание уровня переноса операционной системы (OSPL)

Написание функций-заглушек пользовательского пространства

Настройка termios

Icon5.1.5 Настройка termios
IconРаспечатка 5.5 Настройка termios

Настройка пользовательского пространства для уменьшения времени запуска

Настройка ядра для уменьшения времени запуска

- О -

Обработчик прерываний

Обычный драйвер с кадровым буфером

Ограничения mmap

Ограничения на память

Ограничения на уровне процесса

Оконные среды, инструментарии и приложения

Операции блокировки памяти

Операции планирования процесса

Операции с общей памятью POSIX

Операции с очередью сообщений POSIX

Операции с семафорами POSIX

Операционная система реального времени

Оптимизации пространства, занимаемого приложениями

Оптимизация пространства хранения

Оптимизация размера ядра

Основы USB

Отдельные потоки

Отладчики ядра

Отличия Linux и uClinux

Отображение файла / памяти — тонкости mmap() в uClinux

Очереди сообщений POSIX

- П -

Пакет mtdutils

Передача данных

Передача и приём данных

Перенос приложений на uClinux

Периферийные USB устройства

План переноса приложений

Планирование процессов

Планировщик

Платформа Makefile в ядре

Поддержка энергосберегающих режимов процессора

Подсистема I2C в Linux

Подсистема PCI

Подсистема ввода/вывода

Позиционно независимый код (PIC)

Поиск и устранение проблем в конфигурационном скрипте

Полностью перемещаемые двоичные файлы

Пользовательское пространство

Пользовательское пространство и режим реального времени

Последовательность запуска Linux

Приём данных

Приложение A, Ускорение запуска

Измерение времени загрузки

Методы сокращения времени инициализации загрузчика

Настройка пользовательского пространства для уменьшения времени запуска

Настройка ядра для уменьшения времени запуска

Приложение А, Ускорение запуска

Приложение Б, GPL и встраиваемый Linux

Приложения пользовательского пространства

Что следует помнить

Ядро

Приложения для встраиваемого Linux

Приложения пользовательского пространства

Приложения управления питанием

Пример Makefile в ядре версии 2.4

Пример Makefile в ядре версии 2.6

Пример драйвера MTD для NOR Flash

Пример драйвера связи для NOR Flash

Пример приложения Nano-X

Пример работы KFI

Пример работы Valgrind

Пример работы с кадровым буфером

Пример скрипта компоновщика

Пример функции-заглушки пользовательского пространства

Программирование в режиме реального времени в Linux

Программирование с помощью pthread-ов

Программные требования

Продожительность работы ISR

Профилирование

Процесс конфигурирования

- Р -

Разработка и внедрение системы на встраиваемом Linux

Распечатка символов с помощью nm

Распознавание символов совместно используемой библиотеки

Реализация malloc в uClibc с помощью "кучи"

Реализация mmap в uClinux

Реализация драйвера kapi

Реализация консоли

Реализация совместно используемых библиотек в uClinux (libN.so)

Регистрация mtd_info

- С -

Сборка дистрибутива uClinux

Сборка корневой файловой системы

Сборка набора инструментов

Сборка набора инструментов для MIPS

Сборка приложений

Сборка ядра

Семафоры POSIX

Сетевой драйвер

Сетевые подсистемы

Сигналы реального времени

Синхронизация потоков

Система отображения

Совместно используемая память POSIX

Совместно используемые библиотеки

Создание потока и выход из него

Создание процесса

Создание совместно используемых библиотек для uClinux

Созданий программ для uClinux

Сравнение архитектур

Стандарты управления питанием

Стек

Сторожевой таймер

Структура данных mtd_info

Структуры данных MY_UART

Структуры данных драйвера периферийного USB устройства

- Т -

Таймеры

- У -

Уменьшение размера памяти, занимаемого ядром

Уникальность архитектуры PCI

Управление интервалами времени процесса SCHED_RR

Управление оборудованием и питанием

Управление памятью

Управление питанием

Управление прерываниями

Уровень аппаратных абстракций (HAL)

Уровень переноса операционной системы (OSPL)

Устранение переполнений памяти

Устранение повреждений памяти

Устранение проблем, связанных с виртуальной памятью

Устранение утечек памяти

- Ф -

Фаза начальной загрузки

Файловая система

Файловая система PROC

Файловый формат bFLT

Флеш диски

Функции передачи

Функции приёма

Функции приёма и передачи

Функция init_dummy_mips_mtd_bsp

Функция зондирования

- Ч -

Что следует помнить

- Ш -

Шина I2C

- Э -

Эмуляция интерфейсов задачи RTOS

Эмуляция интерфейсов межпроцессного взаимодействия и таймеров

Эмуляция интерфейсов мьютекса RTOS

Эффективная блокировка — 1

Эффективная блокировка — 2

- Я -

Ядро