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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> ALTERA USB BLASTER use as JTAG programmer, научить ALTERA USB BLASTER зашивать по JTAG AT91SAM7S*
Genadi Zawidowsk...
сообщение Dec 3 2009, 21:29
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Кажется, начало находиться... Это оно? (кусочек инициализации от openocd):

Код
        soft_reset_halt
        # RSTC_CR : Reset peripherals
        mww 0xfffffd00 0xa5000004
        # disable watchdog
        mww 0xfffffd44 0x00008000
        # enable user reset
        mww 0xfffffd08 0xa5000001
        # CKGR_MOR : enable the main oscillator
        mww 0xfffffc20 0x00000601
        sleep 10
        # CKGR_PLLR: 96.1097 MHz
        mww 0xfffffc2c 0x00481c0e
        sleep 10
        # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
        mww 0xfffffc30 0x00000007
        sleep 10
        # MC_FMR: flash mode (FWS=1,FMCN=73)
        mww 0xffffff60 0x00490100
        sleep 100


То есть, мне надо писать в регистры так, как это делал бы процессор?
Go to the top of the page
 
+Quote Post
KRS
сообщение Dec 3 2009, 22:49
Сообщение #17


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Genadi Zawidowski @ Dec 4 2009, 00:29) *
То есть, мне надо писать в регистры так, как это делал бы процессор?

Это список команд которые дают на выполнение процессору.
Да насколько я помню у ARM7 можно прямо через JTAG заставить выполнить команду не записывая ее в память и результат так же считать ( т.е. шина ARM ядра просто в scan chain выведена) - так что можно и скрипт написать для urjtag на основе этого от openocd. Только Вам тогда надо на сайте ARM документацию на ARM Embeddedice, например ARM7TDMI Debug Architecture
http://infocenter.arm.com/help/topic/com.a...ug_appsnote.pdf
Но это такая - серьезная работа!
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 23 2010, 18:44
Сообщение #18


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Кажется, скоро появится возможность исользовать Altera USB Blaster.
Сконфигурировать UrJtag для записи в мне так и не удалось...
Но новый openocd 0.4.0 теперь имеет поддержку адаптера Altera USB Blaster.
Пока тренируюсь на плате с at91sam7s32 и Raisonance USB JTAG.
Конфигурирование проходит, но для любой операции с flash требуется процессор приостановить... а в ответ получаю:

Цитата
Open On-Chip Debugger 0.3.1 (2009-11-13-16:13)
$URL$
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
30 kHz
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Warn : use 'sam7s32.cpu' as target identifier, not '0'
Warn : The lowest supported JTAG speed is 375 KHz
Warn : The lowest supported JTAG speed is 375 KHz
Info : clock speed 375 kHz
Info : JTAG tap: sam7s32.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : Embedded ICE version 1
Warn : The lowest supported JTAG speed is 375 KHz
Warn : The lowest supported JTAG speed is 375 KHz
375 kHz
Info : JTAG tap: sam7s32.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset.
Error: invalid mode value encountered 1
Error: cpsr contains invalid mode value - communication failureexpected return code but got 'TARGET: sam7s32.cpu - Not halted'
Runtime error, file "openocd.cfg", line 78:


Может кто-нибудь поделиться скриптом для openocd, который бы просто записывал во внутренний flash процессора файл? Отладка через jtag не интересует.

Сообщение отредактировал Genadi Zawidowski - Feb 23 2010, 18:48
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 23 2010, 18:59
Сообщение #19


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Genadi Zawidowski @ Feb 23 2010, 23:44) *
Может кто-нибудь поделиться скриптом для openocd, который бы просто записывал во внутренний flash процессора файл?

prog-elf.bat:
Код
@echo off
set PATH=C:\tools\OpenOcd\bin;%PATH%
set INTERFACE=jlink.cfg
set TARGET=stm32f10x_128k_eval.cfg
@openocd -d0 -f interface/%INTERFACE% -f target/%TARGET% -c init -c targets -c "halt" -c "flash write_image erase %1" -c "verify_image %1" -c "reset run" -c shutdown


INTERFACE и TARGET подправьте под себя.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 23 2010, 19:20
Сообщение #20


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Сообщение об ошибке не изменилось... Как и в ручном режиме (через telnet) - после выдачи halt получаю сообщение о том, что с cpsr не то значение и так далее...

Код
C:\user\dds2\TC1>openocd -d0 -f interface/rlink.cfg -f target/at91sam7sx.cfg -c init -c targets -c "halt" -c "flash write_image erase " -c "verify_image .\at91sam7s\tc1.elf" -c "reset run" -c shutdown
Open On-Chip Debugger 0.3.1 (2009-11-13-16:13)
$URL$
For bug reports, read
        http://openocd.berlios.de/doc/doxygen/bugs.html
debug_level: 0
30 kHz
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Error: invalid mode value encountered 1
Error: cpsr contains invalid mode value - communication failure
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
0* at91sam7s.cpu      arm7tdmi   little at91sam7s.cpu      unknown
Error: invalid mode value encountered 1
Error: cpsr contains invalid mode value - communication failure
Error: invalid mode value encountered 1
Error: cpsr contains invalid mode value - communication failure
Runtime error, file "command.c", line 473:


Да, эта же плата через тот же 20-пин разъём шъётся wiggler-ом через h-jtag без проблем.

Сообщение отредактировал Genadi Zawidowski - Feb 23 2010, 19:34
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 23 2010, 19:34
Сообщение #21


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Genadi Zawidowski @ Feb 24 2010, 00:20) *
Сообщение об ошибке не изменилось...

