• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

UDK с Eclipse для модулей RTLxxx под Windows

pvvx

Активный участник сообщества
Это только попытка создать полный UDK с Eclipse для модулей RTLxxx!
Возможно, по мере обсуждения и наличия времени на это, что и выйдет. Включайтесь :)

Для теста сборка исходников моего SDK GitHub - pvvx/RTL00MP3: RTL00(RTL8710AF) Test MP3
( Далее мой SDK будет расходиться с оф. версией всё больше и больше... Версии на git, на основной странице, будут "не стабильные", пока не допилю следующий этап, а их предполагается много. Каждый этап, при достижении более менее стабильности сохраняется в Releases · pvvx/RTL00MP3 · GitHub. К другим моим примерам указывается, какой вариант SDK брался. ) На сегодня использует версию "Eclipse Cpp Neon".

Базовый sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0 и дополнительная документация о модуле типа RTL00 V1.0:
PADI IoT Stamp Resources – PINE64
+ GitHub - pvvx/RTL871x_Info
По умолчанию, в качестве JTAG используется 'J-Link STLink V2' (см. Converting ST-LINK on-board into a J-Link):
STLch.jpg STLch_sch.gif
RB0 в варианте прошивки Jlink работает как RESET(!)
Работает загрузка в RAM - JLinkGDB-RunRAM.bat и отладка в Eclipse.

Необходимое ПО:
JTAG/SWD Drivers:
* ST-Link
ST-LINK/V2 - ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32 - STMicroelectronics
* J-Link
SEEGER J-Link Software and Documentation Pack
SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace
* Converting ST-LINK on-board into a J-Link
SEGGER - The Embedded Experts - ST-LINK on-board
fc /b STLinkReflash.exe FixSTLinkReflash.exe >FixSTLinkReflash.txt
Код:
Сравнение файлов STLinkReflash.exe и FixSTLinkReflash.exe
00002568: 75 90
00002569: 66 90
000026AA: 74 EB
MinGW
MinGW-w64 - for 32 and 64 bit Windows
Minimalist GNU for Windows
+ Python27 для дальнейших скриптов, к примеру, вариантов программатора...
GNU ARM Embedded Toolchain
GNU ARM Embedded Toolchain project files : GNU ARM Embedded Toolchain
OpenOCD: Open On-Chip Debugger
GNU ARM Eclipse - Browse /OpenOCD at SourceForge.net

Eclipse IDE for C/C++ Developers
Eclipse IDE for C/C++ Developers | Packages
GNU ARM Eclipse Plug-ins
How to download the binary files?
GNU ARM Eclipse OpenOCD
info: How to install the OpenOCD binaries?


Слеплено по аналогии с "Tutorial: Using Eclipse + ST-LINK/v2 + OpenOCD to debug"
Tutorial: Using Eclipse + ST-LINK/v2 + OpenOCD to debug
 
Последнее редактирование:

pvvx

Активный участник сообщества
Для теста сборка 'RTL00 Test Minimal AmebaV3.5a GCC' что пока есть, очищенная от всех лишних файлов для сокращения размера GitHub - pvvx/rtl00TstMinAmebaV35a: RTL00 Test Minimal AmebaV3.5a GCC
Подключен 'программатор' от Rebane rebane — Bitbucket
Изначальные версии для дополнений исходников и т.д.:
от PADI IoT Stamp Resources – PINE64
sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0.zip
от Realtek IoT/Arduino Solution
sdk-ameba1-v3.4b3_without_NDA.zip
GitHub - Ameba8195/Arduino: This is Arduino SDK for Ameba Arduino board.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0 странная...
Китайцы в ней сделали два активных UART, и по обоим кусками работают AT команды :)
Второй порт UART2_IN (GA0) и UART2_OUT (GA4).
Ввожу в UART_LOG_IN/OUT (GB1/GB0) "help" - во втором порту ответ :eek:
Вводим ATW? - часть ответа в одном порту, часть в другом :D
-----------
Китайский STLink2 за 100 рупь, прошитый в J-link оф.конвертером всё-таки работает во много раз лучше, т.к. без OCD, да и скорость SWD сильно выше...
В такой конфиге, с добавкой команды "запуск в обход Flash, сразу в RAM" :
GDB_J-link.gif
{int} 0x40000210 = 0x8011157 - boot from ram, igonore loading flash
Больше не требуется протирать дырку в Flash при отладке...
 
Последнее редактирование:

Seeker

