blob: 3498b9ab0ab9a84558e22f65950e0feb873bea70 [file] [log] [blame] [edit]
exports_files(["src/rp2_common/pico_standard_link/memmap_default.ld"])
cc_library(
name = "pico-sdk",
srcs = [
"lib/tinyusb/src/class/audio/audio_device.c",
"lib/tinyusb/src/class/cdc/cdc_device.c",
"lib/tinyusb/src/class/dfu/dfu_device.c",
"lib/tinyusb/src/class/dfu/dfu_rt_device.c",
"lib/tinyusb/src/class/hid/hid_device.c",
"lib/tinyusb/src/class/midi/midi_device.c",
"lib/tinyusb/src/class/msc/msc_device.c",
"lib/tinyusb/src/class/net/ecm_rndis_device.c",
"lib/tinyusb/src/class/net/ncm_device.c",
"lib/tinyusb/src/class/usbtmc/usbtmc_device.c",
"lib/tinyusb/src/class/vendor/vendor_device.c",
"lib/tinyusb/src/class/video/video_device.c",
"lib/tinyusb/src/common/tusb_fifo.c",
"lib/tinyusb/src/device/usbd.c",
"lib/tinyusb/src/device/usbd_control.c",
"lib/tinyusb/src/portable/raspberrypi/rp2040/dcd_rp2040.c",
"lib/tinyusb/src/portable/raspberrypi/rp2040/rp2040_usb.c",
"lib/tinyusb/src/tusb.c",
"src/common/pico_sync/critical_section.c",
"src/common/pico_sync/lock_core.c",
"src/common/pico_sync/mutex.c",
"src/common/pico_sync/sem.c",
"src/common/pico_time/time.c",
"src/common/pico_time/timeout_helper.c",
"src/common/pico_util/datetime.c",
"src/common/pico_util/pheap.c",
"src/common/pico_util/queue.c",
"src/rp2_common/hardware_claim/claim.c",
"src/rp2_common/hardware_clocks/clocks.c",
"src/rp2_common/hardware_divider/divider.S",
"src/rp2_common/hardware_dma/dma.c",
"src/rp2_common/hardware_flash/flash.c",
"src/rp2_common/hardware_i2c/i2c.c",
"src/rp2_common/hardware_gpio/gpio.c",
"src/rp2_common/hardware_irq/irq.c",
"src/rp2_common/hardware_irq/irq_handler_chain.S",
"src/rp2_common/hardware_pio/pio.c",
"src/rp2_common/hardware_pll/pll.c",
"src/rp2_common/hardware_spi/spi.c",
"src/rp2_common/hardware_sync/sync.c",
"src/rp2_common/hardware_timer/timer.c",
"src/rp2_common/hardware_uart/uart.c",
"src/rp2_common/hardware_vreg/vreg.c",
"src/rp2_common/hardware_watchdog/watchdog.c",
"src/rp2_common/hardware_xosc/xosc.c",
"src/rp2_common/pico_bit_ops/bit_ops_aeabi.S",
"src/rp2_common/pico_bootrom/bootrom.c",
"src/rp2_common/pico_divider/divider.S",
"src/rp2_common/pico_double/double_aeabi.S",
"src/rp2_common/pico_double/double_init_rom.c",
"src/rp2_common/pico_double/double_math.c",
"src/rp2_common/pico_double/double_v1_rom_shim.S",
"src/rp2_common/pico_fix/rp2040_usb_device_enumeration/rp2040_usb_device_enumeration.c",
"src/rp2_common/pico_float/float_aeabi.S",
"src/rp2_common/pico_float/float_init_rom.c",
"src/rp2_common/pico_float/float_math.c",
"src/rp2_common/pico_float/float_v1_rom_shim.S",
"src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S",
"src/rp2_common/pico_malloc/pico_malloc.c",
"src/rp2_common/pico_mem_ops/mem_ops_aeabi.S",
"src/rp2_common/pico_platform/platform.c",
"src/rp2_common/pico_printf/printf.c",
"src/rp2_common/pico_runtime/runtime.c",
"src/rp2_common/pico_standard_link/binary_info.c",
"src/rp2_common/pico_standard_link/crt0.S",
"src/rp2_common/pico_standard_link/new_delete.cpp",
"src/rp2_common/pico_stdio/stdio.c",
"src/rp2_common/pico_stdio_uart/stdio_uart.c",
"src/rp2_common/pico_stdio_usb/reset_interface.c",
"src/rp2_common/pico_stdio_usb/stdio_usb.c",
"src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c",
"src/rp2_common/pico_stdlib/stdlib.c",
"src/rp2_common/pico_unique_id/unique_id.c",
#"src/common/pico_util/doc.h",
],
hdrs = [
"lib/tinyusb/src/class/cdc/cdc.h",
"lib/tinyusb/src/class/cdc/cdc_device.h",
"lib/tinyusb/src/common/tusb_common.h",
"lib/tinyusb/src/common/tusb_compiler.h",
"lib/tinyusb/src/common/tusb_error.h",
"lib/tinyusb/src/common/tusb_fifo.h",
"lib/tinyusb/src/common/tusb_timeout.h",
"lib/tinyusb/src/common/tusb_types.h",
"lib/tinyusb/src/common/tusb_verify.h",
"lib/tinyusb/src/device/dcd.h",
"lib/tinyusb/src/device/dcd_attr.h",
"lib/tinyusb/src/device/usbd.h",
"lib/tinyusb/src/device/usbd_pvt.h",
"lib/tinyusb/src/osal/osal.h",
"lib/tinyusb/src/osal/osal_pico.h",
"lib/tinyusb/src/portable/raspberrypi/rp2040/rp2040_usb.h",
"lib/tinyusb/src/tusb.h",
"lib/tinyusb/src/tusb_option.h",
"src/boards/include/boards/pico.h",
"src/common/pico_base/include/pico.h",
"src/common/pico_base/include/pico/assert.h",
"src/common/pico_base/include/pico/config.h",
"src/common/pico_base/include/pico/config_autogen.h",
"src/common/pico_base/include/pico/error.h",
"src/common/pico_base/include/pico/types.h",
"src/common/pico_base/include/pico/version.h",
"src/common/pico_binary_info/include/pico/binary_info.h",
"src/common/pico_binary_info/include/pico/binary_info/code.h",
"src/common/pico_binary_info/include/pico/binary_info/defs.h",
"src/common/pico_binary_info/include/pico/binary_info/structure.h",
"src/common/pico_stdlib/include/pico/stdlib.h",
"src/common/pico_sync/include/pico/critical_section.h",
"src/common/pico_sync/include/pico/lock_core.h",
"src/common/pico_sync/include/pico/mutex.h",
"src/common/pico_sync/include/pico/sem.h",
"src/common/pico_sync/include/pico/sync.h",
"src/common/pico_time/include/pico/time.h",
"src/common/pico_time/include/pico/timeout_helper.h",
"src/common/pico_usb_reset_interface/include/pico/usb_reset_interface.h",
"src/common/pico_util/include/pico/util/datetime.h",
"src/common/pico_util/include/pico/util/pheap.h",
"src/common/pico_util/include/pico/util/queue.h",
"src/rp2040/hardware_regs/include/hardware/platform_defs.h",
"src/rp2040/hardware_regs/include/hardware/regs/adc.h",
"src/rp2040/hardware_regs/include/hardware/regs/addressmap.h",
"src/rp2040/hardware_regs/include/hardware/regs/busctrl.h",
"src/rp2040/hardware_regs/include/hardware/regs/clocks.h",
"src/rp2040/hardware_regs/include/hardware/regs/dma.h",
"src/rp2040/hardware_regs/include/hardware/regs/dreq.h",
"src/rp2040/hardware_regs/include/hardware/regs/i2c.h",
"src/rp2040/hardware_regs/include/hardware/regs/intctrl.h",
"src/rp2040/hardware_regs/include/hardware/regs/io_bank0.h",
"src/rp2040/hardware_regs/include/hardware/regs/io_qspi.h",
"src/rp2040/hardware_regs/include/hardware/regs/m0plus.h",
"src/rp2040/hardware_regs/include/hardware/regs/pads_bank0.h",
"src/rp2040/hardware_regs/include/hardware/regs/pads_qspi.h",
"src/rp2040/hardware_regs/include/hardware/regs/pio.h",
"src/rp2040/hardware_regs/include/hardware/regs/pll.h",
"src/rp2040/hardware_regs/include/hardware/regs/psm.h",
"src/rp2040/hardware_regs/include/hardware/regs/pwm.h",
"src/rp2040/hardware_regs/include/hardware/regs/resets.h",
"src/rp2040/hardware_regs/include/hardware/regs/rosc.h",
"src/rp2040/hardware_regs/include/hardware/regs/rtc.h",
"src/rp2040/hardware_regs/include/hardware/regs/sio.h",
"src/rp2040/hardware_regs/include/hardware/regs/spi.h",
"src/rp2040/hardware_regs/include/hardware/regs/ssi.h",
"src/rp2040/hardware_regs/include/hardware/regs/syscfg.h",
"src/rp2040/hardware_regs/include/hardware/regs/sysinfo.h",
"src/rp2040/hardware_regs/include/hardware/regs/tbman.h",
"src/rp2040/hardware_regs/include/hardware/regs/timer.h",
"src/rp2040/hardware_regs/include/hardware/regs/uart.h",
"src/rp2040/hardware_regs/include/hardware/regs/usb.h",
"src/rp2040/hardware_regs/include/hardware/regs/usb_device_dpram.h",
"src/rp2040/hardware_regs/include/hardware/regs/vreg_and_chip_reset.h",
"src/rp2040/hardware_regs/include/hardware/regs/watchdog.h",
"src/rp2040/hardware_regs/include/hardware/regs/xip.h",
"src/rp2040/hardware_regs/include/hardware/regs/xosc.h",
"src/rp2040/hardware_structs/include/hardware/structs/adc.h",
"src/rp2040/hardware_structs/include/hardware/structs/bus_ctrl.h",
"src/rp2040/hardware_structs/include/hardware/structs/clocks.h",
"src/rp2040/hardware_structs/include/hardware/structs/dma.h",
"src/rp2040/hardware_structs/include/hardware/structs/i2c.h",
"src/rp2040/hardware_structs/include/hardware/structs/interp.h",
"src/rp2040/hardware_structs/include/hardware/structs/iobank0.h",
"src/rp2040/hardware_structs/include/hardware/structs/ioqspi.h",
"src/rp2040/hardware_structs/include/hardware/structs/mpu.h",
"src/rp2040/hardware_structs/include/hardware/structs/pads_qspi.h",
"src/rp2040/hardware_structs/include/hardware/structs/padsbank0.h",
"src/rp2040/hardware_structs/include/hardware/structs/pio.h",
"src/rp2040/hardware_structs/include/hardware/structs/pll.h",
"src/rp2040/hardware_structs/include/hardware/structs/psm.h",
"src/rp2040/hardware_structs/include/hardware/structs/pwm.h",
"src/rp2040/hardware_structs/include/hardware/structs/resets.h",
"src/rp2040/hardware_structs/include/hardware/structs/rosc.h",
"src/rp2040/hardware_structs/include/hardware/structs/rtc.h",
"src/rp2040/hardware_structs/include/hardware/structs/scb.h",
"src/rp2040/hardware_structs/include/hardware/structs/sio.h",
"src/rp2040/hardware_structs/include/hardware/structs/spi.h",
"src/rp2040/hardware_structs/include/hardware/structs/ssi.h",
"src/rp2040/hardware_structs/include/hardware/structs/syscfg.h",
"src/rp2040/hardware_structs/include/hardware/structs/systick.h",
"src/rp2040/hardware_structs/include/hardware/structs/timer.h",
"src/rp2040/hardware_structs/include/hardware/structs/uart.h",
"src/rp2040/hardware_structs/include/hardware/structs/usb.h",
"src/rp2040/hardware_structs/include/hardware/structs/vreg_and_chip_reset.h",
"src/rp2040/hardware_structs/include/hardware/structs/watchdog.h",
"src/rp2040/hardware_structs/include/hardware/structs/xip_ctrl.h",
"src/rp2040/hardware_structs/include/hardware/structs/xosc.h",
"src/rp2_common/cmsis/include/cmsis/rename_exceptions.h",
"src/rp2_common/hardware_base/include/hardware/address_mapped.h",
"src/rp2_common/hardware_claim/include/hardware/claim.h",
"src/rp2_common/hardware_clocks/include/hardware/clocks.h",
"src/rp2_common/hardware_divider/include/hardware/divider.h",
"src/rp2_common/hardware_divider/include/hardware/divider_helper.S",
"src/rp2_common/hardware_dma/include/hardware/dma.h",
"src/rp2_common/hardware_flash/include/hardware/flash.h",
"src/rp2_common/hardware_i2c/include/hardware/i2c.h",
"src/rp2_common/hardware_gpio/include/hardware/gpio.h",
"src/rp2_common/hardware_irq/include/hardware/irq.h",
"src/rp2_common/hardware_pio/include/hardware/pio.h",
"src/rp2_common/hardware_pio/include/hardware/pio_instructions.h",
"src/rp2_common/hardware_pll/include/hardware/pll.h",
"src/rp2_common/hardware_pwm/include/hardware/pwm.h",
"src/rp2_common/hardware_resets/include/hardware/resets.h",
"src/rp2_common/hardware_spi/include/hardware/spi.h",
"src/rp2_common/hardware_sync/include/hardware/sync.h",
"src/rp2_common/hardware_timer/include/hardware/timer.h",
"src/rp2_common/hardware_uart/include/hardware/uart.h",
"src/rp2_common/hardware_vreg/include/hardware/vreg.h",
"src/rp2_common/hardware_watchdog/include/hardware/watchdog.h",
"src/rp2_common/hardware_xosc/include/hardware/xosc.h",
"src/rp2_common/pico_bootrom/include/pico/bootrom.h",
"src/rp2_common/pico_bootrom/include/pico/bootrom/sf_table.h",
"src/rp2_common/pico_double/include/pico/double.h",
"src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include/pico/fix/rp2040_usb_device_enumeration.h",
"src/rp2_common/pico_float/include/pico/float.h",
"src/rp2_common/pico_int64_ops/include/pico/int64_ops.h",
"src/rp2_common/pico_malloc/include/pico/malloc.h",
"src/rp2_common/pico_mem_ops/include/pico/mem_ops.h",
"src/rp2_common/pico_platform/include/pico/asm_helper.S",
"src/rp2_common/pico_platform/include/pico/platform.h",
"src/rp2_common/pico_printf/include/pico/printf.h",
"src/rp2_common/pico_runtime/include/pico/runtime.h",
"src/rp2_common/pico_stdio/include/pico/stdio.h",
"src/rp2_common/pico_stdio/include/pico/stdio/driver.h",
"src/rp2_common/pico_stdio_uart/include/pico/stdio_uart.h",
"src/rp2_common/pico_stdio_usb/include/pico/stdio_usb.h",
"src/rp2_common/pico_stdio_usb/include/pico/stdio_usb/reset_interface.h",
"src/rp2_common/pico_stdio_usb/include/tusb_config.h",
"src/rp2_common/pico_unique_id/include/pico/unique_id.h",
],
copts = [
"-Wno-unused-function",
"-Wno-pointer-arith",
],
defines = [
"CFG_TUSB_DEBUG=0",
"CFG_TUSB_MCU=OPT_MCU_RP2040",
"CFG_TUSB_OS=OPT_OS_PICO",
"LIB_PICO_BIT_OPS=1",
"LIB_PICO_BIT_OPS_PICO=1",
"LIB_PICO_DIVIDER=1",
"LIB_PICO_DIVIDER_HARDWARE=1",
"LIB_PICO_DOUBLE=1",
"LIB_PICO_DOUBLE_PICO=1",
"LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1",
"LIB_PICO_FLOAT=1",
"LIB_PICO_FLOAT_PICO=1",
"LIB_PICO_INT64_OPS=1",
"LIB_PICO_INT64_OPS_PICO=1",
"LIB_PICO_MALLOC=1",
"LIB_PICO_MEM_OPS=1",
"LIB_PICO_MEM_OPS_PICO=1",
"LIB_PICO_PLATFORM=1",
"LIB_PICO_PRINTF=1",
"LIB_PICO_PRINTF_PICO=1",
"LIB_PICO_RUNTIME=1",
"LIB_PICO_STANDARD_LINK=1",
"LIB_PICO_STDIO=1",
"LIB_PICO_STDIO_UART=1",
"LIB_PICO_STDIO_USB=1",
"LIB_PICO_STDLIB=1",
"LIB_PICO_SYNC=1",
"LIB_PICO_SYNC_CORE=1",
"LIB_PICO_SYNC_CRITICAL_SECTION=1",
"LIB_PICO_SYNC_MUTEX=1",
"LIB_PICO_SYNC_SEM=1",
"LIB_PICO_TIME=1",
"LIB_PICO_UNIQUE_ID=1",
"LIB_PICO_UTIL=1",
"PICO_COPY_TO_RAM=0",
"PICO_CXX_ENABLE_EXCEPTIONS=0",
"PICO_NO_FLASH=0",
"PICO_USE_BLOCKED_RAM=0",
],
includes = [
"lib/tinyusb/hw",
"lib/tinyusb/src",
"lib/tinyusb/src/common",
"src/boards/include",
"src/common/pico_base/include",
"src/common/pico_binary_info/include",
"src/common/pico_bit_ops/include",
"src/common/pico_divider/include",
"src/common/pico_stdlib/include",
"src/common/pico_sync/include",
"src/common/pico_time/include",
"src/common/pico_usb_reset_interface/include",
"src/common/pico_util/include",
"src/rp2040/hardware_regs/include",
"src/rp2040/hardware_structs/include",
"src/rp2_common/boot_stage2/include",
"src/rp2_common/cmsis/include",
"src/rp2_common/hardware_base/include",
"src/rp2_common/hardware_claim/include",
"src/rp2_common/hardware_clocks/include",
"src/rp2_common/hardware_divider/include",
"src/rp2_common/hardware_dma/include",
"src/rp2_common/hardware_flash/include",
"src/rp2_common/hardware_i2c/include",
"src/rp2_common/hardware_gpio/include",
"src/rp2_common/hardware_irq/include",
"src/rp2_common/hardware_pio/include",
"src/rp2_common/hardware_pll/include",
"src/rp2_common/hardware_pwm/include",
"src/rp2_common/hardware_resets/include",
"src/rp2_common/hardware_spi/include",
"src/rp2_common/hardware_sync/include",
"src/rp2_common/hardware_timer/include",
"src/rp2_common/hardware_uart/include",
"src/rp2_common/hardware_vreg/include",
"src/rp2_common/hardware_watchdog/include",
"src/rp2_common/hardware_xosc/include",
"src/rp2_common/pico_bootrom/include",
"src/rp2_common/pico_double/include",
"src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include",
"src/rp2_common/pico_float/include",
"src/rp2_common/pico_int64_ops/include",
"src/rp2_common/pico_malloc/include",
"src/rp2_common/pico_mem_ops/include",
"src/rp2_common/pico_platform/include",
"src/rp2_common/pico_printf/include",
"src/rp2_common/pico_runtime/include",
"src/rp2_common/pico_stdio/include",
"src/rp2_common/pico_stdio_uart/include",
"src/rp2_common/pico_stdio_usb/include",
"src/rp2_common/pico_unique_id/include",
],
linkopts = [
"-Wl,--wrap=" + fn
for fn in [
"sprintf",
"snprintf",
"vsnprintf",
"__clzsi2",
"__clzdi2",
"__ctzsi2",
"__ctzdi2",
"__popcountsi2",
"__popcountdi2",
"__clz",
"__clzl",
"__clzll",
"__aeabi_idiv",
"__aeabi_idivmod",
"__aeabi_ldivmod",
"__aeabi_uidiv",
"__aeabi_uidivmod",
"__aeabi_uldivmod",
"__aeabi_dadd",
"__aeabi_ddiv",
"__aeabi_dmul",
"__aeabi_drsub",
"__aeabi_dsub",
"__aeabi_cdcmpeq",
"__aeabi_cdrcmple",
"__aeabi_cdcmple",
"__aeabi_dcmpeq",
"__aeabi_dcmplt",
"__aeabi_dcmple",
"__aeabi_dcmpge",
"__aeabi_dcmpgt",
"__aeabi_dcmpun",
"__aeabi_i2d",
"__aeabi_l2d",
"__aeabi_ui2d",
"__aeabi_ul2d",
"__aeabi_d2iz",
"__aeabi_d2lz",
"__aeabi_d2uiz",
"__aeabi_d2ulz",
"__aeabi_d2f",
"sqrt",
"cos",
"sin",
"tan",
"atan2",
"exp",
"log",
"ldexp",
"copysign",
"trunc",
"floor",
"ceil",
"round",
"sincos",
"asin",
"acos",
"atan",
"sinh",
"cosh",
"tanh",
"asinh",
"acosh",
"atanh",
"exp2",
"log2",
"exp10",
"log10",
"pow",
"powint",
"hypot",
"cbrt",
"fmod",
"drem",
"remainder",
"remquo",
"expm1",
"log1p",
"fma",
"__aeabi_lmul",
"__aeabi_fadd",
"__aeabi_fdiv",
"__aeabi_fmul",
"__aeabi_frsub",
"__aeabi_fsub",
"__aeabi_cfcmpeq",
"__aeabi_cfrcmple",
"__aeabi_cfcmple",
"__aeabi_fcmpeq",
"__aeabi_fcmplt",
"__aeabi_fcmple",
"__aeabi_fcmpge",
"__aeabi_fcmpgt",
"__aeabi_fcmpun",
"__aeabi_i2f",
"__aeabi_l2f",
"__aeabi_ui2f",
"__aeabi_ul2f",
"__aeabi_f2iz",
"__aeabi_f2lz",
"__aeabi_f2uiz",
"__aeabi_f2ulz",
"__aeabi_f2d",
"sqrtf",
"cosf",
"sinf",
"tanf",
"atan2f",
"expf",
"logf",
"ldexpf",
"copysignf",
"truncf",
"floorf",
"ceilf",
"roundf",
"sincosf",
"asinf",
"acosf",
"atanf",
"sinhf",
"coshf",
"tanhf",
"asinhf",
"acoshf",
"atanhf",
"exp2f",
"log2f",
"exp10f",
"log10f",
"powf",
"powintf",
"hypotf",
"cbrtf",
"fmodf",
"dremf",
"remainderf",
"remquof",
"expm1f",
"log1pf",
"fmaf",
"malloc",
"calloc",
"free",
"memcpy",
"memset",
"realloc",
"__aeabi_memcpy",
"__aeabi_memset",
"__aeabi_memcpy4",
"__aeabi_memset4",
"__aeabi_memcpy8",
"__aeabi_memset8",
"printf",
"vprintf",
"puts",
"putchar",
"getchar",
]
] + [
"-Wl,-z,max-page-size=4096",
],
target_compatible_with = [
"@platforms//os:none",
"//tools/platforms/hardware:cortex_m0plus",
],
visibility = ["//visibility:public"],
deps = [
"//third_party/pico-sdk/src/rp2_common/boot_stage2:boot_stage2_header",
],
)