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

 
 
> Проблема с 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
Ответов
Harbour
сообщение Nov 7 2013, 15:55
Сообщение #2


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

Группа: 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 Текстовая версия Сейчас: 26th July 2025 - 00:54
Рейтинг@Mail.ru


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