Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC 2888
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
aka-cobra
Всем привет!
Кто-нибудь работал с этим девайсом? Приобрел evaluation board от nohau и j-link. Плата работает нормально. Программа загружается в проц и все работает, но если сделать reset питания, то в контроллере продолжает работать старая программа, а новая не сохраняется в памяти. В чем тут проблема? Программу пишу на С IAR Workbench IDE. И еще вопрос... а чем можно программировать (какой программатор) эти процы?
За ранее благодарен.
by-pass
Вы программу прошиваете во SRAM и от туа запускаете, а старая программа прошита во FLASH. После сброса, естественно, будет работать только старая програама.
У IAR в примерах программы для обоих типов памяти (project->Edit Configurations).
Самый простой программатор Wigler, инфы по нему полно.
aka-cobra
Цитата(by-pass @ Aug 8 2007, 23:23) *
Вы программу прошиваете во SRAM и от туа запускаете, а старая программа прошита во FLASH. После сброса, естественно, будет работать только старая програама.
У IAR в примерах программы для обоих типов памяти (project->Edit Configurations).
Самый простой программатор Wigler, инфы по нему полно.

<Большое спасибо
alexander55
Цитата(aka-cobra @ Aug 8 2007, 10:19) *
Всем привет!
Кто-нибудь работал с этим девайсом? Приобрел evaluation board от nohau и j-link. Плата работает нормально. Программа загружается в проц и все работает, но если сделать reset питания, то в контроллере продолжает работать старая программа, а новая не сохраняется в памяти. В чем тут проблема? Программу пишу на С IAR Workbench IDE. И еще вопрос... а чем можно программировать (какой программатор) эти процы?
За ранее благодарен.

Для программирования используйте свой J-Link.
aka-cobra
Наверное я чего-то не понимаю...Но у меня не получается загрузить программу во флеш. Пробывал загружать examples - пишет ошибки...Может кто подскажет в чем там дело?
by-pass
Цитата(aka-cobra @ Aug 13 2007, 16:54) *
Наверное я чего-то не понимаю...Но у меня не получается загрузить программу во флеш. Пробывал загружать examples - пишет ошибки...Может кто подскажет в чем там дело?


Опишите подробнее, что Вы делаете, и какие ошибки выдаются.
Наверняка дело в версии загрузчика в LPC2888. Если ругается на файл FlashPhilipsLPCxxx, то нужно обновить версию загрузчика в LPC2888. Как это точно делать не знаю, но не сложнее того,что вы делали. Или работать в IAR более старой версии, у которого файл FlashPhilipsLPCxxx для старой версий загрузчиков процов, например, 4.20.
aka-cobra
Если посмотреть Debug Log:

