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

China-Link, Вариант отладчика из Китая

А по поводу фото платы что скажете? Это точно 10-я версия?

точно она...

там контроллер LPC4337JBD144

с High Speed USB

 

У меня старенькая Ultra, которой уже около 5 лет, работает на 24МГц по SWD. :rolleyes:

так в нем FPGA рулит... и цена на него более 800 долларов...

к сожалению, китайцы его толком не закопи-пастили...

 

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


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

так в нем FPGA рулит... и цена на него более 800 долларов...

к сожалению, китайцы его толком не закопи-пастили...

Нет. Со стартеркита. Когда они там ещё были. :(((

Китайцы не китайцы, но кто-то определённо скопипастил.

Со стартеркита.ру пропали, но на http://otladka.com.ua - остались.

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


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

А куда делись отладчики со starterkit? Там были неплохие варианты с ETM

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


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

Коллеги, внезапно перестал работать из IAR с LPC4337 отладчик JetLink Super Pro (взят на старерките). Другие отладчики (Jetlink 9, например) работают отлично. ИАР даёт ошибку, что на скриншоте. Подключение к процу сделано по даташиту. Спалить его вроде не могли, да и возможно ли это? Есть ли какие варианты, в чём дело?

post-8125-1529471875_thumb.png

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


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

Коллеги, внезапно перестал работать из IAR с LPC4337 отладчик JetLink Super Pro (взят на старерките). Другие отладчики (Jetlink 9, например) работают отлично. ИАР даёт ошибку, что на скриншоте. Подключение к процу сделано по даташиту. Спалить его вроде не могли, да и возможно ли это? Есть ли какие варианты, в чём дело?

Проверьте свой JetLink Super Pro с другим камнем/платой.

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


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

Проверьте свой JetLink Super Pro с другим камнем/платой.

Ну к другой плате с таким же камнем - бесполезно, ибо делали. А другого камня сейчас нет, чтобы подклчюить к нему JTAG((( Но за совет спасибо!!!)

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


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

Добрый день.

Имеется следующая проблема. JetLink Ultra V4 работал нормально до обновления драйверов от сеггер не выше версии 6.14b. С драйверами новее при отладке выдает ошибку что отладчик defective.

jetlink_-.png

В принципе достаточно было подменять драйверы в IAR на версию 6.14 и все работало дальше. Но возникла потребность перейти на Keil. Он поначалу тоже ругался что дефектив. Подменил драйверы на 6.14. И он вообще отказывается записывать программу к контроллер. Выдает такую ошибку:

keil_jlink.png

При этом IAR с этим же драйвером работает нормально. Как подружить Keil c драйвером или сделать чтобы jetlink не был defective. Прошивка в jetlink от 20 апреля 2018 обновилась нормально сама. Да и всегда обновляется без проблем.

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


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

Имеется следующая проблема. JetLink Ultra V4 работал нормально до обновления драйверов от сеггер

Была аналогичная проблема с Ultra V4. Порешили её поставив дрова JLink_V612f. Сейчас работает и с IAR8.20 ок.

Возможно можно и новее дрова поставить, но я не знаю какая последняя рабочая версия. Знаю что JLink_V612f - работает, а JLink_V619e - уже нет. Где-то между ними последняя рабочая версия. Проверять все подряд - лень.

Писал уже об этом где-то тут на форуме.

Если выясните последнюю рабочую версию - сообщите, плиз. :)

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


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

Была аналогичная проблема с Ultra V4. Порешили её поставив дрова JLink_V612f. Сейчас работает и с IAR8.20 ок.

Возможно можно и новее дрова поставить, но я не знаю какая последняя рабочая версия. Знаю что JLink_V612f - работает, а JLink_V619e - уже нет. Где-то между ними последняя рабочая версия. Проверять все подряд - лень.

Писал уже об этом где-то тут на форуме.

Если выясните последнюю рабочую версию - сообщите, плиз. :)

6.14b работает с iar как часы. Новее я пробовал только с 6.20. И уже не работает.

Но мне то надо чтобы с keil работало.

 

:bb-offtopic:

Iar 8.xx помимо своего неудобства еще и имеет ошибки компилятора при включенной оптимизации выше low. А именно в lwip проявляется - при подключении по TCP, довольно быстро происходит переполнение счетчика cwnd. И следующие пакеты просто отбрасываются на приеме. Я анализировал ассемблерный код и там реально ошибка - не маскируются старшие 16 бит в регистре, при 16-битной переменной. В 7.80.4 на точно тех же исходниках этой проблемы нет.

Но поддержка новых процессоров stm32h7 есть только начиная с 8-й версии, хотя на сайте в табличке сравнения быстродействия они как-то использовали версию 7.60. В общем я решил попробовать кейл, а тут проблема с jetlink.

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

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


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

Iar 8.xx помимо своего неудобства еще и имеет ошибки компилятора при включенной оптимизации выше low. А именно в lwip проявляется - при подключении по TCP, довольно быстро происходит переполнение счетчика cwnd. И следующие пакеты просто отбрасываются на приеме. Я анализировал ассемблерный код и там реально ошибка - не маскируются старшие 16 бит в регистре, при 16-битной переменной. В 7.80.4 на точно тех же исходниках этой проблемы нет.

Вы уверены??? Это очень серьёзное заявление! Мы у себя в проекте используем IAR8.11 и 8.20 - проблем не замечали.

Выложите пожалуйста участок кода, компиляция которого приводит к указанной ошибке. И ассемблерный листинг для него. А также какое ядро? и важные ключи компиляции.

Я думаю это будет полезно многим участникам здесь.

 

Но поддержка новых процессоров stm32h7 есть только начиная с 8-й версии, хотя на сайте в табличке сравнения быстродействия они как-то использовали версию 7.60. В общем я решил попробовать кейл, а тут проблема с jetlink.

Заглянул в свойства проекта IAR 7.80.4 - присутствует ядро M7. Так что думаю должен работать с ними.

Да и в Keil наверняка можно внедрить какие нужно дрова segger-а - по-крайней мере мы у себя в Dave заменяли их без проблем (версию 6.12F).

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


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

Вы уверены??? Это очень серьёзное заявление! Мы у себя в проекте используем IAR8.11 и 8.20 - проблем не замечали.

Выложите пожалуйста участок кода, компиляция которого приводит к указанной ошибке. И ассемблерный листинг для него. А также какое ядро? и важные ключи компиляции.

Я думаю это будет полезно многим участникам здесь.

 

 

Заглянул в свойства проекта IAR 7.80.4 - присутствует ядро M7. Так что думаю должен работать с ними.

Да и в Keil наверняка можно внедрить какие нужно дрова segger-а - по-крайней мере мы у себя в Dave заменяли их без проблем (версию 6.12F).

 

Уверен на 100% потому что я неделю потратил на поиск проблемы. Сделаю не прям сейчас, но позже и выложу листинги.

В IAR 7.80.4 я компилирую под stm32f765, а мне надо еще stm32H743. И его он не знает.

 

Так я и внедрил в кейл нормальные драйвера 6.14b и получил то что на втором скриншоте.

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


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

Уверен на 100% потому что я неделю потратил на поиск проблемы. Сделаю не прям сейчас, но позже и выложу листинги.

Будем ждать. И заранее спасибо!

IAR у нас официальный, и если баг подтвердится и будет проект, его иллюстрирующий, то наверное будем стучать в поддержку.

 

Так я и внедрил в кейл нормальные драйвера 6.14b и получил то что на втором скриншоте.

А после внедрения при подключении он обновлял прошивку J-Link-а? Если так, то наверное они как-то не полностью внедрились.

У нас, как только мы в Dave внедрили 6.12f, он сразу перестал требовать обновления прошивки. И сейчас работает без нареканий. Кейл не юзаем.

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


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

Будем ждать. И заранее спасибо!

IAR у нас официальный, и если баг подтвердится и будет проект, его иллюстрирующий, то наверное будем стучать в поддержку.

 

 

А после внедрения при подключении он обновлял прошивку J-Link-а? Если так, то наверное они как-то не полностью внедрились.

У нас, как только мы в Dave внедрили 6.12f, он сразу перестал требовать обновления прошивки. И сейчас работает без нареканий. Кейл не юзаем.

Не умею работать с тегами в общем вот:

lwip 2.0 tcp_in.c строка 1145, оптимизация максимальная balanced

      /* Update the congestion control variables (cwnd and
         ssthresh). */
      if (pcb->state >= ESTABLISHED) {
        if (pcb->cwnd < pcb->ssthresh) {
          if ((tcpwnd_size_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) {
            pcb->cwnd += pcb->mss;
          }
          LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: slow start cwnd %"TCPWNDSIZE_F"\n", pcb->cwnd));
        } else {
          tcpwnd_size_t new_cwnd = (pcb->cwnd + pcb->mss * pcb->mss / pcb->cwnd);
          if (new_cwnd > pcb->cwnd) {
            pcb->cwnd = new_cwnd;
          }
          LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: congestion avoidance cwnd %"TCPWNDSIZE_F"\n", pcb->cwnd));
        }
      }

Вот ассемблер проблемного места с моими комментариями:

          tcpwnd_size_t new_cwnd = (pcb->cwnd + pcb->mss * pcb->mss / pcb->cwnd);         Тут в R0 - pcb->cwnd = FFFA
    0x809177e: 0x4349         MULS      R1, R1, R1
    0x8091780: 0xfb91 0xf1f0  SDIV      R1, R1, R0                    после умножения и деления получили слагаемое в R1 = 20
    0x8091784: 0x1809         ADDS      R1, R1, R0                    R1 = 1001A - Вот ошибка!  new_cwnd  объявлена как 16 бит, а не отброшены старшие 16 бит
          if (new_cwnd > pcb->cwnd) {
    0x8091786: 0xf105 0x0044  ADD.W     R0, R5, #68        ; 0x44
    0x809178a: 0x8882         LDRH      R2, [R0, #0x4]                    снова закинули в R0 - pcb->cwnd = FFFA
    0x809178c: 0x4291         CMP       R1, R2                        И вот ошибка при сравнении.

То есть мы не попадаем в условие

if (new_cwnd > pcb->cwnd) {

pcb->cwnd = new_cwnd;

}

И pcb->cwnd не принимает нужного значения и потом все пакеты на входе выбрасываются

 

А вот код из версии 7,80

          tcpwnd_size_t new_cwnd = (pcb->cwnd + pcb->mss * pcb->mss / pcb->cwnd);
    0x8092650: 0x4349         MULS      R1, R1, R1
    0x8092652: 0xfb91 0xf1f0  SDIV      R1, R1, R0
    0x8092656: 0x1809         ADDS      R1, R1, R0
          if (new_cwnd > pcb->cwnd) {
    0x8092658: 0xb28a         UXTH      R2, R1   - Вот она спасительная строка, убравшая старшие 16 бит.
    0x809265a: 0x4290         CMP       R0, R2
    0x809265c: 0xbf38         IT        CC
    0x809265e: 0x4610         MOVCC     R0, R2
    0x8092660: 0x80b8         STRH      R0, [R7, #0x4]
    0x8092662: 0xe036         B.N       0x80926d2

 

 

То что официальный IAR это очень хорошо, но проект не могу предоставить по политике предприятия.

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

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


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

И pcb->cwnd не принимает нужного значения и потом все пакеты на входе выбрасываются

А как объявлены tcpwnd_size_t и pcb->cwnd? И какая именно версия IAR 8.xx?

Попробую позже у себя сэмулировать такое.

Хотя я конечно в принципе не использую локальные не-static переменные как рабочие внутри функций: только int/uint или выше. Чтобы не было лишних команд расширений.

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


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

А как объявлены tcpwnd_size_t и pcb->cwnd? И какая именно версия IAR 8.xx?

Попробую позже у себя сэмулировать такое.

так как LWIP_WND_SCALE = 0, то

typedef u16_t tcpwnd_size_t;

и в структуре соответсвенно

tcpwnd_size_t cwnd;

 

Хотя я конечно в принципе не использую локальные не-static переменные как рабочие внутри функций: только int/uint или выше. Чтобы не было лишних команд расширений.

Ну мне меньше всего хотелось бы ковырять код LwIP.

 

Я начал пробовать 8-ку начиная с 8.22.1 и далее до последней 8.30.1 проверял каждое обновление. Ошибка не исправлена. И думаю что без багрепорта не исправят.

 

Не смотря на то что это конечно важный момент, но возвращаясь к теме, кейл ни с 6.14b ни с 6.12f не хочет работать.

Прошивка в отладчике обычно обновлялась без проблем если подключиться более новой версией.

А есть возможность вернуть прошивку которая соответсвует драйверу 6,12 или 6,14? чем это делается и где ее взять?

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

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


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

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

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

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

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

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

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

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

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

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