# Can't easily add license to rat-excludes file.
.rat-excludes

# Temporary user files.
.gdb_history
.gdb_out
tags

# Non-source files
RELEASE_NOTES.md
repository.yml
.gitignore
00readme.txt
uncrustify.cfg
README.md
.mailmap
version.txt
.style_ignored_dirs

# unit tests executables
bin

# CRC16 - BSD License.
crc16.*


# Nordic nRF5 SDK - BSD License.
system_nrf51.c
gcc_startup_nrf51.s
nrf51.h
nrf51_bitfields.h
nrf51_deprecated.h
system_nrf51.h
gcc_startup_nrf51_split.s
system_nrf52.c
gcc_startup_nrf52.s
nrf51_to_nrf52.h
nrf52.h
nrf52_bitfields.h
system_nrf52.h
gcc_startup_nrf52_split.s
gcc_startup_nrf52840.s
nrf51_to_nrf52840.h
nrf52840.h
nrf52840_bitfields.h
nrf52840_peripherals.h
nrf52_to_nrf52840.h
system_nrf52840.c
system_nrf52840.h
compiler_abstraction.h
nrf.h
nrf52_name_change.h
system_nrf51422.c
arm_startup_nrf51.s
arm_startup_nrf52.s
uicr_config.h
iar_startup_nrf51.s
iar_startup_nrf52.s
system_nrf9160.c
gcc_startup_nrf9160.s
gcc_startup_nrf9160_split.s
nrf9160.h
nrf9160_bitfields.h


# Linker scripts for Nordics nRF5X - TCL license
nrf51dk_no_boot.ld
nrf51dk-16kbram_no_boot.ld
boot-nrf51xxaa.ld
nrf51xxaa.ld
boot-nrf51xxac.ld
nrf51xxac.ld
split-nrf51dk.ld
boot-nrf51xxac.ld
nrf51xxac.ld
split-nrf51dk.ld
split-nrf51dk-16kbram.ld
nrf51.ld
nrf52dk_no_boot.ld
bmd300eval_no_boot.ld
boot-nrf52xxaa.ld
nrf52xxaa.ld
primo_no_boot.ld
split-primo.ld
split-bmd300eval.ld
split-nrf52dk.ld
rb-nano2_no_boot.ld
split-rb-nano2.ld
nrf52.ld
nrf52_ram_resident.ld
ada_feather_nrf52_no_boot.ld
split_ada_feather_nrf52.ld
split-microbit.ld
ble400_no_boot.ld
split-ble400.ld
nrf52-thingy_no_boot.ld
split-nrf52-thingy.ld
nordic_pca10028_no_boot.ld
split-nordic_pca10028.ld
nordic_pca10028-16k_no_boot.ld
split-nordic_pca10028-16k.ld
nordic_pca10040_no_boot.ld
split-nordic_pca10040.ld
nordic_pca10056_no_boot.ld
split-nordic_pca10056.ld
nordic_pca20020_no_boot.ld
split-nordic_pca20020.ld
nrf5340.ld
nrf5340_ram_resident.ld
nordic_pca10095_no_boot.ld
nrf5340_net.ld
nrf5340_net_ram_resident.ld
nordic_pca10095_net_no_boot.ld
rb-blend2_no_boot.ld
split-rb-blend2.ld
split-telee02.ld
telee02_no_boot.ld
split-vbluno51.ld
vbluno51_no_boot.ld
split-vbluno52.ld
vbluno52_no_boot.ld
apollo2.ld
dwm1001-dev_no_boot.ld
split-dwm1001-dev.ld
fanstel-ev-bt840_no_boot.ld
split-fanstel-ev-bt840.ld
puckjs_no_boot.ld
split_puckjs.ld
nrf91.ld
split-nordic_pca10090.ld
nordic_pca10090_no_boot.ld
boot-nrf91xxaa.ld
nordic_pca10090_no_boot.ld
nrf91xxaa.ld
nrf91_ram_resident.ld
boot-pinetime.ld
boot-apollo3.ld
apollo3.ld
nordic_pca10059_no_boot.ld
split-nordic_pca10059.ld
split-ublox_bmd_345.ld
ublox_bmd_345_no_boot.ld