New member
Добавил в PATH расположение MinGW. Выдаёт мне непонятные проблемы типа
process_begin: CreateProcess(NULL, rm -rf build/obj build/bin, ...) failed.
make (e=2): Не удается найти указанный файл.

А в проекте HelloWorld, после добавления MinGW в PATH и пары не туда смотрящих includ'ов, ругается на ARM инструкции.
P.S. С eclips'ом не дружу, по мне так удобны EMbitz и конечно студия.
 

dosikus

Member
Seeker, а я так понял что MinGW для сборки тулчайна , а не самого проекта ...
 

pvvx

Активный участник сообщества
Seeker, а я так понял что MinGW для сборки тулчайна , а не самого проекта ...
Не - MinGW для совместимости с Linux подобными системами. В основном, для обработки команд make (makefile).
Стандартный SDK для RTL-ов идет под IAR. Версия для GCC содержит gcc-arm-none-eabi-4.8.3-2014q1 (т.е. старый) и возможность сборки только в командной строке...
Копаться в командной строке и редактировать файлы в простом редакторе неудобно. Для этого и используется Eclipse...
 

Neov

Member
правильно ли я понял, что рабочих связок RTL-00 + Eclipse + J-Link GDB ещё нет, и нужно пользоваться IAR, рекомендованный Ameba SDK ?
 

pvvx

Активный участник сообщества
правильно ли я понял, что рабочих связок RTL-00 + Eclipse + J-Link GDB ещё нет, и нужно пользоваться IAR, рекомендованный Ameba SDK ?
Рабочии "связки Eclipse + J-Link GDB" были до RTL-00. Добавление RTL-00 не сменило ситуацию.
IAR, или Eclipse, или Arduino, или другая оболочка - это дело вкуса.
На сайте Ameba для RTL00 пока Sdk Ameba1 V3.4b3 Without NDA для RTL-00
А все уже пользуются V3.5a и более новым GCC, чем идет в SDK...
Есть и такое GitHub - WsLink/RTL8710AF_GCC: WiFi芯片RTL8710AF的GCC版SDK,采用C#脚本进行编译
 
Последнее редактирование:

Neov

Member
Рабочии "связки Eclipse + J-Link GDB" были до RTL-00. Добавление RTL-00 не сменило ситуацию.
IAR, или Eclipse, или Arduino, или другая оболочка - это дело вкуса.
На сайте Ameba для RTL00 пока Sdk Ameba1 V3.4b3 Without NDA для RTL-00
А все уже пользуются V3.5a и более новым GCC, чем идет в SDK...
Есть и такое GitHub - WsLink/RTL8710AF_GCC: WiFi芯片RTL8710AF的GCC版SDK,采用C#脚本进行编译
понятно что связка была и есть, вопрос в IDE для программирования RTL-00.
Редактор IAR (SDK v. 3.4b) лично для меня не удобен. Собирать и отлаживать из консоли (SDK v. 3.5a) ещё меньше радости.

Был бы признателен, если кто-нибудь выложит полностью настроенный проект helloworld для GNU ARM Eclipse, проект со всеми Paths & Symbols etc.
 

pvvx

Активный участник сообщества
Был бы признателен, если кто-нибудь выложит полностью настроенный проект helloworld для GNU ARM Eclipse, проект со всеми Paths & Symbols etc.
Это слишком специфическая вещь. В "среду", UDK, входит масса разнообразных продуктов и у всех разные предпочтения и даже операционные среды.
Пример, для Eclipse под Windows, с моими установками есть - GitHub - pvvx/RTL00MP3: RTL00(RTL8710AF) Test MP3 , но в нем нет полной "среды". Она устанавливается отдельно, согласно описанию в первом посту темы. Сваливать всё в один архив грозит его очень большим его размером, а так-же нет возможности на распространение всех продуктов от других производителей ПО - требуются всякие согласования и лицензии... на это уйдет больше всего времени. Таков современный мир. :)
 

aloika

Active member
Пытаюсь скомпилировать этот проект, начинает компилироваться, потом ошибка:

Код:
00:24:43 **** Build of configuration Debug for project RTL00MP3 ****
mingw32-make.exe -s all
===========================================================
Compile (build)
RTL00_SDKV35a/component/common/drivers/ethernet_mii/ethernet_mii.c
===========================================================
Make BootLoader (ram_1.p.bin, ram_1.r.bin)
===========================================================
Link (build)
arm-none-eabi-gcc.exe: error: bui: No such file or directory
sdkbuild.mk:47: recipe for target 'application' failed
mingw32-make.exe[1]: *** [application] Error 1
Makefile:7: recipe for target 'ram_all' failed
mingw32-make.exe: *** [ram_all] Error 2

