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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> OpenOCD v0.9.0-20150519
Шаманъ
сообщение May 19 2016, 06:39
Сообщение #16


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(doom13 @ May 18 2016, 23:44) *
Т.е. получается, что в конфиге для 0.9.0 размер флэша не задан (равен 0)???

Там чуть больше отличий. Вот смотрите как выглядит вызов этой команды в 0.8.0 после подстановки переменных:
flash bank lpc1788.flash lpc2000 0x0 0x80000 0 0 lpc1788.cpu lpc1700 12000 calc_checksum

А вот так выглядит в 0.9.0:
flash bank lpc17xx.flash lpc2000 0x0 0 0 0 lpc17xx.cpu auto 12000 calc_checksum

Ключевые отличия я выделил. В документации на OOCD сказано, что для некоторых драйверов размер флеша можно указать равным 0, тогда он будет определен автоматически. Про семейство также написано, что auto является допустимым параметром - т.е. выглядит все нормально. В логе от 0.9.0 написано, что OOCD не хватает параметров для команды flash. Может ему "не нравятся" какие-то параметры (на автомате не определяет правильно семейство или размер флеша). Я бы попробовал закомментировать это (строки 103 и 104) в файле lpc1xxx.cfg:
Код
flash bank $_FLASHNAME lpc2000 0x0 0 0 0 $_TARGETNAME \
    auto $_CCLK calc_checksum


и дописать туда

Код
flash bank $_FLASHNAME lpc2000 0x0 0x80000 0 0 $_TARGETNAME lpc1700 12000 calc_checksum


По результатам можно будет подумать дальше...
Go to the top of the page
 
+Quote Post
doom13
сообщение May 19 2016, 08:09
Сообщение #17


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Шаманъ @ May 19 2016, 09:39) *
Там чуть больше отличий. Вот смотрите как выглядит вызов этой команды в 0.8.0 после подстановки переменных:
flash bank lpc1788.flash lpc2000 0x0 0x80000 0 0 lpc1788.cpu lpc1700 12000 calc_checksum
А вот так выглядит в 0.9.0:
flash bank lpc17xx.flash lpc2000 0x0 0 0 0 lpc17xx.cpu auto 12000 calc_checksum

Спасибо, оно самое! Заработало. Работает и OOCD 0.9.0 и 0.10.0.
Ошибку даёт и параметр auto и значение размера флэша 0.

Остался такой вопрос.
Go to the top of the page
 
+Quote Post
Raven
сообщение May 19 2016, 12:01
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Давайте подытожим - а то результирующая картина не совсем ясна (особенно для стороннего читателя :-) ).

Правильно ли я понял, что нужно проделать следующее:

1. Модифицировать в 0.9.0 lpc1xxx.cfg

1.1 Вставить проверку/определение внутренних переменных для RAM/ROM (скопировать из 0.8.0 и поместить перед проверкой WORKAREASIZE - строка 71):
Было (line 71):
Код
if { [info exists WORKAREASIZE] } {
    set _WORKAREASIZE $WORKAREASIZE
} else {
    error "WORKAREASIZE is not set. The $CHIPNAME part is available in several Flash and RAM size configurations. Please set WORKAREASIZE."
}

Должно стать:
Код
if { [info exists CPURAMSIZE] } {
  set _CPURAMSIZE $CPURAMSIZE
} else {
    error "_CPURAMSIZE not set. Please do not include lpc17xx.cfg directly, but the specific chip configuration file (lpc1751.cfg, lpc1764.cfg, etc)."
}

if { [info exists CPUROMSIZE] } {
  set _CPUROMSIZE $CPUROMSIZE
} else {
    error "_CPUROMSIZE not set. Please do not include lpc17xx.cfg directly, but the specific chip configuration file (lpc1751.cfg, lpc1764.cfg, etc)."
}

if { [info exists WORKAREASIZE] } {
    set _WORKAREASIZE $WORKAREASIZE
} else {
    error "WORKAREASIZE is not set. The $CHIPNAME part is available in several Flash and RAM size configurations. Please set WORKAREASIZE."
}

1.2 Строку
Код
flash bank $_FLASHNAME lpc2000 0x0 0 0 0 $_TARGETNAME auto $_CCLK calc_checksum

заменить на
Код
flash bank $_FLASHNAME lpc2000 0x0 $_CPUROMSIZE 0 0 $_TARGETNAME $_CHIPSERIES $_CCLK calc_checksum

(т.е., определить актуальные размеры RAM/FLASH и заменить авто-определение на конкретную модель Flash-подсистемы).

2. Создать файл lpc1788.cfg со следующим содержимым (взято с 0.8.0 и немного подправлено):
Код
# NXP LPC1788 Cortex-M3 with 512kB Flash and 64kB Local On-Chip SRAM,
set CHIPNAME lpc1788
set CPUTAPID 0x4ba00477
set CPURAMSIZE 0x10000
set CPUROMSIZE 0x80000

# After reset the chip is clocked by the ~12MHz internal RC oscillator.
# When board-specific code (reset-init handler or device firmware)
# configures another oscillator and/or PLL0, set CCLK to match; if
# you don't, then flash erase and write operations may misbehave.
# (The ROM code doing those updates cares about core clock speed...)
#
# CCLK is the core clock frequency in KHz
# Commented out for safe start (with default 4MHz). Should work with 12MHz as well.
#set CCLK 12000

#Include the main configuration file.
source [find target/lpc17xx.cfg];

и поместить его в папку target.

3. Подставить lpc1788.cfg в Config Options вместо lpc17xx.cfg:
Код
-f interface/ftdi/olimex-arm-usb-tiny-h.cfg
-f interface/ftdi/olimex-arm-jtag-swd.cfg
-f target/lpc1788.cfg


После этого 0.9.0 должен заработать штатно.
Go to the top of the page
 
+Quote Post
doom13
сообщение May 19 2016, 12:51
Сообщение #19


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Raven @ May 19 2016, 15:01) *
Давайте подытожим - а то результирующая картина не совсем ясна (особенно для стороннего читателя :-) ).

Достаточно выполнить пункт 1.2, остальное работает.
К этой плате подключение по JTAG:
Код
-f interface/ftdi/olimex-arm-usb-tiny-h.cfg
-f target/lpc17xx.cfg
Go to the top of the page
 
+Quote Post

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

 


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


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