Tue Aug 14 18:10:52 2007: DLL version: V3.74f, compiled Aug 10 2007 17:57:34
Tue Aug 14 18:10:52 2007: Firmware: J-Link compiled Jun 28 2007 10:45:08 ARM Rev.5
Tue Aug 14 18:10:52 2007: JTAG speed is initially set to: 32 kHz
Tue Aug 14 18:10:52 2007: J-Link found 1 JTAG device. ARM core Id: 4F1F0F0F(ARM7)
Tue Aug 14 18:10:52 2007: Device at TAP0 selected
Tue Aug 14 18:10:52 2007: RTCK is not connected
Tue Aug 14 18:10:52 2007: Auto JTAG speed: 1000 kHz
Tue Aug 14 18:10:53 2007: 2744 bytes verified (5.54 Kbytes/sec)
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007B8, target byte: 0x56, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007B9, target byte: 0x36, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007BF, target byte: 0x08, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007C0, target byte: 0x14, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007C1, target byte: 0x22, byte in file: 0x4F
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007C2, target byte: 0x41, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007C7, target byte: 0x14, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007C8, target byte: 0x14, byte in file: 0x07
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007C9, target byte: 0x14, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007CA, target byte: 0x14, byte in file: 0x07
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007CB, target byte: 0x14, byte in file: 0x00
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007CF, target byte: 0x00, byte in file: 0x14
Tue Aug 14 18:10:53 2007: Warning:
Verify error at address 0x104007D0, target byte: 0x41, byte in file: 0x7F
.
.
.
.
Tue Aug 14 18:10:53 2007: Warning: Too many verify errors, only the first 200 are displayed
Tue Aug 14 18:10:53 2007: There were warnings during download, see Log Window
Tue Aug 14 18:10:59 2007: Loaded debugee: C:\Nohau\SeehauARM\Examples\Philips\LPC2800\IAR\blinky\Debug\Exe\blinky_lcd_eflash.elf
Tue Aug 14 18:10:59 2007: Target reset
aka-cobra
Ну вот...получилось программировать внутреннюю flash память этого проца. Но программа, которая работает в RAM, в flash-памяти не работает. В чем тут может быть дело?
Программирую в IAR 4.41, для получения bin-файла в опциях проекта ставлю linker->output = raw-binary. Потом при помощи утилиты Hostcryptv2 преобразую в ebn-файл, а с помощью MassDFU загружаю программу в flash...
by-pass
Цитата(aka-cobra @ Aug 16 2007, 09:46) *
Ну вот...получилось программировать внутреннюю flash память этого проца. Но программа, которая работает в RAM, в flash-памяти не работает. В чем тут может быть дело?
Программирую в IAR 4.41, для получения bin-файла в опциях проекта ставлю linker->output = raw-binary. Потом при помощи утилиты Hostcryptv2 преобразую в ebn-файл, а с помощью MassDFU загружаю программу в flash...

Первое, необходимо программно "отмаппить" вектора прерываний во FLASHв регистре MEMMAP.
Второе, есть файл линкера (*.xcl), т.е. после того как программа скомпилирована, линкер раскидывает программу в заданные области памяти, определяемые файлом линковки. Соответственно, эти файлы разные для работы из RAM и из FLASH.
Гляньте любой пример в IARe, например "Philips\LPC212x\Olimex-P212X\timer", там два файла *.xcl и два подпроекта для работы в RAM и FLASH. Разница в подпроектах в этих самых файлах, сравните их между собой, и все станет ясно. Различны секции -DROMSTART -DROMEND - это память программ и INTVEC - это расположение векторов прерываний.
Отрывайте карту памяти кристалла, смотрите на числа и все поймете.

P.S. Раз плата называется JLINK, то там должен быть этот самый JTAG-эмулятор JLINK. Если так, то просто надо его настроить в опциях и весь процесс "заливки" и отладки софта сведется к нажатию ctrl+d, так как описанный вами путь как-то далек от совершенства.
aka-cobra
С файлом xcl я более-менее разобрался...
Можно по подробнее про
"отмаппить" вектора прерываний во FLASHв регистре MEMMAP."
Дело в том, что при загрузке программы во flash, IAR пишет ошибку:
Fri Aug 17 09:11:52 2007: Warning: Target inconsistency detected in Memory range 0x10400719-0x10400A03
Как это можно исправить?
aka-cobra
Ну вот...появилась новая ошибка. При загрузке в flash память IAR выдает:
"Data outside flash"
Може кто-нибудь подскажет в чем тут дело?
defunct
Цитата(aka-cobra @ Aug 17 2007, 15:44) *
Ну вот...появилась новая ошибка. При загрузке в flash память IAR выдает:
"Data outside flash"
Може кто-нибудь подскажет в чем тут дело?

Вам уже подсказали.
Вдумчиво перечитайте еще разок коментарий #9 уважаемого by-pass.
Можете также попробовать Keil.
С ним возни в разы меньше чем с IAR'ом, и отладчик удобнее.
aka-cobra
Да я вроде все так и делаю...При чем не работают примеры от IAR. На сколько я понял эту ошибку выдает flash loader. Если задать в xcl файле -DROMSTART=00000 -DROMEND=fffff, то ошибка не выводится, но в памяти проца ни чего нет и программа не работает. А если указывать правильные адреса (как в даташите и в примерах) -DROMSTART=10400000 -DROMEND=104fffff, то IAR выдает ошибку "Data outside flash". Что я делаю не так????
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.