Значит не работаетsmile.gif Насколько я в курсе, поддержка rlink там в зачаточном состоянии. У меня есть плата с rlink, но там stm32, и прицеплен он по SWD (альтенратива JTAG), а его (SWD) openocd точно не поддерживает. Откуда вы взяли, что оно вообще заработает?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 23 2010, 20:08
Сообщение #22


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(AHTOXA @ Feb 23 2010, 22:34) *
Откуда вы взяли, что оно вообще заработает?

Исходя из того, что reset из j-tag адаптера выходит (тестовая плата перезапускается) и остальные команды выполняются - о чём сообщает всякая диагностика подключёного к j-tag процессора. То есть, нижний уровень работает.

Да, openocd + wiggler тоже не грузят программу. Только hjtag + wiggler.

Вывод - я как-то не так обращаюсь с openocd. Но что ещё, кроме конфигурационных файлов, может влиять?

Сообщение отредактировал Genadi Zawidowski - Feb 23 2010, 20:20
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 28 2010, 22:55
Сообщение #23


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Коллеги, ничего не сдвинулось с места...
Инсталирован openocd 0.3.1 _без каких_либо_изменений_в _конфигах (кроме адреса порта в parport.cfg).

Запуск командной строки приведённой ниже что с rlink, что с parport с классическим wiggler выдяёт практически одинаковые сообщения:
Код
C:\user\dds2\TC1>openocd -d1 -f interface/rlink.cfg -f target/at91sam7sx.cfg -c init -c targets -c "halt" -c "flash write_image erase " -c "verify_image .\at91sam7s\tc1.elf" -c "reset run" -c shutdown
Open On-Chip Debugger 0.3.1 (2009-11-13-16:13)
$URL$
For bug reports, read
        http://openocd.berlios.de/doc/doxygen/bugs.html
debug_level: 1
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Warn : use 'at91sam7s.cpu' as target identifier, not '0'
Error: 0 is not a supported speed
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
0* at91sam7s.cpu      arm7tdmi   little at91sam7s.cpu      running
Error: invalid mode value encountered 1
Error: cpsr contains invalid mode value - communication failure
Runtime error, file "command.c", line 473:

jtag_speed или jtag_khz ставил разные... При других debug level видно, что всё начинается после init.
Тот же wiggler при работе из-под hjtag без проблем делает всё что надо и плата программируется. (не аппаратура виновата, похоже).
Кто-нибудь может прислать работающий вариант конфигов и командного файла, прошивающего flash контроллера at91sam7s-какогоугодно или at91sam9xe512 ? Кроме того, будет интересно узнать с какой версией openocd идёт успешное программирование.

Сообщение отредактировал Genadi Zawidowski - Feb 28 2010, 22:59
Go to the top of the page
 
+Quote Post
A.P.
сообщение Oct 7 2012, 16:06
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 9-05-11
Пользователь №: 64 879



Три года прошло - сдвиги какие-нибудь есть?
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 7 2012, 21:16
Сообщение #25


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(A.P. @ Oct 7 2012, 20:06) *
Три года прошло - сдвиги какие-нибудь есть?

На следующий день я научил работать STK-200 с h-jtag (http://electronix.ru/forum/index.php?showtopic=60978), потом купил sam-ice (http://electronix.ru/forum/index.php?showtopic=77054) (потому, что это сразу пошёл и купил), потом купил стартеркитовский девайс в чёрной котробочке (пара недель почтой). С тех пор и по сей день прошиваю флэши процессоров через j-flash arm, хотелось бы конечно командную строку, но как-то интерес к openocd и альтеровскому байтбластеру поутих. К стати, работающего скрипта для прошивки внутреннего флэша через тот же segger j-tag тоже не попалось.
АНТОХА, Ваш скрипт у меня и с сеггером не работает.

Сообщение отредактировал Genadi Zawidowski - Oct 7 2012, 21:23
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 8 2012, 05:40
Сообщение #26


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Странно.
Вот таким J-Link в вот такую плату SK-MLPC1768 для проверки иногда зашиваю исходное содержимое флеша такой командой.
Код
openocd -f interface/jlink.cfg -f ./lpc1766.cfg -c init -c targets -c "reset_config srst_only" -c "reset init"\
-c halt -c "flash write_image erase original.bin" -c "reset run" -c shutdown

При работе шьётся из редактора через Makefile, но там то же самое набирается из настроек проекта.
Собственно, из Makefile от AHTOXA для scmRTOS/Cortex-M3 и было ©тырено, только управление сбросом добавил.

p.s. Это всё в линуксе (убунты 10.04/64 и 12.04/32) самосборным OpenOCD (время от времени git pull и пересобираю).


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
A.P.
сообщение Nov 28 2012, 13:56
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 9-05-11
Пользователь №: 64 879



Я таки заставил работать связку altera usb_blaster + openocd + stm32
Если кому интересно вот мой конфиг:
Код
telnet_port 4444
interface usb_blaster
usb_blaster_vid_pid 0x09fb 0x6001
usb_blaster_device_desc "USB-JTAG-IF"
source [find target/stm32f1x.cfg]
adapter_khz 3000

А вот команды для gdb
Код
target remote :3333
monitor reset init
load Debug/test.elf

Все отлично работает без сбоев. Только скорость удручает. Зато решение универсальное. 08.gif

P.S. openocd 0.6.1


Сообщение отредактировал A.P. - Nov 28 2012, 13:59
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:13
Рейтинг@Mail.ru


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