Вот список изменений:
- Подправлен скрипт линкера, с учетом того, что LPC2292 имеет всего 16 Кб внутренней RAM, в отличие от LPC2106
- Поправлен Makefile - теперь линуксовый make спокойно с ним работает
- В заголовочный файл LPC2292.h добавлена пара регистров, необходимых для зажигания светодиодов на стенде. Это использовалось мною при отладке - горят светодиоды, значит мы дошли до участка кода, где они зажигаются.
Также из заголовочного файла удалены регистры, относящиеся (судя по названию) к векторному контроллеру прерываний, но отсутствующие в даташите как LPC2292, так и LPC2106. - Поправлен исходный код ОС и примеров - теперь он не так сильно привязан к Windows
- Помимо GNU ARM toolchain'а, проект компилируется и Keil'ом. Соответствующие исправления были внесены лишь в проект первого тестового примера.
- Добавлена инициализация контроллера внешней памяти.
- Убрана обработка прерывания EINT0 c P0.16, на этом порту в SDK2.0 висит радиомодем.
- Подправлен код конечного автомата в uart_rx_drw() - теперь строки с командами могут оканчиваться на '\r' (как их посылает PuTTY в COM-порт)
В этом примере запускается набор различных задач, пара из которых обеспечивают прием команд из последовательного канала, отправку ответа и вывод информации о своем состоянии в этот же канал.
Вывод информации о состоянии (номер итерации в бесконечном цикле задачи):
Вывод этой же информации и параллельное выполнение команд #cm12 и #uname (local echo отключен):
Настройки последовательного канала для PuTTY:
- Скорость - 9600 бод
- 8 битов с данными
- 1 стоповый бит
- Контроль четности - отсутствует
- Контроль потока - отсутствует
Скачать исходный код можно тут: bzip2 (md5), gzip (md5)
Сайт TNKernel: http://www.tnkernel.com/ (после скачивания кода TNKernel нужно поместить мой каталог LPC2292/ в получившийся после распаковки каталог TNKernel)
SVN проекта: http://code.google.com/p/tnkernel-lpc2292/source/list
Получить последнюю версию можно так:
Скачать уже скомпилированный бинарник с тестовой программой №1 можно тут (скомпилировано GNU ARM toolchain'ом) или тут (скомпилировано Keil'ом).svn checkout http://tnkernel-lpc2292.googlecode.com/svn/trunk/ tnkernel-lpc2292-read-only