реклама на сайте
подробности

 
 
> LPC1778 не получается переместить программу, Не могу переместить программу в нужный адрес FLASH
Metallist64
сообщение May 8 2013, 12:40
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Здравствуйте уважаемые специалисты.
Использую KEIL 4.53 + LPC1778.
Столкнулся с непонятной ситуацией.
При попытке зашить программу в нужный адрес, отличный от 0 (например 0х10000)- получаю отвал PLL ну и остановку контроллера. В общем для LPC2367 я выставлял IROM1 start address 0x10000 - все было хорошо. Контроллер работал и отлаживался замечательно.
А на LPC1778 что-то не проходит такой фокус. Причем создается ощущение, что контроллер просто не запускается.
Может надо таблицу векторов перемещать, или еще что-нибудь а RAM ??? А то наблюдается полный ступор...
Если кто сталкивался, прошу помощи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Metallist64
сообщение May 13 2013, 06:41
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Сейчас попробовал следующий вариант:
-Полностью очистил флэш
- Записал программу с адреса 0х0.
Все работает отладчик отлаживает(использую SWD), на кварце генерация есть. Все работает.
Затем просто меняю адрес в настройках проекта. Ставлю например 0х1000. Компилирую.
Пытаюсь запустить debug сессию - и все. Программа прошивается, верифицируется и появляется надпись :
SWD Communication Failure.
На этом все заканчивается, сессия конечно не запускается. Следовательно, посмотреть как стартует программа не получается.

Попробовал запустить в симуляторе. Там видно что программа крутится в адресе 0х00000000 и не уходит из него.
В обще в окне дизассеблера, первая строка:

Код
0x00000000 0000      MOVS     r0,r0


А если адрес в настройках проекта оставить 0х0, то первая инструкция получается:
Код
0x00000000 0670      DCW      0x0670

И видно, что программа идет дальше и пытается конфигурировать PLL.

В общем наблюдается следующая картина. Если указать, что адрес программы должен начинаться с 0х10, то в окошке дизассемблера адреса с 0х0 по 0хЕ забиты одними и теме же инструкциями:
Код
0x00000000 0000      MOVS     r0,r0

Но с адреса 0х0 программа не уходит...
Такое ощущение, что какого-то перехода просто не хватает, типа RJMP на нужный адрес...

Сообщение отредактировал IgorKossak - May 13 2013, 07:10
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение May 13 2013, 10:14
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Metallist64 @ May 13 2013, 07:41) *
Попробовал запустить в симуляторе. Там видно что программа крутится в адресе 0х00000000 и не уходит из него.
В обще в окне дизассеблера, первая строка:
Такое ощущение, что какого-то перехода просто не хватает, типа RJMP на нужный адрес...

Вот по этому поводу я и распинался в сообщении №2. Ну не знают компилятор и компоновщик, что Вы хотите! Не будут они прописывать за Вас таблицы векторов, а процессор после сброса ВСЕГДА лезет по адресу 0х0 и загружает оттуда SP и PC. Сделайте, как я посоветовал. Это проверено.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 13 2013, 12:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(KnightIgor @ May 13 2013, 16:14) *
а процессор после сброса ВСЕГДА лезет по адресу 0х0 и загружает оттуда SP и PC. Сделайте, как я посоветовал. Это проверено.
А вот передо мной сейчас лежит устройство как раз на LPC1778, только подключено к IAR через JTAG. Стираю FlashMagic-ом ВСЮ память, прошиваю через JTAG начиная с 0x00001000, стартую (из под JTAG) - и удивительно - ПО прекрасно работает. Наверное оно не знает, что у него первые 0x1000 байт забиты 0xFF, если бы знало - точно не работало-бы! smile3046.gif
Go to the top of the page
 
