N108-это полная операционная система в реальном времени, записанная для чипа TM4C123, при поддержке внешних ЖК-дисплеев. Ядро ОС было написано с нуля. ОС опирается на определенное внешнее оборудование для правильного функционирования, но ее можно легко изменить, чтобы быть самодостаточным. Для получения списка необходимых внешних аппаратных ресурсов см. Ниже.
ОС взаимодействует через UNIX-подобную оболочку. Оболочка использует последовательную связь через UART0 доски для отправки команд, которые вы вводите в операционную систему N108. Чтобы взаимодействовать с ОС, подключите свой LaunchPad TM4C123 к вашему компьютеру через USB и запустите последовательный интерфейс-такой как Coolterm для Mac или замазка для Windows-и подключитесь к последовательному порту, который вы используете. Оттуда вы сможете увидеть подсказку оболочки N108. Вы можете выпустить команды из этого интерфейса.
N108 обладает полной поддержкой процесса загрузки, поэтому вы можете самостоятельно компилировать и запустить свои собственные программы TM4C123 с использованием этой ОС, без необходимости пересматривать ОС вместе с вашей программой. Чтобы использовать эту функцию, составьте свою независимую программу, используя keil Uvision (или любой другой встроенный компилятор Arm) и выпустите файл ELF на SD -карту форматированной FAT32. Подключите SD -карту к вашему TM4C123 и запустите ОС. Из оболочки ОС, введите «запуск», где «» - это имя файла Arm Elf, который у вас есть на SD -карте. ОС должна запустить программу и начать выполнять.
ОС поддерживает один системный вызов: OS_DISPlayMessage. Вызов позволяет вам печатать строки в LCD ST7735, прикрепленный к плате. Требуется 4 параметра, чтобы указать, где на экране вы хотите, чтобы плата отобразила текст. Больше вызовов можно легко добавить путем изменения статической константы Elfsymbol_t Symboltable [] Array, найденной в OS_CRITICAL/OS.C, и добавив указатель к вашей новой функции.
Я думаю о добавлении большего количества системных вызовов в эту область, чтобы обеспечить более легкий доступ к ресурсам TM4C SOC (вместо только внешних ресурсов). TBD.
ОС, вне коробки, опирается на три части внешнего оборудования для нормального функционирования: внешний чип для взаимодействия последовательного драйвера и выпускать команды (например, персональный компьютер), ЖК -дисплей и считывателя SD -карты. ЖК -дисплей используется в качестве источника выходного сигнала (вместе с последовательным портом), а считыватель SD -карты используется файловой системой и загрузчиком процесса для загрузки и выполнения внешних процессов. Для списка последовательных команд взаимодействия, пожалуйста, посмотрите ниже. Я лично использовал ST7735, поскольку он позволяет взаимодействовать с SSI-совместимым ЖК-дисплеев и SD; Схема для этого также включена ниже.
Эта операционная система предназначена для изменений чипа ARM TM4C123. Тем не менее, большая часть слоя аппаратной абстракции хранится в OS_CRITICAL/HARDWAREMANAGER. Этот модуль может быть очень легко заменен для драйверов, которые поддерживаются на других устройствах. Операционная система использует следующие аппаратные инструменты для своей основной работы:
Uart:
PLL:
GPIO:
SSI:
Код предназначен для использования с Texas Instruments Code Composer Studio. Просто клонируйте репозиторий и импортируйте проект в свое рабочее пространство CCS. Проект должен построить летучую мышь, без дополнительной работы.
Эта операционная система будет мигать из-за коробки на Launchpad TI TM4C123.
В ОС используется внешний ЖК -дисплей ST7735 для двух вещей: в качестве ЖК -дисплея и в качестве внешнего считывателя SD для своей файловой системы. Моя ОС также использовалась для других целей, таких как взаимодействие с датчиками, поэтому, пожалуйста, игнорируйте любые посторонние соединения на втором изображении. Важно подключить ST7735.
Вот схема для того, как подключить это к вашей ловушке: 

Основное взаимодействие между ОС (работающая на доске) осуществляется через бортовой последовательный порт UART. Вы можете использовать любую программу терминала на вашем компьютере-например, Cooledge на Mac или Poutty в Windows-для отправки этих команд на интерпретатор ОС после завершения загрузки.
Из коробки операционная система поддерживает следующие команды, как видно в Shell/Shell.C:
char* commandFormat[] =
{
"help",
"runproc <processname>"
}
Очень голые кости, но идея здесь состоит в том, чтобы добавить свои собственные команды и интерфейс с остальной частью операционной системы. Помогите в основном распечатать тот же список, в то время как RunProc загружает внешний процесс (хранясь на SD -карте, вставленной в плату Breakout ST7735) и начинает выполнять эту программу. Во время холостого хода работает только переводчик.