• Система автоматизации с открытым исходным кодом на базе 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] :)
 
Последнее редактирование:
Сверху Снизу