+Quote Post
Metallist64
сообщение May 13 2013, 12:25
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Цитата(jcxz @ May 13 2013, 15:18) *
А вот передо мной сейчас лежит устройство как раз на LPC1778, только подключено к IAR через JTAG. Стираю FlashMagic-ом ВСЮ память, прошиваю через JTAG начиная с 0x00001000, стартую (из под JTAG) - и удивительно - ПО прекрасно работает. Наверное оно не знает, что у него первые 0x1000 байт забиты 0xFF, если бы знало - точно не работало-бы! smile3046.gif


А вы в настройках проекта просто указываете с какого адреса шить? В самой программе ничего не меняете?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Metallist64   LPC1778 не получается переместить программу   May 8 2013, 12:40
- - KnightIgor   Цитата(Metallist64 @ May 8 2013, 13:40) М...   May 8 2013, 20:23
- - jcxz   Так.... Как обычно включаю экстрасенсорные способн...   May 9 2013, 15:39
|- - Axel   ...откуда такие выводы про PLL??? [/quote] Моя инт...   May 9 2013, 17:20
|- - jcxz   Оттуда-же откуда Ваши фантазии про бутлоадер   May 9 2013, 17:56
|- - Axel   Цитата(jcxz @ May 9 2013, 20:56) Оттуда-ж...   May 10 2013, 02:59
|- - jcxz   Нет, не означает. Возможно - только планируется. А...   May 10 2013, 06:32
- - sensor_ua   Может, всё хорошо, только отладчику скрипт нужен с...   May 12 2013, 05:01
|- - jcxz   Предлагаю переименовать тему в "Пасхальные га...   May 12 2013, 07:40
|- - Metallist64   Цитата(sensor_ua @ May 12 2013, 08:01) Мо...   May 13 2013, 13:17
- - Metallist64   Честно говоря, топикстартер пытается понять, что е...   May 12 2013, 13:38
- - Metallist64   Большое спасибо, всем заинтересовавшимся! ОФФТ...   May 12 2013, 14:51
|- - _Артём_   Цитата(Metallist64 @ May 12 2013, 17:51) ...   May 12 2013, 15:03
|- - jcxz   Цитата(Metallist64 @ May 12 2013, 20:51) ...   May 12 2013, 15:47
- - sensor_ua   Всё-таки попробуйте Dbg_ROM.ini подложить дебаггер...   May 12 2013, 15:18
|- - jcxz   Меняется только адрес начала флеш-памяти, описанны...   May 13 2013, 12:44
- - sensor_ua   Вот, например, цифирьки по образу и подобию https:...   May 13 2013, 15:52
- - Metallist64   Уважаемые специалисты. Вроде сделал как надо: Код...   May 14 2013, 07:25
- - sensor_ua   ЦитатаУказатель стека указывает на ОЗУ... А настро...   May 14 2013, 11:48
|- - Metallist64   Цитата(sensor_ua @ May 14 2013, 14:48) А ...   May 14 2013, 12:46
- - sensor_ua   А для ROM со смещением так пробовал? Я из RAM не п...   May 14 2013, 14:53
|- - Metallist64   Цитата(sensor_ua @ May 14 2013, 17:53) А ...   May 14 2013, 20:57
- - Metallist64   Пока решил оставить затею отлаживать прошивку с лю...   May 15 2013, 07:36
- - Metallist64   В руководстве пользователя написано, что с адреса ...   May 15 2013, 08:44
- - Metallist64   Вот я баран! Я в коде объявил несколько переме...   May 15 2013, 13:05
|- - KnightIgor   Цитата(Metallist64 @ May 15 2013, 14:05) ...   May 15 2013, 20:56
|- - Metallist64   Цитата(KnightIgor @ May 15 2013, 23:56) М...   May 16 2013, 07:59
- - Golikov A.   так и программу из флеши в озу тоже никто кроме ва...   May 16 2013, 19:40
- - Metallist64   В ближайшее время попробую переложить в ОЗУ. Сейча...   May 17 2013, 07:35


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 07:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016