# STM32 HAL - BSD License
stm32_driver_mod_i2c_v1.c
stm32_driver_mod_i2c_v2.c
stm32_driver_mod_spi.c
stm32_driver_mod_timer.c

# STM32CubeF4  - BSD License.
stm32f4xx_hal_conf.h
system_stm32f4xx.c
startup_STM32F40x.s
stm32f407xx.h
stm32f4xx.h
stm32f4xx_hal.h
stm32f4xx_hal_adc.h
stm32f4xx_hal_adc_ex.h
stm32f4xx_hal_can.h
stm32f4xx_hal_cec.h
stm32f4xx_hal_cortex.h
stm32f4xx_hal_crc.h
stm32f4xx_hal_cryp.h
stm32f4xx_hal_cryp_ex.h
stm32f4xx_hal_dac.h
stm32f4xx_hal_dac_ex.h
stm32f4xx_hal_dcmi.h
stm32f4xx_hal_dcmi_ex.h
stm32f4xx_hal_def.h
stm32f4xx_hal_dma.h
stm32f4xx_hal_dma2d.h
stm32f4xx_hal_dma_ex.h
stm32f4xx_hal_eth.h
stm32f4xx_hal_flash.h
stm32f4xx_hal_flash_ex.h
stm32f4xx_hal_flash_ramfunc.h
stm32f4xx_hal_fmpi2c.h
stm32f4xx_hal_fmpi2c_ex.h
stm32f4xx_hal_gpio.h
stm32f4xx_hal_gpio_ex.h
stm32f4xx_hal_hash.h
stm32f4xx_hal_hash_ex.h
stm32f4xx_hal_hcd.h
stm32f4xx_hal_i2c.h
stm32f4xx_hal_i2c_ex.h
stm32f4xx_hal_i2s.h
stm32f4xx_hal_i2s_ex.h
stm32f4xx_hal_irda.h
stm32f4xx_hal_iwdg.h
stm32f4xx_hal_ltdc.h
stm32f4xx_hal_nand.h
stm32f4xx_hal_nor.h
stm32f4xx_hal_pccard.h
stm32f4xx_hal_pcd.h
stm32f4xx_hal_pcd_ex.h
stm32f4xx_hal_pwr.h
stm32f4xx_hal_pwr_ex.h
stm32f4xx_hal_qspi.h
stm32f4xx_hal_rcc.h
stm32f4xx_hal_rcc_ex.h
stm32f4xx_hal_rng.h
stm32f4xx_hal_rtc.h
stm32f4xx_hal_rtc_ex.h
stm32f4xx_hal_sai.h
stm32f4xx_hal_sai_ex.h
stm32f4xx_hal_sd.h
stm32f4xx_hal_sdram.h
stm32f4xx_hal_smartcard.h
stm32f4xx_hal_spdifrx.h
stm32f4xx_hal_spi.h
stm32f4xx_hal_sram.h
stm32f4xx_hal_tim.h
stm32f4xx_hal_tim_ex.h
stm32f4xx_hal_uart.h
stm32f4xx_hal_usart.h
stm32f4xx_hal_wwdg.h
stm32f4xx_ll_fmc.h
stm32f4xx_ll_fsmc.h
stm32f4xx_ll_sdmmc.h
stm32f4xx_ll_usb.h
system_stm32f4xx.h
stm32f4xx_hal_flash.c
stm32f4xx_hal_flash_ex.c
stm32f4xx_hal_gpio.c
stm32f4xx_hal_rcc.c
stm32f4xx_hal_uart.c

# STM32F4x MCU/BSP clock customization
clock_stm32f4xx.c

#STM32F0xx HAL - BSD licence
STM32F0xx_HAL_Driver
stm32f0xx

# baselibc - BSD License.
# tinyprintf - BSD License.
# klibc - MIT License.
baselibc

