|
скрипт Linkera |
|
|
|
Jan 24 2009, 17:43
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Помогите разобраться с скриптами для linkera. Yagarto eclips at91sam7s256 После компиляции, создаются два объектных файла crt.o main.o сделал самый простейший скрипт,который должен разместить секции text в ram и data в flash. После того как проходит компиляция компоновка, копирование получаю файл hex, при попытки его загрузить с помощью h jtag выходит ошибка что память ухотит за пределы, пробовал адреса ставить 0ч0 и 0ч100000 такаже проблема. Подозреваю что ошибка в скрипте. CODE OUTPUT_FORMAT("elf32-littlearm") /* формат памяти. прямой порядок байт (Little-endian). */ OUTPUT_ARCH(arm) /* архитектура АРМ */
_vec_reset = 0x0;
_stack_end = 0x20FA00; /* конец стека (верх стека) */
ENTRY(_vec_reset) /* вектор сброса */
/* Память микроконтроллера AT91SAM7S256 */ MEMORY { flash (rx) : ORIGIN = 0x100000, LENGTH = 256K /* FLASH EPROM */ ram (rw) : ORIGIN = 0x200000, LENGTH = 64K /* static RAM area */ }
SECTIONS {
.text : { *crt.o (.text) }>flash . = ALIGN(4);
.data : { *crt.o (.data) }> ram . = ALIGN(4);
.bss : { *(.bss) *(COMMON) }>ram . = ALIGN(4); }
|
|
|
|
|
 |
