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

 
 
> Проблема с SWD на ST
vasta
сообщение Oct 27 2013, 08:11
Сообщение #1


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

Группа: Участник
Сообщений: 183
Регистрация: 3-02-09
Из: Нск
Пользователь №: 44 325



Добрый день.
Решил что-то сделать плату на ST (ST32F101ZCT6), до этого много проектанствовал на камнях от NXP.
Получил проблему на самом первом этапе при прошивке.
Собрал проект, попробовал отладить в иде, не вышло. Полез глубже, просто попробовал что-нибудь поделать из JFlash
Получил ошибку ram check failed
Конкретнее

Цитата
Connecting ...
- Connecting via USB to J-Link device 0
- J-Link firmware: V1.20 (J-Link ARM V8 compiled Jul 26 2011 17:31:24)
- JTAG speed: 100 kHz (Fixed)
- Initializing CPU core (Init sequence) ...
- Initialized successfully
- JTAG speed: 100 kHz (Fixed)
- Connected successfully
Erasing chip ...
- Erasing 128 sectors, 0x8000000 - 0x803FFFF
- ERROR: RAM check failed @ address 0x20000000.
- ERROR: Write: 0x03020100 07060504
- ERROR: Read: 0xAAAAAAAA AAAAAAAA
- ERROR: (0 bytes of RAM have been checked successfully)
- ERROR: Failed to erase chip
Disconnecting ...
- Disconnected


Похожая ошибка на другом камне описана тут
http://electronix.ru/forum/lofiversion/index.php/t88377.html
вроде как вопрос решился установкой внешнего кварца, я это не пробовал, ибо нелогично, внутри вроде должен быть генератор и должен работать
На программатор выведены NRST, SWDIO, SWCLK.
Выведены коротко, 20мм.
Попробывал засунуть программатор в плату с NXP, все нормально, программатор рабочий
Где может быть загвоздка?

Сообщение отредактировал vasta - Oct 27 2013, 08:12
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
Genadi Zawidowsk...
сообщение Oct 27 2013, 10:39
Сообщение #2


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

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



Судя по листингу, программатор не переходит в режим SWD.
Go to the top of the page
 
+Quote Post
vasta
сообщение Oct 27 2013, 15:08
Сообщение #3


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

Группа: Участник
Сообщений: 183
Регистрация: 3-02-09
Из: Нск
Пользователь №: 44 325



Цитата(Genadi Zawidowski @ Oct 27 2013, 17:39) *
Судя по листингу, программатор не переходит в режим SWD.

Да, меня тоже удивила надпись JTAG, какие надо крыжики в утилите проставил, хз, может багофича у jflash такая, надо посмотреть, какой лог на рабочих платах.
Go to the top of the page
 
+Quote Post
vasta
сообщение Oct 29 2013, 12:29
Сообщение #4


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

Группа: Участник
Сообщений: 183
Регистрация: 3-02-09
Из: Нск
Пользователь №: 44 325



Цитата(Genadi Zawidowski @ Oct 27 2013, 17:39) *
Судя по листингу, программатор не переходит в режим SWD.

Переходит как будто.
Если сменить крыжик SWD на JTAG чип перестает коннектиться.
Здесь же Connect successull, но на любые действия ответ RAM check failed
ЗЫ. Причем на разных платах, т.е это не ошибка монтажа, а чтото, чего я не понимаю(


Сообщение отредактировал vasta - Oct 29 2013, 12:36
Go to the top of the page
 
+Quote Post
etoja
сообщение Oct 29 2013, 14:47
Сообщение #5


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

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



Можно программировать через UART1. На сайте ST для этого есть программа Flash Loader Demonstrator. Это аналог программы Flash Magic для NXP.
PS: перетыкание разъёма JTAG/SWD может убить процессор статическим электричеством.
Перетыкание разъёма RS232 всегда безопасно.
Go to the top of the page
 
+Quote Post
vasta
сообщение Oct 29 2013, 15:18
Сообщение #6


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

Группа: Участник
Сообщений: 183
Регистрация: 3-02-09
Из: Нск
Пользователь №: 44 325



Цитата(etoja @ Oct 29 2013, 21:47) *
Можно программировать через UART1.

Таки да, только через юарт не отладишься
Go to the top of the page
 
+Quote Post
etoja
сообщение Oct 30 2013, 07:44
Сообщение #7


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

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



Тестовую печать направляйте в RS232 через printf.
Это позволяет отлаживать системы реального времени, а JTAG/SWD - нет.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Nov 7 2013, 14:55
Сообщение #8


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(etoja @ Oct 30 2013, 09:44) *
Тестовую печать направляйте в RS232 через printf.
Это позволяет отлаживать системы реального времени, а JTAG/SWD - нет.

Да ну?!
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 7 2013, 15:55
Сообщение #9


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



не гоните - через SWD чудесно пашет отладочный putc/printf :

Код
void debug_put(u8 i)
{
Delay(100);
if (!ITM_PORT)
   return;
ITM_PORT = i;
}

void debug_puts(const char *str)  
{
while (*str)
   debug_put(*(str++));
}

void debug_printf(const char *fmt, ...)
{
char b[128];
va_list args;
va_start(args, fmt);
vsprintf(b, fmt, args);
va_end(args);
debug_puts(b);
}


если уж очень хочется отлаживать события по микросекундам - мостырим свой буфер сообщений с таймстампами и неспешно его выводим второстепенным тредом в тот же SWD

чтобы jlink шил по SWD нужно ему команду соответствующую дать, удобственно из Makefile вызывать что-то типа :

Код
JLINK = ../stm32/JLink_Linux_V474
...
prg:
        -LD_LIBRARY_PATH=$(JLINK) $(JLINK)/JLinkExe jlink.cmd


где jlink.cmd из себя представляет

Код
si 1
device stm32fxxxrx // тут задаем свой девайс
h
erase
loadbin parshivka.bin 0
r
go
swoview


для прошивки пишем 'make prg'. Думается что трабла связана с отсутствием команды 'device', которая и задает тип флеша в камне для программатора
Go to the top of the page
 
+Quote Post

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

 


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


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