LPCXpresso в Keil uVision4

На днях пришла моя платка LPCXpresso от NXP. Позапускав примеры из комлекта среды LPCXpresso и наигравшись с отладчиком, я решил написать какой-нибудь свое. Родная среда на базе Eclipse очень тормозная и и местами неудобная. Проект создался совсем не там, где я указал, а там где лежал workspace c примерами. Каждый запуск отладчика надо ждать пока он опять чего-то перекомпилирует, потом потихонечку запускается отладка. Кнопка просто заливки прошивки есть, но она все время забывает путь и не сбрасывает контроллер после прошивки, хотя галочка такая есть.
Поэтому я решил попробовать перейти на кейл.

На моей LPCXpresso установлен LPC1114/302.
Файлы CMSIS для LPC1114 лежат в папке кейла NXP/LPC11xx/
Чтобы можно было обращаться к портам нужно добавить их в файл.

Осталось прописать прошивальщик от NXP в настройках команды FLASH

здесь test.axf — это имя прошивки в формате elf.

Все. Жмем Build и затем Flash. Светодиод на плате начинает весело мигать.
На Арме есть системный таймер, но проще использовать старый добрый холостой цикл для задержки.

Ах да, так как у контроллера на стороне JTAG совсем нет flash, то надо сначала залить в него прошивку. Делается это так:

I:\nxp\lpcxpresso_3.6.3_317\bin\dfuapp.exe /f LPCXpressoWIN.enc /tl 250

Прошивка закодирована, раскодируется на лету в LPC3154. Ключ зашит в OTP-памяти контроллера, так что использовать для своих целей его не получится.
Чтобы не перезаливать каждый раз можно установить микросхему U3 AT45DB321D-SU, предварительно запрограммировав.

Комментарии (33)

RSS свернуть / развернуть
Тег сокращает длинные записи
0
Тег cut сокращает длинные записи
0
на сколько я понял саму «тормознутую и неудобную» среду тоже при этом пирйдется ставить, т.к. используется её прошивальщик?
как дела с отладкой (бряки, просмотр значений переменных)?
есть ли возможность кеил использовать бесплатно без всевозможных таблеток?
0
Он вроде и без таблеток работает. Но… Без дебага и RTOS. Компилер вроде не ограничен.
0
В Keil ARM ограничение по размеру компилируемого кода 16К. По крайней мере год назад было.
0
Не знаю. Возможно. Большие проги я в нем не писал, а ругался на демо-лицензию только при отладке.
0
не, 16 мало. у меня проектик уже 22к прошивки занимает, так что я дальше поторможу на кодеред. в ний отладка работает, а без неё былибы пляски с бубном.
0
На кейл легко найти лекарство, это раз. К нему вроде мона прикрутить GCC_ARM (по крайней мере, у меня была старая версия, еще на uV3, к ней шли родной ARM тулчей и GCC-шный), это два.
Впрочем, отладка — это очень даже веский аргумент.
0
«Недопустимость» лекарства я отдельно специально упомянул. Интересует полностью легальный софт.
Тот же кодеред я могу юзать с экспрессо на халяву и абсолютно легально и ещё и поддержка есть. Смысла переходить на нелегально ПО не вижу.
Месяц назад отсутствие внитрисхемного отладчика меня бы не смутило, был бы простой. А сейчас, вычленив парочка очень «приятных» багов, нет уж, отладчик необходим.
0
На халяву получится пока размер кода меньше 128К.
0
А какой в CodeRed тулчейн?
0
не уверен, но скорее всего на базе gcc
0
LPCXpresso is based on Eclipse with many LPC-specific enhancements. It also features the latest version of the industry standard GNU tool chain with a proprietary optimized C library providing professional quality tools at low cost.
0
так и есть, при установке пишет
— GNU-based C/C++ compilation tools and documentation
0
Нет генерации листинга и еще разного другого.
0
Вот, до 32К расширили. Как IAR.
0
Programs start at offset 0x0800. Programs generated with the evaluation software may not be programmed into single-chip devices with less than 2 Kbytes of on-chip ROM.
Садисты) А я думал, в бесплатной версии мою прошивку для ванночки скомпилить можно.
Нет генерации листинга
Хм, а на лабе (мы ее делали в ознакомительной версии кейл-арм, правда древней) я как-то делал расчепятко ассемблерного листинга. Хотя, возможно скопипастил из отладчика.
0
Дебагер, который на плате LPCXpresso работает только под «тормознутой и неудобной» средой от Code Red. Так что для отладки в Keil нужен другой отладчик.
0
Цеж только прошивка. Нафиг тут тогда вообще экспресса. Берешь какой нибудь USB com и гоняешь через бут. Отладки то нету, а без нее не в кайф.
0
Автор видимо пока не запаривался на отладку.
0
В Keil.
0
В этой программе отлаживать нечего. А вообще умею баги искать и без отладчика(хватит пары if и одного светодиода). В IAR есть GDB, но там через него подключиться не получилось. Еще пробовал подключить GDB в SlickEdit. При подлкючении, GDB-сервер (создается этой же программой от NXP) сворачивается с непонятной ошибкой.
Раньше на РФ5 с жестким ультрафиолетом для стирания отлаживали и радовались что микросхему менять не надо.
0
Создаем сервер:
crt_emu_lpc11_13_nxp -g -2 -pLPC1114/302 -wire=winusb -server=:3333 -mi

