# 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
pts-gap.txt
pts-gatt.txt
pts-l2cap.txt
pts-sm.txt
90359-20161220-172100175.tpg
90359-20161220-172113981.pts
00readme.txt

# CRC16 - BSD License.
crc16.*

# Nordic nRF51 SDK - BSD License.
nrf51dk_no_boot.ld
system_nrf51.c
gcc_startup_nrf51.s
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
nrf51.h
nrf51_bitfields.h
nrf51_deprecated.h
system_nrf51.h
gcc_startup_nrf51_split.s

# Nordic nRF52 SDK - BSD License.
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
ada_feather_nrf52_no_boot.ld
split_ada_feather_nrf52.ld
split-microbit.ld
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

# Nordic nRF51 SDK - BSD License.
# Nordic nRF52 SDK - BSD License.
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

# 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

# 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_CM4.s
SVC_Table.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

# NXP SDK - BSD License.
sdk-2.0-frdm-k64f_b160321
MK64FN1M0xxx12_flash.ld
boot-MK64FN1M0xxx12_flash.ld
startup_MK64F12.S

# 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 License
ctx.S
excpt_isr.S
uhi32.ld
