Здравствуйте, недавно приобрёл с плату с МК lpc1768, на которой имеется периферия, дисплей и отдельный МК, который выполняет функции программатора/дебаггера Jlink. До этого работал с AVR и MSP430.
Поставил Keil, открыл проект из папки примеров. Затем откомпилировал и запустил. Всё прошилось и запустилось, светодиоды замигали. Поставил брэкпойнт, дебаггер остановил выполнение программы. Переменные и регистры МК отображались. Всё отлично. Затем я решил подробнее рассмотреть исходный код.
1. Увидел, что в файлах .c подключаются ассемблерные файлы .s при помощи директивы #include, как я понял это фича Keilа. В аnsi C так делать нельзя, нужно скомпилить asm файл, добавить появившийся обьектный файл к линкеру, затем в .c файле указать вызываемую функцию с аттрибутом external. Ассемблерный файл лежал в директории проекта примера.
Вопрос: Если я создаю новый проект, где мне взять этот ассемблерный файл? Я могу скопировать из папки примера, но что будет, если требуется написать для гипотетического lpc17692?
2. Посмотрел как декларируются функции, обрабатывающие прерывания. Ссылки на адреса этих функций находятся в ассемблерном файле.
Вопрос: Можно ли мне создать проект, но не использовать ассемблерные файлы вообще? Если да, то как объявить функцию, обрабатывающую прерывание?
3. Данные ацп отсылаются в уарт посредством вызова функции printf. LPC1768 имеет как минимум 4 уарта. Код инициализации уарта имеется, но вот в какой из них пишет printf по исходникам примера не понять.
Вопрос: Как задать конкретный уарт, в который пишет функция printf? Как мне сделать так, чтобы во время выполнения программы, printf в зависимости от моих потребностей printf писал бы в 4-ый уарт, затем в 1-ый, затем в софтварный, затем в программный буффер, затем в усб порт?
4. Литературы на русском по Keilу нет, и по Соrtex-M3 архитектуре тоже нет. Есть всего одна книжка на английском: "The definitive guide to the arm cortex-m3". В стране полным ходом развиваются нанотехнологии, а книжек по современным МК нет. Неужели государство не может выделить 5-10 тыс. у.е. на написание книги. Пусть хоть 100 тыс по смете будет, но мне книга по кортексам нужна, а не словарь нанотерминов.
Вопрос: Какая есть литература на русском, и какие ещё есть книги на английском?
5. LPC1768 очень неплохой микроконтроллер за те деньги, которые за него просят. Нужно устройство, которое принимает данные по усб, записывает их во внешний флэш объёмом 1ГБайт, затем подключается при помощи модуля к вайфай сети и отсылает "нужные" данные. Все сохранённые во флеше данные отображаются на дисплее, а "нужные" выбираются при помощи тачскрина. Т.е. нужно отрисовывать графические элементы и обрабатывать сигналы тачскрина.
Вопрос: На что мне нужно обращать внимание и на что не нужно, чтобы сделать такое устройство и чтобы не убить на это слишком много времени? Под словами "слишком много" понимается время, через которое появится новое поколение МК, а сабжевые устареют и/или заметно (их) поднимут(ся) в цене.