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

Eclipse demo project для RTL-00

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

  1. Seeker

    Seeker Читатель

    Сообщения:
    27
    Симпатии:
    5
    Нет подраздела Tools path ни в новом, ни в старом эклипсе.
     

    Вложения:

  2. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
  3. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Eclipse Neon. Все дело в установке GNU ARM Eclipse Plug-ins
     

    Вложения:

  4. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
    Вы так пока не разобрались, что это именно Demo, а не SDK? Отличие в том, что там в проект включена масса лишних файлов с примерами. Тот-же "AT" - это всего пример. В данной сборке и не полная версия для создания ядра к Arduino (зачем-то часть установок в *.h порезали и убрали куски из lib_*.a файлов).
     
  5. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Предлагаемый Eclipse проект почти полностью подражает сборке примеров из стандартного SDK. Никакой "отсебятины". Для быстрого и удобного ознакомления, сборки и отладки "по кнопке".
     
  6. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
    Теряется смысл подключения Eclipse. Для сборки стандартного проекта достаточно скачать SDK и набрать make в командной строке :) И там даже есть прошивка в модуль, но использующая программатор от платы Ameba.
    Отлаживать готовый проект "AT" ? :)
    Это запросто делается и без Eclipse : Сравнение RTL8710 и ESP8266
     
    Последнее редактирование: 28 ноя 2016
  7. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Можно много чего делать без Eclipse, и если Вам это делать нравится - я не возражаю :)
    Лично мне, я думаю и многим другим, будет приятней знакомиться с кодом, его структурой, а также программировать и отлаживать в Eclipse. При этом сохранив компоненты и примеры из официального SDK.
     
  8. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
    Это давно сделано и выложено с другим примером и SDK полностью настраивается и всё прошивается через J-Link/STLink...

    Ещё не адаптировал только загрузку через J-Link/STLink для RTL8711AM данного SDK в RAM. Там существует беда – контроллер SDRAM включается и настраивается в коде первого загрузчика.
    Вы уже починили это?
    Прошивку в Flash для RTL8711AM в Arduino через J-Link/STLink тоже уже сделал, но пока не выкладывал новую версию.
     
    Последнее редактирование: 29 ноя 2016
  9. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Бога ради :)
    у вас все сшивается собственными Makefile
    у меня все средствами самого Eclipse :)
     
  10. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
    Не работает ваша последняя версия, требует отдельный комп с вашими установками:
    Код (Text):
    1.  
    2. 10:02:04 **** Incremental Build of configuration Debug for project RTL00-Test1 ****
    3. make all
    4. Building file: ../rtl_sdk/component/common/utilities/tcptest.c
    5. Invoking: Cross ARM C Compiler
    6. arm-none-eabi-gcc .....вырезал..... "../rtl_sdk/component/common/utilities/tcptest.c"
    7. In file included from ../rtl_sdk/component/common/utilities/tcptest.c:5:0:
    8. E:\RTL87xx\tst\RTL00-Test1\rtl_sdk\component-inc\common\network\lwip\lwip_v1.4.1\src\include/lwip/sockets.h:313:8: error: redefinition of 'struct timeval'
    9. struct timeval {
    10.         ^
    11. In file included from d:\mcu\gnu_tools_arm_embedded\5.4_2016q2\arm-none-eabi\include\sys\select.h:26:0,
    12.                  from d:\mcu\gnu_tools_arm_embedded\5.4_2016q2\arm-none-eabi\include\sys\types.h:68,
    13.                  from d:\mcu\gnu_tools_arm_embedded\5.4_2016q2\arm-none-eabi\include\stdio.h:48,
    14.                  from E:\RTL87xx\tst\RTL00-Test1\rtl_sdk\component-inc\common\api/platform/platform_stdlib.h:27,
    15.                  from E:\RTL87xx\tst\RTL00-Test1\rtl_sdk\component-inc\common\api\network\include/lwipopts.h:27,
    16.                  from E:\RTL87xx\tst\RTL00-Test1\rtl_sdk\component-inc\common\network\lwip\lwip_v1.4.1\src\include/lwip/opt.h:45,
    17.                  from E:\RTL87xx\tst\RTL00-Test1\rtl_sdk\component-inc\common\network\lwip\lwip_v1.4.1\src\include/lwip/sockets.h:37,
    18.                  from ../rtl_sdk/component/common/utilities/tcptest.c:5:
    19. d:\mcu\gnu_tools_arm_embedded\5.4_2016q2\arm-none-eabi\include\sys\_timeval.h:52:8: note: originally defined here
    20. struct timeval {
    21.         ^
    22. make: *** [rtl_sdk/component/common/utilities/tcptest.o] Error 1
    23.  
    24. 10:02:10 Build Finished (took 6s.407ms)
    Причина - на компе установлен новый GCC, старый как и положено лежит в папочке sdk. Все остальные настройки по вашим описаниям. Что-то опять пропущено и не указано... :)
    И самое главное - как прошить то пример в модуль?
     
    Последнее редактирование: 29 ноя 2016
  11. sharikov

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

    Сообщения:
    580
    Симпатии:
    52
    Использовать встроенные средства Eclipse для сборки в случае кросс-компиляции - порочный путь. Раньше я так делал и отказался. Постоянные проблемы с конфигурированием плагина.
    Чтобы кросс-проекты собиралось без проблем нужно использовать только external builder и makefile написанный ручками! Эклипс прекрасно умеет работать с makefile проектами.
    Чайникам оставьте ардуину.
     
  12. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    В readme указано: Set up toolchain path to your "sdk_ameba_3.5a\tools\arm-none-eabi-gcc\4.8.3-2014q1\bin"
    Сейчас он только собирает ELF и загружает его в RAM. В большинстве для запуска и отладки - достаточно. Добавить сборку бинарника - в планах.
    Особых сложностей и проблем конкретно для этого модуля - не встречал. С другими модулями возможно сложнее.
     
  13. sharikov

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

    Сообщения:
    580
    Симпатии:
    52
    Сложности не с модулем а с плагином. Разработчики его регулярно ломают и не чинят полгода, такая же ситуация при обновлении эклипса: обновили -> плагин перестал работать, фиксят через X месяцев а работать надо сейчас.
     
  14. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    -> откатываемся на старый плагин , с которым все работало -> ждем лучших времен
    :)
     
  15. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
    Предлагаете перед каждым проектом менять комп? :)
    Это не поможет, т.к. возникнут другие проблемы. У вас прописано все кое как, то "/", то "\" и либ не находится.
    После длительных манипуляций над вашей конфигурацией что-то удается собрать, но это демка без итого. Там даже нет правильного выходного бинарника... :)
    Вот и я про то-же :) Меняете в paths.mk папку на другой SDK
    SDK_PATH = ../sdk_ameba_v3.5a/
    и транслируете. При этом новый проект не включает файлов из SDK вообще, а в окошках имеете все примеры :p
    Если вам приспичило включить в проект папку из SDK, то делается это по другому, чем сделали вы:
    Снимок15.gif Снимок12.gif Снимок13.gif
    Есть и другие пути...
    Через пол-года освоите, судя по темпам :)

    Да, забыл... Для данного SDK, для его либ, требуется другой главный скрипт для линковщика с описанием начала и конца групп. Иначе у вас ваши obj заменяются obj из либ. И важна последовательность вписывания библиотек и obj. (в либах дубли и доп.атрибуты у функций, к примеру _WEAK)... Потом слепите раздельные либы, т.к., к примеру для LwIP и SSL не всегда требуется перекомпиляция при замене platform_autoconf.h или platform_opts.h...
    И желательно поставить новый gcc - вылезут сотни варнингов, которые можно поправить в SDK :)
    Сборщики бинарников и их исходники находятся тут: Arduino/postbuild_img2_arduino_windows.cpp at master · Ameba8195/Arduino · GitHub
    И либы там более новые и полноценные... а не обгрызанный этими PADI IoT Stamp Resources – PINE64 SDK.
     
    Последнее редактирование: 29 ноя 2016
  16. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Как Вы так все усложняете?
    Открываете свойства проекта C/C++ Build -> Tools Paths -> Toolchain folder устанавливаете в C:\...ваш_путь...\sdk_ameba_3.5a\tools\arm-none-eabi-gcc\4.8.3-2014q1\bin. Можете поменять комп, но не вижу необходимостию
    Есть такой грешок. Но поскольку у меня все прекрасно собирается не стал менять. Был бы рад подробностям: какая либа не нашлась из-за слешей?
    Спасибо за справку, хоть я и знал про это :) В этом проекте я решил включить все исходники.
    Скрипт линковщика взят из SDK, в нем доп. символы прописаны.
    Вы имеете в виду, что подача объектных модулей при линковке должна строго придерживаться определенному порядку?
     
  17. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
    Значит данный пример только для вашего компа.
    Он не меняется. Там общая галка на всё - заменить всё или добавить :p
    Все :)
    А пишите о сохранении исходных структур директорий :)
    У вас один пример, который использует всего до 30% либ. Потыркаетесь, попишите и увидите :) Тем более скрипт не от reatek, а от PADI. :) Они там чего-то напатчили в SDK, чтобы впихнуть в RTL00 модуль - вы и пользуетесь. У Ameba части отличаются и уже дписаны и поправлены по мелочи... SDK 3.5 поулчилась после патчей описанных тут: Методы увеличения памяти для собственных приложений в sdk-ameba1-v3.4b3_without_NDA.
    Да. Попробуйте поменять. Не даны -Wl,--start-group ... -Wl,--end-group
     
    Последнее редактирование: 29 ноя 2016
  18. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Не понимаю о чем речь. Просьба прислать скриншот в личку.
    Спасибо за информацию
    Начиная с крайней версии - уже не пишу :)
     
  19. pvvx

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

    Сообщения:
    8.757
    Симпатии:
    1.284
    Снимок16.gif
    Галки работают на всю группу и при переносе проекта бяда.
    Ещё в скрипте линкера *.ld присутствуют KEEP(*(секции)), говорящие включать всегда коды этих секций. А если вы не используете в проекте функции из них, то они будут занимать место в RAM и потянут за собой другие коды. Плюс в либах очень много лишнего - десятки example, части из которых линкуются и занимают память. Чтобы это исключить для своего проекта приходится всё переписывать.
    Правильнее было бы описать обязательные точки вхождения:
    EXTERN(RAM_IMG2_VALID_PATTEN)
    EXTERN(InfraStart)
    EXTERN(gImage2EntryFun0)
    чтобы линкер сам собрал связи, а не помещал в проект лишний хлам.
    От последовательности предоставления линкеру библиотек и obj зависит дерево включаемых объектов... Кароче обращайтесь к документации на линкер gcc...
    До этого я говорил об этом скрипте:
    Снимок17.gif
    Вроде там есть зависимость и в какой последовательности стоит описание инклуда директорий либ. По этому у вас и не находит инклуды для *.ld и вы их тащите в основную директорию проекта...

    Т.е. к данному SDK другой подход - его необходимо модифицировать под свой проект и совершенству никогда не бывает предела...
    Самый простой способ, чтобы не вписывать в проект ещё и прихоти Eclipse у меня и получается использовать makefile... Просто так быстрее и нет зависимости от оболочки и её версий.
     
    Последнее редактирование: 30 ноя 2016
  20. Neov

    Neov Читатель

    Сообщения:
    209
    Симпатии:
    7
    Если прорезюмировать, для модуля RTL-00 имеем:

    SDK 3.5 :
    • библиотеки устарели и "обгрызаны", код богат "варнингами",
    • линкует неправильно, много лишнего
    • это SDK для другого модуля (PADI), а следовательно множество подводных камней
    Ameba Arduino :
    • библиотеки свежее и богаче,
    • новая версия скрипта линковки, линкует правильно, но по-прежнему много лишнего
    • это не SDK, а Arduino, полностью совместимый с RTL-00

    В итоге из вариантов работы с модулем:
    • Arduino + допил от pvvx
    • Слепить SDK из Arduino
    • Использовать UDK от pvvx
    При этом нужно изучить до деталей скрипт линковки, исходники компонент SDK и оптимизировать для каждого проекта, а следовательно нужно запастись свободным временем. Т.е. качественного быстрого старта не будет?
     

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