чтото маловато ответов в теме я тоже хочю изучить LPC2xxx Philips ARM , проблема с РАБОЧИМИ примерами
на пример у меня есть кристалл , LPC2138 , на примерах от прогрмамм работает , но это только примеры , а как зделать уже готовую прошивку ? т.е. запрограмироват ьи запустить от батарейки , две кнопки и светодиод , нажал горит нажал потушил , это относится к вектору RESET , не нужно мне эмулятора , а хочю увидеть в реальном виде .
и второй вопрос с реальным временем , вот присоединённый кварц , каким образом его использовать в полной мере ?
Только первый день занимаюсь самообучением МК LPC2xxx, по первому вопросу могу тебе ответить, по второму может завтра отвечу, когда сам разберусь как запускать RTC. Итак, берешь какую нибудь среду разработки - например Keil, IAR, GCC и создаешь пустой проект, конфигурируешь в нем ноги на вход/выход, а затем в функции main() в бесконечном цикле делаешь обработчик нажатия клавиш. Проект затем компилируешь и прошиваешь например JTAG-программатором, который у тебя имеется (у меня J-Link совместимый). Вот и все вроде бы.
Добавлено спустя 6 минут 17 секунд: Вот:МК АРМ LPC2xxx полезная книга
Project -> Create New Project C main ......... int main() {
}
........... Options General Options -> Device->LPC2138 Linker ->Output ->Debug infor..C-SPY With runtime With I/O emu Extra out. file Extra Output -> Intel-standard
Debugger -> RDI ->Download ->N/A
RDI -> H-JTAG.dll
схема
WIGGLER http://electronix.ru/forum/index.php?sh ... =24885&hl= только убранны лишние сопротивления ( подтяжки и так есть на плате) упрощать схему не стоит , именно 2 мекросхемы и именно такого типа , для согласования уровней . шнурок от LPT до WIGGLER 15-20 см (мне больше не надо) шнурок от WIGGLER до JTAG 10-15 см (чем короче тем лучше)
Добавлено спустя 1 час 19 минут 28 секунд: Эксперемент 2 IAR версия 5
The stack 'CSTACK' is filled to 100% (8192 bytes used out of 8192). The warning threshold is set to 90.% The stack 'IRQ_STACK' is filled to 100% (256 bytes used out of 256). The warning threshold is set to 90.% The stack 'FIQ_STACK' is filled to 100% (256 bytes used out of 256). The warning threshold is set to 90.%
Эксперемент 3 KEIL rvmdk300a обновлённый до MDK380a , это означает что все проекты как старые так и новый будут обработанны без ошибок , но если у вас стоит только после 300 , будет ругатся на отсутсвие некоторых файлов , при попытке компилации старых проектов.
выбрал только тип процессора , startup выскочил автоматом , проект обозначился как "дебаг" , НО скомпилироавл сразу без ошибок ! , запустилась моргалка СРАЗУ , вот что значит професиональный подход ! проблема чтото со скоростями не сходится если отключить дебагер , то ничег ов МК уже не стартует , вылетает после ресет на высокие адреса 0x7FFFxxxx
На высокие адреса вылетает потому что нужно при прошивке контрольную сумму указывать, прочитай всетаки хотя бы 40 страниц книги там написано по этому поводу
читал четыре раза , но я наверно тупой , ничего не понял всё как то описанно не нормально ! НО зато снял дамп с того что прописалось , деасемблировал в IDA , прошёл по коду и увидел что там не так . изменил в Стартапе адресацию , теперь запускается само , ещё понял что в асме всё это намного понятние , но когда большой код то писать не очень рульно , пусть уж компиллер сам решает , а при желании можно ручками править .
RTS тоже нашёл , это простые часики реального вереми .
galex1981 писал(а):Также сделал пустой (шаблон для любого проекта)...
чтото он не совсем пустой Startup совсем не правленный . поковырял crossstudio , очень накрученная , можно делать ВСЁ автоматом , но сделанно наверно специально для изучения .
потренировался с переводом проектов IARv4 - IARv5 - KEIL - CrossStudio
KEIL делает самый компактный проект . CrossStudio много лишнего. IARv4 использует свои мнемоники , для перевода всё надо править ручками
например
IOSET1_bit.P0_3 = 0x01;
но лучше наверно придерживатся мануала производителя
(кстати это простое действие в CrossStudio будет расписанно на несколько файлов в несколько шагов хорошо это или плохо , кому как нравится , лично я считаю , достаточно приложить коментарий к строке кода ....
//main.c pin(3)
//x.c #include "x.h" void pin(int a) IO1SET = data<< a
//x.h void pin(int a)
)
Добавлено спустя 2 минуты 58 секунд:
galex1981 писал(а):Проверяю программу на рельном МК: LPC2368.
это правильно , никакой PROTEUS не заменит оригинала
"Пустой проект" - это понятие субъективное. Конечно и из него можно много что выкинуть - в таком виде для совсем новичков, в будущем оптимизируют. А по поводу железа: ни один эмулятор не заменит реальное железо!