Перейти к содержанию
    

ALTERA USB BLASTER use as JTAG programmer

Кажется, начало находиться... Это оно? (кусочек инициализации от 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

 

То есть, мне надо писать в регистры так, как это делал бы процессор?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, мне надо писать в регистры так, как это делал бы процессор?

Это список команд которые дают на выполнение процессору.

Да насколько я помню у ARM7 можно прямо через JTAG заставить выполнить команду не записывая ее в память и результат так же считать ( т.е. шина ARM ядра просто в scan chain выведена) - так что можно и скрипт написать для urjtag на основе этого от openocd. Только Вам тогда надо на сайте ARM документацию на ARM Embeddedice, например ARM7TDMI Debug Architecture

http://infocenter.arm.com/help/topic/com.a...ug_appsnote.pdf

Но это такая - серьезная работа!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кажется, скоро появится возможность исользовать 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто-нибудь поделиться скриптом для 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 подправьте под себя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сообщение об ошибке не изменилось... Как и в ручном режиме (через 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сообщение об ошибке не изменилось...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Откуда вы взяли, что оно вообще заработает?

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

 

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

 

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

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Коллеги, ничего не сдвинулось с места...

Инсталирован 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Три года прошло - сдвиги какие-нибудь есть?

На следующий день я научил работать 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странно.

Вот таким 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 и пересобираю).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я таки заставил работать связку 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:

 

P.S. openocd 0.6.1

 

Изменено пользователем A.P.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте не подскажете как прошить nokia c01 ta 1383 через jtag программатор altera usb blaster (ft245 + cpld)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...