# CMSIS-CORE - BSD License.
core_ca9.h
core_caFunc.h
core_caInstr.h
core_ca_mmu.h
core_cm0.h
core_cm0plus.h
core_cm3.h
core_cm4.h
core_cm4_simd.h
core_cmFunc.h
core_cmInstr.h
cmsis_nvic.c
cmsis_nvic.h
HAL_CM0.s
HAL_CM3.s
HAL_CM4.s
HAL_CM33.s
SVC_Table.s
arm_common_tables.h
arm_const_structs.h
arm_math.h
cmsis_armcc.h
cmsis_armcc_V6.h
cmsis_gcc.h
core_cm7.h
core_cmSimd.h
core_sc000.h
core_sc300.h
HAL_CM7.s

# microjson - BSD License.
MSJSON_COPYING
json_decode.c
json_encode.c

# queue.h - BSD License.
queue.h

# FreeBSD - BSD License.
os_mbuf.c
base64.c

# tinycrypt - BSD License.
tinycrypt

# frdm-k64f clock configuration - BSD License.
clock_config.c
clock_config.h

# CMSIS Cortex-M4, STM32f4 - BSD License.
STM32F4xx
STM32F4xx_HAL_Driver
stm32f4xx

# NXP SDK - BSD License.
nxp-kinetis-sdk
fsl_clock.c
MK64FN1M0xxx12_flash.ld
boot-MK64FN1M0xxx12_flash.ld
startup_MK64F12.S
MK82FN256xxx15_flash.ld
boot-MK82FN256xxx15_flash.ld
startup_MK82F25615.S
MK82F25615.h
MK82F25615_features.h
system_MK82F25615.h
system_MK82F25615.c
fsl_clock.h
fsl_ftfx_controller.c

# LWIP - BSD License.
lwip_base

# OIC - BSD License.
oic

# FATFS ChaN License
diskio.h
ff.h
ffconf.h
integer.h
ff.c
unicode.c
00history.txt

#Codesoucery License
split-nrf52840pdk.ld
nrf52840pdk_no_boot.ld

# Freescale Semiconductor License
boot-mkw41z512.ld
mkw41z512.ld
no-boot-mkw41z512.ld
gcc_startup_mkw41z.s
MKW41Z4.h
fsl_device_registers.h
system_MKW41Z4.h
MKW41Z4_features.h
system_MKW41Z4.c

# Imagination Technologies - BSD License
mips-hal
ctx.S
excpt_isr.S
uhi32.ld
abiflags.S

# Cygnus Support - MIT like License
gcc_startup_mips.S

# HiFive1 - Apache License 2.0
sifive

# MQTT - Eclipse Public License
mqtt

# CMSIS Cortex-M7, STM32f7 - BSD License.
STM32F7xx
STM32F7xx_HAL_Driver
stm32f7xx

# LORA - BSD License
lora

# loraping - BSD License (main.c only)
loraping

# SEGGER Sysview - BSD License
sysview

# SEGGER RTT - BSD License
rtt

# Adafruit TSL2561 Sensor - BSD License
tsl2561

# pic32mx470f512h - BSD License
pic32mx470f512h

# Sensorhub board - BSD License
startup_STM32F427xx.s

# STM32F7 Discovery BSP - BSD License
stm32f7xx_hal_conf.h
system_stm32f7xx.c
startup_stm32f746xx.s

# STM32F3 Discovery BSP - BSD License
startup_stm32f303xc.s

# STM32F429 BSP - BSD License
startup_STM32F429x.s

# STM32L152C BSP - BSD License
stm32l1xx_hal_conf.h
system_stm32l1xx.c
startup_stm32l152xc.s

# NUCLEO-F767 BSP - BSD License
startup_stm32f767xx.s

# NUCLEO-F439 BSP - BSD License
startup_stm32f439xx.s

# NUCLEO-F413ZH BSP - BSD License
nucleo-f413zh

# NUCLEO-L467rg BSP - BSD License
nucleo-l476rg

