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

 
 
> не могу расположить код в LPC1768 начиная с 0x2000 в Keil, Could not write CPU register MSP: .....
Dunduk
сообщение Jan 31 2012, 08:16
Сообщение #1


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

Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904



довольно большой, рабочий проект решил сдвинуть на 2 сектора выше, дабы освободить место для Ethernet bootloader-а. Но Keil ругает меня, программа не идет.
Could not write CPU register MSP: Written: 0xffffffff, Read: 0xfffffffc
Единственное, что я делаю с рабочим проектом - я в проекте "Option for target" выставляю IROM1: 0x2000 и проблема появляется. Изначально, там был 0 и все работало.
what the фак am i doing wrong?

Пилю eth bootloader из комплекта Flash Magic. Там есть описание, как править проект чтоб оно заработало. Но как я понял, оно написано для LPC2378. Может, там есть какая-то специфика?



Сообщение отредактировал Dunduk - Jan 31 2012, 08:19
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Aaron
сообщение Feb 21 2012, 13:02
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



Сыплю голову пеплом, почитал ман на fromelf.exe, пришлось у друзей заимствовать свежую утилиту из 4-го кейла (из моего кейла ключик не поддерживается почему-то), батник изменился на:
C:\Keil\ARM\BIN30\fromelf.exe --bincombined --output "e:\project\compile\binary.bin" "e:\project\compile\binary.axf"
Теперь нормально бинарник на выходе получаю, но вопрос всё равно остался открытым...
После передачи управления от бутлоадера к пользовательской прошивке (в указанном мной ранее соседнем топике подсказали):
Код
// copy application INTVEC to remapped INTVEC location (start of RAM)
uint32_t const *Src = (uint32_t *)FLASH_USER_START;
uint32_t *Dst = (uint32_t *)AT91C_ISRAM; //RAMSTART
uint_fast8_t Size = 0x40 / sizeof *Dst;
do  { *Dst++ = *Src++; } while (--Size);
BOARD_RemapRam();
BL_StartUserApplication = (void(*)(void))0x0;
BL_StartUserApplication();

происходит сброс и снова вход в бутлоадер, вот пошаговое выполнение через j-link, начиная с последней строки кода:
Цитата
J-Link>s
PC: 001014EA
J-Link>s
PC: 00000000
J-Link>s
PC: 00100020
J-Link>s
PC: 00100024
J-Link>

Получается, что по нулевому адресу флэш, то есть ремап в RAM не происходит, так что ли?

Поменял адрес для вызова функции:
Код
BL_StartUserApplication = (void(*)(void))AT91C_ISRAM;
Теперь, поставив точку останова на 0x200000 = AT91C_ISRAM, имею:
Код
J-Link>regs
PC: (R15) = 00200000, CPSR = 00000050 (User mode, ARM FIQ dis.)
R0 = 00101425, R1 = 00100899, R2 = 002007A4, R3 = 00200000
R4 = 00000020, R5 = 001007A9, R6 = 00100475, R7 = 001000F4
USR: R8 =00200008, R9 =A5000001, R10=00206D70, R11 =00000000, R12 =00000000
     R13=00207D50, R14=00101431
FIQ: R8 =FFFFF000, R9 =01000000, R10=00000000, R11 =00000002, R12 =00000000
     R13=00207FE0, R14=02000000, SPSR=10000057
SVC: R13=00207F70, R14=00100E7F, SPSR=7000007F
ABT: R13=00207FF0, R14=00000000, SPSR=3000001C
IRQ: R13=00207FD0, R14=40000070, SPSR=40000070
UND: R13=00208000, R14=00000000, SPSR=600000DE
J-Link>s
PC: 00102860
J-Link>s
PC: 00102864
J-Link>s
PC: 00102868
Бинго! передал управление на RAM, оттуда перешёл на Reset_Handler (0x00102860), описанный в стандартном кейловском файле SAM7.S
НО: где-то на этапе инициализации происходит сбой (если проект компилировать как самостоятельный без смещения памяти, то всё работает нормально), и я снова попадаю в бутлоадер. Через консоль j-link не получается нормально посмотреть, брейкпоинты почему-то один раз ставятся и потом не удаляются, и новые не ставятся. Буду копаться дальше, конечно. Но как же это муторно! wacko.gif
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Feb 21 2012, 18:13
Сообщение #3


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Для примера работы с Ethernet бутлоадером брал образцы загрузчика с сайта NXP для LPC2368. Там все есть.
Но есть нюанс. sm.gif
На картинках настройки для проги, кторую шьем бутлоадером. На вкладке ASM есть строчка, что добавить нужно.

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 04:38
Рейтинг@Mail.ru


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