|
|
  |
China-Link, Вариант отладчика из Китая |
|
|
|
Jun 29 2018, 14:45
|

Участник

Группа: Свой
Сообщений: 68
Регистрация: 7-05-05
Из: China, Shenzhen
Пользователь №: 4 812

|
Цитата(virfis @ Jun 28 2018, 16:37)  С драйверами новее при отладке выдает ошибку что отладчик defective. Как подружить Keil c драйвером или сделать чтобы jetlink не был defective. Keil тут совершенно не играет никакой роли. Это защита от клонов... собственно проверка в самой dll (JLinkARM.dll, JLink_x64.dll). проверяется несколько условий, вот список забаненных серийников: 11111117, 20100214, 50331647, 20090626, 20080696, 20064001, 20101001, 24446459, 805306163, 377001345, 270676280, 17892859, 99999994, 286370559 также наличие лицензии: "GDBFull" приведет к defective. В общем, без перепрошивки со сменой серийника никак. Ну и как вариант, просто пропатчить dll Код JLink_V632g
JLinkARM.dll 00082100: 55 -> C3 00000179: 10 08 01 88 33 -> 00 00 00 00 00
JLink_x64.dll 00090A80: 40 -> C3 00000191: 28 15 01 88 33 -> 00 00 00 00 00
|
|
|
|
|
Jul 2 2018, 07:13
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 17-10-05
Из: Краснодар
Пользователь №: 9 732

|
Цитата(UniSoft @ Jun 29 2018, 17:45)  В общем, без перепрошивки со сменой серийника никак. Ну и как вариант, просто пропатчить dll Моего серийника в этом списки нет. Патч помог. Теперь всё работает с версией 6.32g. Главное не обновлять теперь драйвер jlink. Огромное спасибо.
|
|
|
|
|
Jul 3 2018, 08:24
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Добрый всем! Прикупил китайский StLinkv2 с целью перепрошить в JLink. Посидел, подумал -> прилагаю архив с мыслями для Segger 6.32g. Что имеем: - перешитый StLink на ST32F103 поддерживает все чипы, а не только STM. - убрана мессага о дефективном JLink v7 (серийник должен быть не в списке забанненых), что приводило к дисконектам. - Ozone работает и с StLink и с JLink v7. Для наката патча можно воспользоваться phyton скриптом в архиве. Пример: Код Python.exe idadif.py JLinkARM.dll JLinkARM.dif Пользуйтесь на здоровье. https://drive.google.com/file/d/1d-fe8UEQiu...iew?usp=sharingEdit: С внутреннего ресурса
SEGGER_JLink_v632g_patch.7z ( 1.3 килобайт )
Кол-во скачиваний: 38
Сообщение отредактировал Vasen - Jul 3 2018, 11:19
|
|
|
|
|
Jul 3 2018, 09:40
|

Знающий
   
Группа: Модераторы
Сообщений: 925
Регистрация: 25-01-09
Из: Рига
Пользователь №: 43 909

|
Цитата(Vasen @ Jul 3 2018, 11:24)  Для наката патча можно воспользоваться phyton скриптом в архиве. Пример: Код Python.exe idadif.py JLinkARM.dll JLinkARM.dif Пользуйтесь на здоровье. https://drive.google.com/file/d/1d-fe8UEQiu...iew?usp=sharingА почему сразу в теме не выложить? Цитата(Vasen @ Jul 3 2018, 11:24)  Что имеем: - перешитый StLink на ST32F103 поддерживает все чипы, а не только STM. Не поддерживает, только что проверил. Limitations https://www.segger.com/products/debug-probe...-link-on-board/
|
|
|
|
|
Jul 3 2018, 10:08
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Цитата(Vasily_ @ Jul 3 2018, 12:40)  А почему сразу в теме не выложить? Не поддерживает, только что проверил. Limitations https://www.segger.com/products/debug-probe...-link-on-board/Извините, но не совсем понял, что и куда выложить? И что не поддерживает? Имею в данный момент 1986ВЕ1Т с отладкой в Ozon программатором Jlink StLink.
Сообщение отредактировал Vasen - Jul 3 2018, 10:11
|
|
|
|
|
Jul 3 2018, 10:18
|

Знающий
   
Группа: Модераторы
Сообщений: 925
Регистрация: 25-01-09
Из: Рига
Пользователь №: 43 909

