Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Eclipse demo project для RTL-00

Тема в разделе "Realtek - SDK, прошивки и утилиты", создана пользователем Neov, 20 ноя 2016.

  1. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Адаптировал демо проект из SDK v.3.5a для Eclipse с настроенным GNU ARM Eclipse.
    Может кому-нибудь будет полезным. magres / RTL-00_Test1 — Bitbucket
    Компилирует и отлаживает с J-Link OB.


    Инструкция по ссылке.
    Build tools How to install the Windows Build Tools?
    J-Link debugging Eclipse plug-in The J-Link debugging Eclipse plug-in

    Отладка с J-Link

    Меню Run -> Debug Configurations -> GDB SEGGER J-Link Debugging -> New
    Name: RTL00-Test1 Debug
    Закладка Debugging ->
    Start the J-Link GDB Server locally,
    Device name: CORTEX-M3,
    Endianness: Little,
    Connection: USB,
    Interface: SWD,
    Initial speed: 2000 kHz
     
    Последнее редактирование: 24 ноя 2016
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    Снимок5.gif
    Download repository 23.5 KB ?
    PS: Придется вам писать инструкцию по скачиванию с bitbucket... :)
     
    Последнее редактирование: 20 ноя 2016
  3. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Попробуйте ещё раз
     
  4. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    * Install GNU ARM Eclipse properly, as described on official page - ok
    * Unpack Ameba SDK v.3.5a - вышло C:\sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0
    * Build default demo project (make), as described on UM0096 - там ничего интересного
    * Add project to Eclipse - Import->Existing Projects into Workspace-> Copy progects into workspase ... Ok
    Снимок10.gif
    * Set up toolchain path to your "sdk_ameba_3.5a\tools\arm-none-eabi-gcc\4.8.3-2014q1\bin"
    Снимок7.gif
    Снимок14.gif
    * Set up RTL-SDK var (Project properties - C/C++ Build - Environment) to "sdk_ameba_3.5a" folder path
    Снимок13.gif
    * Build & debug
    Снимок15.gif

    Требуется более точная инструкция. У всех всё разное...

    К примеру у меня, из-за наличия сотней разных систем и проектов, просто так не запустить make под виндой с SDK3.5a
    Код (Text):
    1. C:\...\project\realtek_ameba1_va0_example\GCC-RELEASE>make
    2. if [ ! -d ../../../tools/arm-none-eabi-gcc/4.8.3-2014q1 ] ; then tar -zxf ../../../tools/arm-none-eabi-gcc/4.8
    3. .3-2014q1.tar.gz -C ../../../tools/arm-none-eabi-gcc/ ; fi
    4. /bin/sh: /c/sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0/project/realtek_ameba1_va0_example/GCC-RELEASE/C:
    5. /MinGW/msys/1.0/bin/make.EXE: No such file or directory
    6. make.EXE": *** [ram_all] Error 127
    При этом mingw32-make.exe работает успешно. Даже если заставить работать простую make.exe из mingw, то у неё вылезет ещё много бед - например напишет, что у неё "мало памяти для такого проекта" (переполнение её буферов) :)
     
    Последнее редактирование: 20 ноя 2016
  5. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    нужно собрать проект из SDK по официальной документации
     
  6. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    Не помогает. И не каждый смертный соберет его в винде. Там ошибки в application.mk.
    Не верно определяется система.
    ifeq ($(findstring CYGWIN, $(OS)), CYGWIN) ...
    Выходит прикол - сначала надо научиться makefile, а потом отказаться и использовать авто-билдер в Eclipse :)

    После успешного make с makefile,
    Итого в Eclipse:
    Код (Text):
    1. 13:03:08 **** Incremental Build of configuration Debug for project RTL00-Test1 ****
    2. make all
    3. Building target: RTL00-Test1.elf
    4. Invoking: Cross ARM C Linker
    5. .....
    6. ../arm-none-eabi/bin/ld.exe: cannot open linker script file C:/MinGW/msys/1.0/rlx8195A-symbol-v02-img2.ld: Invalid argument
    7. collect2.exe: error: ld returned 1 exit status
    8. make: *** [RTL00-Test1.elf] Error 1
    Не прописано где лежит symbol-v02-img2.ld...
    Есть -T "/rlx8195A-symbol-v02-img2.ld", но нет указания директории библиотек, где лежит ld, для линкера.
    Потом это не хорошо, что в структуре исходников SDK пишутся всякие obj и *.d файлы при трансляции. У пользователей это убьет SSD, обычно установленный на C. :) Должен быть назначен TEMP или другой каталог для свалки трансляции и линковки на усмотрение пользователя.
     
    Последнее редактирование: 20 ноя 2016
  7. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Я устанавливал make из официальной документации How to install the Windows Build Tools? : все работает как положено. Путь на него натравливается там же, где и toolchain.

    Cборка проекта из SDK в Windows 7 x64через cygwin идет на ура, хотя она нужна только ради скомпилированных компонентов, но если собрать проблема - распакуйте архив https://yadi.sk/d/fgwYo3kUz4BiQ в SDK
     
  8. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Возможно у Вас "докрученный" Eclipse. У меня в проекте прописан путь "${project_loc}/rlx8195A-symbol-v02-img2.ld" что вполне соответствует истине.

    А это уже индивидуальные предпочтения. Я простой дефолтовый Eclipse проект создал.
     
  9. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    В нем INCLUDE "export-rom_v02.txt". Где он его будет искать?
    После правки "${project_loc}/rlx8195A-symbol-v02-img2.ld" на "${RTL_SDK}/project/realtek_ameba1_va0_example/GCC-RELEASE/rlx8195A-symbol-v02-img2.ld" и вписывания в пути библиотек "${RTL_SDK}/project/realtek_ameba1_va0_example/GCC-RELEASE/" 'проект' собирается:
    log (раскрыть)
    Код (Text):
    1. 13:33:35 **** Incremental Build of configuration Debug for project RTL00-Test1 ****
    2. make all
    3. Building file: ../src/main.c
    4. Invoking: Cross ARM C Compiler
    5. arm-none-eabi-gcc .... "../src/main.c"
    6. In file included from C:\sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0/component/common/api/network/include/main.h:4:0,
    7.                  from ../src/main.c:4:
    8. C:\sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0/component/common/drivers/wlan/realtek/include/autoconf.h:327:0: warning: "CONFIG_RTL8195A" redefined
    9.    #define CONFIG_RTL8195A
    10. ^
    11. In file included from C:\sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0/component/soc/realtek/8195a/cmsis/device/diag.h:13:0,
    12.                  from ../src/main.c:3:
    13. ../.\inc/platform_autoconf.h:12:0: note: this is the location of the previous definition
    14. #define CONFIG_RTL8195A 1
    15. ^
    16. Finished building: ../src/main.c
    17.  
    18. Building target: RTL00-Test1.elf
    19. Invoking: Cross ARM C Linker
    20. arm-none-eabi-gcc ..... ld.exe: warning: section `.valid' type changed to PROGBITS
    21. Finished building target: RTL00-Test1.elf
    22.  
    23. Invoking: Cross ARM GNU Create Flash Image
    24. arm-none-eabi-objcopy -O ihex "RTL00-Test1.elf"  "RTL00-Test1.hex"
    25. Finished building: RTL00-Test1.hex
    26.  
    27. Invoking: Cross ARM GNU Print Size
    28. arm-none-eabi-size --format=berkeley "RTL00-Test1.elf"
    29.    text      data       bss       dec       hex    filename
    30. 312939    171644         0    484583     764e7    RTL00-Test1.elf
    31. Finished building: RTL00-Test1.siz
    32.  
    33.  
    34. 13:33:41 Build Finished (took 5s.160ms)

    Пробуем менять установки в файлах inc проекта. Никакой реакции. Опять запускать make в основном каталоге SDK ? Но он не видит каталога inc из Eslipse.
    Вообще в Eclipse есть инклуд сторонней директории с исходниками и их фильтрацией, без её копирования в проект:
    Снимок16.gif
    Можете попробовать сделать настройки через это. Мышкой потыкаете, какие файлы надо включить в проект и будет собираться авто-майкером Eclipse.
    Для передачи проекта другим в Eclipse есть export... Он включит и инклудные объекты...
    Мне удобнее всё это описывать в makefile. По этому не всегда настраиваю авто-майк.
    Счас уже десяток проектов для RTL00 и во всех включена одна директория SDK. При этом поправки в файлах SDK любого проекта отображаются на все проекты...
    Если хотите упростить жизнь - возьмите Visual-Studio для Arduino Ameba. Там уже SDK 3.5 и она всё автоматом собирает, да подсвечивает синтаксис...
    Значит что-то не описано по подготовке Eclipse для вашего проекта :)
     
    Последнее редактирование: 20 ноя 2016
  10. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Скрипт линковки я скопировал в проект и изменил строку на INCLUDE "..\export-rom_v02.txt".

    Хотя действительно, в нынешнем проекте он скрипт не находил, измените путь на "${workspace_loc:/${ProjName}/rlx8195A-symbol-v02-img2.ld}"
     
  11. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Возможно все так. Моей целью было создать максимально простой проект в GNU ARM Eclipse для работы и отладки. Все Include и пр я не вручную прописывал :) все заимствовано из примера по официальной сборке.
     
  12. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    Тогда какая цель их включения в свой проект? Почему было не оставить в SDK.
     
  13. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Вы кстати о чем? Include dirs ссылаются на SDK, скрипт линковки копируется, т.к. под нужды каждого проекта он может меняться.
     
  14. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    У меня этого не происходит и не вижу, где это прописано. Файл build_info.h не меняется, изменения в FreeRTOSConfig.h не отрабатываются...
    Прошивки или запуска кода в модуль в Eclipse тоже не видно...
    Чем прошивать?
     
    Последнее редактирование: 20 ноя 2016
  15. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Похоже в Вашем Eclipse не отрабатываются локальные пути как у меня, я обновил проект, теперь локальный inc должен быть доступен.
    Настройку отладки добавил в шапку, далее достаточно запустить Debug.
     
  16. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    Т.е. все файлы из с:/sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0 перетранслируются при изменении *.h в локальной inc?
    К примеру изменение размера heap в RTL00-Test1/inc/FreeRTOSConfig.h ?
    У меня перетранслирется только main.c
     
  17. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Хорошее замечание. В таком случае нужно из проекта в разделе линковки убрать FreeRTOS модули и их исходники занести в проект. Возможно так сделаю со всеми компонентами.
     
  18. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    А остальное? :(
    Не нашел создание файла для записи в Flash или для отладки... Они специфически собираются, со всякими заголовками...

    И дефолтный проект обычно что-то про "Hello World"
    Пример main.cpp:
    Код (C):
    1.  
    2. #include <iostream>
    3. using namespace std;
    4. int main() {
    5.   cout << "Hello ARM World!" << endl;
    6.   return 0;
    7. }
    В моей сборке к Eclipse работает.
     
    Последнее редактирование: 20 ноя 2016
  19. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.698
    Симпатии:
    1.282
    Как настраивать LwIP? У него настройки в lwipopts.h.
    Тут SDK не как у ESP. В нем куча примеров и всё конфигурируется. А на первый взгляд - это большая свалка. :)
    Вам придется переносить всё из SDK в свой проект...
     
  20. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Обновил проект.
     
    Последнее редактирование: 23 ноя 2016

Поделиться этой страницей