# Realtek module Core and platform. # ------------------------------ # # For more info: # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification name=RTL871x ARM (32-bits) Boards version=0.0.1 # rtlmodule project settings # ---------------------- rtlmodule.sdkpath={build.system.path}/sdk rtlmodule.project={build.variant} rtlmodule.libs={build.system.path}/libs # rtlmodule compile variables # ---------------------- compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/ compiler.c.cmd=arm-none-eabi-gcc compiler.c.flags=-c -g -w -mcpu=cortex-m3 -mthumb -Os -std=c++11 -fno-short-enums -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-short-enums -MMD compiler.c.elf.cmd=arm-none-eabi-gcc compiler.c.elf.flags= -mcpu=cortex-m3 -Os -Wl,--gc-sections -mcpu=cortex-m3 -mthumb --specs=nano.specs compiler.S.flags=-c -g -x assembler-with-cpp compiler.cpp.cmd=arm-none-eabi-g++ compiler.cpp.flags=-c -g -w -Os -std=gnu++11 -mcpu=cortex-m3 -mthumb -fno-short-enums -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-rtti -fno-short-enums -MMD compiler.ar.cmd=arm-none-eabi-ar compiler.ar.flags=rcs compiler.strip.cmd=arm-none-eabi-strip compiler.nm.cmd=arm-none-eabi-nm compiler.objcopy.cmd=arm-none-eabi-objcopy compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 compiler.elf2hex.flags=-O binary compiler.elf2hex.cmd=arm-none-eabi-objcopy compiler.ldflags= compiler.size.cmd=arm-none-eabi-size compiler.define=-DARDUINO= # this can be overriden in boards.txt build.extra_flags= # These can be overridden in platform.local.txt compiler.c.extra_flags= #compiler.c.elf.extra_flags= -Wl,--cref -Wl,--gc-sections -Wl,--entry=InfraStart -Wl,--no-enum-size-warning -Wl,--no-wchar-size-warning compiler.c.elf.extra_flags= -Wl,--cref -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--no-enum-size-warning -Wl,--no-wchar-size-warning -Wl,--undefined=InfraStart compiler.cpp.extra_flags= compiler.ar.extra_flags= compiler.elf2hex.extra_flags= # rtlmodule include path # ------------------ compiler.rtlmodule.c.include="-I{rtlmodule.sdkpath}/project/{rtlmodule.project}/inc" "-I{rtlmodule.sdkpath}/component/soc/realtek/common/bsp" "-I{rtlmodule.sdkpath}/component/os/freertos" "-I{rtlmodule.sdkpath}/component/os/freertos/freertos_v8.1.2/Source/include" "-I{rtlmodule.sdkpath}/component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM3" "-I{rtlmodule.sdkpath}/component/os/os_dep/include" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/misc/driver" "-I{rtlmodule.sdkpath}/component/common/api/network/include" "-I{rtlmodule.sdkpath}/component/common/api" "-I{rtlmodule.sdkpath}/component/common/api/platform" "-I{rtlmodule.sdkpath}/component/common/api/wifi" "-I{rtlmodule.sdkpath}/component/common/api/wifi/rtw_wpa_supplicant/src" "-I{rtlmodule.sdkpath}/component/common/application" "-I{rtlmodule.sdkpath}/component/common/media/framework" "-I{rtlmodule.sdkpath}/component/common/example" "-I{rtlmodule.sdkpath}/component/common/example/wlan_fast_connect" "-I{rtlmodule.sdkpath}/component/common/mbed/api" "-I{rtlmodule.sdkpath}/component/common/mbed/hal" "-I{rtlmodule.sdkpath}/component/common/mbed/hal_ext" "-I{rtlmodule.sdkpath}/component/common/mbed/targets/hal/rtl8195a" "-I{rtlmodule.sdkpath}/component/common/network" "-I{rtlmodule.sdkpath}/component/common/network/lwip/lwip_v1.4.1/port/realtek/freertos" "-I{rtlmodule.sdkpath}/component/common/network/lwip/lwip_v1.4.1/src/include" "-I{rtlmodule.sdkpath}/component/common/network/lwip/lwip_v1.4.1/src/include/lwip" "-I{rtlmodule.sdkpath}/component/common/network/lwip/lwip_v1.4.1/src/include/ipv4" "-I{rtlmodule.sdkpath}/component/common/network/lwip/lwip_v1.4.1/port/realtek" "-I{rtlmodule.sdkpath}/component/common/test" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/cmsis" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/cmsis/device" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/fwlib" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/fwlib/rtl8195a" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/misc/rtl_std_lib/include" "-I{rtlmodule.sdkpath}/component/common/drivers/wlan/realtek/include" "-I{rtlmodule.sdkpath}/component/common/drivers/wlan/realtek/src/osdep" "-I{rtlmodule.sdkpath}/component/common/drivers/wlan/realtek/src/hci" "-I{rtlmodule.sdkpath}/component/common/drivers/wlan/realtek/src/hal" "-I{rtlmodule.sdkpath}/component/common/drivers/wlan/realtek/src/hal/OUTSRC" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/fwlib/ram_lib/wlan/realtek/wlan_ram_map/rom" "-I{rtlmodule.sdkpath}/component/common/network/ssl/polarssl-1.3.8/include" "-I{rtlmodule.sdkpath}/component/common/network/ssl/ssl_ram_map/rom" "-I{rtlmodule.sdkpath}/component/common/utilities" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/misc/rtl_std_lib/include" "-I{rtlmodule.sdkpath}/component/soc/realtek/8195a/fwlib/ram_lib/usb_otg/include" "-I{rtlmodule.sdkpath}/component/common/video/v4l2/inc" "-I{rtlmodule.sdkpath}/component/common/media/codec" "-I{rtlmodule.sdkpath}/component/common/drivers/usb_class/host/uvc/inc" "-I{rtlmodule.sdkpath}/component/common/drivers/usb_class/device" "-I{rtlmodule.sdkpath}/component/common/drivers/usb_class/device/class" "-I{rtlmodule.sdkpath}/component/common/file_system/fatfs" "-I{rtlmodule.sdkpath}/component/common/file_system/fatfs/r0.10c/include" "-I{rtlmodule.sdkpath}/component/common/drivers/sdio/realtek/sdio_host/inc" "-I{rtlmodule.sdkpath}/component/common/audio" "-I{rtlmodule.sdkpath}/component/common/drivers/i2s" "-I{rtlmodule.sdkpath}/component/common/application/xmodem" "-I{rtlmodule.sdkpath}/component/common/network/mdns" "-I{rtlmodule.sdkpath}/component/common/network/libwsclient" compiler.arduino.c.include="-I{build.core.path}" compiler.rtlmodule.c.flags= -DCONFIG_PLATFORM_8195A -DARDUINO_SDK -DARDUINO_AMEBA {compiler.arduino.c.include} {compiler.rtlmodule.c.include} # rtlmodule archieve list # ------------------- compiler.rtlmodule.ar.list="{rtlmodule.libs}/lib_{build.variant}.a" "{rtlmodule.libs}/lib_lwip.a" "{rtlmodule.libs}/lib_mmf.a" "{rtlmodule.libs}/lib_p2p.a" "{rtlmodule.libs}/lib_rtlstd.a" "{rtlmodule.libs}/lib_rtsp.a" "{rtlmodule.libs}/lib_sdcard_v2.a" "{rtlmodule.libs}/lib_usbd.a" "{rtlmodule.libs}/lib_usbh.a" "{rtlmodule.libs}/lib_websocket.a" "{rtlmodule.libs}/lib_wlan.a" "{rtlmodule.libs}/lib_wps.a" "{rtlmodule.libs}/lib_xmodem.a" "{rtlmodule.libs}/lib_mdns.a" "{rtlmodule.libs}/lib_websocket.a" "{rtlmodule.libs}/lib_ssl.a" #compiler.rtlmodule.ar.list="{build.variant.path}/lib_arlib.a" "{build.variant.path}/lib_lwip.a" "{build.variant.path}/lib_mdns.a" "{build.variant.path}/lib_p2p.a" "{build.variant.path}/lib_platform.a" "{build.variant.path}/lib_rtlstd.a" "{build.variant.path}/lib_sdcard.a" "{build.variant.path}/lib_uvc.a" "{build.variant.path}/lib_websocket.a" "{build.variant.path}/lib_wlan.a" "{build.variant.path}/lib_wps.a" "{build.variant.path}/lib_xmodem.a" # USB Flags # --------- build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} -DUSBCON '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' # Default usb manufacturer will be replaced at compile time using # numeric vendor ID if available or by board's specific value. build.usb_manufacturer="Unknown" # rtlmodule compile patterns # --------------------- ## Compile c files recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {compiler.rtlmodule.c.flags} {includes} "{source_file}" -o "{object_file}" ## Compile c++ files recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {compiler.rtlmodule.c.flags} {includes} "{source_file}" -o "{object_file}" ## Create archives recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" ## Combine gc-sections, archives, and objects recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} "-L{build.variant.path}/linker_scripts/gcc" "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map={build.path}/application.map" {compiler.c.elf.extra_flags} -o "{build.path}/application.axf" "-L{build.path}" -Wl,--start-group {object_files} -Wl,--end-group -Wl,--start-group "{build.path}/{archive_file}" {compiler.rtlmodule.ar.list} -Wl,--end-group -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys ## Create nm map recipe.nm.pattern=cp "{build.path}/{build.project_name}.axf" "{build.path}/application.axf" ## Create strip recipe.strip.pattern="{compiler.path}{compiler.strip.cmd}" "{build.path}/{build.project_name}.axf" ## Create image recipe.objcopy.hex.cmd=postbuild_img2_arduino_windows.exe recipe.objcopy.hex.cmd.windows=postbuild_img2_arduino_windows.exe recipe.objcopy.hex.cmd.macosx=postbuild_img2_arduino_mac recipe.objcopy.hex.cmd.linux=postbuild_img2_arduino_linux recipe.objcopy.hex.imagepath={build.path}\application.axf recipe.objcopy.hex.imagepath.macosx="{build.path}/application.axf" recipe.objcopy.hex.imagepath.linux="{build.path}/application.axf" recipe.objcopy.hex.pattern="{runtime.tools.ameba_tools.path}/{recipe.objcopy.hex.cmd}" "{runtime.tools.ameba_tools.path}" "{recipe.objcopy.hex.imagepath}" "{compiler.path}" "{build.variant.path}/{build.sym_bklist}" ## Compute size recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/application.axf" #recipe.size.regex=\.text\s+([0-9]+).* recipe.size.regex=^(?:\.ram_image1.text|\.ram_image2.text|\.image3)\s+([0-9]+).* # rtlmodule Uploader tools # ------------------- tools.openocd_tools.upload.params.verbose= tools.openocd_tools.upload.params.quiet= tools.openocd_tools.upload.pattern="/usr/bin/openocd" -f interface/{build.openocdcfg} -f {runtime.platform.path}/tools/rtl8710.ocd -c "init" -c "reset halt" -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" -c "rtl8710_flash_write {runtime.tools.ameba_tools.path}/ram_all.bin 0" -c "reset" -c "shutdown" tools.jlink.upload.params.verbose= tools.jlink.cmd=jlink_upload tools.jlink.cmd.windows=jlink_upload.cmd tools.jlink.cmd.macosx= tools.jlink.path.macosx= tools.jlink.path.linux= tools.jlink.path.linux64= tools.jlink.path={runtime.tools.ameba_tools.path} tools.jlink.upload.params.quiet= tools.jlink.upload.pattern="{runtime.platform.path}/tools/jlink_upload.cmd" "{runtime.tools.ameba_tools.path}" "{runtime.platform.path}/tools" tools.network.upload.params.verbose= tools.network.cmd=upload_ota tools.network.cmd.windows="{runtime.tools.ameba_tools.path}/upload_ota.exe" -i "{serial.port}" -p "{network.port}" -f "{runtime.tools.ameba_tools.path}\ota.bin" tools.network.cmd.macosx= tools.network.path.macosx= tools.network.path.linux= tools.network.path.linux64= tools.network.path={runtime.tools.ameba_tools.path} tools.network.upload.params.quiet= tools.network.upload.pattern="{runtime.tools.ameba_tools.path}/upload_ota.exe" -i "{serial.port}" -p "{network.port}" -f "{runtime.tools.ameba_tools.path}\ota.bin" tools.network.upload.network_pattern="{runtime.tools.ameba_tools.path}/upload_ota.exe" -i "{serial.port}" -p "{network.port}" -f "{runtime.tools.ameba_tools.path}\ota.bin" tools.network.network_pattern.windows="{runtime.tools.ameba_tools.path}/upload_ota.exe" -i "{serial.port}" -p "{network.port}" -f "{runtime.tools.ameba_tools.path}\ota.bin" tools.network.network_pattern.macosx="{runtime.tools.ameba_tools.path}/upload_ota_mac" -i "{serial.port}" -p "{network.port}" -f "{runtime.tools.ameba_tools.path}/ota.bin" tools.network.network_pattern.linux="{runtime.tools.ameba_tools.path}/upload_ota_linux" -i "{serial.port}" -p "{network.port}" -f "{runtime.tools.ameba_tools.path}/ota.bin" tools.jlgdbota.upload.params.verbose= tools.jlgdbota.cmd=JLinkGDB_OTA tools.jlgdbota.cmd.windows=JLinkGDB_OTA.cmd tools.jlgdbota.cmd.macosx= tools.jlgdbota.path.macosx= tools.jlgdbota.path.linux= tools.jlgdbota.path.linux64= tools.jlgdbota.path={runtime.tools.ameba_tools.path} tools.jlgdbota.upload.params.quiet= tools.jlgdbota.upload.pattern="{runtime.platform.path}/tools/JLinkGDB_OTA.cmd" "{runtime.tools.ameba_tools.path}" "{runtime.platform.path}\tools" "{runtime.tools.arm-none-eabi-gcc.path}\bin\" tools.jlgdbimg.upload.params.verbose= tools.jlgdbimg.cmd=JLinkGDB_IMG tools.jlgdbimg.cmd.windows=JLinkGDB_IMG.cmd tools.jlgdbimg.cmd.macosx= tools.jlgdbimg.path.macosx= tools.jlgdbimg.path.linux= tools.jlgdbimg.path.linux64= tools.jlgdbimg.path={runtime.tools.ameba_tools.path} tools.jlgdbimg.upload.params.quiet= tools.jlgdbimg.upload.pattern="{runtime.platform.path}/tools/JLinkGDB_IMG.cmd" "{runtime.tools.ameba_tools.path}" "{runtime.platform.path}\tools" "{runtime.tools.arm-none-eabi-gcc.path}\bin\"