# NUCLEO-F072RB BSP - BSD License
nucleo-f072rb

# NUCLEO-F030R8 BSP - BSD License
nucleo-f030r8

# NUCLEO-F103RB BSP - BSD License
stm32f1xx_hal_conf.h
system_stm32f1xx.c
startup_stm32f103xb.s

# NUCLEO-F411RE BSP - BSD License
startup_STM32F411.s

# NUCLEO-WB55 BSP - BSD License
startup_stm32wb55xx_cm4.s
stm32wbxx_hal_conf.h

# Microchip PIC32 SDK - BSD License
p32mz2048efg100.h
pic32_init_cache.S
pic32_init_tlb_ebi_sqi.S
cache-err-exception.S
cp0defs.h
simple-tlb-refill-exception.S
crt0.S
p32mz_app.ld
p32mz_boot.ld

# Calliope SDK - BSD Licence
split-calliope_mini.ld

# Bluetooth Mesh - Apache 2.0 License
mesh

# pic32mx470_6lp_clicker BSP - one BSD licensed file (other are Apache):
# /hw/bsp/pic32mx470_6lp_clicker/src/sbrk.c
pic32mx470_6lp_clicker

# pic32mz2048_wi-fire BSP - one BSD licensed file (other are Apache):
# ./hw/bsp/pic32mz2048_wi-fire/src/sbrk.c
pic32mz2048_wi-fire

# SDK for Apollo2 - MIT/BSD/Apache License
# hw/bsp/apollo2_evb/src/arch/cortex_m4/gcc_startup.s
apollo2_evb

# BSP for Ambiq Apollo2/Apollo3 - BSD License
AmbiqSuite
apollo2.h
system_apollo2.h
system_apollo2.c
apollo_nvic.h
system_apollo3.c
apollo3.h
system_apollo3.h

# CMSIS Cortex-M4, STM32f3 - BSD License.
STM32F3xx
STM32F3xx_HAL_Driver
stm32f3xx

# Nucleo-F303K8, Nucleo-F303RE - BSD License.
system_stm32f3xx.c
startup_stm32f303x8.s
startup_stm32f303xe.s
stm32f3xx_hal_conf.h

# Ignore documentation folder
docs

# nrfX - BSD License
nrfx
nrfx_glue.h
nrfx_config.h
nrf51xxx
nrf52xxx
nrf91xx
nrf52xxx-compat

# cmsis-core - Apache License
cmsis-core

# stm32l1xx - BSD License
stm32l1xx

# stm32f1xx - BSD License
stm32f1xx

# ARC - BSD License
arc
embarc_emsk

# olimex-p103 - BSD and APL 2.0 License
olimex-p103

# STM32L0xx SDK - BSD License
stm32l0xx

# STM32L4xx SDK - BSD License
stm32l4xx

# STM32WBxx SDK - BSD License
stm32wbxx

# B-L072Z-LRWAN1 BSP - BSD License
b-l072z-lrwan1

# B-L475E-IOT01A BSP - BSD License
b-l475e-iot01a

# bluepill BSP - BSD License
bluepill

# Ruuvitag BSP - BSD License
ruuvitag_rev_b

# reel_board BSP - BSD License
reel_board

# Dialog DA1469x BSP - BSD and APL2 license
dialog_da1469x-dk-pro
da1469x
DA1469xAB.h
cmac.ld
CMAC.h
system_CMAC.h

# Bosch BMP388 driver - BSD License
bmp388

# Nordic NRF5340 SDK - APL2 license
system_nrf5340.c
gcc_startup_nrf5340.s
system_nrf5340_net.c
gcc_startup_nrf5340_net.s

# LittleFS - BSD License
lfs.c
lfs_util.c
lfs.h
lfs_util.h
DESIGN.md
SPEC.md

# OSDP library - APL2 license
osdp

# nucleo-l073rz BSP - BSD License
stm32l0xx_hal_conf.h
startup_stm32l073xx.s

# MK64F12 SDK - BSD License
MK64F12