00:24:48 Build Finished (took 5s.345ms)

Pvvx, подскажите, пожалуйста, что это может быть, хотя бы направление, куда смотреть.
 

pvvx

Активный участник сообщества
arm-none-eabi-gcc.exe: error: bui: No such file or directory
Что-то попорчено. Вместо директории build пишет bui. :)
Возможно порезало строку параметров для gcc.exe. Не лезет в память. Старая винда или ограничено что-то "шаловливыми ручками" в винде....
Там выходит длинная строка параметров - на несколько килобайт :) у меня на 20059 байт.

"Мало памяти" у вашего компа для данного проекта ;)
Примерно такая (в сообщение не лезет - тоже мало памяти, в zip лезет :) ):
 

Вложения

Последнее редактирование:

aloika

Active member
"Мало памяти" у вашего компа для данного проекта ;)
Интересно, что проект rtl00TstMinAmebaV35a компилируется:

Код:
01:31:17 **** Build of configuration Debug for project rtl00TstMinAmebaV35a ****
mingw32-make.exe -s all
===========================================================
Build application
===========================================================
../../../component/common/api/at_cmd/atcmd_sys.c
../../../component/common/drivers/ethernet_mii/ethernet_mii.c
e:/karpesh/rtl00/tools/5.4 2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: warning: section `.valid' type changed to PROGBITS
===========================================================
Image manipulating
===========================================================
b:268460032 s:268460032 e:268760020
size 299988
copy size 299988
b:268460032 s:268460032 e:268760020
size 299988
copy size 299988
total 44 k, padding data ff, name application/Debug/bin/ram_1.p.bin
Original size 15032
Padding  size 45056
size = 300004

checksum 1ce5a59


01:31:35 Build Finished (took 18s.486ms)

А этот - нет. Комп современный, винда десятая.
 

pvvx

Активный участник сообщества
Могу посоветовать вписать в маке отправку параметра, к примеру $(OBJ_LIST), в файл и потом передать этот файл gcc c опцией, что часть параметров в файле. :)
 

pvvx

Активный участник сообщества
Интересно, что проект rtl00TstMinAmebaV35a компилируется:
Там меньше передаваемых файлов, т.к. меньше исходников.
А этот - нет. Комп современный, винда десятая.
Обращайтесь к Биллу :) Не вижу причин ограничивать командную строку...

Уберите у указанной строки в маке символ @ и посмотрите какие параметры там идут...
А может вы включили трансляцию на много потоков? У меня тогда антивирус дурит - не успевает и глючит примерно так-же - не найти каталога в который писать, а он есть. Можно даже заранее создать каталог, но при трансляции раза-на раз его не находит - сотня пролетает, а на сто первый выскакивает и орет что не найти каталог, в который только что предыдущий файл писал... :) Многоядерные Баги в mingw и антивирусах... Реальных ядер в CPU то у меня больше чем у стандартных проверяльщиков mingw... В один поток всё всегда Ok.
 
Последнее редактирование:

aloika

Active member
Убираю @ - всё также, в выводе ничего не меняется.

Вот здесь вот люди про что-то такое пишут:
Проблема 2000h (или как собрать GCC-ARM-embedded линкером большой проект) / Алгоритмы и программные решения / Сообщество EasyElectronics.ru

Т.к. не знаю, как включать трансляцию во много потоков, то, наверное, не включал.
 

pvvx

Активный участник сообщества
У меня стоит mingw64. Если же запустить просто make.exe - то вообще будет полный бардак. Наверно строки вообще ограничивает до килобайта... По тому надо запускать mingw32-make.exe...
Он у вас и запускается, но mingw наверно из серии 32, а не 64....
Т.к. не знаю, как включать трансляцию во много потоков, то, наверное, не включал.
А плохо это. При хотя-бы 8 потоках реально в 8 раз быстрее собирается после "clean", если 20-ть, то в 20 раз... Но никак не сделать - баги в mingw и т.д. :( Временно даже так пользовался, просто повторно жал транслировать - со второго раза проскакивало :) Даже так быстрее, но надо следить, что написал сборщик -> неудобно.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Сейчас попробую преодолеть их новый предел в 32 кило...
Вышла строка в 42669 символа...
Итого: [inline]make (e=87): Параметр задан неверно.[/inline] :)
 
Последнее редактирование:
Сверху Снизу