|
Цитата(Vasen @ Jul 3 2018, 13:08)  Извините, но не совсем понял, что и куда выложить? И что не поддерживает? Имею в данный момент 1986ВЕ1Т с отладкой в Ozon программатором Jlink StLink. Выложить ваш скрипт прямо в теме, а не через ссылку, что кстати касается и изображений. А не поддерживает ничего кроме ST. что прямо так и написано у Segger. Я проверил на TLE9879, не работает! The firmware making the ST-LINK on-board J-Link compatible has some limitations in contrast to an original, industry leading SEGGER J-Link: May be used with ARM based ST devices only Only debugging on evaluation boards is allowed. Debugging on custom hardware is not supported and not allowed No production flash programming support Unlimited breakpoints in flash available for evaluation only No support is given То что у вас заработало с российским камнем не означает работу со всеми камнями, как вы об этом заявили. Всего скорее Segger не знает о 1986ВЕ1Т, вот оно и работает.
|
|
|
|
|
Jul 3 2018, 10:59
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Цитата(Vasily_ @ Jul 3 2018, 13:18)  Выложить ваш скрипт прямо в теме, а не через ссылку, что кстати касается и изображений. А не поддерживает ничего кроме ST. что прямо так и написано у Segger. Я проверил на TLE9879, не работает! То что у вас заработало с российским камнем не означает работу со всеми камнями, как вы об этом заявили. Всего скорее Segger не знает о 1986ВЕ1Т, вот оно и работает. А чем ссылка не устраивает? Поправьте, может чего сделал не так )) На всякий:
SEGGER_JLink_v632g_patch.7z ( 1.3 килобайт )
Кол-во скачиваний: 25Вот еще пример на NRF:
Цитата(Vasily_ @ Jul 3 2018, 13:18)  ... А не поддерживает ничего кроме ST. что прямо так и написано у Segger. Я проверил на TLE9879, не работает! The firmware making the ST-LINK on-board J-Link compatible has some limitations in contrast to an original, industry leading SEGGER J-Link:
May be used with ARM based ST devices only Only debugging on evaluation boards is allowed. Debugging on custom hardware is not supported and not allowed No production flash programming support Unlimited breakpoints in flash available for evaluation only No support is given
То что у вас заработало с российским камнем не означает работу со всеми камнями, как вы об этом заявили. Всего скорее Segger не знает о 1986ВЕ1Т, вот оно и работает. ОО, догнал. Так на не пропатченном бинарнике и не работает ))
|
|
|
|
|
Jul 3 2018, 11:07
|

Знающий
   
Группа: Модераторы
Сообщений: 925
Регистрация: 25-01-09
Из: Рига
Пользователь №: 43 909