arm-none-eabi-gdb.exe — запуск GDB-клиента в консоли
(gdb) target remote localhost:3333 — подключение к цели
(gdb) info registers — показывает значения регистров
(gdb) continue — продолжает работу программы (тормозится по Ctrl+C)

в SlickEdit тоже заработало, но он почему то регистры выводит с именами х86.
0
Нашел ошибки в шелкографии на плате. Дизайн платы для LPC1343, USB в LPC1114/302 нету. USB-DM — это P2.4; USB-DP — это P2.5; А там, где написано P2.4 и P2.5 на самом деле должно быть P3.4 и P3.5; Еще можно в плату впаять микросхему U3 AT45DB321D-SU и тогда не надо будет каждый раз при подключении загружать прошивку для LPC3154(флэша у него нет).
0
А если впаять эту флэшку на место и распилить плату, получим две отладочные борды, так? 1114 можно и через УАРТ исползовать.
0
Исправлю себя: сделать это скорее всего не получится, т.к. в LPC3154, судя по даташиту, есть область OTP, в которую можно прошить бит, запрещающий грузиться с чего-либо кроме UART и USB, и то, прошивка д.б. зашифрована, а ключ 128 бит. Если уж разработчики LPCXpresso додумались воткнуть в бесплатную IDE активацию, то вряд ли они упустят такой случай подмешать говнеца в кашку.
0
Вот что меня удивляет — GCC же работа непосредственно проекта GNU, а он под достаточно суровой лицензий GPL, которая всячески препятствует закрыванию системы. Как при этом Microchip ухитряется сделать платный компилятор C32 на основе GCC? Ну и прочие ограниченные среды на основе открытых Eclipse, GCC, etc.
0
Фигасе, там 4-метровая прошивка?
0
Не подскажете как настроить LPCXpresso в Eclipse? У меня получилось настроить его для компиляции бинарного файла. Прошивку плата сьела при помощи строчки вида:
crt_emu_lpc11_13_nxp.exe -wire=winusb -pLPC1114/302 -flash-load-exec=blinky.axf

Сервер вроде тоже создается при помощи команд из поста выше, но со стороны Eclipse прикрутить его не выходит.
Помогите кто знает, ато среда от CodeRed какая-то урезанная, причем они пытаются пропихнуть разработчику свои библиотеки без исходников, настроек для компиляции с++ не видно и т.д.
0
С наскоку прикрутить не удалось. Используем Eclipse + Cygwin GCC + Segger GDB + J-Link
0
axf — это не бинарник, это elf. LPC-утилита понимает их по расширению, и обрабатывет по разному. Все что отлично от axf, для нее бинарник. Попробуйте в SlickEdit настроить отладку we.easyelectronics.ru/AlexX1810/lpcxpresso-otladka-v-slickedit.html#comment12202, в еклипсе должно быть примерно также. В слике также можно и компиляцию настроить, но это надо самому и файлы линкера создать и makefile и start_up. В кейле проще.
0
В SlickEdit debug настроил, но программа триал. Eclipse сам неплохо компилит. Я просто взял работающий пример из CodeRed и, убрав в линкере упоминания их фирменных библиотек и заменив в некоторых заголовочных файлах <> на "" с первого раза все собрал :-). У CodeRed вообще в папках внутри лежит Eclipse вместе с Java и GCC, но, т.к. его переделали, настройки подсмотреть не могу.
0
может это то что вам нужно:https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/getting-hardware-debuging-working-with-eclipse-and-code-sourcey. Инструкция для STM но, думаю, для LPC аналогично
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.