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

Oшибки при сборке SDK

sharikov

Active member
Пытаюсь собрать пример из sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0/project/realtek_ameba1_va0_example/GCC-RELEASE
Компилятор
gcc version 5.4.1 20160609 (release) [ARM/embedded-5-branch revision 237715]
выдает ошибку
Код:
/opt/gcc-arm-none-eabi-5_4-2016q2/bin/arm-none-eabi-gcc  -DM3 -DCONFIG_PLATFORM_8195A -DGCC_ARMCM3 -DARDUINO_SDK -mcpu=cortex-m3 -mthumb -g2 -w -O2 -Wno-pointer-sign -fno-common -fmessage-length=0  -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-short-enums -mcpu=cortex-m3 -DF_CPU=166000000L -std=gnu99 -fsigned-char  -I../inc -I../../../component/soc/realtek/common/bsp -I../../../component/os/freertos -I../../../component/os/freertos/freertos_v8.1.2/Source/include -I../../../component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM3 -I../../../component/os/os_dep/include -I../../../component/soc/realtek/8195a/misc/driver -I../../../component/common/api/network/include -I../../../component/common/api -I../../../component/common/api/platform -I../../../component/common/api/wifi -I../../../component/common/api/wifi/rtw_wpa_supplicant/src -I../../../component/common/application -I../../../component/common/application/iotdemokit -I../../../component/common/application/google -I../../../component/common/media/framework -I../../../component/common/example -I../../../component/common/example/wlan_fast_connect -I../../../component/common/mbed/api -I../../../component/common/mbed/hal -I../../../component/common/mbed/hal_ext -I../../../component/common/mbed/targets/hal/rtl8195a -I../../../component/common/network -I../../../component/common/network/lwip/lwip_v1.4.1/port/realtek/freertos -I../../../component/common/network/lwip/lwip_v1.4.1/src/include -I../../../component/common/network/lwip/lwip_v1.4.1/src/include/lwip -I../../../component/common/network/lwip/lwip_v1.4.1/src/include/ipv4 -I../../../component/common/network/lwip/lwip_v1.4.1/port/realtek -I../../../component/common/test -I../../../component/soc/realtek/8195a/cmsis -I../../../component/soc/realtek/8195a/cmsis/device -I../../../component/soc/realtek/8195a/fwlib -I../../../component/soc/realtek/8195a/fwlib/rtl8195a -I../../../component/soc/realtek/8195a/misc/rtl_std_lib/include -I../../../component/common/drivers/wlan/realtek/include -I../../../component/common/drivers/wlan/realtek/src/osdep -I../../../component/common/drivers/wlan/realtek/src/hci -I../../../component/common/drivers/wlan/realtek/src/hal -I../../../component/common/drivers/wlan/realtek/src/hal/OUTSRC -I../../../component/soc/realtek/8195a/fwlib/ram_lib/wlan/realtek/wlan_ram_map/rom -I../../../component/common/network/ssl/polarssl-1.3.8/include -I../../../component/common/network/ssl/ssl_ram_map/rom -I../../../component/common/utilities -I../../../component/soc/realtek/8195a/misc/rtl_std_lib/include -I../../../component/common/application/apple/WACServer/External/Curve25519 -I../../../component/common/application/apple/WACServer/External/GladmanAES -I../../../component/soc/realtek/8195a/fwlib/ram_lib/usb_otg/include -I../../../component/common/video/v4l2/inc -I../../../component/common/media/codec -I../../../component/common/drivers/usb_class/host/uvc/inc -I../../../component/common/drivers/usb_class/device -I../../../component/common/drivers/usb_class/device/class -I../../../component/common/file_system/fatfs -I../../../component/common/file_system/fatfs/r0.10c/include -I../../../component/common/drivers/sdio/realtek/sdio_host/inc -I../../../component/common/audio -I../../../component/common/drivers/i2s -I../../../component/common/application/xmodem -c ../../../component/common/api/at_cmd/atcmd_ethernet.c -o ../../../component/common/api/at_cmd/atcmd_ethernet.o
In file included from ../../../component/common/api/at_cmd/atcmd_ethernet.c:7:0:
../../../component/common/network/lwip/lwip_v1.4.1/src/include/lwip/sockets.h:313:8: error: redefinition of 'struct timeval'
 struct timeval {
  ^
In file included from /opt/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/sys/select.h:26:0,
  from /opt/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/sys/types.h:68,
  from /opt/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/stdio.h:48,
  from ../../../component/common/api/at_cmd/atcmd_ethernet.c:1:
/opt/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/sys/_timeval.h:52:8: note: originally defined here
 struct timeval {
  ^
make[1]: *** [../../../component/common/api/at_cmd/atcmd_ethernet.o] Error 1
С -nostdinc не прокатило.
В mbed пишут что под новые компиляторы надо править lwip.

В то же время пример rtl00TstMinAmebaV35a от pvvx этим же компилятором собирается. Там исправлено что ли ?
 

pvvx

Активный участник сообщества
...
выдает ошибку [inline]struct timeval [/inline]
.....
В то же время пример rtl00TstMinAmebaV35a от pvvx этим же компилятором собирается. Там исправлено что ли ?
Исправлено. В новых arm-GCC добавлены либы и не одна.
По ошибке [inline]struct timeval [/inline] есть сноска в самом LwIP. Надо объявить переменную, что уже есть в базе:
У меня GNU_Tools_ARM_Embedded 5.4_2016q2.
Добавлено в lwipopts.h:
Код:
/** LWIP_TIMEVAL_PRIVATE: if you want to use the struct timeval provided
* by your system, set this to 0 and include <sys/time.h> in cc.h */
#if defined(_SYS__TIMEVAL_H_)
#define LWIP_TIMEVAL_PRIVATE 0
#endif
Но с 5.4_2016q2 есть ещё ошибки в SSL... Тоже исправил, но уже не помню :)
Да и в SDK вообще много ошибок при сборке с разной конфигурацией (если меняете platform_autoconf.h и/или platform_opts.h). Надо много править, чтобы в выходной код не вставлялась куча неиспользуемого хлама... До нормального варианта не допилил, т.к. не ясна программа выхода новых SDK. Вдруг завтра кинут новый?
 

sharikov

Active member
Исправлено. В новых arm-GCC добавлены либы и не одна.
Патч к "стандартной" sdk нужен.
lwip исправил как написано в mbed.
Еще пришлось исправлять wigadget.c - тоже конфликт с библитекой gcc.
//static unsigned int arc4random(void)
uint32_t arc4random(void)

Теперь пример собирается.
 

pvvx

Активный участник сообщества
Патч к "стандартной" sdk нужен.
lwip исправил как написано в mbed.
Еще пришлось исправлять wigadget.c - тоже конфликт с библитекой gcc.
//static unsigned int arc4random(void)
uint32_t arc4random(void)

Теперь пример собирается.
Процедур arc4random() в SDK не менее 3-х штук. :) Дублей других процедур, но с разными названиями в SDK наверно на не менее 30% выходного кода.
Если убрать ветвления по типу чипа, то код ещё хорошо сокращается. Но эти ветвления в основном в закрытых либах - там код чуть ли не для всех типов микросхем Realtek :). Надо ждать, что ещё просочиться.
А пока надо разобраться с eFuse и конфигами calibration_data WiFi в секторе по faddr 0xA000 и для SDK в 0x9000.
Иначе не работает даже PWM. Читает eFuse и говорит, что нет в чипе PWM :)
Патч hal_pwm.c стр 51:
Код:
   if (_FALSE == FunctionChk((pPwmAdapt->pwm_id + PWM0), pPwmAdapt->sel)) {
      //  return HAL_ERR_HW;
    }
Так-же неясности с HT40/HT20, куда выведены ноги ADC/DAC (их регистры работают в RTL8710) и т.д. и т.п. А то рисуют совсем неадекватные таблицы:
 
Последнее редактирование:
Сверху Снизу