|
Цитата(Vasen @ Jul 3 2018, 13:59)  А чем ссылка не устраивает? Ссылка со временем просто будет нерабочая, что обычно и происходит. Цитата(Vasen @ Jul 3 2018, 13:59)  ОО, догнал. Так на не пропатченном бинарнике и не работает )) Спасибо попробую.
|
|
|
|
|
Jul 6 2018, 11:13
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(virfis @ Jun 29 2018, 13:31)  Я начал пробовать 8-ку начиная с 8.22.1 и далее до последней 8.30.1 проверял каждое обновление. Ошибка не исправлена. И думаю что без багрепорта не исправят. У меня не получилось повторить Вашу проблему. Создал тестовый проект. Скомпилил в IAR 8.20.1 - компилит правильно. Прикладываю сюда и проект и результат его компиляции. Очень странным выглядит данный участок вашего кода: Цитата(virfis @ Jun 29 2018, 12:01)  Код 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 И вот ошибка при сравнении. Зачем добавлены команды 0x8091786 и 0x809178a если в R0 уже имеется pcb->cwnd??? В моём тестовом проекте он не добавляет таких команд. Это наводит на мысли.... Может всё-таки какая-то проблема у Вас в исходниках? Вот мой тестовый проект.
tst_iar8.zip ( 15.11 килобайт )
Кол-во скачиваний: 8Конфигурация "RAM_DEBUG" - без оптимизации, "RAM_RELEASE" - с balanced оптимизацией (ключи по умолчанию, а может дело в ключах этой оптимизации? Какие у Вас?) В Func3() повторяю Ваш исходный код. Func4() тот же код, но я модифицировал его так, чтобы компилятор добавил дополнительное чтение p->cwnd перед сравнением, чтобы получить ситуацию похожую на Вашу. И в том и в другом случае - результат компиляции верный. Func3(): Код 22 u16 new_cwnd = (p->cwnd + p->mss * p->mss / p->cwnd); \ 00000008 0x8860 LDRH R0,[R4, #+2] \ 0000000A 0x8821 LDRH R1,[R4, #+0] \ 0000000C 0x4340 MULS R0,R0,R0 \ 0000000E 0xFB90 0xF0F1 SDIV R0,R0,R1 \ 00000012 0x1840 ADDS R0,R0,R1 23 if (new_cwnd > p->cwnd) p->cwnd = new_cwnd; \ 00000014 0xB282 UXTH R2,R0 \ 00000016 0x4291 CMP R1,R2 Func4(): Код \ 0000000A 0x8868 LDRH R0,[R5, #+2] \ 0000000C 0x8829 LDRH R1,[R5, #+0] \ 0000000E 0x4340 MULS R0,R0,R0 \ 00000010 0xFB90 0xF0F1 SDIV R0,R0,R1 \ 00000014 0x1841 ADDS R1,R0,R1 33 if (new_cwnd > p1->cwnd) p->cwnd = new_cwnd; \ 00000016 0x8820 LDRH R0,[R4, #+0] \ 00000018 0xB28A UXTH R2,R1 \ 0000001A 0x4290 CMP R0,R2
|
|
|
|
|
Jul 12 2018, 07:28
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 17-10-05
Из: Краснодар
Пользователь №: 9 732

|
Я бы предложил вынести этот вопрос и все предыдущие сообщения по нему в отдельную тему модератором.
Тут как бы выдрано из контекста. Я смог повторить так: Надо скачать STM32CubeMX. В нем поддержку процессоров stm32h7. Затем в папке c:\Users\Пользователь\STM32Cube\Repository\STM32Cube_FW_H7_V1.2.0\Projects\STM32H743I_EVAL\Applications\LwIP\LwIP_TCP_Echo_Server\EWARM\ скомпилировать проект. Поставить отладчик симулятор. Запустить отладку. И уже тут смотреть ассемблерный код. Я не запускал программу, но в map файле нашел адрес функции tcp_receive и в окне disassembly перешел по адресу.
Сообщение отредактировал virfis - Jul 12 2018, 07:29
|
|
|
|
|
Jul 15 2018, 06:29
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
По поводу патча, который выкладывал раньше. Когда вылезет вот такое сообщение
нужно сгенерить лицензии генератором
Segger_J_Link_keygen.rar ( 597.24 килобайт )
Кол-во скачиваний: 56 и внести их.
|
|
|
|
|
Jul 15 2018, 09:54
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(virfis @ Jul 12 2018, 10:28)  Я смог повторить так: Надо скачать STM32CubeMX. В нем поддержку процессоров stm32h7. Затем в папке c:\Users\Пользователь\STM32Cube\Repository\STM32Cube_FW_H7_V1.2.0\Projects\STM32H743I_EVAL\Applications\LwIP\LwIP_TCP_Echo_Server\EWARM\ скомпилировать проект. Поставить отладчик симулятор. Запустить отладку. И уже тут смотреть ассемблерный код. Я не запускал программу, но в map файле нашел адрес функции tcp_receive и в окне disassembly перешел по адресу. Я Вам показал, что проблема похоже совсем не в работе с типами u16, а в чём-то другом. И у меня складывается впечатление, что она скорей всего где-то во всей этой куче кубов, симуляторов и вашего кода. Если Вы действительно желаете её локализовать, то стоит по частям сужать область поиска: 1) выбросить симулятор и найти подозреваемый участок в файле листинга; 2) выбросить куб; 3) вносить модификации в этот участок кода, смотря что происходит; 4) ... И от поддержки или не поддержки stm32h7 этот код тоже не должен зависеть - все использованные там команды есть уже в M3/M4. Желания копаться со всякими кубами и прочим хламом у меня нет никакого. Тем более, что скорей всего именно там где-то и кроется проблема. Мне видится крайне маловероятным, чтобы такая ошибка, проявляющаяся в таком месте как lwIP (который очень много кто использует), так долго не обнаруживалась никем кроме Вас и не исправлялась. Да IAR бы уже завалили тоннами жалоб. Баг где-то у Вас в проекте. Имхо  Например может быть в этом: Цитата(virfis @ Jun 28 2018, 13:24)  В IAR 7.80.4 я компилирую под stm32f765, а мне надо еще stm32H743. И его он не знает. Поставьте в свойствах проекта просто "ядро-M7" или "ядро-M4" и проверьте. Без всяких симуляторов и отладчиков!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|