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

Проблема с SWD на ST

Добрый день.

Решил что-то сделать плату на 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

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


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

Судя по листингу, программатор не переходит в режим SWD.

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


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

Судя по листингу, программатор не переходит в режим SWD.

Да, меня тоже удивила надпись JTAG, какие надо крыжики в утилите проставил, хз, может багофича у jflash такая, надо посмотреть, какой лог на рабочих платах.

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


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

Судя по листингу, программатор не переходит в режим SWD.

Переходит как будто.

Если сменить крыжик SWD на JTAG чип перестает коннектиться.

Здесь же Connect successull, но на любые действия ответ RAM check failed

ЗЫ. Причем на разных платах, т.е это не ошибка монтажа, а чтото, чего я не понимаю(

 

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

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


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

Можно программировать через UART1. На сайте ST для этого есть программа Flash Loader Demonstrator. Это аналог программы Flash Magic для NXP.

PS: перетыкание разъёма JTAG/SWD может убить процессор статическим электричеством.

Перетыкание разъёма RS232 всегда безопасно.

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


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

Можно программировать через UART1.

Таки да, только через юарт не отладишься

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


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

Тестовую печать направляйте в RS232 через printf.

Это позволяет отлаживать системы реального времени, а JTAG/SWD - нет.

 

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


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

Тестовую печать направляйте в RS232 через printf.

Это позволяет отлаживать системы реального времени, а JTAG/SWD - нет.

Да ну?!

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


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

не гоните - через 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', которая и задает тип флеша в камне для программатора

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


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

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

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

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

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

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

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

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

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

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