Ответов
|
Feb 2 2009, 21:21
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Пробую запустить openocd , не запускается пишет ошибку: CODE C:\openocd\src>openocd -f WigglerF.cfg Open On-Chip Debugger 0.1.0 (2009-02-02-20:43) Release BUGS? Read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS$URL: https://kc8apf@svn.berlios.de/svnroot/repos...enocd-0.1.0/src/openocd.c $ jtag_speed: 0 OLD SYNTAX: DEPRECATED - translating to new syntax jtag newtap CHIP TAP -irlen 4 -ircapture 0x1 -irvalue 0xf Example: STM32 has 2 taps, the cortexM3(len4) + boundryscan(len5) jtag newtap stm32 cortexm3 ....., thus creating the tap: "stm32.cortexm3" jtag newtap stm32 boundry ....., and the tap: "stm32.boundery" And then refer to the taps by the dotted name. NEW COMMAND: invalid command name "daemon_startup_reset" C:\openocd\src> фот скрипт: CODE telnet_port 4444 gdb_port 3333 interface parport parport_port 0xDD00 parport_cable wiggler jtag_speed 0 reset_config srst_only srst_pulls_trst jtag_device 4 0x1 0xf 0xe daemon_startup reset target arm7tdmi little run_and_init 0 arm7tdmi run_and_halt_time 0 30 target_script 0 reset openocd_at91sam7x_flash.script working_area 0 0x00200000 0x4000 nobackup flash bank at91sam7 0 0 0 0 0
Может что посоветуете? Вообще все эти свободные продукты , может спешу с выводом, кошмар, у меня слов нет, работать не чего нормально не хочет, хорошей понятной доки нет, а изучать все исходники, можно, но пока их изучишь, забудешь что хотел делать .
|
|
|
|
|
Feb 3 2009, 08:23
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
судя по всему Вы используете довольно свежую версию openocd. В таком случае лучше использовать конфиги, идущие вместе с openocd. Пример моего конфига Код source [find parport.cfg] source [find stm32.cfg] , а рядом лежат конфиги для целевого кристалла(в Вашем случае вероятно sam7x256) и вигглера ( parport.cfg, возможно придется подправить адрес параллельного порта) от разработчиков.
|
|
|
|
|
Feb 3 2009, 13:52
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(gotty @ Feb 3 2009, 11:23)  судя по всему Вы используете довольно свежую версию openocd. В таком случае лучше использовать конфиги, идущие вместе с openocd. Пример моего конфига Код source [find parport.cfg] source [find stm32.cfg] , а рядом лежат конфиги для целевого кристалла(в Вашем случае вероятно sam7x256) и вигглера ( parport.cfg, возможно придется подправить адрес параллельного порта) от разработчиков. Добавил конфиг: Код source [find C:\\openocd\\src\\target\\interface\\parport.cfg] source [find C:\\openocd\\src\\target\\target\\sam7se512.cfg] Порт подкорректировал на 0х378, появилась новая ошибка : командная строка : Код C:\openocd\src>openocd -f config.cfg Open On-Chip Debugger 0.1.0 (2009-02-02-20:43) Release BUGS? Read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS $URL: https://kc8apf@svn.berlios.de/svnroot/repos/openocd/tags/openocd-0.1.0/src/openocd.c $ jtag_speed: 0 Error: missing privileges for direct i/o Runtime error, file "command.c", line 456:
C:\openocd\src> собирал этот openocd цигвином, с ./configure --enable-parport --enable-parport_giveio потом маке и маке инстолл. Ошибок, в процессе сборки не было. с чем это проблема может быть связана ? Вот функция где происходит ошибка: CODE int command_run_line(command_context_t *context, char *line) { /* all the parent commands have been registered with the interpreter * so, can just evaluate the line as a script and check for * results */ /* run the line thru a script engine */ int retval=ERROR_FAIL; int retcode; /* Beware! This code needs to be reentrant. It is also possible * for OpenOCD commands to be invoked directly from Tcl. This would * happen when the Jim Tcl interpreter is provided by eCos for * instance. */ Jim_DeleteAssocData(interp, "context"); retcode = Jim_SetAssocData(interp, "context", NULL, context); if (retcode == JIM_OK) { /* associated the return value */ Jim_DeleteAssocData(interp, "retval"); retcode = Jim_SetAssocData(interp, "retval", NULL, &retval); if (retcode == JIM_OK) { retcode = Jim_Eval_Named(interp, line, __THIS__FILE__, __LINE__ ); // Вот это 456 строка, при запуске, сообщает что здесь ошибка
Jim_DeleteAssocData(interp, "retval"); } Jim_DeleteAssocData(interp, "context"); } if (retcode == JIM_ERR) { if (retval!=ERROR_COMMAND_CLOSE_CONNECTION) { /* We do not print the connection closed error message */ Jim_PrintErrorMessage(interp); } if (retval==ERROR_OK) { /* It wasn't a low level OpenOCD command that failed */ return ERROR_FAIL; } return retval; } else if (retcode == JIM_EXIT) { /* ignore. */ /* exit(Jim_GetExitCode(interp)); */ } else { const char *result; int reslen;
result = Jim_GetString(Jim_GetResult(interp), &reslen); int i; char buff[256+1]; for (i = 0; i < reslen; i += 256) { int chunk; chunk = reslen - i; if (chunk > 256) chunk = 256; strncpy(buff, result+i, chunk); buff[chunk] = 0; LOG_USER_N("%s", buff); } LOG_USER_N("%s", "\n"); retval=ERROR_OK; } return retval; }
Сообщение отредактировал sergey sva - Feb 3 2009, 14:00
|
|
|
|
|
Feb 3 2009, 14:21
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
Цитата(sergey sva @ Feb 3 2009, 16:07)  я думал что это драйвер который нужен для работы opeocd с параллельным портом ? Всё верно. Цитата(sergey sva @ Feb 3 2009, 16:07)  Сделал сейчас make clean и все заново только без enable-parport_giveio, не чего не изменилось. для windows нужно собирать с --enable-parport_giveio. Только ещё сам драйвер надо установить. Скачать можно с http://www.pcports.ru/files/giveio.rar
|
|
|
|
|
Feb 3 2009, 15:33
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(gotty @ Feb 3 2009, 17:21)  Всё верно. для windows нужно собирать с --enable-parport_giveio. Только ещё сам драйвер надо установить. Скачать можно с http://www.pcports.ru/files/giveio.rarУстановил теперь появились изменения, ошибки есть, может это из за того что файл sam7se512.cfg, от at91sam7s512 , а у меня at91sam7s256 его нужно подправлять.? Где бы еще найти скрипт инициализации для wigglera который нужно сюда вводить :
ошибки: CODE C:\openocd\src>openocd -f config.cfg Open On-Chip Debugger 0.1.0 (2009-02-03-17:29) Release BUGS? Read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS$URL: https://kc8apf@svn.berlios.de/svnroot/repos...0/src/openocd.c $ jtag_speed: 0 Info : JTAG tap: sam7se512.cpu tap/device found: 0x3f0f0f0f (Manufacturer: 0x787 , Part: 0xf0f0, Version: 0x3) Error: JTAG tap: sam7se512.cpu got: 0x3f0f0f0f (mfg: 0x787, part: 0x f0f0, ver: 0x3) Error: JTAG tap: sam7se512.cpu expected 1 of 1: 0xffffffff (mfg: 0x7ff, part: 0x ffff, ver: 0xf) Error: trying to validate configured JTAG chain anyway... Warn : no tcl port specified, using default port 6666
Сообщение отредактировал sergey sva - Feb 3 2009, 15:35
|
|
|
|
|
Feb 3 2009, 16:13
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(gotty @ Feb 3 2009, 18:47)  А чего не используете sam7x256.cfg? Не увидел этот файл, на глаза только попался sam7se512.cfg . Сейчас Переделал config, но от ошибок все равно не избавился, теперь пишет ,что адрес уже занят : Код jtag_speed: 0 Info : JTAG tap: sam7x256.cpu tap/device found: 0x3f0f0f0f (Manufacturer: 0x787, Part: 0xf0f0, Version: 0x3) Info : JTAG Tap/device matched Error: couldn't bind to socket: Address already in use Пробовал менять на всякие разные все равно занято. telnet_port 4444 gdb_port 2001
Сообщение отредактировал sergey sva - Feb 3 2009, 16:13
|
|
|
|
|
Feb 4 2009, 10:43
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(sergey sva @ Feb 3 2009, 22:36)  ода но все же работает это радует.  А я все никак не могу подружить ARM-USB-OCD с OpenOCD и LPC2378. Пишет, что не может выполнить Halt reset. Может кто знает в чем дело? Вот лог: CODE Open On-Chip Debugger (2008-06-19 19:00) svn: 717 URL: http://svn.berlios.de/svnroot/repos/openocd/trunkInfo: options.c:50 configuration_output_handler(): jtag_speed: 3, 3 Info: options.c:50 configuration_output_handler(): Open On-Chip Debugger (2008-06-19 19:00) svn: 717 Info: jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f (Manufacturer: 0x787, Part: 0xf1f0, Version: 0x4) Warning: embeddedice.c:185 embeddedice_build_reg_cache(): EmbeddedICE version 7 detected, EmbeddedICE handling might be broken Info: jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f (Manufacturer: 0x787, Part: 0xf1f0, Version: 0x4) User: target.c:436 target_process_reset(): Timed out waiting for halt after reset Info: server.c:78 add_connection(): accepting 'gdb' connection from 0 Warning: gdb_server.c:416 gdb_get_packet_inner(): acknowledgment received, but no packet pending Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Info: server.c:395 server_loop(): dropped 'gdb' connection Info: server.c:78 add_connection(): accepting 'gdb' connection from 0 Warning: gdb_server.c:416 gdb_get_packet_inner(): acknowledgment received, but no packet pending Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Warning: arm7_9_common.c:1829 arm7_9_read_memory(): target not halted Заработало но появилась другая проблема: Добавил две строчки в конфигурационный файл OpenOCD, в общем приведу весь, дабы уменьшить проблемы тем, кто будет проходить этот же путь CODE #daemon configuration telnet_port 4444 gdb_port 3333 # tell gdb our flash memory map # and enable flash programming gdb_memory_map enable gdb_flash_program enable #interface interface ft2232 ft2232_device_desc "Olimex OpenOCD JTAG A" ft2232_layout "olimex-jtag" ft2232_vid_pid 0x15BA 0x0003 jtag_speed 3 jtag_nsrst_delay 200 # <- заработало после добавления вот этого jtag_ntrst_delay 200 # <- #use combined on interfaces or targets that can't set TRST/SRST separately reset_config trst_and_srst srst_pulls_trst #jtag scan chain #format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) jtag_device 4 0x1 0xf 0xe #target configuration daemon_startup reset #target <type> <startup mode> #target arm7tdmi <reset mode> <chainpos> <endianness> <variant> target arm7tdmi little run_and_halt 0 arm7tdmi-s_r4 run_and_halt_time 0 30 working_area 0 0x40000000 0x4000 nobackup #flash configuration #flash bank lpc2000 <base> <size> 0 0 <target#> <variant> flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v1 14765 calc_checksum # For more information about the configuration files, take a look at: # http://openfacts.berlios.de/index-en.phtml...n-Chip+DebuggerВ данный момент не работают точки останова на функции main() и любые другие, если перезапустить программу. Если уже запущенную программу остановить и поставить точки останова, а потом опять запустить - они вновь начинают работать. Как победить?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Feb 4 2009, 12:13
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Vitaliy_ARM @ Feb 4 2009, 12:43)  А я все никак не могу подружить ARM-USB-OCD с OpenOCD и LPC2378. Пишет, что не может выполнить Halt reset. Может кто знает в чем дело? Хм. Я тоже, но продвинулся чуть дальше Постил я сюда: http://electronix.ru/forum/index.php?showt...st&p=538405http://electronix.ru/forum/index.php?showt...st&p=538988Может вдвоем быстрее найдем правильный путь.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Feb 4 2009, 12:54
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(amw @ Feb 4 2009, 15:13)  Посмотрел. Приведу на всякий случай окно инициализации своего gdb: Продолжаем разбираться.
Эскизы прикрепленных изображений
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Feb 4 2009, 13:26
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(Vitaliy_ARM @ Feb 4 2009, 15:54)  Посмотрел. Приведу на всякий случай окно инициализации своего gdb: Продолжаем разбираться.  попробуйте добавить break main continue
|
|
|
|
|
Feb 4 2009, 13:36
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(sergey sva @ Feb 4 2009, 16:26)  попробуйте добавить
break main continue Пробовал, потом убрал. Роли не играет. А как аппаратные брейкпоинты работают. Они во флешь прошиваются или в озу или в спец регистры?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
Сообщений в этой теме
sergey sva скрипт Linkera Jan 24 2009, 17:43 Сергей Борщ Цитата(sergey sva @ Jan 24 2009, 19:43) П... Jan 24 2009, 19:23 sergey sva фот файл map, не чего неправильного не вижу, конеч... Jan 25 2009, 17:23 alx2 Цитата(sergey sva @ Jan 24 2009, 22:43) п... Jan 25 2009, 18:19 sergey sva ЦитатаПрямо так и выходит? Как это "память ух... Jan 25 2009, 18:35 alx2 Цитата(sergey sva @ Jan 25 2009, 23:35) О... Jan 26 2009, 10:37  Vitaliy_ARM Как здесь разместить вектора перерывания по указан... Jan 27 2009, 13:26   alx2 Цитата(Vitaliy_ARM @ Jan 27 2009, 18:26) ... Jan 28 2009, 10:45    Vitaliy_ARM Цитата(alx2 @ Jan 28 2009, 13:45) КодSECT... Jan 28 2009, 15:04     Vitaliy_ARM Задам еще, наверное глупый вопрос.
Может ли кто-ни... Jan 29 2009, 10:52     alx2 Цитата(Vitaliy_ARM @ Jan 28 2009, 20:04) ... Jan 29 2009, 14:03 sergey sva Уже какой день разбираюсь, но все еще не могу полу... Jan 30 2009, 17:16 amw Цитата(sergey sva @ Jan 30 2009, 19:16) У... Jan 30 2009, 18:19 sergey sva Помогло
хотел попробовать запустить отладчик ... Jan 30 2009, 19:23 Vitaliy_ARM Цитата(sergey sva @ Jan 30 2009, 22:23) П... Feb 2 2009, 08:28             amw Цитата(Vitaliy_ARM @ Feb 4 2009, 14:54) П... Feb 4 2009, 19:11              Vitaliy_ARM Цитата(amw @ Feb 4 2009, 22:11) 0xe01fc04... Feb 5 2009, 08:51               Vitaliy_ARM Заметил такую штуку.
Когда использовал GDB сервер... Feb 6 2009, 12:24 alx2 Цитата(sergey sva @ Feb 3 2009, 02:21) Во... Feb 3 2009, 13:03 sergey sva Еще есть одна непонятная ситуация, может что подск... Feb 3 2009, 20:38 gotty Цитата(sergey sva @ Feb 3 2009, 22:38) Ещ... Feb 4 2009, 14:32  sergey sva Цитата(gotty @ Feb 4 2009, 17:32) Возможн... Feb 4 2009, 15:04 sergey sva У меня обратная проблема,пока wigller подключен пр... Feb 4 2009, 12:13 alx2 Цитата(sergey sva @ Feb 4 2009, 17:13) но... Feb 5 2009, 10:48  sergey sva Цитата(alx2 @ Feb 5 2009, 13:48) По повод... Feb 5 2009, 17:52   amw Цитата(sergey sva @ Feb 5 2009, 19:52) По... Feb 5 2009, 18:58 sergey sva компиляция линкование и ассемблирование проходит б... Feb 4 2009, 16:29 sergey sva Спасибо теперь все работает. причина была : секци... Feb 5 2009, 19:43 amw Цитата(sergey sva @ Feb 5 2009, 21:43) Сп... Feb 5 2009, 19:48 _Pasha Подскажите, уважаемые, как бороться с такой чепухо... Apr 30 2009, 08:54 amw Цитата(_Pasha @ Apr 30 2009, 11:54) Подск... Apr 30 2009, 15:33 Сергей Борщ Цитата(_Pasha @ Apr 30 2009, 11:54) Пишу ... Apr 30 2009, 20:33 _Pasha Всем спасибо.
Отключил -mshort-calls проблема ушл... May 3 2009, 12:23 SysRq Цитата(_Pasha @ May 3 2009, 16:23) Отключ... May 3 2009, 13:20  Vitaliy_ARM Можно ли как-нибудь создать один регион памяти из ... Sep 7 2009, 13:04   Vitaliy_ARM Цитата(Vitaliy_ARM @ Sep 7 2009, 17:04) М... Sep 10 2009, 10:52    Vitaliy_ARM После длительной переписки со службой поддержки вы... Sep 14 2009, 08:17     Сергей Борщ Цитата(Vitaliy_ARM @ Sep 14 2009, 11:17) ... Sep 14 2009, 08:54      Vitaliy_ARM Цитата(Сергей Борщ @ Sep 14 2009, 12:54) ... Sep 14 2009, 09:42       Vitaliy_ARM После разговора со службой поддержики. И после тог... Sep 15 2009, 11:16     alx2 Цитата(Vitaliy_ARM @ Sep 14 2009, 13:17) ... Sep 17 2009, 13:14      Vitaliy_ARM Цитата(alx2 @ Sep 17 2009, 17:14) Наверно... Sep 21 2009, 08:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|