├── .vscode └── settings.json ├── Keil ├── classA │ ├── EventRecorderStub.scvd │ ├── JLinkLog.txt │ ├── JLinkSettings.ini │ ├── Listings │ │ ├── classA.map │ │ └── startup_stm32l151xb.lst │ ├── Objects │ │ ├── ExtDll.iex │ │ ├── adc-board.crf │ │ ├── adc-board.d │ │ ├── adc-board.o │ │ ├── adc.crf │ │ ├── adc.d │ │ ├── adc.o │ │ ├── aes.crf │ │ ├── aes.d │ │ ├── aes.o │ │ ├── board.crf │ │ ├── board.d │ │ ├── board.o │ │ ├── classA.axf │ │ ├── classA.build_log.htm │ │ ├── classA.hex │ │ ├── classA.htm │ │ ├── classA.lnp │ │ ├── classA.sct │ │ ├── classA_RAK811_breakboard.dep │ │ ├── classA_sct.Bak │ │ ├── cmac.crf │ │ ├── cmac.d │ │ ├── cmac.o │ │ ├── delay.crf │ │ ├── delay.d │ │ ├── delay.o │ │ ├── fifo.crf │ │ ├── fifo.d │ │ ├── fifo.o │ │ ├── gpio-board.crf │ │ ├── gpio-board.d │ │ ├── gpio-board.o │ │ ├── gpio.crf │ │ ├── gpio.d │ │ ├── gpio.o │ │ ├── gps-board.crf │ │ ├── gps-board.d │ │ ├── gps-board.o │ │ ├── gps.crf │ │ ├── gps.d │ │ ├── gps.o │ │ ├── i2c-board.crf │ │ ├── i2c-board.d │ │ ├── i2c-board.o │ │ ├── i2c.crf │ │ ├── i2c.d │ │ ├── i2c.o │ │ ├── lis3dh.crf │ │ ├── lis3dh.d │ │ ├── lis3dh.o │ │ ├── loramac.crf │ │ ├── loramac.d │ │ ├── loramac.o │ │ ├── loramaccrypto.crf │ │ ├── loramaccrypto.d │ │ ├── loramaccrypto.o │ │ ├── main.crf │ │ ├── main.d │ │ ├── main.o │ │ ├── region.crf │ │ ├── region.d │ │ ├── region.o │ │ ├── regionas923.crf │ │ ├── regionas923.d │ │ ├── regionas923.o │ │ ├── regionau915.crf │ │ ├── regionau915.d │ │ ├── regionau915.o │ │ ├── regioncommon.crf │ │ ├── regioncommon.d │ │ ├── regioncommon.o │ │ ├── regioneu868.crf │ │ ├── regioneu868.d │ │ ├── regioneu868.o │ │ ├── regionin865.crf │ │ ├── regionin865.d │ │ ├── regionin865.o │ │ ├── regionkr920.crf │ │ ├── regionkr920.d │ │ ├── regionkr920.o │ │ ├── regionus915-hybrid.crf │ │ ├── regionus915-hybrid.d │ │ ├── regionus915-hybrid.o │ │ ├── regionus915.crf │ │ ├── regionus915.d │ │ ├── regionus915.o │ │ ├── rtc-board.crf │ │ ├── rtc-board.d │ │ ├── rtc-board.o │ │ ├── spi-board.crf │ │ ├── spi-board.d │ │ ├── spi-board.o │ │ ├── startup_stm32l151xb.d │ │ ├── startup_stm32l151xb.o │ │ ├── stm32l1xx_hal.crf │ │ ├── stm32l1xx_hal.d │ │ ├── stm32l1xx_hal.o │ │ ├── stm32l1xx_hal_adc.crf │ │ ├── stm32l1xx_hal_adc.d │ │ ├── stm32l1xx_hal_adc.o │ │ ├── stm32l1xx_hal_adc_ex.crf │ │ ├── stm32l1xx_hal_adc_ex.d │ │ ├── stm32l1xx_hal_adc_ex.o │ │ ├── stm32l1xx_hal_cortex.crf │ │ ├── stm32l1xx_hal_cortex.d │ │ ├── stm32l1xx_hal_cortex.o │ │ ├── stm32l1xx_hal_dma.crf │ │ ├── stm32l1xx_hal_dma.d │ │ ├── stm32l1xx_hal_dma.o │ │ ├── stm32l1xx_hal_gpio.crf │ │ ├── stm32l1xx_hal_gpio.d │ │ ├── stm32l1xx_hal_gpio.o │ │ ├── stm32l1xx_hal_i2c.crf │ │ ├── stm32l1xx_hal_i2c.d │ │ ├── stm32l1xx_hal_i2c.o │ │ ├── stm32l1xx_hal_pwr.crf │ │ ├── stm32l1xx_hal_pwr.d │ │ ├── stm32l1xx_hal_pwr.o │ │ ├── stm32l1xx_hal_pwr_ex.crf │ │ ├── stm32l1xx_hal_pwr_ex.d │ │ ├── stm32l1xx_hal_pwr_ex.o │ │ ├── stm32l1xx_hal_rcc.crf │ │ ├── stm32l1xx_hal_rcc.d │ │ ├── stm32l1xx_hal_rcc.o │ │ ├── stm32l1xx_hal_rcc_ex.crf │ │ ├── stm32l1xx_hal_rcc_ex.d │ │ ├── stm32l1xx_hal_rcc_ex.o │ │ ├── stm32l1xx_hal_rtc.crf │ │ ├── stm32l1xx_hal_rtc.d │ │ ├── stm32l1xx_hal_rtc.o │ │ ├── stm32l1xx_hal_rtc_ex.crf │ │ ├── stm32l1xx_hal_rtc_ex.d │ │ ├── stm32l1xx_hal_rtc_ex.o │ │ ├── stm32l1xx_hal_spi.crf │ │ ├── stm32l1xx_hal_spi.d │ │ ├── stm32l1xx_hal_spi.o │ │ ├── stm32l1xx_hal_spi_ex.crf │ │ ├── stm32l1xx_hal_spi_ex.d │ │ ├── stm32l1xx_hal_spi_ex.o │ │ ├── stm32l1xx_hal_uart.crf │ │ ├── stm32l1xx_hal_uart.d │ │ ├── stm32l1xx_hal_uart.o │ │ ├── stm32l1xx_hal_usart.crf │ │ ├── stm32l1xx_hal_usart.d │ │ ├── stm32l1xx_hal_usart.o │ │ ├── sx1276-board.crf │ │ ├── sx1276-board.d │ │ ├── sx1276-board.o │ │ ├── sx1276.crf │ │ ├── sx1276.d │ │ ├── sx1276.o │ │ ├── sysirqhandlers.crf │ │ ├── sysirqhandlers.d │ │ ├── sysirqhandlers.o │ │ ├── system_stm32l1xx.crf │ │ ├── system_stm32l1xx.d │ │ ├── system_stm32l1xx.o │ │ ├── timer.crf │ │ ├── timer.d │ │ ├── timer.o │ │ ├── uart-board.crf │ │ ├── uart-board.d │ │ ├── uart-board.o │ │ ├── uart.crf │ │ ├── uart.d │ │ ├── uart.o │ │ ├── utilities.crf │ │ ├── utilities.d │ │ └── utilities.o │ ├── classA.uvguix.Suvan │ ├── classA.uvoptx │ └── classA.uvprojx └── ping-pong │ ├── JLinkLog.txt │ ├── JLinkSettings.ini │ ├── ping-pong.uvoptx │ └── ping-pong.uvprojx ├── README.md ├── coIDE └── classA │ ├── classA.coproj │ └── components │ └── coocox-master │ └── Retarget_printf │ └── source │ └── printf.c ├── doc ├── 08. 数据类型类别.xlsx └── 2017年地方高校国家级大学生创新创业训练计划项目名单+(地方).xls ├── img ├── Data_Rate.png ├── Illustration of the channel assignment.png ├── LoRa_Modem_Calculator_Tool.png ├── Network stack of a normal LoRa node.png ├── Node_red_aliyun.png ├── Node_red_led.png ├── SX1278.png ├── application_key.png ├── nide-red.png ├── 树莓派键盘.png └── 网关1.png └── src ├── apps ├── classA │ ├── Commissioning.h │ └── main.c └── ping-pong │ └── main.c ├── boards ├── RAK811BreakBoard │ ├── adc-board.c │ ├── adc-board.h │ ├── board.c │ ├── board.h │ ├── cmsis │ │ ├── arm-gcc │ │ │ ├── STM32L151XBA_FLASH.ld │ │ │ ├── STM32L151XB_FLASH.ld │ │ │ ├── startup_stm32l151xb.s │ │ │ └── startup_stm32l151xba.s │ │ ├── arm-std │ │ │ ├── startup_stm32l151xb.s │ │ │ └── startup_stm32l151xba.s │ │ ├── mxconstants.h │ │ ├── stm32l151xb.h │ │ ├── stm32l151xba.h │ │ ├── stm32l1xx.h │ │ ├── stm32l1xx_hal_conf.h │ │ ├── system_stm32l1xx.c │ │ └── system_stm32l1xx.h │ ├── eeprom-board.c │ ├── eeprom-board.h │ ├── gpio-board.c │ ├── gpio-board.h │ ├── gps-board.c │ ├── gps-board.h │ ├── i2c-board.c │ ├── i2c-board.h │ ├── pinName-board.h │ ├── pinName-ioe.h │ ├── rtc-board.c │ ├── rtc-board.h │ ├── spi-board.c │ ├── spi-board.h │ ├── sx1276-board.c │ ├── sx1276-board.h │ ├── uart-board.c │ ├── uart-board.h │ ├── uart-usb-board.c │ ├── uart-usb-board.h │ └── usb │ │ ├── cdc │ │ ├── inc │ │ │ ├── usbd_cdc_if.h │ │ │ ├── usbd_conf.h │ │ │ └── usbd_desc.h │ │ └── src │ │ │ ├── usbd_cdc_if.c │ │ │ ├── usbd_conf.c │ │ │ └── usbd_desc.c │ │ └── dfu │ │ ├── inc │ │ ├── usbd_conf.h │ │ ├── usbd_desc.h │ │ └── usbd_dfu_flash.h │ │ └── src │ │ ├── usbd_conf.c │ │ ├── usbd_desc.c │ │ └── usbd_dfu_flash.c └── mcu │ └── stm32 │ ├── RTE_Components.h │ ├── STM32L0xx_HAL_Driver │ ├── Inc │ │ ├── Legacy │ │ │ └── stm32_hal_legacy.h │ │ ├── stm32_assert_template.h │ │ ├── stm32l0xx_hal.h │ │ ├── stm32l0xx_hal_adc.h │ │ ├── stm32l0xx_hal_adc_ex.h │ │ ├── stm32l0xx_hal_comp.h │ │ ├── stm32l0xx_hal_comp_ex.h │ │ ├── stm32l0xx_hal_conf_template.h │ │ ├── stm32l0xx_hal_cortex.h │ │ ├── stm32l0xx_hal_crc.h │ │ ├── stm32l0xx_hal_crc_ex.h │ │ ├── stm32l0xx_hal_cryp.h │ │ ├── stm32l0xx_hal_cryp_ex.h │ │ ├── stm32l0xx_hal_dac.h │ │ ├── stm32l0xx_hal_dac_ex.h │ │ ├── stm32l0xx_hal_def.h │ │ ├── stm32l0xx_hal_dma.h │ │ ├── stm32l0xx_hal_firewall.h │ │ ├── stm32l0xx_hal_flash.h │ │ ├── stm32l0xx_hal_flash_ex.h │ │ ├── stm32l0xx_hal_flash_ramfunc.h │ │ ├── stm32l0xx_hal_gpio.h │ │ ├── stm32l0xx_hal_gpio_ex.h │ │ ├── stm32l0xx_hal_i2c.h │ │ ├── stm32l0xx_hal_i2c_ex.h │ │ ├── stm32l0xx_hal_i2s.h │ │ ├── stm32l0xx_hal_irda.h │ │ ├── stm32l0xx_hal_irda_ex.h │ │ ├── stm32l0xx_hal_iwdg.h │ │ ├── stm32l0xx_hal_lcd.h │ │ ├── stm32l0xx_hal_lptim.h │ │ ├── stm32l0xx_hal_lptim_ex.h │ │ ├── stm32l0xx_hal_pcd.h │ │ ├── stm32l0xx_hal_pcd_ex.h │ │ ├── stm32l0xx_hal_pwr.h │ │ ├── stm32l0xx_hal_pwr_ex.h │ │ ├── stm32l0xx_hal_rcc.h │ │ ├── stm32l0xx_hal_rcc_ex.h │ │ ├── stm32l0xx_hal_rng.h │ │ ├── stm32l0xx_hal_rtc.h │ │ ├── stm32l0xx_hal_rtc_ex.h │ │ ├── stm32l0xx_hal_smartcard.h │ │ ├── stm32l0xx_hal_smartcard_ex.h │ │ ├── stm32l0xx_hal_smbus.h │ │ ├── stm32l0xx_hal_spi.h │ │ ├── stm32l0xx_hal_tim.h │ │ ├── stm32l0xx_hal_tim_ex.h │ │ ├── stm32l0xx_hal_tsc.h │ │ ├── stm32l0xx_hal_uart.h │ │ ├── stm32l0xx_hal_uart_ex.h │ │ ├── stm32l0xx_hal_usart.h │ │ ├── stm32l0xx_hal_usart_ex.h │ │ ├── stm32l0xx_hal_wwdg.h │ │ ├── stm32l0xx_ll_adc.h │ │ ├── stm32l0xx_ll_bus.h │ │ ├── stm32l0xx_ll_comp.h │ │ ├── stm32l0xx_ll_cortex.h │ │ ├── stm32l0xx_ll_crc.h │ │ ├── stm32l0xx_ll_crs.h │ │ ├── stm32l0xx_ll_dac.h │ │ ├── stm32l0xx_ll_dma.h │ │ ├── stm32l0xx_ll_exti.h │ │ ├── stm32l0xx_ll_gpio.h │ │ ├── stm32l0xx_ll_i2c.h │ │ ├── stm32l0xx_ll_iwdg.h │ │ ├── stm32l0xx_ll_lptim.h │ │ ├── stm32l0xx_ll_lpuart.h │ │ ├── stm32l0xx_ll_pwr.h │ │ ├── stm32l0xx_ll_rcc.h │ │ ├── stm32l0xx_ll_rng.h │ │ ├── stm32l0xx_ll_rtc.h │ │ ├── stm32l0xx_ll_spi.h │ │ ├── stm32l0xx_ll_system.h │ │ ├── stm32l0xx_ll_tim.h │ │ ├── stm32l0xx_ll_usart.h │ │ ├── stm32l0xx_ll_utils.h │ │ └── stm32l0xx_ll_wwdg.h │ └── Src │ │ ├── stm32l0xx_hal.c │ │ ├── stm32l0xx_hal_adc.c │ │ ├── stm32l0xx_hal_adc_ex.c │ │ ├── stm32l0xx_hal_comp.c │ │ ├── stm32l0xx_hal_comp_ex.c │ │ ├── stm32l0xx_hal_cortex.c │ │ ├── stm32l0xx_hal_crc.c │ │ ├── stm32l0xx_hal_crc_ex.c │ │ ├── stm32l0xx_hal_cryp.c │ │ ├── stm32l0xx_hal_cryp_ex.c │ │ ├── stm32l0xx_hal_dac.c │ │ ├── stm32l0xx_hal_dac_ex.c │ │ ├── stm32l0xx_hal_dma.c │ │ ├── stm32l0xx_hal_firewall.c │ │ ├── stm32l0xx_hal_flash.c │ │ ├── stm32l0xx_hal_flash_ex.c │ │ ├── stm32l0xx_hal_flash_ramfunc.c │ │ ├── stm32l0xx_hal_gpio.c │ │ ├── stm32l0xx_hal_i2c.c │ │ ├── stm32l0xx_hal_i2c_ex.c │ │ ├── stm32l0xx_hal_i2s.c │ │ ├── stm32l0xx_hal_irda.c │ │ ├── stm32l0xx_hal_iwdg.c │ │ ├── stm32l0xx_hal_lcd.c │ │ ├── stm32l0xx_hal_lptim.c │ │ ├── stm32l0xx_hal_msp_template.c │ │ ├── stm32l0xx_hal_pcd.c │ │ ├── stm32l0xx_hal_pcd_ex.c │ │ ├── stm32l0xx_hal_pwr.c │ │ ├── stm32l0xx_hal_pwr_ex.c │ │ ├── stm32l0xx_hal_rcc.c │ │ ├── stm32l0xx_hal_rcc_ex.c │ │ ├── stm32l0xx_hal_rng.c │ │ ├── stm32l0xx_hal_rtc.c │ │ ├── stm32l0xx_hal_rtc_ex.c │ │ ├── stm32l0xx_hal_smartcard.c │ │ ├── stm32l0xx_hal_smartcard_ex.c │ │ ├── stm32l0xx_hal_smbus.c │ │ ├── stm32l0xx_hal_spi.c │ │ ├── stm32l0xx_hal_tim.c │ │ ├── stm32l0xx_hal_tim_ex.c │ │ ├── stm32l0xx_hal_tsc.c │ │ ├── stm32l0xx_hal_uart.c │ │ ├── stm32l0xx_hal_uart_ex.c │ │ ├── stm32l0xx_hal_usart.c │ │ ├── stm32l0xx_hal_wwdg.c │ │ ├── stm32l0xx_ll_adc.c │ │ ├── stm32l0xx_ll_comp.c │ │ ├── stm32l0xx_ll_crc.c │ │ ├── stm32l0xx_ll_crs.c │ │ ├── stm32l0xx_ll_dac.c │ │ ├── stm32l0xx_ll_dma.c │ │ ├── stm32l0xx_ll_exti.c │ │ ├── stm32l0xx_ll_gpio.c │ │ ├── stm32l0xx_ll_i2c.c │ │ ├── stm32l0xx_ll_lptim.c │ │ ├── stm32l0xx_ll_lpuart.c │ │ ├── stm32l0xx_ll_pwr.c │ │ ├── stm32l0xx_ll_rcc.c │ │ ├── stm32l0xx_ll_rng.c │ │ ├── stm32l0xx_ll_rtc.c │ │ ├── stm32l0xx_ll_spi.c │ │ ├── stm32l0xx_ll_tim.c │ │ ├── stm32l0xx_ll_usart.c │ │ └── stm32l0xx_ll_utils.c │ ├── STM32L1xx_HAL_Driver │ ├── Inc │ │ ├── Legacy │ │ │ └── stm32_hal_legacy.h │ │ ├── stm32_assert_template.h │ │ ├── stm32l1xx_hal.h │ │ ├── stm32l1xx_hal_adc.h │ │ ├── stm32l1xx_hal_adc_ex.h │ │ ├── stm32l1xx_hal_comp.h │ │ ├── stm32l1xx_hal_comp_ex.h │ │ ├── stm32l1xx_hal_conf_template.h │ │ ├── stm32l1xx_hal_cortex.h │ │ ├── stm32l1xx_hal_crc.h │ │ ├── stm32l1xx_hal_cryp.h │ │ ├── stm32l1xx_hal_cryp_ex.h │ │ ├── stm32l1xx_hal_dac.h │ │ ├── stm32l1xx_hal_dac_ex.h │ │ ├── stm32l1xx_hal_def.h │ │ ├── stm32l1xx_hal_dma.h │ │ ├── stm32l1xx_hal_dma_ex.h │ │ ├── stm32l1xx_hal_flash.h │ │ ├── stm32l1xx_hal_flash_ex.h │ │ ├── stm32l1xx_hal_flash_ramfunc.h │ │ ├── stm32l1xx_hal_gpio.h │ │ ├── stm32l1xx_hal_gpio_ex.h │ │ ├── stm32l1xx_hal_i2c.h │ │ ├── stm32l1xx_hal_i2s.h │ │ ├── stm32l1xx_hal_irda.h │ │ ├── stm32l1xx_hal_iwdg.h │ │ ├── stm32l1xx_hal_lcd.h │ │ ├── stm32l1xx_hal_nor.h │ │ ├── stm32l1xx_hal_opamp.h │ │ ├── stm32l1xx_hal_opamp_ex.h │ │ ├── stm32l1xx_hal_pcd.h │ │ ├── stm32l1xx_hal_pcd_ex.h │ │ ├── stm32l1xx_hal_pwr.h │ │ ├── stm32l1xx_hal_pwr_ex.h │ │ ├── stm32l1xx_hal_rcc.h │ │ ├── stm32l1xx_hal_rcc_ex.h │ │ ├── stm32l1xx_hal_rtc.h │ │ ├── stm32l1xx_hal_rtc_ex.h │ │ ├── stm32l1xx_hal_sd.h │ │ ├── stm32l1xx_hal_smartcard.h │ │ ├── stm32l1xx_hal_spi.h │ │ ├── stm32l1xx_hal_spi_ex.h │ │ ├── stm32l1xx_hal_sram.h │ │ ├── stm32l1xx_hal_tim.h │ │ ├── stm32l1xx_hal_tim_ex.h │ │ ├── stm32l1xx_hal_uart.h │ │ ├── stm32l1xx_hal_usart.h │ │ ├── stm32l1xx_hal_wwdg.h │ │ ├── stm32l1xx_ll_adc.h │ │ ├── stm32l1xx_ll_bus.h │ │ ├── stm32l1xx_ll_comp.h │ │ ├── stm32l1xx_ll_cortex.h │ │ ├── stm32l1xx_ll_crc.h │ │ ├── stm32l1xx_ll_dac.h │ │ ├── stm32l1xx_ll_dma.h │ │ ├── stm32l1xx_ll_exti.h │ │ ├── stm32l1xx_ll_fsmc.h │ │ ├── stm32l1xx_ll_gpio.h │ │ ├── stm32l1xx_ll_i2c.h │ │ ├── stm32l1xx_ll_iwdg.h │ │ ├── stm32l1xx_ll_opamp.h │ │ ├── stm32l1xx_ll_pwr.h │ │ ├── stm32l1xx_ll_rcc.h │ │ ├── stm32l1xx_ll_rtc.h │ │ ├── stm32l1xx_ll_sdmmc.h │ │ ├── stm32l1xx_ll_spi.h │ │ ├── stm32l1xx_ll_system.h │ │ ├── stm32l1xx_ll_tim.h │ │ ├── stm32l1xx_ll_usart.h │ │ ├── stm32l1xx_ll_utils.h │ │ └── stm32l1xx_ll_wwdg.h │ └── Src │ │ ├── stm32l1xx_hal.c │ │ ├── stm32l1xx_hal_adc.c │ │ ├── stm32l1xx_hal_adc_ex.c │ │ ├── stm32l1xx_hal_comp.c │ │ ├── stm32l1xx_hal_cortex.c │ │ ├── stm32l1xx_hal_crc.c │ │ ├── stm32l1xx_hal_cryp.c │ │ ├── stm32l1xx_hal_cryp_ex.c │ │ ├── stm32l1xx_hal_dac.c │ │ ├── stm32l1xx_hal_dac_ex.c │ │ ├── stm32l1xx_hal_dma.c │ │ ├── stm32l1xx_hal_flash.c │ │ ├── stm32l1xx_hal_flash_ex.c │ │ ├── stm32l1xx_hal_flash_ramfunc.c │ │ ├── stm32l1xx_hal_gpio.c │ │ ├── stm32l1xx_hal_i2c.c │ │ ├── stm32l1xx_hal_i2s.c │ │ ├── stm32l1xx_hal_irda.c │ │ ├── stm32l1xx_hal_iwdg.c │ │ ├── stm32l1xx_hal_lcd.c │ │ ├── stm32l1xx_hal_msp_template.c │ │ ├── stm32l1xx_hal_nor.c │ │ ├── stm32l1xx_hal_opamp.c │ │ ├── stm32l1xx_hal_opamp_ex.c │ │ ├── stm32l1xx_hal_pcd.c │ │ ├── stm32l1xx_hal_pcd_ex.c │ │ ├── stm32l1xx_hal_pwr.c │ │ ├── stm32l1xx_hal_pwr_ex.c │ │ ├── stm32l1xx_hal_rcc.c │ │ ├── stm32l1xx_hal_rcc_ex.c │ │ ├── stm32l1xx_hal_rtc.c │ │ ├── stm32l1xx_hal_rtc_ex.c │ │ ├── stm32l1xx_hal_sd.c │ │ ├── stm32l1xx_hal_smartcard.c │ │ ├── stm32l1xx_hal_spi.c │ │ ├── stm32l1xx_hal_spi_ex.c │ │ ├── stm32l1xx_hal_sram.c │ │ ├── stm32l1xx_hal_tim.c │ │ ├── stm32l1xx_hal_tim_ex.c │ │ ├── stm32l1xx_hal_uart.c │ │ ├── stm32l1xx_hal_usart.c │ │ ├── stm32l1xx_hal_wwdg.c │ │ ├── stm32l1xx_ll_adc.c │ │ ├── stm32l1xx_ll_comp.c │ │ ├── stm32l1xx_ll_crc.c │ │ ├── stm32l1xx_ll_dac.c │ │ ├── stm32l1xx_ll_dma.c │ │ ├── stm32l1xx_ll_exti.c │ │ ├── stm32l1xx_ll_fsmc.c │ │ ├── stm32l1xx_ll_gpio.c │ │ ├── stm32l1xx_ll_i2c.c │ │ ├── stm32l1xx_ll_opamp.c │ │ ├── stm32l1xx_ll_pwr.c │ │ ├── stm32l1xx_ll_rcc.c │ │ ├── stm32l1xx_ll_rtc.c │ │ ├── stm32l1xx_ll_sdmmc.c │ │ ├── stm32l1xx_ll_spi.c │ │ ├── stm32l1xx_ll_tim.c │ │ ├── stm32l1xx_ll_usart.c │ │ └── stm32l1xx_ll_utils.c │ ├── STM32_USB_Device_Library │ ├── Class │ │ ├── CDC │ │ │ ├── Inc │ │ │ │ └── usbd_cdc.h │ │ │ └── Src │ │ │ │ └── usbd_cdc.c │ │ └── DFU │ │ │ ├── Inc │ │ │ └── usbd_dfu.h │ │ │ └── Src │ │ │ └── usbd_dfu.c │ └── Core │ │ ├── Inc │ │ ├── usbd_core.h │ │ ├── usbd_ctlreq.h │ │ ├── usbd_def.h │ │ └── usbd_ioreq.h │ │ └── Src │ │ ├── usbd_core.c │ │ ├── usbd_ctlreq.c │ │ └── usbd_ioreq.c │ ├── cmsis │ ├── arm_common_tables.h │ ├── arm_const_structs.h │ ├── arm_math.h │ ├── cmsis_armcc.h │ ├── cmsis_armcc_V6.h │ ├── cmsis_gcc.h │ ├── core_cm0.h │ ├── core_cm0plus.h │ ├── core_cm3.h │ ├── core_cm4.h │ ├── core_cm7.h │ ├── core_cmFunc.h │ ├── core_cmInstr.h │ ├── core_cmSimd.h │ ├── core_sc000.h │ └── core_sc300.h │ ├── sysIrqHandlers.c │ ├── utilities.c │ └── utilities.h ├── mac ├── LoRaMac.c ├── LoRaMac.h ├── LoRaMacCrypto.c ├── LoRaMacCrypto.h ├── LoRaMacTest.h └── region │ ├── Region.c │ ├── Region.h │ ├── RegionAS923.c │ ├── RegionAS923.h │ ├── RegionAU915.c │ ├── RegionAU915.h │ ├── RegionCN470.c │ ├── RegionCN470.h │ ├── RegionCN779.c │ ├── RegionCN779.h │ ├── RegionCommon.c │ ├── RegionCommon.h │ ├── RegionEU433.c │ ├── RegionEU433.h │ ├── RegionEU868.c │ ├── RegionEU868.h │ ├── RegionIN865.c │ ├── RegionIN865.h │ ├── RegionKR920.c │ ├── RegionKR920.h │ ├── RegionUS915-Hybrid.c │ ├── RegionUS915-Hybrid.h │ ├── RegionUS915.c │ └── RegionUS915.h ├── peripherals ├── gpio-ioe.c ├── gpio-ioe.h ├── lis3dh.c ├── lis3dh.h ├── mag3110.c ├── mag3110.h ├── mma8451.c ├── mma8451.h ├── mpl3115.c ├── mpl3115.h ├── pam7q.c ├── pam7q.h ├── selector.c ├── selector.h ├── sx1509.c ├── sx1509.h ├── sx9500.c └── sx9500.h ├── radio ├── radio.h ├── sx1272 │ ├── sx1272.c │ ├── sx1272.h │ ├── sx1272Regs-Fsk.h │ └── sx1272Regs-LoRa.h └── sx1276 │ ├── sx1276.c │ ├── sx1276.h │ ├── sx1276Regs-Fsk.h │ └── sx1276Regs-LoRa.h └── system ├── adc.c ├── adc.h ├── crypto ├── aes.c ├── aes.h ├── cmac.c └── cmac.h ├── delay.c ├── delay.h ├── eeprom.c ├── eeprom.h ├── fifo.c ├── fifo.h ├── gpio.c ├── gpio.h ├── gps.c ├── gps.h ├── i2c.c ├── i2c.h ├── serial.h ├── spi.h ├── timer.c ├── timer.h ├── uart.c └── uart.h /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "mag3110.h": "c" 4 | } 5 | } -------------------------------------------------------------------------------- /Keil/classA/EventRecorderStub.scvd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Keil/classA/JLinkSettings.ini: -------------------------------------------------------------------------------- 1 | [BREAKPOINTS] 2 | ShowInfoWin = 1 3 | EnableFlashBP = 2 4 | BPDuringExecution = 0 5 | [CFI] 6 | CFISize = 0x00 7 | CFIAddr = 0x00 8 | [CPU] 9 | OverrideMemMap = 0 10 | AllowSimulation = 1 11 | ScriptFile="" 12 | [FLASH] 13 | CacheExcludeSize = 0x00 14 | CacheExcludeAddr = 0x00 15 | MinNumBytesFlashDL = 0 16 | SkipProgOnCRCMatch = 1 17 | VerifyDownload = 1 18 | AllowCaching = 1 19 | EnableFlashDL = 2 20 | Override = 0 21 | Device="UNSPECIFIED" 22 | [GENERAL] 23 | WorkRAMSize = 0x00 24 | WorkRAMAddr = 0x00 25 | RAMUsageLimit = 0x00 26 | [SWO] 27 | SWOLogFile="" 28 | [MEM] 29 | RdOverrideOrMask = 0x00 30 | RdOverrideAndMask = 0xFFFFFFFF 31 | RdOverrideAddr = 0xFFFFFFFF 32 | WrOverrideOrMask = 0x00 33 | WrOverrideAndMask = 0xFFFFFFFF 34 | WrOverrideAddr = 0xFFFFFFFF 35 | -------------------------------------------------------------------------------- /Keil/classA/Objects/ExtDll.iex: -------------------------------------------------------------------------------- 1 | [EXTDLL] 2 | Count=0 3 | -------------------------------------------------------------------------------- /Keil/classA/Objects/adc-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/adc-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/adc-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/adc-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/adc.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/adc.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/adc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/adc.o -------------------------------------------------------------------------------- /Keil/classA/Objects/aes.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/aes.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/aes.d: -------------------------------------------------------------------------------- 1 | .\objects\aes.o: ..\..\src\system\crypto\aes.c 2 | .\objects\aes.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h 3 | .\objects\aes.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 4 | .\objects\aes.o: ..\..\src\system\crypto\aes.h 5 | -------------------------------------------------------------------------------- /Keil/classA/Objects/aes.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/aes.o -------------------------------------------------------------------------------- /Keil/classA/Objects/board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/classA.axf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/classA.axf -------------------------------------------------------------------------------- /Keil/classA/Objects/classA.build_log.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/classA.build_log.htm -------------------------------------------------------------------------------- /Keil/classA/Objects/classA.lnp: -------------------------------------------------------------------------------- 1 | --cpu Cortex-M3 2 | ".\objects\main.o" 3 | ".\objects\adc-board.o" 4 | ".\objects\board.o" 5 | ".\objects\gpio-board.o" 6 | ".\objects\gps-board.o" 7 | ".\objects\i2c-board.o" 8 | ".\objects\rtc-board.o" 9 | ".\objects\spi-board.o" 10 | ".\objects\sx1276-board.o" 11 | ".\objects\uart-board.o" 12 | ".\objects\system_stm32l1xx.o" 13 | ".\objects\startup_stm32l151xb.o" 14 | ".\objects\stm32l1xx_hal.o" 15 | ".\objects\stm32l1xx_hal_adc.o" 16 | ".\objects\stm32l1xx_hal_adc_ex.o" 17 | ".\objects\stm32l1xx_hal_dma.o" 18 | ".\objects\stm32l1xx_hal_gpio.o" 19 | ".\objects\stm32l1xx_hal_i2c.o" 20 | ".\objects\stm32l1xx_hal_pwr.o" 21 | ".\objects\stm32l1xx_hal_pwr_ex.o" 22 | ".\objects\stm32l1xx_hal_rcc.o" 23 | ".\objects\stm32l1xx_hal_rcc_ex.o" 24 | ".\objects\stm32l1xx_hal_rtc.o" 25 | ".\objects\stm32l1xx_hal_rtc_ex.o" 26 | ".\objects\stm32l1xx_hal_spi.o" 27 | ".\objects\stm32l1xx_hal_spi_ex.o" 28 | ".\objects\stm32l1xx_hal_uart.o" 29 | ".\objects\stm32l1xx_hal_usart.o" 30 | ".\objects\stm32l1xx_hal_cortex.o" 31 | ".\objects\sysirqhandlers.o" 32 | ".\objects\utilities.o" 33 | ".\objects\loramac.o" 34 | ".\objects\loramaccrypto.o" 35 | ".\objects\region.o" 36 | ".\objects\regionas923.o" 37 | ".\objects\regionau915.o" 38 | ".\objects\regioncommon.o" 39 | ".\objects\regioneu868.o" 40 | ".\objects\regionin865.o" 41 | ".\objects\regionkr920.o" 42 | ".\objects\regionus915.o" 43 | ".\objects\regionus915-hybrid.o" 44 | ".\objects\lis3dh.o" 45 | ".\objects\sx1276.o" 46 | ".\objects\adc.o" 47 | ".\objects\delay.o" 48 | ".\objects\fifo.o" 49 | ".\objects\gpio.o" 50 | ".\objects\gps.o" 51 | ".\objects\i2c.o" 52 | ".\objects\timer.o" 53 | ".\objects\uart.o" 54 | ".\objects\aes.o" 55 | ".\objects\cmac.o" 56 | --library_type=microlib --strict --scatter ".\Objects\classA.sct" 57 | --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols 58 | --info sizes --info totals --info unused --info veneers 59 | --list ".\Listings\classA.map" -o .\Objects\classA.axf -------------------------------------------------------------------------------- /Keil/classA/Objects/classA.sct: -------------------------------------------------------------------------------- 1 | ; ************************************************************* 2 | ; *** Scatter-Loading Description File generated by uVision *** 3 | ; ************************************************************* 4 | 5 | LR_IROM1 0x08000000 0x00020000 { ; load region size_region 6 | ER_IROM1 0x08000000 0x00020000 { ; load address = execution address 7 | *.o (RESET, +First) 8 | *(InRoot$$Sections) 9 | .ANY (+RO) 10 | } 11 | RW_IRAM1 0x20000000 0x00004000 { ; RW data 12 | .ANY (+RW +ZI) 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /Keil/classA/Objects/classA_sct.Bak: -------------------------------------------------------------------------------- 1 | ; ************************************************************* 2 | ; *** Scatter-Loading Description File generated by uVision *** 3 | ; ************************************************************* 4 | 5 | LR_IROM1 0x08000000 { ; load region 6 | ER_IROM1 0x08000000 0x00020000 { ; load address = execution address 7 | *.o (RESET, +First) 8 | *(InRoot$$Sections) 9 | .ANY (+RO) 10 | } 11 | RW_IRAM1 0x20000000 0x00004000 { ; RW data 12 | .ANY (+RW +ZI) 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /Keil/classA/Objects/cmac.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/cmac.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/cmac.d: -------------------------------------------------------------------------------- 1 | .\objects\cmac.o: ..\..\src\system\crypto\cmac.c 2 | .\objects\cmac.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 3 | .\objects\cmac.o: ..\..\src\system\crypto\aes.h 4 | .\objects\cmac.o: ..\..\src\system\crypto\cmac.h 5 | .\objects\cmac.o: ..\..\src\boards\mcu\stm32\utilities.h 6 | -------------------------------------------------------------------------------- /Keil/classA/Objects/cmac.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/cmac.o -------------------------------------------------------------------------------- /Keil/classA/Objects/delay.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/delay.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/delay.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/delay.o -------------------------------------------------------------------------------- /Keil/classA/Objects/fifo.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/fifo.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/fifo.d: -------------------------------------------------------------------------------- 1 | .\objects\fifo.o: ..\..\src\system\fifo.c 2 | .\objects\fifo.o: ..\..\src\system\fifo.h 3 | .\objects\fifo.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdbool.h 4 | .\objects\fifo.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 5 | -------------------------------------------------------------------------------- /Keil/classA/Objects/fifo.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/fifo.o -------------------------------------------------------------------------------- /Keil/classA/Objects/gpio-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gpio-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/gpio-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gpio-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/gpio.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gpio.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/gpio.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gpio.o -------------------------------------------------------------------------------- /Keil/classA/Objects/gps-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gps-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/gps-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gps-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/gps.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gps.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/gps.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/gps.o -------------------------------------------------------------------------------- /Keil/classA/Objects/i2c-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/i2c-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/i2c-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/i2c-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/i2c.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/i2c.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/i2c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/i2c.o -------------------------------------------------------------------------------- /Keil/classA/Objects/lis3dh.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/lis3dh.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/lis3dh.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/lis3dh.o -------------------------------------------------------------------------------- /Keil/classA/Objects/loramac.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/loramac.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/loramac.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/loramac.o -------------------------------------------------------------------------------- /Keil/classA/Objects/loramaccrypto.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/loramaccrypto.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/loramaccrypto.d: -------------------------------------------------------------------------------- 1 | .\objects\loramaccrypto.o: ..\..\src\mac\LoRaMacCrypto.c 2 | .\objects\loramaccrypto.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h 3 | .\objects\loramaccrypto.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 4 | .\objects\loramaccrypto.o: ..\..\src\boards\mcu\stm32\utilities.h 5 | .\objects\loramaccrypto.o: ..\..\src\system\crypto\aes.h 6 | .\objects\loramaccrypto.o: ..\..\src\system\crypto\cmac.h 7 | .\objects\loramaccrypto.o: ..\..\src\mac\LoRaMacCrypto.h 8 | -------------------------------------------------------------------------------- /Keil/classA/Objects/loramaccrypto.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/loramaccrypto.o -------------------------------------------------------------------------------- /Keil/classA/Objects/main.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/main.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/main.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/main.o -------------------------------------------------------------------------------- /Keil/classA/Objects/region.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/region.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/region.d: -------------------------------------------------------------------------------- 1 | .\objects\region.o: ..\..\src\mac\region\Region.c 2 | .\objects\region.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdbool.h 3 | .\objects\region.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\string.h 4 | .\objects\region.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 5 | .\objects\region.o: ..\..\src\system\timer.h 6 | .\objects\region.o: ..\..\src\mac\LoRaMac.h 7 | .\objects\region.o: ..\..\src\mac\region\Region.h 8 | .\objects\region.o: ..\..\src\mac\region\RegionEU868.h 9 | -------------------------------------------------------------------------------- /Keil/classA/Objects/region.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/region.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regionas923.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionas923.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regionas923.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionas923.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regionau915.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionau915.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regionau915.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionau915.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regioncommon.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regioncommon.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regioncommon.d: -------------------------------------------------------------------------------- 1 | .\objects\regioncommon.o: ..\..\src\mac\region\RegionCommon.c 2 | .\objects\regioncommon.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdbool.h 3 | .\objects\regioncommon.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\string.h 4 | .\objects\regioncommon.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 5 | .\objects\regioncommon.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\math.h 6 | .\objects\regioncommon.o: ..\..\src\system\timer.h 7 | .\objects\regioncommon.o: ..\..\src\boards\mcu\stm32\utilities.h 8 | .\objects\regioncommon.o: ..\..\src\mac\LoRaMac.h 9 | .\objects\regioncommon.o: ..\..\src\mac\region\RegionCommon.h 10 | -------------------------------------------------------------------------------- /Keil/classA/Objects/regioncommon.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regioncommon.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regioneu868.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regioneu868.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regioneu868.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regioneu868.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regionin865.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionin865.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regionin865.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionin865.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regionkr920.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionkr920.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regionkr920.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionkr920.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regionus915-hybrid.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionus915-hybrid.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regionus915-hybrid.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionus915-hybrid.o -------------------------------------------------------------------------------- /Keil/classA/Objects/regionus915.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionus915.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/regionus915.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/regionus915.o -------------------------------------------------------------------------------- /Keil/classA/Objects/rtc-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/rtc-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/rtc-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/rtc-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/spi-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/spi-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/spi-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/spi-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/startup_stm32l151xb.d: -------------------------------------------------------------------------------- 1 | .\objects\startup_stm32l151xb.o: ..\..\src\boards\RAK811BreakBoard\cmsis\arm-std\startup_stm32l151xb.s 2 | -------------------------------------------------------------------------------- /Keil/classA/Objects/startup_stm32l151xb.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/startup_stm32l151xb.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal.c 2 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_adc.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_adc.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_adc.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal_adc.c 2 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal_adc.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal_adc.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal_adc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_adc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_adc.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_adc_ex.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_adc_ex.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_adc_ex.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_adc_ex.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_cortex.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_cortex.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_cortex.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_cortex.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_dma.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_dma.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_dma.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal_dma.c 2 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal_dma.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal_dma.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal_dma.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_dma.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_dma.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_gpio.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_gpio.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_gpio.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_gpio.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_i2c.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_i2c.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_i2c.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal_i2c.c 2 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal_i2c.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal_i2c.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal_i2c.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_i2c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_i2c.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_pwr.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_pwr.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_pwr.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal_pwr.c 2 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal_pwr.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal_pwr.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal_pwr.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_pwr.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_pwr.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_pwr_ex.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_pwr_ex.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_pwr_ex.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_pwr_ex.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rcc.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rcc.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rcc.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal_rcc.c 2 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal_rcc.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal_rcc.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal_rcc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rcc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rcc.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rcc_ex.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rcc_ex.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rcc_ex.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rcc_ex.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rtc.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rtc.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rtc.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal_rtc.c 2 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal_rtc.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal_rtc.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal_rtc.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rtc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rtc.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rtc_ex.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rtc_ex.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_rtc_ex.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_rtc_ex.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_spi.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_spi.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_spi.d: -------------------------------------------------------------------------------- 1 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Src\stm32l1xx_hal_spi.c 2 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 3 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 4 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 5 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 6 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 7 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 8 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 9 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 10 | .\objects\stm32l1xx_hal_spi.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 11 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 12 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 13 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 14 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 15 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 16 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\stm32l1xx_hal_spi.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\stm32l1xx_hal_spi.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_spi.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_spi.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_spi_ex.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_spi_ex.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_spi_ex.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_spi_ex.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_uart.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_uart.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_uart.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_uart.o -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_usart.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_usart.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/stm32l1xx_hal_usart.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/stm32l1xx_hal_usart.o -------------------------------------------------------------------------------- /Keil/classA/Objects/sx1276-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/sx1276-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/sx1276-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/sx1276-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/sx1276.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/sx1276.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/sx1276.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/sx1276.o -------------------------------------------------------------------------------- /Keil/classA/Objects/sysirqhandlers.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/sysirqhandlers.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/sysirqhandlers.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/sysirqhandlers.o -------------------------------------------------------------------------------- /Keil/classA/Objects/system_stm32l1xx.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/system_stm32l1xx.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/system_stm32l1xx.d: -------------------------------------------------------------------------------- 1 | .\objects\system_stm32l1xx.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.c 2 | .\objects\system_stm32l1xx.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 3 | .\objects\system_stm32l1xx.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l151xb.h 4 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\cmsis\core_cm3.h 5 | .\objects\system_stm32l1xx.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h 6 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmInstr.h 7 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\cmsis\cmsis_armcc.h 8 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\cmsis\core_cmFunc.h 9 | .\objects\system_stm32l1xx.o: ..\..\src\boards\RAK811BreakBoard\cmsis\system_stm32l1xx.h 10 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal.h 11 | .\objects\system_stm32l1xx.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx_hal_conf.h 12 | .\objects\system_stm32l1xx.o: ..\..\src\boards\RAK811BreakBoard\cmsis\mxconstants.h 13 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc.h 14 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_def.h 15 | .\objects\system_stm32l1xx.o: ..\..\src\boards\RAK811BreakBoard\cmsis\stm32l1xx.h 16 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h 17 | .\objects\system_stm32l1xx.o: D:\Program Files\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h 18 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rcc_ex.h 19 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio.h 20 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_gpio_ex.h 21 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_dma.h 22 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_cortex.h 23 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc.h 24 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_adc_ex.h 25 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash.h 26 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ex.h 27 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_flash_ramfunc.h 28 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_i2c.h 29 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr.h 30 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pwr_ex.h 31 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc.h 32 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_rtc_ex.h 33 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi.h 34 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_spi_ex.h 35 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_uart.h 36 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_usart.h 37 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd.h 38 | .\objects\system_stm32l1xx.o: ..\..\src\boards\mcu\stm32\STM32L1xx_HAL_Driver\Inc\stm32l1xx_hal_pcd_ex.h 39 | -------------------------------------------------------------------------------- /Keil/classA/Objects/system_stm32l1xx.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/system_stm32l1xx.o -------------------------------------------------------------------------------- /Keil/classA/Objects/timer.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/timer.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/timer.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/timer.o -------------------------------------------------------------------------------- /Keil/classA/Objects/uart-board.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/uart-board.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/uart-board.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/uart-board.o -------------------------------------------------------------------------------- /Keil/classA/Objects/uart.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/uart.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/uart.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/uart.o -------------------------------------------------------------------------------- /Keil/classA/Objects/utilities.crf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/utilities.crf -------------------------------------------------------------------------------- /Keil/classA/Objects/utilities.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/Keil/classA/Objects/utilities.o -------------------------------------------------------------------------------- /Keil/ping-pong/JLinkSettings.ini: -------------------------------------------------------------------------------- 1 | [BREAKPOINTS] 2 | ShowInfoWin = 1 3 | EnableFlashBP = 2 4 | BPDuringExecution = 0 5 | [CFI] 6 | CFISize = 0x00 7 | CFIAddr = 0x00 8 | [CPU] 9 | OverrideMemMap = 0 10 | AllowSimulation = 1 11 | ScriptFile="" 12 | [FLASH] 13 | CacheExcludeSize = 0x00 14 | CacheExcludeAddr = 0x00 15 | MinNumBytesFlashDL = 0 16 | SkipProgOnCRCMatch = 1 17 | VerifyDownload = 1 18 | AllowCaching = 1 19 | EnableFlashDL = 2 20 | Override = 0 21 | Device="UNSPECIFIED" 22 | [GENERAL] 23 | WorkRAMSize = 0x00 24 | WorkRAMAddr = 0x00 25 | RAMUsageLimit = 0x00 26 | [SWO] 27 | SWOLogFile="" 28 | [MEM] 29 | RdOverrideOrMask = 0x00 30 | RdOverrideAndMask = 0xFFFFFFFF 31 | RdOverrideAddr = 0xFFFFFFFF 32 | WrOverrideOrMask = 0x00 33 | WrOverrideAndMask = 0xFFFFFFFF 34 | WrOverrideAddr = 0xFFFFFFFF 35 | -------------------------------------------------------------------------------- /doc/08. 数据类型类别.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/doc/08. 数据类型类别.xlsx -------------------------------------------------------------------------------- /doc/2017年地方高校国家级大学生创新创业训练计划项目名单+(地方).xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/doc/2017年地方高校国家级大学生创新创业训练计划项目名单+(地方).xls -------------------------------------------------------------------------------- /img/Data_Rate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/Data_Rate.png -------------------------------------------------------------------------------- /img/Illustration of the channel assignment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/Illustration of the channel assignment.png -------------------------------------------------------------------------------- /img/LoRa_Modem_Calculator_Tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/LoRa_Modem_Calculator_Tool.png -------------------------------------------------------------------------------- /img/Network stack of a normal LoRa node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/Network stack of a normal LoRa node.png -------------------------------------------------------------------------------- /img/Node_red_aliyun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/Node_red_aliyun.png -------------------------------------------------------------------------------- /img/Node_red_led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/Node_red_led.png -------------------------------------------------------------------------------- /img/SX1278.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/SX1278.png -------------------------------------------------------------------------------- /img/application_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/application_key.png -------------------------------------------------------------------------------- /img/nide-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/nide-red.png -------------------------------------------------------------------------------- /img/树莓派键盘.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/树莓派键盘.png -------------------------------------------------------------------------------- /img/网关1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/img/网关1.png -------------------------------------------------------------------------------- /src/apps/classA/Commissioning.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2015 Semtech 8 | 9 | Description: End device commissioning parameters 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __LORA_COMMISSIONING_H__ 16 | #define __LORA_COMMISSIONING_H__ 17 | 18 | /*! 19 | * When set to 1 the application uses the Over-the-Air activation procedure 20 | * When set to 0 the application uses the Personalization activation procedure 21 | */ 22 | #define OVER_THE_AIR_ACTIVATION 1 23 | 24 | /*! 25 | * Indicates if the end-device is to be connected to a private or public network 26 | */ 27 | #define LORAWAN_PUBLIC_NETWORK true 28 | 29 | /*! 30 | * IEEE Organizationally Unique Identifier ( OUI ) (big endian) 31 | * \remark This is unique to a company or organization 32 | */ 33 | #define IEEE_OUI 0x60, 0xC5, 0xA8 34 | 35 | /*! 36 | * Mote device IEEE EUI (big endian) 37 | * 38 | * \remark In this application the value is automatically generated by calling 39 | * BoardGetUniqueId function 40 | */ 41 | #define LORAWAN_DEVICE_EUI { IEEE_OUI, 0xFF, 0xFE, 0xFD, 0xFC, 0x02 } 42 | //Modifications in the case of mass production 43 | /*! 44 | * Application IEEE EUI (big endian) 45 | */ 46 | #define LORAWAN_APPLICATION_EUI { 0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x00, 0x88, 0xA8 } 47 | //70b3d57ef00046a4 70B3D57E D0007DFA 48 | /*! 49 | * AES encryption/decryption cipher application key 50 | */ 51 | #define LORAWAN_APPLICATION_KEY { 0x73, 0xB6, 0x49, 0xCD, 0xA4, 0x90, 0x1E, 0x9F, 0xBC, 0xE5, 0xCD, 0x68, 0x68, 0xB6, 0x14, 0xC8 } 52 | //Modifications in the case of mass production 53 | /*! 54 | * Current network ID 55 | */ 56 | #define LORAWAN_NETWORK_ID ( uint32_t )0 57 | 58 | /*! 59 | * Device address on the network (big endian) 60 | * 61 | * \remark In this application the value is automatically generated using 62 | * a pseudo random generator seeded with a value derived from 63 | * BoardUniqueId value if LORAWAN_DEVICE_ADDRESS is set to 0 64 | */ 65 | #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x00000000 66 | 67 | /*! 68 | * AES encryption/decryption cipher network session key 69 | */ 70 | #define LORAWAN_NWKSKEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } 71 | 72 | /*! 73 | * AES encryption/decryption cipher application session key 74 | */ 75 | #define LORAWAN_APPSKEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } 76 | 77 | #endif // __LORA_COMMISSIONING_H__ 78 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/adc-board.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2016 Semtech 8 | 9 | Description: Board ADC driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | #include "adc-board.h" 17 | 18 | ADC_HandleTypeDef AdcHandle; 19 | 20 | void AdcMcuInit( Adc_t *obj, PinNames adcInput ) 21 | { 22 | AdcHandle.Instance = ( ADC_TypeDef* )ADC1_BASE; 23 | 24 | __HAL_RCC_ADC1_CLK_ENABLE( ); 25 | 26 | HAL_ADC_DeInit( &AdcHandle ); 27 | 28 | if( adcInput != NC ) 29 | { 30 | GpioInit( &obj->AdcInput, adcInput, PIN_ANALOGIC, PIN_PUSH_PULL, PIN_NO_PULL, 0 ); 31 | } 32 | } 33 | 34 | void AdcMcuConfig( void ) 35 | { 36 | // Configure ADC 37 | AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; 38 | AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT; 39 | AdcHandle.Init.ContinuousConvMode = DISABLE; 40 | AdcHandle.Init.DiscontinuousConvMode = DISABLE; 41 | AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; 42 | AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T6_TRGO; 43 | AdcHandle.Init.DMAContinuousRequests = DISABLE; 44 | AdcHandle.Init.EOCSelection = ADC_EOC_SINGLE_CONV; 45 | AdcHandle.Init.NbrOfConversion = 1; 46 | AdcHandle.Init.LowPowerAutoWait = DISABLE; 47 | AdcHandle.Init.LowPowerAutoPowerOff = DISABLE; 48 | HAL_ADC_Init( &AdcHandle ); 49 | } 50 | 51 | uint16_t AdcMcuReadChannel( Adc_t *obj, uint32_t channel ) 52 | { 53 | ADC_ChannelConfTypeDef adcConf = { 0 }; 54 | uint16_t adcData = 0; 55 | 56 | // Enable HSI 57 | __HAL_RCC_HSI_ENABLE( ); 58 | 59 | // Wait till HSI is ready 60 | while( __HAL_RCC_GET_FLAG( RCC_FLAG_HSIRDY ) == RESET ) 61 | { 62 | } 63 | 64 | __HAL_RCC_ADC1_CLK_ENABLE( ); 65 | 66 | adcConf.Channel = channel; 67 | adcConf.Rank = ADC_REGULAR_RANK_1; 68 | adcConf.SamplingTime = ADC_SAMPLETIME_192CYCLES; 69 | 70 | HAL_ADC_ConfigChannel( &AdcHandle, &adcConf ); 71 | 72 | // Enable ADC1 73 | __HAL_ADC_ENABLE( &AdcHandle ); 74 | 75 | // Start ADC Software Conversion 76 | HAL_ADC_Start( &AdcHandle ); 77 | 78 | HAL_ADC_PollForConversion( &AdcHandle, HAL_MAX_DELAY ); 79 | 80 | adcData = HAL_ADC_GetValue( &AdcHandle ); 81 | 82 | __HAL_ADC_DISABLE( &AdcHandle ); 83 | 84 | if( ( adcConf.Channel == ADC_CHANNEL_TEMPSENSOR ) || ( adcConf.Channel == ADC_CHANNEL_VREFINT ) ) 85 | { 86 | HAL_ADC_DeInit( &AdcHandle ); 87 | } 88 | __HAL_RCC_ADC1_CLK_DISABLE( ); 89 | 90 | // Disable HSI 91 | __HAL_RCC_HSI_DISABLE( ); 92 | 93 | return adcData; 94 | } 95 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/adc-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2016 Semtech 8 | 9 | Description: Board ADC driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __ADC_MCU_H__ 16 | #define __ADC_MCU_H__ 17 | 18 | /*! 19 | * \brief Initializes the ADC object and MCU peripheral 20 | * 21 | * \param [IN] obj ADC object 22 | * \param [IN] adcInput ADC input pin 23 | */ 24 | void AdcMcuInit( Adc_t *obj, PinNames adcInput ); 25 | 26 | /*! 27 | * \brief Initializes the ADC internal parameters 28 | */ 29 | void AdcMcuConfig( void ); 30 | 31 | /*! 32 | * \brief Reads the value of the given channel 33 | * 34 | * \param [IN] obj ADC object 35 | * \param [IN] channel ADC input channel 36 | */ 37 | uint16_t AdcMcuReadChannel( Adc_t *obj, uint32_t channel ); 38 | 39 | #endif // __ADC_MCU_H__ 40 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/cmsis/arm-gcc/STM32L151XBA_FLASH.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/cmsis/arm-gcc/STM32L151XBA_FLASH.ld -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/cmsis/arm-gcc/STM32L151XB_FLASH.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/cmsis/arm-gcc/STM32L151XB_FLASH.ld -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/cmsis/mxconstants.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * File Name : mxconstants.h 4 | * Description : This file contains the common defines of the application 5 | ****************************************************************************** 6 | * 7 | * COPYRIGHT(c) 2016 STMicroelectronics 8 | * 9 | * Redistribution and use in source and binary forms, with or without modification, 10 | * are permitted provided that the following conditions are met: 11 | * 1. Redistributions of source code must retain the above copyright notice, 12 | * this list of conditions and the following disclaimer. 13 | * 2. Redistributions in binary form must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 17 | * may be used to endorse or promote products derived from this software 18 | * without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | * 31 | ****************************************************************************** 32 | */ 33 | /* Define to prevent recursive inclusion -------------------------------------*/ 34 | #ifndef __MXCONSTANT_H 35 | #define __MXCONSTANT_H 36 | /* Includes ------------------------------------------------------------------*/ 37 | 38 | /* USER CODE BEGIN Includes */ 39 | 40 | /* USER CODE END Includes */ 41 | 42 | /* Private define ------------------------------------------------------------*/ 43 | 44 | /* USER CODE BEGIN Private defines */ 45 | 46 | /* USER CODE END Private defines */ 47 | 48 | /** 49 | * @} 50 | */ 51 | 52 | /** 53 | * @} 54 | */ 55 | 56 | #endif /* __MXCONSTANT_H */ 57 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 58 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/cmsis/stm32l151xb.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/cmsis/stm32l151xb.h -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/cmsis/stm32l151xba.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/cmsis/stm32l151xba.h -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/cmsis/stm32l1xx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/cmsis/stm32l1xx.h -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/eeprom-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Timer objects and scheduling management 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __EEPROM_MCU_H__ 16 | #define __EEPROM_MCU_H__ 17 | 18 | /*! 19 | * Writes the given buffer to the EEPROM at the specified address. 20 | * 21 | * \param[IN] addr EEPROM address to write to 22 | * \param[IN] buffer Pointer to the buffer to be written. 23 | * \param[IN] size Size of the buffer to be written. 24 | * \retval status [SUCCESS, FAIL] 25 | */ 26 | uint8_t EepromMcuWriteBuffer( uint16_t addr, uint8_t *buffer, uint16_t size ); 27 | 28 | /*! 29 | * Reads the EEPROM at the specified address to the given buffer. 30 | * 31 | * \param[IN] addr EEPROM address to read from 32 | * \param[OUT] buffer Pointer to the buffer to be written with read data. 33 | * \param[IN] size Size of the buffer to be read. 34 | * \retval status [SUCCESS, FAIL] 35 | */ 36 | uint8_t EepromMcuReadBuffer( uint16_t addr, uint8_t *buffer, uint16_t size ); 37 | 38 | /*! 39 | * Sets the device address. 40 | * 41 | * \remark Useful for I2C external EEPROMS 42 | * 43 | * \param[IN] addr External EEPROM address 44 | */ 45 | void EepromMcuSetDeviceAddr( uint8_t addr ); 46 | 47 | /*! 48 | * Gets the current device address. 49 | * 50 | * \remark Useful for I2C external EEPROMS 51 | * 52 | * \retval addr External EEPROM address 53 | */ 54 | uint8_t EepromMcuGetDeviceAddr( void ); 55 | 56 | #endif // __EEPROM_MCU_H__ 57 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/gpio-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Bleeper board GPIO driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __GPIO_MCU_H__ 16 | #define __GPIO_MCU_H__ 17 | 18 | /*! 19 | * \brief Initializes the given GPIO object 20 | * 21 | * \param [IN] obj Pointer to the GPIO object to be initialized 22 | * \param [IN] pin Pin name ( please look in pinName-board.h file ) 23 | * \param [IN] mode Pin mode [PIN_INPUT, PIN_OUTPUT, 24 | * PIN_ALTERNATE_FCT, PIN_ANALOGIC] 25 | * \param [IN] config Pin config [PIN_PUSH_PULL, PIN_OPEN_DRAIN] 26 | * \param [IN] type Pin type [PIN_NO_PULL, PIN_PULL_UP, PIN_PULL_DOWN] 27 | * \param [IN] value Default output value at initialization 28 | */ 29 | void GpioMcuInit( Gpio_t *obj, PinNames pin, PinModes mode, PinConfigs config, PinTypes type, uint32_t value ); 30 | 31 | /*! 32 | * \brief GPIO IRQ Initialization 33 | * 34 | * \param [IN] obj Pointer to the GPIO object to be initialized 35 | * \param [IN] irqMode IRQ mode [NO_IRQ, IRQ_RISING_EDGE, 36 | * IRQ_FALLING_EDGE, IRQ_RISING_FALLING_EDGE] 37 | * \param [IN] irqPriority IRQ priority [IRQ_VERY_LOW_PRIORITY, IRQ_LOW_PRIORITY 38 | * IRQ_MEDIUM_PRIORITY, IRQ_HIGH_PRIORITY 39 | * IRQ_VERY_HIGH_PRIORITY] 40 | * \param [IN] irqHandler Callback function pointer 41 | */ 42 | void GpioMcuSetInterrupt( Gpio_t *obj, IrqModes irqMode, IrqPriorities irqPriority, GpioIrqHandler *irqHandler ); 43 | 44 | /*! 45 | * \brief GPIO IRQ DeInitialization 46 | * 47 | * \param [IN] obj Pointer to the GPIO object to be de-initialized 48 | */ 49 | void GpioMcuRemoveInterrupt( Gpio_t *obj ); 50 | 51 | /*! 52 | * \brief Writes the given value to the GPIO output 53 | * 54 | * \param [IN] obj Pointer to the GPIO object 55 | * \param [IN] value New GPIO output value 56 | */ 57 | void GpioMcuWrite( Gpio_t *obj, uint32_t value ); 58 | 59 | /*! 60 | * \brief Toggle the value to the GPIO output 61 | * 62 | * \param [IN] obj Pointer to the GPIO object 63 | */ 64 | void GpioMcuToggle( Gpio_t *obj ); 65 | 66 | /*! 67 | * \brief Reads the current GPIO input value 68 | * 69 | * \param [IN] obj Pointer to the GPIO object 70 | * \retval value Current GPIO input value 71 | */ 72 | uint32_t GpioMcuRead( Gpio_t *obj ); 73 | 74 | #endif // __GPIO_MCU_H__ 75 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/gps-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Generic driver for GPS receiver 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __GPS_BOARD_H__ 16 | #define __GPS_BOARD_H__ 17 | 18 | /*! 19 | * Select the edge of the PPS signal which is used to start the 20 | * reception of data on the UART. Depending of the GPS, the PPS 21 | * signal may go low or high to indicate the presence of data 22 | */ 23 | typedef enum PpsTrigger_s 24 | { 25 | PpsTriggerIsRising = 0, 26 | PpsTriggerIsFalling, 27 | }PpsTrigger_t; 28 | 29 | /*! 30 | * \brief Low level handling of the PPS signal from the GPS receiver 31 | */ 32 | void GpsMcuOnPpsSignal( void ); 33 | 34 | /*! 35 | * \brief Invert the IRQ trigger edge on the PPS signal 36 | */ 37 | void GpsMcuInvertPpsTrigger( void ); 38 | 39 | /*! 40 | * \brief Low level Initialisation of the UART and IRQ for the GPS 41 | */ 42 | void GpsMcuInit( void ); 43 | 44 | /*! 45 | * \brief Switch ON the GPS 46 | */ 47 | void GpsMcuStart( void ); 48 | 49 | /*! 50 | * \brief Switch OFF the GPS 51 | */ 52 | void GpsMcuStop( void ); 53 | 54 | /*! 55 | * Updates the GPS status 56 | */ 57 | void GpsMcuProcess( void ); 58 | 59 | /*! 60 | * \brief IRQ handler for the UART receiver 61 | */ 62 | void GpsMcuIrqNotify( UartNotifyId_t id ); 63 | 64 | #endif // __GPS_BOARD_H__ 65 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/i2c-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Bleeper board I2C driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __I2C_MCU_H__ 16 | #define __I2C_MCU_H__ 17 | 18 | /*! 19 | * Operation Mode for the I2C 20 | */ 21 | typedef enum 22 | { 23 | MODE_I2C = 0, 24 | MODE_SMBUS_DEVICE, 25 | MODE_SMBUS_HOST 26 | }I2cMode; 27 | 28 | /*! 29 | * I2C signal duty cycle 30 | */ 31 | typedef enum 32 | { 33 | I2C_DUTY_CYCLE_2 = 0, 34 | I2C_DUTY_CYCLE_16_9 35 | }I2cDutyCycle; 36 | 37 | /*! 38 | * I2C select if the acknowledge in after the 7th or 10th bit 39 | */ 40 | typedef enum 41 | { 42 | I2C_ACK_ADD_7_BIT = 0, 43 | I2C_ACK_ADD_10_BIT 44 | }I2cAckAddrMode; 45 | 46 | /*! 47 | * Internal device address size 48 | */ 49 | typedef enum 50 | { 51 | I2C_ADDR_SIZE_8 = 0, 52 | I2C_ADDR_SIZE_16, 53 | }I2cAddrSize; 54 | 55 | /*! 56 | * \brief Initializes the I2C object and MCU peripheral 57 | * 58 | * \param [IN] obj I2C object 59 | * \param [IN] scl I2C Scl pin name to be used 60 | * \param [IN] sda I2C Sda pin name to be used 61 | */ 62 | void I2cMcuInit( I2c_t *obj, PinNames scl, PinNames sda ); 63 | 64 | /*! 65 | * \brief Initializes the I2C object and MCU peripheral 66 | * 67 | * \param [IN] obj I2C object 68 | * \param [IN] mode Mode of operation for the I2C Bus 69 | * \param [IN] dutyCycle Signal duty cycle 70 | * \param [IN] I2cAckEnable Enable or Disable to ack 71 | * \param [IN] AckAddrMode 7bit or 10 bit addressing 72 | * \param [IN] I2cFrequency I2C bus clock frequency 73 | */ 74 | void I2cMcuFormat( I2c_t *obj, I2cMode mode, I2cDutyCycle dutyCycle, bool I2cAckEnable, I2cAckAddrMode AckAddrMode, uint32_t I2cFrequency ); 75 | 76 | /*! 77 | * \brief DeInitializes the I2C object and MCU peripheral 78 | * 79 | * \param [IN] obj I2C object 80 | */ 81 | void I2cMcuDeInit( I2c_t *obj ); 82 | 83 | /*! 84 | * \brief Write several data to the I2C device 85 | * 86 | * \param [IN] obj I2C object 87 | * \param [IN] deviceAddr device address 88 | * \param [IN] addr register address 89 | * \param [IN] buffer data buffer to write 90 | * \param [IN] size number of data byte to write 91 | */ 92 | uint8_t I2cMcuWriteBuffer( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *buffer, uint16_t size ); 93 | 94 | /*! 95 | * \brief Read several data byte from the I2C device 96 | * 97 | * \param [IN] obj I2C object 98 | * \param [IN] deviceAddr device address 99 | * \param [IN] addr register address 100 | * \param [IN] buffer data buffer used to store the data read 101 | * \param [IN] size number of data byte to read 102 | */ 103 | uint8_t I2cMcuReadBuffer( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *buffer, uint16_t size ); 104 | 105 | /*! 106 | * \brief Waits until the given device is in standby mode 107 | * 108 | * \param [IN] obj I2C object 109 | * \param [IN] deviceAddr device address 110 | */ 111 | uint8_t I2cMcuWaitStandbyState( I2c_t *obj, uint8_t deviceAddr ); 112 | 113 | /*! 114 | * \brief Sets the internal device address size 115 | * 116 | * \param [IN] obj I2C object 117 | * \param [IN] addrSize Internal address size 118 | */ 119 | void I2cSetAddrSize( I2c_t *obj, I2cAddrSize addrSize ); 120 | 121 | #endif // __I2C_MCU_H__ 122 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/pinName-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Bleeper STM32L151RD microcontroller pins definition 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __PIN_NAME_MCU_H__ 16 | #define __PIN_NAME_MCU_H__ 17 | 18 | /*! 19 | * STM32 Pin Names 20 | */ 21 | #define MCU_PINS \ 22 | PA_0 = 0, PA_1, PA_2, PA_3, PA_4, PA_5, PA_6, PA_7, PA_8, PA_9, PA_10, PA_11, PA_12, PA_13, PA_14, PA_15, \ 23 | PB_0, PB_1, PB_2, PB_3, PB_4, PB_5, PB_6, PB_7, PB_8, PB_9, PB_10, PB_11, PB_12, PB_13, PB_14, PB_15, \ 24 | PC_0, PC_1, PC_2, PC_3, PC_4, PC_5, PC_6, PC_7, PC_8, PC_9, PC_10, PC_11, PC_12, PC_13, PC_14, PC_15, \ 25 | PD_0, PD_1, PD_2, PD_3, PD_4, PD_5, PD_6, PD_7, PD_8, PD_9, PD_10, PD_11, PD_12, PD_13, PD_14, PD_15, \ 26 | PE_0, PE_1, PE_2, PE_3, PE_4, PE_5, PE_6, PE_7, PE_8, PE_9, PE_10, PE_11, PE_12, PE_13, PE_14, PE_15, \ 27 | PF_0, PF_1, PF_2, PF_3, PF_4, PF_5, PF_6, PF_7, PF_8, PF_9, PF_10, PF_11, PF_12, PF_13, PF_14, PF_15, \ 28 | PH_0, PH_1, PH_2, PH_3, PH_4, PH_5, PH_6, PH_7, PH_8, PH_9, PH_10, PH_11, PH_12, PH_13, PH_14, PH_15 29 | 30 | #endif // __PIN_NAME_MCU_H__ 31 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/pinName-ioe.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Bleeper STM32L151RD microcontroller pins definition 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __PIN_NAME_IOE_H__ 16 | #define __PIN_NAME_IOE_H__ 17 | 18 | // SX1509 Pin Names 19 | #define IOE_PINS \ 20 | IOE_0, IOE_1, IOE_2, IOE_3, IOE_4, IOE_5, IOE_6, IOE_7, \ 21 | IOE_8, IOE_9, IOE_10, IOE_11, IOE_12, IOE_13, IOE_14, IOE_15 22 | #endif // __PIN_NAME_IOE_H__ 23 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/rtc-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: MCU RTC timer and low power modes management 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __RTC_BOARD_H__ 16 | #define __RTC_BOARD_H__ 17 | 18 | /*! 19 | * \brief Timer time variable definition 20 | */ 21 | #ifndef TimerTime_t 22 | typedef uint32_t TimerTime_t; 23 | #endif 24 | 25 | /*! 26 | * \brief Initializes the RTC timer 27 | * 28 | * \remark The timer is based on the RTC 29 | */ 30 | void RtcInit( void ); 31 | 32 | /*! 33 | * \brief Start the RTC timer 34 | * 35 | * \remark The timer is based on the RTC Alarm running at 32.768KHz 36 | * 37 | * \param[IN] timeout Duration of the Timer 38 | */ 39 | void RtcSetTimeout( uint32_t timeout ); 40 | 41 | /*! 42 | * \brief Adjust the value of the timeout to handle wakeup time from Alarm and GPIO irq 43 | * 44 | * \param[IN] timeout Duration of the Timer without compensation for wakeup time 45 | * \retval new value for the Timeout with compensations 46 | */ 47 | TimerTime_t RtcGetAdjustedTimeoutValue( uint32_t timeout ); 48 | 49 | /*! 50 | * \brief Get the RTC timer value 51 | * 52 | * \retval RTC Timer value 53 | */ 54 | TimerTime_t RtcGetTimerValue( void ); 55 | 56 | /*! 57 | * \brief Get the RTC timer elapsed time since the last Alarm was set 58 | * 59 | * \retval RTC Elapsed time since the last alarm 60 | */ 61 | TimerTime_t RtcGetElapsedAlarmTime( void ); 62 | 63 | /*! 64 | * \brief Compute the timeout time of a future event in time 65 | * 66 | * \param[IN] futureEventInTime Value in time 67 | * \retval time Time between now and the futureEventInTime 68 | */ 69 | TimerTime_t RtcComputeFutureEventTime( TimerTime_t futureEventInTime ); 70 | 71 | /*! 72 | * \brief Compute the elapsed time since a fix event in time 73 | * 74 | * \param[IN] eventInTime Value in time 75 | * \retval elapsed Time since the eventInTime 76 | */ 77 | TimerTime_t RtcComputeElapsedTime( TimerTime_t eventInTime ); 78 | 79 | /*! 80 | * \brief This function blocks the MCU from going into Low Power mode 81 | * 82 | * \param [IN] status [true: Enable, false: Disable 83 | */ 84 | void BlockLowPowerDuringTask ( bool status ); 85 | 86 | /*! 87 | * \brief Sets the MCU into low power STOP mode 88 | */ 89 | void RtcEnterLowPowerStopMode( void ); 90 | 91 | /*! 92 | * \brief Restore the MCU to its normal operation mode 93 | */ 94 | void RtcRecoverMcuStatus( void ); 95 | 96 | #endif // __RTC_BOARD_H__ 97 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/spi-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Bleeper board SPI driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __SPI_MCU_H__ 16 | #define __SPI_MCU_H__ 17 | 18 | /*! 19 | * SPI driver structure definition 20 | */ 21 | struct Spi_s 22 | { 23 | SPI_HandleTypeDef Spi; 24 | Gpio_t Mosi; 25 | Gpio_t Miso; 26 | Gpio_t Sclk; 27 | Gpio_t Nss; 28 | }; 29 | 30 | #endif // __SPI_MCU_H__ 31 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/uart-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2016 Semtech 8 | 9 | Description: Board UART driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __UART_MCU_H__ 16 | #define __UART_MCU_H__ 17 | 18 | /*! 19 | * UART peripheral ID 20 | */ 21 | typedef enum 22 | { 23 | UART_1, 24 | UART_3, 25 | UART_COUNT, 26 | UART_USB_CDC = 255, 27 | }UartId_t; 28 | 29 | /*! 30 | * \brief Initializes the UART object and MCU peripheral 31 | * 32 | * \param [IN] obj UART object 33 | * \param [IN] tx UART Tx pin name to be used 34 | * \param [IN] rx UART Rx pin name to be used 35 | */ 36 | void UartMcuInit( Uart_t *obj, uint8_t uartId, PinNames tx, PinNames rx ); 37 | 38 | /*! 39 | * \brief Initializes the UART object and MCU peripheral 40 | * 41 | * \param [IN] obj UART object 42 | * \param [IN] mode Mode of operation for the UART 43 | * \param [IN] baudrate UART baudrate 44 | * \param [IN] wordLength packet length 45 | * \param [IN] stopBits stop bits setup 46 | * \param [IN] parity packet parity 47 | * \param [IN] flowCtrl UART flow control 48 | */ 49 | void UartMcuConfig( Uart_t *obj, UartMode_t mode, uint32_t baudrate, WordLength_t wordLength, StopBits_t stopBits, Parity_t parity, FlowCtrl_t flowCtrl ); 50 | 51 | /*! 52 | * \brief DeInitializes the UART object and MCU peripheral 53 | * 54 | * \param [IN] obj UART object 55 | */ 56 | void UartMcuDeInit( Uart_t *obj ); 57 | 58 | /*! 59 | * \brief Sends a character to the UART 60 | * 61 | * \param [IN] obj UART object 62 | * \param [IN] data Character to be sent 63 | * \retval status [0: OK, 1: Busy] 64 | */ 65 | uint8_t UartMcuPutChar( Uart_t *obj, uint8_t data ); 66 | 67 | /*! 68 | * \brief Sends a character to the UART 69 | * 70 | * \param [IN] obj UART object 71 | * \param [IN] data Characters to be sent 72 | * \param [IN] size number of characters to send 73 | * \retval status [0: OK, 1: Busy] 74 | */ 75 | uint8_t UartMcuPutBuffer( Uart_t *obj, uint8_t *data, uint16_t size ); 76 | 77 | /*! 78 | * \brief Gets a character from the UART 79 | * 80 | * \param [IN] obj UART object 81 | * \param [IN] data Received character 82 | * \retval status [0: OK, 1: Busy] 83 | */ 84 | uint8_t UartMcuGetChar( Uart_t *obj, uint8_t *data ); 85 | 86 | /*! 87 | * \brief Gets a character from the UART (blocking mode) 88 | * 89 | * \param [IN] obj UART object 90 | * \param [IN] data Received character 91 | * \param [IN] size number of characters to be received 92 | * \retval status [0: OK, 1: Busy] 93 | */ 94 | uint8_t UartMcuGetBuffer( Uart_t *obj, uint8_t *data, uint16_t size ); 95 | 96 | #endif // __UART_MCU_H__ 97 | 98 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/uart-usb-board.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Bleeper board UART driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | 17 | #include "usbd_core.h" 18 | #include "usbd_desc.h" 19 | #include "usbd_cdc.h" 20 | #include "usbd_cdc_if.h" 21 | #include "uart-usb-board.h" 22 | 23 | /* USB handler declaration */ 24 | /* Handle for USB Full Speed IP */ 25 | //USBD_HandleTypeDef *hUsbDevice_0; 26 | 27 | USBD_HandleTypeDef hUsbDeviceFS; 28 | extern PCD_HandleTypeDef hpcd_USB_FS; 29 | 30 | void UartUsbInit( Uart_t *obj, uint8_t uartId, PinNames tx, PinNames rx ) 31 | { 32 | obj->UartId = uartId; 33 | 34 | __HAL_RCC_COMP_CLK_ENABLE( ); 35 | __HAL_RCC_SYSCFG_CLK_ENABLE( ); 36 | 37 | CDC_Set_Uart_Obj( obj ); 38 | 39 | /* Init Device Library, Add Supported Class and Start the library */ 40 | USBD_Init( &hUsbDeviceFS, &FS_Desc, DEVICE_FS ); 41 | 42 | USBD_RegisterClass( &hUsbDeviceFS, &USBD_CDC ); 43 | 44 | USBD_CDC_RegisterInterface( &hUsbDeviceFS, &USBD_Interface_fops_FS ); 45 | 46 | USBD_Start( &hUsbDeviceFS ); 47 | } 48 | 49 | void UartUsbConfig( Uart_t *obj, UartMode_t mode, uint32_t baudrate, WordLength_t wordLength, StopBits_t stopBits, Parity_t parity, FlowCtrl_t flowCtrl ) 50 | { 51 | 52 | } 53 | 54 | void UartUsbDeInit( Uart_t *obj ) 55 | { 56 | 57 | } 58 | 59 | uint8_t UartUsbIsUsbCableConnected( void ) 60 | { 61 | if( hUsbDeviceFS.dev_address == 0 ) 62 | { 63 | // USB is low Power mode meaning USB cable is not connected 64 | return 0; 65 | } 66 | else 67 | { 68 | // USB is in active mode meaning USB cable is connected 69 | return 1; 70 | } 71 | } 72 | 73 | uint8_t UartUsbPutBuffer( Uart_t *obj, uint8_t *buffer, uint16_t size ) 74 | { 75 | return CDC_Transmit_FS( buffer, size ); 76 | } 77 | 78 | uint8_t UartUsbPutChar( Uart_t *obj, uint8_t data ) 79 | { 80 | return UartUsbPutBuffer( obj, &data, 1 ); 81 | } 82 | 83 | uint8_t UartUsbGetChar( Uart_t *obj, uint8_t *data ) 84 | { 85 | if( IsFifoEmpty( &obj->FifoRx ) == false ) 86 | { 87 | BoardDisableIrq( ); 88 | *data = FifoPop( &obj->FifoRx ); 89 | BoardEnableIrq( ); 90 | return 0; 91 | } 92 | return 1; 93 | } 94 | 95 | void USB_LP_IRQHandler( void ) 96 | { 97 | HAL_PCD_IRQHandler( &hpcd_USB_FS ); 98 | } 99 | 100 | #ifdef __GNUC__ 101 | /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf 102 | set to 'Yes') calls __io_putchar() */ 103 | int __io_putchar( int c ) 104 | #else /* __GNUC__ */ 105 | int fputc( int c, FILE *stream ) 106 | #endif 107 | { 108 | while( UartUsbPutChar( &UartUsb, c ) != 0 ); 109 | return c; 110 | } 111 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/uart-usb-board.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Bleeper board UART driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __UART_USB_H__ 16 | #define __UART_USB_H__ 17 | 18 | /*! 19 | * \brief Initializes the UART object and MCU peripheral 20 | * 21 | * \param [IN] obj UART object 22 | * \param [IN] tx UART Tx pin name to be used 23 | * \param [IN] rx UART Rx pin name to be used 24 | */ 25 | void UartUsbInit( Uart_t *obj, uint8_t uartId, PinNames tx, PinNames rx ); 26 | 27 | /*! 28 | * \brief Initializes the UART object and USB peripheral 29 | * 30 | * \param [IN] obj UART object 31 | * \param [IN] mode Mode of operation for the UART 32 | * \param [IN] baudrate UART baudrate 33 | * \param [IN] wordLength packet length 34 | * \param [IN] stopBits stop bits setup 35 | * \param [IN] parity packet parity 36 | * \param [IN] flowCtrl UART flow control 37 | */ 38 | void UartUsbConfig( Uart_t *obj, UartMode_t mode, uint32_t baudrate, WordLength_t wordLength, StopBits_t stopBits, Parity_t parity, FlowCtrl_t flowCtrl ); 39 | 40 | /*! 41 | * \brief DeInitializes the UART object and USB peripheral 42 | * 43 | * \param [IN] obj UART object 44 | */ 45 | void UartUsbDeInit( Uart_t *obj ); 46 | 47 | /*! 48 | * \brief Checks if the cable is connected or not 49 | * 50 | * \retval connected [0: Not connected, 1: Connected] 51 | */ 52 | uint8_t UartUsbIsUsbCableConnected( void ); 53 | 54 | /*! 55 | * \brief Sends a buffer to the UART 56 | * 57 | * \param [IN] obj UART object 58 | * \param [IN] buffer Buffer to be sent 59 | * \param [IN] size Buffer size 60 | * \retval status [0: OK, 1: Busy, 2: Fail] 61 | */ 62 | uint8_t UartUsbPutBuffer( Uart_t *obj, uint8_t *buffer, uint16_t size ); 63 | 64 | /*! 65 | * \brief Sends a character to the UART 66 | * 67 | * \param [IN] obj UART object 68 | * \param [IN] data Character to be sent 69 | * \retval status [0: OK, 1: Busy, 2: Fail] 70 | */ 71 | uint8_t UartUsbPutChar( Uart_t *obj, uint8_t data ); 72 | 73 | /*! 74 | * \brief Gets a character from the UART 75 | * 76 | * \param [IN] obj UART object 77 | * \param [IN] data Received character 78 | * \retval status [0: OK, 1: Busy, 2: Fail] 79 | */ 80 | uint8_t UartUsbGetChar( Uart_t *obj, uint8_t *data ); 81 | 82 | #endif // __UART_USB_H__ 83 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/usb/cdc/inc/usbd_desc.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file : usbd_desc.h 4 | * @version : v1.0_Cube 5 | * @brief : Header for usbd_desc file. 6 | ****************************************************************************** 7 | * COPYRIGHT(c) 2016 STMicroelectronics 8 | * 9 | * Redistribution and use in source and binary forms, with or without modification, 10 | * are permitted provided that the following conditions are met: 11 | * 1. Redistributions of source code must retain the above copyright notice, 12 | * this list of conditions and the following disclaimer. 13 | * 2. Redistributions in binary form must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 17 | * may be used to endorse or promote products derived from this software 18 | * without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | * 31 | ****************************************************************************** 32 | */ 33 | 34 | /* Define to prevent recursive inclusion -------------------------------------*/ 35 | #ifndef __USBD_DESC__H__ 36 | #define __USBD_DESC__H__ 37 | 38 | #ifdef __cplusplus 39 | extern "C" { 40 | #endif 41 | /* Includes ------------------------------------------------------------------*/ 42 | #include "usbd_def.h" 43 | 44 | /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY 45 | * @{ 46 | */ 47 | 48 | /** @defgroup USB_DESC 49 | * @brief general defines for the usb device library file 50 | * @{ 51 | */ 52 | 53 | /** @defgroup USB_DESC_Exported_Defines 54 | * @{ 55 | */ 56 | 57 | /** 58 | * @} 59 | */ 60 | 61 | /** @defgroup USBD_DESC_Exported_TypesDefinitions 62 | * @{ 63 | */ 64 | /** 65 | * @} 66 | */ 67 | 68 | /** @defgroup USBD_DESC_Exported_Macros 69 | * @{ 70 | */ 71 | /** 72 | * @} 73 | */ 74 | 75 | /** @defgroup USBD_DESC_Exported_Variables 76 | * @{ 77 | */ 78 | extern USBD_DescriptorsTypeDef FS_Desc; 79 | /** 80 | * @} 81 | */ 82 | 83 | /** @defgroup USBD_DESC_Exported_FunctionsPrototype 84 | * @{ 85 | */ 86 | 87 | /** 88 | * @} 89 | */ 90 | #ifdef __cplusplus 91 | } 92 | #endif 93 | 94 | #endif /* __USBD_DESC_H */ 95 | 96 | /** 97 | * @} 98 | */ 99 | 100 | /** 101 | * @} 102 | */ 103 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 104 | -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/usb/dfu/inc/usbd_conf.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/usb/dfu/inc/usbd_conf.h -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/usb/dfu/inc/usbd_desc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/usb/dfu/inc/usbd_desc.h -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/usb/dfu/inc/usbd_dfu_flash.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/usb/dfu/inc/usbd_dfu_flash.h -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/usb/dfu/src/usbd_conf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/usb/dfu/src/usbd_conf.c -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/usb/dfu/src/usbd_desc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/usb/dfu/src/usbd_desc.c -------------------------------------------------------------------------------- /src/boards/RAK811BreakBoard/usb/dfu/src/usbd_dfu_flash.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/boards/RAK811BreakBoard/usb/dfu/src/usbd_dfu_flash.c -------------------------------------------------------------------------------- /src/boards/mcu/stm32/RTE_Components.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Auto generated Run-Time-Environment Component Configuration File 4 | * *** Do not modify ! *** 5 | * 6 | * Project: 'LoRaWAN' 7 | * Target: 'LoRaWAN Configuration' 8 | */ 9 | 10 | #ifndef RTE_COMPONENTS_H 11 | #define RTE_COMPONENTS_H 12 | 13 | 14 | #endif /* RTE_COMPONENTS_H */ 15 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32L0xx_HAL_Driver/Inc/stm32_assert_template.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32_assert.h 4 | * @author MCD Application Team 5 | * @version V1.7.0 6 | * @date 31-May-2016 7 | * @brief STM32 assert template file. 8 | * This file should be copied to the application folder and renamed 9 | * to stm32_assert.h. 10 | ****************************************************************************** 11 | * @attention 12 | * 13 | *

© COPYRIGHT(c) 2016 STMicroelectronics

14 | * 15 | * Redistribution and use in source and binary forms, with or without modification, 16 | * are permitted provided that the following conditions are met: 17 | * 1. Redistributions of source code must retain the above copyright notice, 18 | * this list of conditions and the following disclaimer. 19 | * 2. Redistributions in binary form must reproduce the above copyright notice, 20 | * this list of conditions and the following disclaimer in the documentation 21 | * and/or other materials provided with the distribution. 22 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 23 | * may be used to endorse or promote products derived from this software 24 | * without specific prior written permission. 25 | * 26 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 29 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 30 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 32 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 34 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 35 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | ****************************************************************************** 38 | */ 39 | 40 | /* Define to prevent recursive inclusion -------------------------------------*/ 41 | #ifndef __STM32_ASSERT_H 42 | #define __STM32_ASSERT_H 43 | 44 | #ifdef __cplusplus 45 | extern "C" { 46 | #endif 47 | 48 | /* Exported types ------------------------------------------------------------*/ 49 | /* Exported constants --------------------------------------------------------*/ 50 | /* Includes ------------------------------------------------------------------*/ 51 | /* Exported macro ------------------------------------------------------------*/ 52 | #ifdef USE_FULL_ASSERT 53 | /** 54 | * @brief The assert_param macro is used for function's parameters check. 55 | * @param expr: If expr is false, it calls assert_failed function 56 | * which reports the name of the source file and the source 57 | * line number of the call that failed. 58 | * If expr is true, it returns no value. 59 | * @retval None 60 | */ 61 | #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) 62 | /* Exported functions ------------------------------------------------------- */ 63 | void assert_failed(uint8_t* file, uint32_t line); 64 | #else 65 | #define assert_param(expr) ((void)0U) 66 | #endif /* USE_FULL_ASSERT */ 67 | 68 | #ifdef __cplusplus 69 | } 70 | #endif 71 | 72 | #endif /* __STM32_ASSERT_H */ 73 | 74 | 75 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 76 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_comp_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_comp_ex.h 4 | * @author MCD Application Team 5 | * @version V1.7.0 6 | * @date 31-May-2016 7 | * @brief Header file of COMP HAL Extended module. 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© COPYRIGHT(c) 2016 STMicroelectronics

12 | * 13 | * Redistribution and use in source and binary forms, with or without modification, 14 | * are permitted provided that the following conditions are met: 15 | * 1. Redistributions of source code must retain the above copyright notice, 16 | * this list of conditions and the following disclaimer. 17 | * 2. Redistributions in binary form must reproduce the above copyright notice, 18 | * this list of conditions and the following disclaimer in the documentation 19 | * and/or other materials provided with the distribution. 20 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 21 | * may be used to endorse or promote products derived from this software 22 | * without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | ****************************************************************************** 36 | */ 37 | 38 | /* Define to prevent recursive inclusion -------------------------------------*/ 39 | #ifndef __STM32L0xx_HAL_COMP_EX_H 40 | #define __STM32L0xx_HAL_COMP_EX_H 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | /* Includes ------------------------------------------------------------------*/ 47 | #include "stm32l0xx_hal_def.h" 48 | 49 | /** @addtogroup STM32L0xx_HAL_Driver 50 | * @{ 51 | */ 52 | 53 | /** @defgroup COMPEx COMPEx 54 | * @{ 55 | */ 56 | 57 | /* Exported functions --------------------------------------------------------*/ 58 | /** @defgroup COMPEx_Exported_Functions COMPEx Exported Functions 59 | * @{ 60 | */ 61 | 62 | /** @defgroup COMPEx_Exported_Functions_Group1 Extended COMP VREFINT setup functions 63 | * @{ 64 | */ 65 | /* COMP specific functions to manage VREFINT *************************************/ 66 | void HAL_COMPEx_EnableVREFINT(void); 67 | void HAL_COMPEx_DisableVREFINT(void); 68 | 69 | /** 70 | * @} 71 | */ 72 | 73 | /** 74 | * @} 75 | */ 76 | 77 | /** 78 | * @} 79 | */ 80 | 81 | /** 82 | * @} 83 | */ 84 | #ifdef __cplusplus 85 | } 86 | #endif 87 | 88 | #endif /* __STM32L0xx_HAL_COMP_EX_H */ 89 | 90 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 91 | 92 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_pcd_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_pcd.h 4 | * @author MCD Application Team 5 | * @version V1.7.0 6 | * @date 31-May-2016 7 | * @brief Header file of PCD HAL module. 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© COPYRIGHT(c) 2016 STMicroelectronics

12 | * 13 | * Redistribution and use in source and binary forms, with or without modification, 14 | * are permitted provided that the following conditions are met: 15 | * 1. Redistributions of source code must retain the above copyright notice, 16 | * this list of conditions and the following disclaimer. 17 | * 2. Redistributions in binary form must reproduce the above copyright notice, 18 | * this list of conditions and the following disclaimer in the documentation 19 | * and/or other materials provided with the distribution. 20 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 21 | * may be used to endorse or promote products derived from this software 22 | * without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | ****************************************************************************** 36 | */ 37 | 38 | /* Define to prevent recursive inclusion -------------------------------------*/ 39 | #ifndef __STM32L0xx_HAL_PCD_EX_H 40 | #define __STM32L0xx_HAL_PCD_EX_H 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | /* Includes ------------------------------------------------------------------*/ 47 | #include "stm32l0xx_hal_def.h" 48 | 49 | /** @addtogroup STM32L0xx_HAL_Driver 50 | * @{ 51 | */ 52 | 53 | /** @defgroup PCDEx PCDEx 54 | * @{ 55 | */ 56 | 57 | /* Exported functions --------------------------------------------------------*/ 58 | 59 | /** @defgroup PCDEx_Exported_Functions PCDEx Exported Functions 60 | * @{ 61 | */ 62 | 63 | /** @defgroup PCDEx__Exported_Functions_Group1 Initialization and de-initialization functions 64 | * @brief Initialization and Configuration functions 65 | */ 66 | HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd, 67 | uint16_t ep_addr, 68 | uint16_t ep_kind, 69 | uint32_t pmaadress); 70 | /** 71 | * @} 72 | */ 73 | 74 | /** 75 | * @} 76 | */ 77 | 78 | /** 79 | * @} 80 | */ 81 | 82 | #ifdef __cplusplus 83 | } 84 | #endif 85 | 86 | 87 | #endif /* __STM32L0xx_HAL_PCD_EX_H */ 88 | 89 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 90 | 91 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32L1xx_HAL_Driver/Inc/stm32_assert_template.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32_assert.h 4 | * @author MCD Application Team 5 | * @version V1.2.0 6 | * @date 01-July-2016 7 | * @brief STM32 assert template file. 8 | * This file should be copied to the application folder and renamed 9 | * to stm32_assert.h. 10 | ****************************************************************************** 11 | * @attention 12 | * 13 | *

© COPYRIGHT(c) 2016 STMicroelectronics

14 | * 15 | * Redistribution and use in source and binary forms, with or without modification, 16 | * are permitted provided that the following conditions are met: 17 | * 1. Redistributions of source code must retain the above copyright notice, 18 | * this list of conditions and the following disclaimer. 19 | * 2. Redistributions in binary form must reproduce the above copyright notice, 20 | * this list of conditions and the following disclaimer in the documentation 21 | * and/or other materials provided with the distribution. 22 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 23 | * may be used to endorse or promote products derived from this software 24 | * without specific prior written permission. 25 | * 26 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 29 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 30 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 32 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 34 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 35 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | ****************************************************************************** 38 | */ 39 | 40 | /* Define to prevent recursive inclusion -------------------------------------*/ 41 | #ifndef __STM32_ASSERT_H 42 | #define __STM32_ASSERT_H 43 | 44 | #ifdef __cplusplus 45 | extern "C" { 46 | #endif 47 | 48 | /* Exported types ------------------------------------------------------------*/ 49 | /* Exported constants --------------------------------------------------------*/ 50 | /* Includes ------------------------------------------------------------------*/ 51 | /* Exported macro ------------------------------------------------------------*/ 52 | #ifdef USE_FULL_ASSERT 53 | /** 54 | * @brief The assert_param macro is used for function's parameters check. 55 | * @param expr: If expr is false, it calls assert_failed function 56 | * which reports the name of the source file and the source 57 | * line number of the call that failed. 58 | * If expr is true, it returns no value. 59 | * @retval None 60 | */ 61 | #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) 62 | /* Exported functions ------------------------------------------------------- */ 63 | void assert_failed(uint8_t* file, uint32_t line); 64 | #else 65 | #define assert_param(expr) ((void)0U) 66 | #endif /* USE_FULL_ASSERT */ 67 | 68 | #ifdef __cplusplus 69 | } 70 | #endif 71 | 72 | #endif /* __STM32_ASSERT_H */ 73 | 74 | 75 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 76 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cryp_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l1xx_hal_cryp_ex.h 4 | * @author MCD Application Team 5 | * @version V1.2.0 6 | * @date 01-July-2016 7 | * @brief Header file of CRYPEx HAL module. 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© COPYRIGHT(c) 2016 STMicroelectronics

12 | * 13 | * Redistribution and use in source and binary forms, with or without modification, 14 | * are permitted provided that the following conditions are met: 15 | * 1. Redistributions of source code must retain the above copyright notice, 16 | * this list of conditions and the following disclaimer. 17 | * 2. Redistributions in binary form must reproduce the above copyright notice, 18 | * this list of conditions and the following disclaimer in the documentation 19 | * and/or other materials provided with the distribution. 20 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 21 | * may be used to endorse or promote products derived from this software 22 | * without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | ****************************************************************************** 36 | */ 37 | 38 | /* Define to prevent recursive inclusion -------------------------------------*/ 39 | #ifndef __STM32L1xx_HAL_CRYP_EX_H 40 | #define __STM32L1xx_HAL_CRYP_EX_H 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L162xE) || defined(STM32L162xDX) 47 | 48 | /* Includes ------------------------------------------------------------------*/ 49 | #include "stm32l1xx_hal_def.h" 50 | 51 | /** @addtogroup STM32L1xx_HAL_Driver 52 | * @{ 53 | */ 54 | 55 | /** @addtogroup CRYPEx 56 | * @{ 57 | */ 58 | 59 | /* Exported types ------------------------------------------------------------*/ 60 | /* Exported constants --------------------------------------------------------*/ 61 | /* Exported functions --------------------------------------------------------*/ 62 | 63 | /** @addtogroup CRYPEx_Exported_Functions 64 | * @{ 65 | */ 66 | 67 | /** @addtogroup CRYPEx_Exported_Functions_Group1 68 | * @{ 69 | */ 70 | 71 | /* CallBack functions ********************************************************/ 72 | void HAL_CRYPEx_ComputationCpltCallback(CRYP_HandleTypeDef *hcryp); 73 | 74 | /** 75 | * @} 76 | */ 77 | 78 | /** 79 | * @} 80 | */ 81 | 82 | #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX*/ 83 | 84 | /** 85 | * @} 86 | */ 87 | 88 | /** 89 | * @} 90 | */ 91 | 92 | #ifdef __cplusplus 93 | } 94 | #endif 95 | 96 | #endif /* __STM32L1xx_HAL_CRYP_EX_H */ 97 | 98 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 99 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pcd_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l1xx_hal_pcd_ex.h 4 | * @author MCD Application Team 5 | * @version V1.2.0 6 | * @date 01-July-2016 7 | * @brief Header file of PCD HAL module. 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© COPYRIGHT(c) 2016 STMicroelectronics

12 | * 13 | * Redistribution and use in source and binary forms, with or without modification, 14 | * are permitted provided that the following conditions are met: 15 | * 1. Redistributions of source code must retain the above copyright notice, 16 | * this list of conditions and the following disclaimer. 17 | * 2. Redistributions in binary form must reproduce the above copyright notice, 18 | * this list of conditions and the following disclaimer in the documentation 19 | * and/or other materials provided with the distribution. 20 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 21 | * may be used to endorse or promote products derived from this software 22 | * without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | ****************************************************************************** 36 | */ 37 | 38 | /* Define to prevent recursive inclusion -------------------------------------*/ 39 | #ifndef __STM32L1xx_HAL_PCD_EX_H 40 | #define __STM32L1xx_HAL_PCD_EX_H 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | /* Includes ------------------------------------------------------------------*/ 47 | #include "stm32l1xx_hal_def.h" 48 | 49 | /** @addtogroup STM32L1xx_HAL_Driver 50 | * @{ 51 | */ 52 | 53 | /** @addtogroup PCDEx 54 | * @{ 55 | */ 56 | 57 | /* Exported types ------------------------------------------------------------*/ 58 | /* Exported constants --------------------------------------------------------*/ 59 | /* Exported macros -----------------------------------------------------------*/ 60 | /* Internal macros -----------------------------------------------------------*/ 61 | /* Exported functions --------------------------------------------------------*/ 62 | /** @addtogroup PCDEx_Exported_Functions 63 | * @{ 64 | */ 65 | 66 | /** @addtogroup PCDEx_Exported_Functions_Group2 67 | * @{ 68 | */ 69 | 70 | HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd, 71 | uint16_t ep_addr, 72 | uint16_t ep_kind, 73 | uint32_t pmaadress); 74 | /** 75 | * @} 76 | */ 77 | 78 | /** 79 | * @} 80 | */ 81 | 82 | /** 83 | * @} 84 | */ 85 | 86 | /** 87 | * @} 88 | */ 89 | 90 | #ifdef __cplusplus 91 | } 92 | #endif 93 | 94 | 95 | #endif /* __STM32L1xx_HAL_PCD_EX_H */ 96 | 97 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 98 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file usbd_req.h 4 | * @author MCD Application Team 5 | * @version V2.4.2 6 | * @date 11-December-2015 7 | * @brief Header file for the usbd_req.c file 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© COPYRIGHT 2015 STMicroelectronics

12 | * 13 | * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); 14 | * You may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at: 16 | * 17 | * http://www.st.com/software_license_agreement_liberty_v2 18 | * 19 | * Unless required by applicable law or agreed to in writing, software 20 | * distributed under the License is distributed on an "AS IS" BASIS, 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | * See the License for the specific language governing permissions and 23 | * limitations under the License. 24 | * 25 | ****************************************************************************** 26 | */ 27 | 28 | /* Define to prevent recursive inclusion -------------------------------------*/ 29 | #ifndef __USB_REQUEST_H 30 | #define __USB_REQUEST_H 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | /* Includes ------------------------------------------------------------------*/ 37 | #include "usbd_def.h" 38 | 39 | 40 | /** @addtogroup STM32_USB_DEVICE_LIBRARY 41 | * @{ 42 | */ 43 | 44 | /** @defgroup USBD_REQ 45 | * @brief header file for the usbd_req.c file 46 | * @{ 47 | */ 48 | 49 | /** @defgroup USBD_REQ_Exported_Defines 50 | * @{ 51 | */ 52 | /** 53 | * @} 54 | */ 55 | 56 | 57 | /** @defgroup USBD_REQ_Exported_Types 58 | * @{ 59 | */ 60 | /** 61 | * @} 62 | */ 63 | 64 | 65 | 66 | /** @defgroup USBD_REQ_Exported_Macros 67 | * @{ 68 | */ 69 | /** 70 | * @} 71 | */ 72 | 73 | /** @defgroup USBD_REQ_Exported_Variables 74 | * @{ 75 | */ 76 | /** 77 | * @} 78 | */ 79 | 80 | /** @defgroup USBD_REQ_Exported_FunctionsPrototype 81 | * @{ 82 | */ 83 | 84 | USBD_StatusTypeDef USBD_StdDevReq (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); 85 | USBD_StatusTypeDef USBD_StdItfReq (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); 86 | USBD_StatusTypeDef USBD_StdEPReq (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); 87 | 88 | 89 | void USBD_CtlError (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); 90 | 91 | void USBD_ParseSetupRequest (USBD_SetupReqTypedef *req, uint8_t *pdata); 92 | 93 | void USBD_GetString (uint8_t *desc, uint8_t *unicode, uint16_t *len); 94 | /** 95 | * @} 96 | */ 97 | 98 | #ifdef __cplusplus 99 | } 100 | #endif 101 | 102 | #endif /* __USB_REQUEST_H */ 103 | 104 | /** 105 | * @} 106 | */ 107 | 108 | /** 109 | * @} 110 | */ 111 | 112 | 113 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 114 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file usbd_ioreq.h 4 | * @author MCD Application Team 5 | * @version V2.4.2 6 | * @date 11-December-2015 7 | * @brief Header file for the usbd_ioreq.c file 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© COPYRIGHT 2015 STMicroelectronics

12 | * 13 | * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); 14 | * You may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at: 16 | * 17 | * http://www.st.com/software_license_agreement_liberty_v2 18 | * 19 | * Unless required by applicable law or agreed to in writing, software 20 | * distributed under the License is distributed on an "AS IS" BASIS, 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | * See the License for the specific language governing permissions and 23 | * limitations under the License. 24 | * 25 | ****************************************************************************** 26 | */ 27 | 28 | /* Define to prevent recursive inclusion -------------------------------------*/ 29 | #ifndef __USBD_IOREQ_H 30 | #define __USBD_IOREQ_H 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | /* Includes ------------------------------------------------------------------*/ 37 | #include "usbd_def.h" 38 | #include "usbd_core.h" 39 | 40 | /** @addtogroup STM32_USB_DEVICE_LIBRARY 41 | * @{ 42 | */ 43 | 44 | /** @defgroup USBD_IOREQ 45 | * @brief header file for the usbd_ioreq.c file 46 | * @{ 47 | */ 48 | 49 | /** @defgroup USBD_IOREQ_Exported_Defines 50 | * @{ 51 | */ 52 | /** 53 | * @} 54 | */ 55 | 56 | 57 | /** @defgroup USBD_IOREQ_Exported_Types 58 | * @{ 59 | */ 60 | 61 | 62 | /** 63 | * @} 64 | */ 65 | 66 | 67 | 68 | /** @defgroup USBD_IOREQ_Exported_Macros 69 | * @{ 70 | */ 71 | 72 | /** 73 | * @} 74 | */ 75 | 76 | /** @defgroup USBD_IOREQ_Exported_Variables 77 | * @{ 78 | */ 79 | 80 | /** 81 | * @} 82 | */ 83 | 84 | /** @defgroup USBD_IOREQ_Exported_FunctionsPrototype 85 | * @{ 86 | */ 87 | 88 | USBD_StatusTypeDef USBD_CtlSendData (USBD_HandleTypeDef *pdev, 89 | uint8_t *buf, 90 | uint16_t len); 91 | 92 | USBD_StatusTypeDef USBD_CtlContinueSendData (USBD_HandleTypeDef *pdev, 93 | uint8_t *pbuf, 94 | uint16_t len); 95 | 96 | USBD_StatusTypeDef USBD_CtlPrepareRx (USBD_HandleTypeDef *pdev, 97 | uint8_t *pbuf, 98 | uint16_t len); 99 | 100 | USBD_StatusTypeDef USBD_CtlContinueRx (USBD_HandleTypeDef *pdev, 101 | uint8_t *pbuf, 102 | uint16_t len); 103 | 104 | USBD_StatusTypeDef USBD_CtlSendStatus (USBD_HandleTypeDef *pdev); 105 | 106 | USBD_StatusTypeDef USBD_CtlReceiveStatus (USBD_HandleTypeDef *pdev); 107 | 108 | uint16_t USBD_GetRxCount (USBD_HandleTypeDef *pdev , 109 | uint8_t epnum); 110 | 111 | /** 112 | * @} 113 | */ 114 | 115 | #ifdef __cplusplus 116 | } 117 | #endif 118 | 119 | #endif /* __USBD_IOREQ_H */ 120 | 121 | /** 122 | * @} 123 | */ 124 | 125 | /** 126 | * @} 127 | */ 128 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 129 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/cmsis/core_cmFunc.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | * @file core_cmFunc.h 3 | * @brief CMSIS Cortex-M Core Function Access Header File 4 | * @version V4.30 5 | * @date 20. October 2015 6 | ******************************************************************************/ 7 | /* Copyright (c) 2009 - 2015 ARM LIMITED 8 | 9 | All rights reserved. 10 | Redistribution and use in source and binary forms, with or without 11 | modification, are permitted provided that the following conditions are met: 12 | - Redistributions of source code must retain the above copyright 13 | notice, this list of conditions and the following disclaimer. 14 | - Redistributions in binary form must reproduce the above copyright 15 | notice, this list of conditions and the following disclaimer in the 16 | documentation and/or other materials provided with the distribution. 17 | - Neither the name of ARM nor the names of its contributors may be used 18 | to endorse or promote products derived from this software without 19 | specific prior written permission. 20 | * 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE 25 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 | POSSIBILITY OF SUCH DAMAGE. 32 | ---------------------------------------------------------------------------*/ 33 | 34 | 35 | #if defined ( __ICCARM__ ) 36 | #pragma system_include /* treat file as system include file for MISRA check */ 37 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 38 | #pragma clang system_header /* treat file as system include file */ 39 | #endif 40 | 41 | #ifndef __CORE_CMFUNC_H 42 | #define __CORE_CMFUNC_H 43 | 44 | 45 | /* ########################### Core Function Access ########################### */ 46 | /** \ingroup CMSIS_Core_FunctionInterface 47 | \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions 48 | @{ 49 | */ 50 | 51 | /*------------------ RealView Compiler -----------------*/ 52 | #if defined ( __CC_ARM ) 53 | #include "cmsis_armcc.h" 54 | 55 | /*------------------ ARM Compiler V6 -------------------*/ 56 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 57 | #include "cmsis_armcc_V6.h" 58 | 59 | /*------------------ GNU Compiler ----------------------*/ 60 | #elif defined ( __GNUC__ ) 61 | #include "cmsis_gcc.h" 62 | 63 | /*------------------ ICC Compiler ----------------------*/ 64 | #elif defined ( __ICCARM__ ) 65 | #include 66 | 67 | /*------------------ TI CCS Compiler -------------------*/ 68 | #elif defined ( __TMS470__ ) 69 | #include 70 | 71 | /*------------------ TASKING Compiler ------------------*/ 72 | #elif defined ( __TASKING__ ) 73 | /* 74 | * The CMSIS functions have been implemented as intrinsics in the compiler. 75 | * Please use "carm -?i" to get an up to date list of all intrinsics, 76 | * Including the CMSIS ones. 77 | */ 78 | 79 | /*------------------ COSMIC Compiler -------------------*/ 80 | #elif defined ( __CSMC__ ) 81 | #include 82 | 83 | #endif 84 | 85 | /*@} end of CMSIS_Core_RegAccFunctions */ 86 | 87 | #endif /* __CORE_CMFUNC_H */ 88 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/sysIrqHandlers.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Default IRQ handlers 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | 17 | /*! 18 | * \brief This function handles NMI exception. 19 | * \param None 20 | * \retval None 21 | */ 22 | void NMI_Handler( void ) 23 | { 24 | } 25 | 26 | /*! 27 | * \brief This function handles Hard Fault exception. 28 | * \param None 29 | * \retval None 30 | */ 31 | #if defined( HARD_FAULT_HANDLER_ENABLED ) 32 | void HardFault_Handler_C( unsigned int *args ) 33 | { 34 | volatile unsigned int stacked_r0; 35 | volatile unsigned int stacked_r1; 36 | volatile unsigned int stacked_r2; 37 | volatile unsigned int stacked_r3; 38 | volatile unsigned int stacked_r12; 39 | volatile unsigned int stacked_lr; 40 | volatile unsigned int stacked_pc; 41 | volatile unsigned int stacked_psr; 42 | 43 | stacked_r0 = ( ( unsigned long) args[0] ); 44 | stacked_r1 = ( ( unsigned long) args[1] ); 45 | stacked_r2 = ( ( unsigned long) args[2] ); 46 | stacked_r3 = ( ( unsigned long) args[3] ); 47 | 48 | stacked_r12 = ( ( unsigned long) args[4] ); 49 | stacked_lr = ( ( unsigned long) args[5] ); 50 | stacked_pc = ( ( unsigned long) args[6] ); 51 | stacked_psr = ( ( unsigned long) args[7] ); 52 | 53 | ( void )stacked_r0; 54 | ( void )stacked_r1; 55 | ( void )stacked_r2; 56 | ( void )stacked_r3; 57 | 58 | ( void )stacked_r12; 59 | ( void )stacked_lr ; 60 | ( void )stacked_pc ; 61 | ( void )stacked_psr; 62 | 63 | while( 1 ); 64 | } 65 | 66 | #if defined(__CC_ARM) 67 | __asm void HardFault_Handler(void) 68 | { 69 | TST LR, #4 70 | ITE EQ 71 | MRSEQ r0, MSP 72 | MRSNE r0, PSP 73 | B __cpp(HardFault_Handler_C) 74 | } 75 | #elif defined(__ICCARM__) 76 | void HardFault_Handler(void) 77 | { 78 | __asm("TST LR, #4"); 79 | __asm("ITE EQ"); 80 | __asm("MRSEQ r0, MSP"); 81 | __asm("MRSNE r0, PSP"); 82 | __asm("B HardFault_Handler_C"); 83 | } 84 | #elif defined(__GNUC__) 85 | void HardFault_Handler(void) 86 | { 87 | __asm volatile( "TST LR, #4" ); 88 | __asm volatile( "ITE EQ" ); 89 | __asm volatile( "MRSEQ R0, MSP" ); 90 | __asm volatile( "MRSNE R0, PSP" ); 91 | __asm volatile( "B HardFault_Handler_C" ); 92 | } 93 | #else 94 | #warning Not supported compiler type 95 | #endif 96 | 97 | #endif 98 | 99 | /*! 100 | * \brief This function handles Memory Manage exception. 101 | * \param None 102 | * \retval None 103 | */ 104 | void MemManage_Handler( void ) 105 | { 106 | /* Go to infinite loop when Memory Manage exception occurs */ 107 | while ( 1 ) 108 | { 109 | } 110 | } 111 | 112 | /*! 113 | * \brief This function handles Bus Fault exception. 114 | * \param None 115 | * \retval None 116 | */ 117 | void BusFault_Handler( void ) 118 | { 119 | /* Go to infinite loop when Bus Fault exception occurs */ 120 | while ( 1 ) 121 | { 122 | } 123 | } 124 | 125 | /*! 126 | * \brief This function handles Usage Fault exception. 127 | * \param None 128 | * \retval None 129 | */ 130 | void UsageFault_Handler( void ) 131 | { 132 | /* Go to infinite loop when Usage Fault exception occurs */ 133 | while ( 1 ) 134 | { 135 | } 136 | } 137 | 138 | /*! 139 | * \brief This function handles Debug Monitor exception. 140 | * \param None 141 | * \retval None 142 | */ 143 | void DebugMon_Handler( void ) 144 | { 145 | } 146 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/utilities.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Helper functions implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include 16 | #include 17 | #include "board.h" 18 | #include "utilities.h" 19 | 20 | /*! 21 | * Redefinition of rand() and srand() standard C functions. 22 | * These functions are redefined in order to get the same behavior across 23 | * different compiler toolchains implementations. 24 | */ 25 | // Standard random functions redefinition start 26 | #define RAND_LOCAL_MAX 2147483647L 27 | 28 | static uint32_t next = 1; 29 | 30 | int32_t rand1( void ) 31 | { 32 | return ( ( next = next * 1103515245L + 12345L ) % RAND_LOCAL_MAX ); 33 | } 34 | 35 | void srand1( uint32_t seed ) 36 | { 37 | next = seed; 38 | } 39 | // Standard random functions redefinition end 40 | 41 | int32_t randr( int32_t min, int32_t max ) 42 | { 43 | return ( int32_t )rand1( ) % ( max - min + 1 ) + min; 44 | } 45 | 46 | void memcpy1( uint8_t *dst, const uint8_t *src, uint16_t size ) 47 | { 48 | while( size-- ) 49 | { 50 | *dst++ = *src++; 51 | } 52 | } 53 | 54 | void memcpyr( uint8_t *dst, const uint8_t *src, uint16_t size ) 55 | { 56 | dst = dst + ( size - 1 ); 57 | while( size-- ) 58 | { 59 | *dst-- = *src++; 60 | } 61 | } 62 | 63 | void memset1( uint8_t *dst, uint8_t value, uint16_t size ) 64 | { 65 | while( size-- ) 66 | { 67 | *dst++ = value; 68 | } 69 | } 70 | 71 | int8_t Nibble2HexChar( uint8_t a ) 72 | { 73 | if( a < 10 ) 74 | { 75 | return '0' + a; 76 | } 77 | else if( a < 16 ) 78 | { 79 | return 'A' + ( a - 10 ); 80 | } 81 | else 82 | { 83 | return '?'; 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /src/boards/mcu/stm32/utilities.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Helper functions implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __UTILITIES_H__ 16 | #define __UTILITIES_H__ 17 | 18 | /*! 19 | * \brief Returns the minimum value between a and b 20 | * 21 | * \param [IN] a 1st value 22 | * \param [IN] b 2nd value 23 | * \retval minValue Minimum value 24 | */ 25 | #define MIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) 26 | 27 | /*! 28 | * \brief Returns the maximum value between a and b 29 | * 30 | * \param [IN] a 1st value 31 | * \param [IN] b 2nd value 32 | * \retval maxValue Maximum value 33 | */ 34 | #define MAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) 35 | 36 | /*! 37 | * \brief Returns 2 raised to the power of n 38 | * 39 | * \param [IN] n power value 40 | * \retval result of raising 2 to the power n 41 | */ 42 | #define POW2( n ) ( 1 << n ) 43 | 44 | /*! 45 | * \brief Initializes the pseudo random generator initial value 46 | * 47 | * \param [IN] seed Pseudo random generator initial value 48 | */ 49 | void srand1( uint32_t seed ); 50 | 51 | /*! 52 | * \brief Computes a random number between min and max 53 | * 54 | * \param [IN] min range minimum value 55 | * \param [IN] max range maximum value 56 | * \retval random random value in range min..max 57 | */ 58 | int32_t randr( int32_t min, int32_t max ); 59 | 60 | /*! 61 | * \brief Copies size elements of src array to dst array 62 | * 63 | * \remark STM32 Standard memcpy function only works on pointers that are aligned 64 | * 65 | * \param [OUT] dst Destination array 66 | * \param [IN] src Source array 67 | * \param [IN] size Number of bytes to be copied 68 | */ 69 | void memcpy1( uint8_t *dst, const uint8_t *src, uint16_t size ); 70 | 71 | /*! 72 | * \brief Copies size elements of src array to dst array reversing the byte order 73 | * 74 | * \param [OUT] dst Destination array 75 | * \param [IN] src Source array 76 | * \param [IN] size Number of bytes to be copied 77 | */ 78 | void memcpyr( uint8_t *dst, const uint8_t *src, uint16_t size ); 79 | 80 | /*! 81 | * \brief Set size elements of dst array with value 82 | * 83 | * \remark STM32 Standard memset function only works on pointers that are aligned 84 | * 85 | * \param [OUT] dst Destination array 86 | * \param [IN] value Default value 87 | * \param [IN] size Number of bytes to be copied 88 | */ 89 | void memset1( uint8_t *dst, uint8_t value, uint16_t size ); 90 | 91 | /*! 92 | * \brief Converts a nibble to an hexadecimal character 93 | * 94 | * \param [IN] a Nibble to be converted 95 | * \retval hexChar Converted hexadecimal character 96 | */ 97 | int8_t Nibble2HexChar( uint8_t a ); 98 | 99 | #endif // __UTILITIES_H__ 100 | -------------------------------------------------------------------------------- /src/mac/LoRaMacTest.h: -------------------------------------------------------------------------------- 1 | /*! 2 | * \file LoRaMacTest.h 3 | * 4 | * \brief LoRa MAC layer test function implementation 5 | * 6 | * \copyright Revised BSD License, see section \ref LICENSE. 7 | * 8 | * \code 9 | * ______ _ 10 | * / _____) _ | | 11 | * ( (____ _____ ____ _| |_ _____ ____| |__ 12 | * \____ \| ___ | (_ _) ___ |/ ___) _ \ 13 | * _____) ) ____| | | || |_| ____( (___| | | | 14 | * (______/|_____)_|_|_| \__)_____)\____)_| |_| 15 | * (C)2013 Semtech 16 | * 17 | * ___ _____ _ ___ _ _____ ___ ___ ___ ___ 18 | * / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __| 19 | * \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _| 20 | * |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___| 21 | * embedded.connectivity.solutions=============== 22 | * 23 | * \endcode 24 | * 25 | * \author Miguel Luis ( Semtech ) 26 | * 27 | * \author Gregory Cristian ( Semtech ) 28 | * 29 | * \author Daniel Jaeckle ( STACKFORCE ) 30 | * 31 | * \defgroup LORAMACTEST LoRa MAC layer test function implementation 32 | * This module specifies the API implementation of test function of the LoRaMAC layer. 33 | * The functions in this file are only for testing purposes only. 34 | * \{ 35 | */ 36 | #ifndef __LORAMACTEST_H__ 37 | #define __LORAMACTEST_H__ 38 | 39 | /*! 40 | * \brief Enabled or disables the reception windows 41 | * 42 | * \details This is a test function. It shall be used for testing purposes only. 43 | * Changing this attribute may lead to a non-conformance LoRaMac operation. 44 | * 45 | * \param [IN] enable - Enabled or disables the reception windows 46 | */ 47 | void LoRaMacTestRxWindowsOn( bool enable ); 48 | 49 | /*! 50 | * \brief Enables the MIC field test 51 | * 52 | * \details This is a test function. It shall be used for testing purposes only. 53 | * Changing this attribute may lead to a non-conformance LoRaMac operation. 54 | * 55 | * \param [IN] txPacketCounter - Fixed Tx packet counter value 56 | */ 57 | void LoRaMacTestSetMic( uint16_t txPacketCounter ); 58 | 59 | /*! 60 | * \brief Enabled or disables the duty cycle 61 | * 62 | * \details This is a test function. It shall be used for testing purposes only. 63 | * Changing this attribute may lead to a non-conformance LoRaMac operation. 64 | * 65 | * \param [IN] enable - Enabled or disables the duty cycle 66 | */ 67 | void LoRaMacTestSetDutyCycleOn( bool enable ); 68 | 69 | /*! 70 | * \brief Sets the channel index 71 | * 72 | * \details This is a test function. It shall be used for testing purposes only. 73 | * Changing this attribute may lead to a non-conformance LoRaMac operation. 74 | * 75 | * \param [IN] channel - Channel index 76 | */ 77 | void LoRaMacTestSetChannel( uint8_t channel ); 78 | 79 | /*! \} defgroup LORAMACTEST */ 80 | 81 | #endif // __LORAMACTEST_H__ 82 | -------------------------------------------------------------------------------- /src/peripherals/gpio-ioe.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: IO expander driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __GPIO_IOE_H__ 16 | #define __GPIO_IOE_H__ 17 | 18 | /*! 19 | * \brief Initializes the given GPIO object 20 | * 21 | * \param [IN] obj Pointer to the GPIO object to be initialized 22 | * \param [IN] pin Pin name ( please look in pinName-board.h file ) 23 | * \param [IN] mode Pin mode [PIN_INPUT, PIN_OUTPUT, 24 | * PIN_ALTERNATE_FCT, PIN_ANALOGIC] 25 | * \param [IN] config Pin config [PIN_PUSH_PULL, PIN_OPEN_DRAIN] 26 | * \param [IN] type Pin type [PIN_NO_PULL, PIN_PULL_UP, PIN_PULL_DOWN] 27 | * \param [IN] value Default output value at initialization 28 | */ 29 | void GpioIoeInit( Gpio_t *obj, PinNames pin, PinModes mode, PinConfigs config, PinTypes type, uint32_t value ); 30 | 31 | /*! 32 | * \brief GPIO IRQ Initialization 33 | * 34 | * \param [IN] obj Pointer to the GPIO object to be initialized 35 | * \param [IN] irqMode IRQ mode [NO_IRQ, IRQ_RISING_EDGE, 36 | * IRQ_FALLING_EDGE, IRQ_RISING_FALLING_EDGE] 37 | * \param [IN] irqPriority IRQ priority [IRQ_VERY_LOW_PRIORITY, IRQ_LOW_PRIORITY 38 | * IRQ_MEDIUM_PRIORITY, IRQ_HIGH_PRIORITY 39 | * IRQ_VERY_HIGH_PRIORITY] 40 | * \param [IN] irqHandler Callback function pointer 41 | */ 42 | void GpioIoeSetInterrupt( Gpio_t *obj, IrqModes irqMode, IrqPriorities irqPriority, GpioIrqHandler *irqHandler ); 43 | 44 | /*! 45 | * \brief Writes the given value to the GPIO output 46 | * 47 | * \param [IN] obj Pointer to the GPIO object 48 | * \param [IN] value New GPIO output value 49 | */ 50 | void GpioIoeWrite( Gpio_t *obj, uint32_t value ); 51 | 52 | /*! 53 | * \brief Reads the current GPIO input value 54 | * 55 | * \param [IN] obj Pointer to the GPIO object 56 | * \retval value Current GPIO input value 57 | */ 58 | uint32_t GpioIoeRead( Gpio_t *obj ); 59 | 60 | /*! 61 | * \brief GpioIoeInterruptHandler callback function. 62 | */ 63 | void GpioIoeInterruptHandler( void ); 64 | 65 | #endif // __GPIO_IOE_H__ 66 | -------------------------------------------------------------------------------- /src/peripherals/mag3110.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Driver for the MAG3110 Magnetometer 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | #include "mag3110.h" 17 | 18 | static uint8_t I2cDeviceAddr = 0; 19 | static bool MAG3110Initialized = false; 20 | 21 | uint8_t MAG3110Init( void ) 22 | { 23 | uint8_t regVal = 0; 24 | 25 | MAG3110SetDeviceAddr( MAG3110_I2C_ADDRESS ); 26 | 27 | if( MAG3110Initialized == false ) 28 | { 29 | MAG3110Initialized = true; 30 | 31 | MAG3110Read( MAG3110_ID, ®Val ); 32 | if( regVal != 0xC4 ) // Fixed Device ID Number = 0xC4 33 | { 34 | return FAIL; 35 | } 36 | 37 | MAG3110Reset( ); 38 | } 39 | return SUCCESS; 40 | } 41 | 42 | uint8_t MAG3110Reset( void ) 43 | { 44 | if( MAG3110Write( 0x11, 0x10 ) == SUCCESS ) // Reset the MAG3110 with CTRL_REG2 45 | { 46 | return SUCCESS; 47 | } 48 | return FAIL; 49 | } 50 | 51 | uint8_t MAG3110Write( uint8_t addr, uint8_t data ) 52 | { 53 | return MAG3110WriteBuffer( addr, &data, 1 ); 54 | } 55 | 56 | uint8_t MAG3110WriteBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 57 | { 58 | return I2cWriteBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 59 | } 60 | 61 | uint8_t MAG3110Read( uint8_t addr, uint8_t *data ) 62 | { 63 | return MAG3110ReadBuffer( addr, data, 1 ); 64 | } 65 | 66 | uint8_t MAG3110ReadBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 67 | { 68 | return I2cReadBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 69 | } 70 | 71 | void MAG3110SetDeviceAddr( uint8_t addr ) 72 | { 73 | I2cDeviceAddr = addr; 74 | } 75 | 76 | uint8_t MAG3110GetDeviceAddr( void ) 77 | { 78 | return I2cDeviceAddr; 79 | } 80 | -------------------------------------------------------------------------------- /src/peripherals/mag3110.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Driver for the MAG3110 Magnetometer 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __MAG3110_H__ 16 | #define __MAG3110_H__ 17 | 18 | /*! 19 | * MAG3110 I2C address 20 | */ 21 | #define MAG3110_I2C_ADDRESS 0x0E 22 | 23 | /*! 24 | * MAG3110 Registers 25 | */ 26 | #define MAG3110_ID 0x07 27 | 28 | /*! 29 | * \brief Initializes the device 30 | * 31 | * \retval status [SUCCESS, FAIL] 32 | */ 33 | uint8_t MAG3110Init( void ); 34 | 35 | /*! 36 | * \brief Resets the device 37 | * 38 | * \retval status [SUCCESS, FAIL] 39 | */ 40 | uint8_t MAG3110Reset( void ); 41 | 42 | /*! 43 | * \brief Writes a byte at specified address in the device 44 | * 45 | * \param [IN]: addr 46 | * \param [IN]: data 47 | * \retval status [SUCCESS, FAIL] 48 | */ 49 | uint8_t MAG3110Write( uint8_t addr, uint8_t data ); 50 | 51 | /*! 52 | * \brief Writes a buffer at specified address in the device 53 | * 54 | * \param [IN]: addr 55 | * \param [IN]: data 56 | * \param [IN]: size 57 | * \retval status [SUCCESS, FAIL] 58 | */ 59 | uint8_t MAG3110WriteBuffer( uint8_t addr, uint8_t *data, uint8_t size ); 60 | 61 | /*! 62 | * \brief Reads a byte at specified address in the device 63 | * 64 | * \param [IN]: addr 65 | * \param [OUT]: data 66 | * \retval status [SUCCESS, FAIL] 67 | */ 68 | uint8_t MAG3110Read( uint8_t addr, uint8_t *data ); 69 | 70 | /*! 71 | * \brief Reads a buffer at specified address in the device 72 | * 73 | * \param [IN]: addr 74 | * \param [OUT]: data 75 | * \param [IN]: size 76 | * \retval status [SUCCESS, FAIL] 77 | */ 78 | uint8_t MAG3110ReadBuffer( uint8_t addr, uint8_t *data, uint8_t size ); 79 | 80 | /*! 81 | * \brief Sets the I2C device slave address 82 | * 83 | * \param [IN]: addr 84 | */ 85 | void MAG3110SetDeviceAddr( uint8_t addr ); 86 | 87 | /*! 88 | * \brief Gets the I2C device slave address 89 | * 90 | * \retval: addr Current device slave address 91 | */ 92 | uint8_t MAG3110GetDeviceAddr( void ); 93 | 94 | #endif // __MAG3110_H__ 95 | -------------------------------------------------------------------------------- /src/peripherals/mma8451.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Driver for the MMA8451 Accelerometer 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __MMA8451_H__ 16 | #define __MMA8451_H__ 17 | 18 | /* 19 | * MMA8451 I2C address 20 | */ 21 | #define MMA8451_I2C_ADDRESS 0x1C 22 | 23 | /* 24 | * MMA8451 Registers 25 | */ 26 | #define MMA8451_STATUS 0x00 // 27 | #define MMA8451_OUT_X_MSB 0x01 // 28 | #define MMA8451_SYSMOD 0x0B // 29 | #define MMA8451_INT_SOURCE 0x0C // 30 | #define MMA8451_ID 0x0D // 31 | #define MMA8451_PL_STATUS 0x10 // 32 | #define MMA8451_PL_CFG 0x11 // 33 | #define MMA8451_PL_COUNT 0x12 // Orientation debounce 34 | #define MMA8451_PL_BF_ZCOMP 0x13 // 35 | #define MMA8451_PL_THS_REG 0x14 // 36 | #define MMA8451_FF_MT_SRC 0x16 // 37 | #define MMA8451_TRANSIENT_CFG 0x1D // Transient enable 38 | #define MMA8451_TRANSIENT_SRC 0x1E // Transient read/clear interrupt 39 | #define MMA8451_TRANSIENT_THS 0x1F // Transient threshold 40 | #define MMA8451_TRANSIENT_COUNT 0x20 // Transient debounce 41 | #define MMA8451_PULSE_SRC 0x22 // 42 | #define MMA8451_CTRL_REG1 0x2A // 43 | #define MMA8451_CTRL_REG2 0x2B // 44 | #define MMA8451_CTRL_REG3 0x2C // Interrupt control 45 | #define MMA8451_CTRL_REG4 0x2D // Interrupt enable 46 | #define MMA8451_CTRL_REG5 0x2E // Interrupt pin selection 47 | 48 | /*! 49 | * \brief Initializes the device 50 | * 51 | * \retval status [SUCCESS, FAIL] 52 | */ 53 | uint8_t MMA8451Init( void ); 54 | 55 | /*! 56 | * \brief Resets the device 57 | * 58 | * \retval status [SUCCESS, FAIL] 59 | */ 60 | uint8_t MMA8451Reset( void ); 61 | 62 | /*! 63 | * \brief Initializes the orientation detection 64 | */ 65 | void MMA8451OrientDetect( void ); 66 | 67 | /*! 68 | * \brief Gets the orientation state. 69 | * 70 | * \retval orientation Bit 6 [1: Horizontal, 0: Vertical] 71 | * Bit 0 [1: Face down, 0: Face up] 72 | * Other bits don't care. 73 | */ 74 | uint8_t MMA8451GetOrientation( void ); 75 | 76 | #endif // __MMA8451_H__ 77 | -------------------------------------------------------------------------------- /src/peripherals/mpl3115.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuvanCheng/LoRa/94fa4aba1c84073674caa37a59d6a0f6a29591fa/src/peripherals/mpl3115.c -------------------------------------------------------------------------------- /src/peripherals/pam7q.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2016 Semtech 8 | 9 | Description: Driver for the SX1509 IO expander 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | #include "pam7q.h" 17 | 18 | static uint8_t I2cDeviceAddr = 0; 19 | 20 | void PAM7QInit( void ) 21 | { 22 | PAM7QSetDeviceAddr( PAM7Q_I2C_ADDRESS ); 23 | } 24 | 25 | bool PAM7QGetGpsData( uint8_t *nmeaString, uint8_t *nmeaStringSize, uint16_t nmeaMaxStringSize ) 26 | { 27 | uint8_t status; 28 | uint16_t pendingBytes; 29 | bool result = false; 30 | 31 | *nmeaStringSize = 0; 32 | 33 | status = PAM7QReadBuffer( MESSAGE_SIZE_1, nmeaString, 2 ); 34 | 35 | if( status == SUCCESS ) 36 | { 37 | // build a 16bit number 38 | pendingBytes = ( uint16_t )( ( nmeaString[0] << 8 ) | nmeaString[1] ); 39 | 40 | // check for invalid length 41 | if( pendingBytes == 0xFFFF ) 42 | { 43 | pendingBytes = 0; 44 | } 45 | // just to buffer size 46 | if( pendingBytes > ( nmeaMaxStringSize - 1 ) ) 47 | { 48 | pendingBytes = nmeaMaxStringSize - 1; 49 | } 50 | 51 | // read pending data from GPS module 52 | status = PAM7QReadBuffer( PAYLOAD, nmeaString, pendingBytes ); 53 | 54 | // make sure the string is terminated 55 | if( status == SUCCESS ) 56 | { 57 | nmeaString[pendingBytes] = 0x00; 58 | 59 | // copy length indication to argument 60 | *nmeaStringSize = pendingBytes; 61 | 62 | // return success only if there is data to process 63 | if( pendingBytes > 0 ) 64 | { 65 | result = true; 66 | } 67 | } 68 | } 69 | return result; 70 | } 71 | 72 | uint8_t PAM7QGetDeviceAddr( void ) 73 | { 74 | return I2cDeviceAddr; 75 | } 76 | 77 | void PAM7QSetDeviceAddr( uint8_t addr ) 78 | { 79 | I2cDeviceAddr = addr; 80 | } 81 | 82 | uint8_t PAM7QWrite( uint8_t addr, uint8_t data ) 83 | { 84 | return PAM7QWriteBuffer( addr, &data, 1 ); 85 | } 86 | 87 | uint8_t PAM7QWriteBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 88 | { 89 | return I2cWriteBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 90 | } 91 | 92 | uint8_t PAM7QRead( uint8_t addr, uint8_t *data ) 93 | { 94 | return PAM7QReadBuffer( addr, data, 1 ); 95 | } 96 | 97 | uint8_t PAM7QReadBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 98 | { 99 | return I2cReadBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 100 | } 101 | -------------------------------------------------------------------------------- /src/peripherals/pam7q.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2016 Semtech 8 | 9 | Description: Driver for the SX1509 IO expander 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __PAM7Q_H__ 16 | #define __PAM7Q_H__ 17 | 18 | void PAM7QInit( void ); 19 | 20 | uint8_t PAM7QGetDeviceAddr( void ); 21 | 22 | void PAM7QSetDeviceAddr( uint8_t addr ); 23 | 24 | bool PAM7QGetGpsData( uint8_t *nmeaString, uint8_t *nmeaStringSize, uint16_t nmeaMaxStringSize ); 25 | 26 | uint8_t PAM7QWrite( uint8_t addr, uint8_t data ); 27 | 28 | uint8_t PAM7QWriteBuffer( uint8_t addr, uint8_t *data, uint8_t size ); 29 | 30 | uint8_t PAM7QRead( uint8_t addr, uint8_t *data ); 31 | 32 | uint8_t PAM7QReadBuffer( uint8_t addr, uint8_t *data, uint8_t size ); 33 | 34 | void GpsMcuOnPpsSignal( void ); 35 | 36 | /* 37 | * MPL3115A2 I2C address 38 | */ 39 | #define PAM7Q_I2C_ADDRESS 0x42 40 | 41 | #define MESSAGE_SIZE_1 0xFD 42 | #define MESSAGE_SIZE_2 0xFE 43 | 44 | #define PAYLOAD 0xFF 45 | 46 | 47 | #endif // __PAM7Q_H__ 48 | 49 | -------------------------------------------------------------------------------- /src/peripherals/selector.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Hex coder selector driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | 17 | #include "selector.h" 18 | 19 | uint8_t SelectorGetValue( void ) 20 | { 21 | /*! 22 | * Hex coder selector GPIO pins objects 23 | */ 24 | Gpio_t Sel1; 25 | Gpio_t Sel2; 26 | Gpio_t Sel3; 27 | Gpio_t Sel4; 28 | 29 | uint8_t i = 0; 30 | uint8_t j = 0; 31 | uint8_t k = 255; 32 | 33 | // Active 34 | GpioInit( &Sel1, SEL_1, PIN_INPUT, PIN_PUSH_PULL, PIN_PULL_UP, 0 ); 35 | GpioInit( &Sel2, SEL_2, PIN_INPUT, PIN_PUSH_PULL, PIN_PULL_UP, 0 ); 36 | GpioInit( &Sel3, SEL_3, PIN_INPUT, PIN_PUSH_PULL, PIN_PULL_UP, 0 ); 37 | GpioInit( &Sel4, SEL_4, PIN_INPUT, PIN_PUSH_PULL, PIN_PULL_UP, 0 ); 38 | 39 | do 40 | { 41 | j = i; 42 | k = j; 43 | // 1 ms delay between checks 44 | DelayMs( 1 ); 45 | i = !GpioRead( &Sel1 ); 46 | i += 2 * !GpioRead( &Sel2 ); 47 | i += 4 * !GpioRead( &Sel3 ); 48 | i += 8 * !GpioRead( &Sel4 ); 49 | } while( ( i != j ) && ( i != k ) ); // Waits for 3 successive values to be equal 50 | 51 | // Sleep 52 | GpioInit( &Sel1, SEL_1, PIN_OUTPUT, PIN_OPEN_DRAIN, PIN_NO_PULL, 0 ); 53 | GpioInit( &Sel2, SEL_2, PIN_OUTPUT, PIN_OPEN_DRAIN, PIN_NO_PULL, 0 ); 54 | GpioInit( &Sel3, SEL_3, PIN_OUTPUT, PIN_OPEN_DRAIN, PIN_NO_PULL, 0 ); 55 | GpioInit( &Sel4, SEL_4, PIN_OUTPUT, PIN_OPEN_DRAIN, PIN_NO_PULL, 0 ); 56 | 57 | return i; 58 | } 59 | -------------------------------------------------------------------------------- /src/peripherals/selector.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Hex coder selector driver implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __SELECTOR_H__ 16 | #define __SELECTOR_H__ 17 | 18 | /*! 19 | * Gets the current hex coder selector position 20 | * 21 | * \retval position Hex coder current position ( On error position = 255 ) 22 | */ 23 | uint8_t SelectorGetValue( void ); 24 | 25 | #endif // __SELECTOR_H__ 26 | -------------------------------------------------------------------------------- /src/peripherals/sx1509.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Driver for the SX1509 IO expander 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | #include "sx1509.h" 17 | 18 | static uint8_t I2cDeviceAddr = 0; 19 | 20 | static bool SX1509Initialized = false; 21 | 22 | void SX1509Init( void ) 23 | { 24 | if( SX1509Initialized == false ) 25 | { 26 | SX1509SetDeviceAddr( SX1509_I2C_ADDRESS ); 27 | SX1509Initialized = true; 28 | 29 | SX1509Reset( ); 30 | } 31 | } 32 | 33 | uint8_t SX1509Reset( ) 34 | { 35 | if( SX1509Write( RegReset, 0x12 ) == SUCCESS ) 36 | { 37 | if( SX1509Write( RegReset, 0x34 ) == SUCCESS ) 38 | { 39 | return SUCCESS; 40 | } 41 | } 42 | return FAIL; 43 | } 44 | 45 | uint8_t SX1509Write( uint8_t addr, uint8_t data ) 46 | { 47 | return SX1509WriteBuffer( addr, &data, 1 ); 48 | } 49 | 50 | uint8_t SX1509WriteBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 51 | { 52 | return I2cWriteBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 53 | } 54 | 55 | uint8_t SX1509Read( uint8_t addr, uint8_t *data ) 56 | { 57 | return SX1509ReadBuffer( addr, data, 1 ); 58 | } 59 | 60 | uint8_t SX1509ReadBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 61 | { 62 | return I2cReadBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 63 | } 64 | 65 | void SX1509SetDeviceAddr( uint8_t addr ) 66 | { 67 | I2cDeviceAddr = addr; 68 | } 69 | 70 | uint8_t SX1509GetDeviceAddr( void ) 71 | { 72 | return I2cDeviceAddr; 73 | } 74 | -------------------------------------------------------------------------------- /src/peripherals/sx9500.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Driver for the SX9500 proximity sensor 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | #include "sx9500.h" 17 | 18 | static uint8_t I2cDeviceAddr = 0; 19 | 20 | static bool SX9500Initialized = false; 21 | 22 | uint8_t SX9500Init( void ) 23 | { 24 | uint8_t regVal = 0; 25 | 26 | SX9500SetDeviceAddr( SX9500_I2C_ADDRESS ); 27 | 28 | if( SX9500Initialized == false ) 29 | { 30 | SX9500Initialized = true; 31 | 32 | SX9500Read( SX9500_REG_PROXCTRL0, ®Val ); 33 | if( regVal != 0x0F ) 34 | { 35 | return FAIL; 36 | } 37 | 38 | SX9500Reset( ); 39 | } 40 | return SUCCESS; 41 | } 42 | 43 | uint8_t SX9500Reset( ) 44 | { 45 | if( SX9500Write( SX9500_REG_RESET, SX9500_RESET_CMD ) == SUCCESS ) 46 | { 47 | return SUCCESS; 48 | } 49 | return FAIL; 50 | } 51 | 52 | uint8_t SX9500Write( uint8_t addr, uint8_t data ) 53 | { 54 | return SX9500WriteBuffer( addr, &data, 1 ); 55 | } 56 | 57 | uint8_t SX9500WriteBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 58 | { 59 | return I2cWriteBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 60 | } 61 | 62 | uint8_t SX9500Read( uint8_t addr, uint8_t *data ) 63 | { 64 | return SX9500ReadBuffer( addr, data, 1 ); 65 | } 66 | 67 | uint8_t SX9500ReadBuffer( uint8_t addr, uint8_t *data, uint8_t size ) 68 | { 69 | return I2cReadBuffer( &I2c, I2cDeviceAddr << 1, addr, data, size ); 70 | } 71 | 72 | void SX9500SetDeviceAddr( uint8_t addr ) 73 | { 74 | I2cDeviceAddr = addr; 75 | } 76 | 77 | uint8_t SX9500GetDeviceAddr( void ) 78 | { 79 | return I2cDeviceAddr; 80 | } 81 | 82 | void SX9500LockUntilDetection( void ) 83 | { 84 | uint8_t val = 0; 85 | 86 | SX9500Write( SX9500_REG_RESET, SX9500_RESET_CMD ); 87 | SX9500Read( SX9500_REG_IRQSRC, &val ); 88 | SX9500Read( SX9500_REG_STAT, &val ); 89 | 90 | SX9500Write( SX9500_REG_PROXCTRL0, 0x0F ); 91 | SX9500Write( SX9500_REG_PROXCTRL1, 0x43 ); 92 | SX9500Write( SX9500_REG_PROXCTRL2, 0x77 ); 93 | SX9500Write( SX9500_REG_PROXCTRL3, 0x01 ); 94 | SX9500Write( SX9500_REG_PROXCTRL4, 0x30 ); 95 | SX9500Write( SX9500_REG_PROXCTRL5, 0x0F ); 96 | SX9500Write( SX9500_REG_PROXCTRL6, 0x04 ); 97 | SX9500Write( SX9500_REG_PROXCTRL7, 0x40 ); 98 | SX9500Write( SX9500_REG_PROXCTRL8, 0x00 ); 99 | SX9500Write( SX9500_REG_IRQMSK, 0x60 ); 100 | 101 | val = 0; 102 | 103 | while( ( val & 0xF0 ) == 0x00 ) 104 | { 105 | SX9500Read( SX9500_REG_STAT, &val ); 106 | } 107 | 108 | SX9500Read( SX9500_REG_STAT, &val ); 109 | SX9500Read( SX9500_REG_IRQSRC, &val ); 110 | } 111 | -------------------------------------------------------------------------------- /src/peripherals/sx9500.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Driver for the SX9500 proximity sensor 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __SX9500_H__ 16 | #define __SX9500_H__ 17 | 18 | #define SX9500_I2C_ADDRESS 0x28 19 | 20 | #define SX9500_REG_IRQSRC 0x00 21 | #define SX9500_REG_STAT 0x01 22 | #define SX9500_REG_IRQMSK 0x03 23 | #define SX9500_REG_PROXCTRL0 0x06 24 | #define SX9500_REG_PROXCTRL1 0x07 25 | #define SX9500_REG_PROXCTRL2 0x08 26 | #define SX9500_REG_PROXCTRL3 0x09 27 | #define SX9500_REG_PROXCTRL4 0x0A 28 | #define SX9500_REG_PROXCTRL5 0x0B 29 | #define SX9500_REG_PROXCTRL6 0x0C 30 | #define SX9500_REG_PROXCTRL7 0x0D 31 | #define SX9500_REG_PROXCTRL8 0x0E 32 | #define SX9500_REG_SENSORSEL 0x20 33 | #define SX9500_REG_USEMSB 0x21 34 | #define SX9500_REG_USELSB 0x22 35 | #define SX9500_REG_AVGMSB 0x23 36 | #define SX9500_REG_AVGLSB 0x24 37 | #define SX9500_REG_DIFFMSB 0x25 38 | #define SX9500_REG_DIFFLSB 0x26 39 | #define SX9500_REG_OFFSETMSB 0x27 40 | #define SX9500_REG_OFFSETLSB 0x28 41 | #define SX9500_REG_RESET 0x7F 42 | 43 | #define SX9500_RESET_CMD 0xDE 44 | 45 | uint8_t SX9500Init( void ); 46 | 47 | /*! 48 | * \brief Resets the device 49 | * 50 | * \retval status [OK, ERROR, UNSUPPORTED] 51 | */ 52 | uint8_t SX9500Reset( void ); 53 | 54 | /*! 55 | * \brief Writes a byte at specified address in the device 56 | * 57 | * \param [IN]: addr 58 | * \param [IN]: data 59 | * \retval status [OK, ERROR, UNSUPPORTED] 60 | */ 61 | uint8_t SX9500Write( uint8_t addr, uint8_t data ); 62 | 63 | /*! 64 | * \brief Writes a buffer at specified address in the device 65 | * 66 | * \param [IN]: addr 67 | * \param [IN]: data 68 | * \param [IN]: size 69 | * \retval status [OK, ERROR, UNSUPPORTED] 70 | */ 71 | uint8_t SX9500WriteBuffer( uint8_t addr, uint8_t *data, uint8_t size ); 72 | 73 | /*! 74 | * \brief Reads a byte at specified address in the device 75 | * 76 | * \param [IN]: addr 77 | * \param [OUT]: data 78 | * \retval status [OK, ERROR, UNSUPPORTED] 79 | */ 80 | uint8_t SX9500Read( uint8_t addr, uint8_t *data ); 81 | 82 | /*! 83 | * \brief Reads a buffer at specified address in the device 84 | * 85 | * \param [IN]: addr 86 | * \param [OUT]: data 87 | * \param [IN]: size 88 | * \retval status [OK, ERROR, UNSUPPORTED] 89 | */ 90 | uint8_t SX9500ReadBuffer( uint8_t addr, uint8_t *data, uint8_t size ); 91 | 92 | /*! 93 | * \brief Sets the I2C device slave address 94 | * 95 | * \param [IN]: addr 96 | */ 97 | void SX9500SetDeviceAddr( uint8_t addr ); 98 | 99 | /*! 100 | * \brief Gets the I2C device slave address 101 | * 102 | * \retval: addr Current device slave address 103 | */ 104 | uint8_t SX9500GetDeviceAddr( void ); 105 | 106 | /*! 107 | * \brief Goes into a loop until a successful capacitive proximity detection 108 | */ 109 | void SX9500LockUntilDetection( void ); 110 | 111 | #endif // __SX1509_H__ 112 | -------------------------------------------------------------------------------- /src/system/adc.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements a generic ADC driver 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | #include "adc-board.h" 17 | 18 | /*! 19 | * Flag to indicates if the ADC is initialized 20 | */ 21 | static bool AdcInitialized = false; 22 | 23 | void AdcInit( Adc_t *obj, PinNames adcInput ) 24 | { 25 | if( AdcInitialized == false ) 26 | { 27 | AdcInitialized = true; 28 | 29 | AdcMcuInit( obj, adcInput ); 30 | AdcMcuConfig( ); 31 | } 32 | } 33 | 34 | void AdcDeInit( Adc_t *obj ) 35 | { 36 | AdcInitialized = false; 37 | } 38 | 39 | uint16_t AdcReadChannel( Adc_t *obj, uint32_t channel ) 40 | { 41 | if( AdcInitialized == true ) 42 | { 43 | return AdcMcuReadChannel( obj, channel ); 44 | } 45 | else 46 | { 47 | return 0; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/system/adc.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements a generic ADC driver 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __ADC_H__ 16 | #define __ADC_H__ 17 | 18 | /*! 19 | * ADC object type definition 20 | */ 21 | typedef struct 22 | { 23 | Gpio_t AdcInput; 24 | }Adc_t; 25 | 26 | /*! 27 | * \brief Initializes the ADC input 28 | * 29 | * \param [IN] obj ADC object 30 | * \param [IN] scl ADC input pin name to be used 31 | */ 32 | void AdcInit( Adc_t *obj, PinNames adcInput ); 33 | 34 | /*! 35 | * \brief DeInitializes the ADC 36 | * 37 | * \param [IN] obj ADC object 38 | */ 39 | void AdcDeInit( Adc_t *obj ); 40 | 41 | /*! 42 | * \brief Read the analogue voltage value 43 | * 44 | * \param [IN] obj ADC object 45 | * \param [IN] channel ADC channel 46 | * \retval value Analogue pin value 47 | */ 48 | uint16_t AdcReadChannel( Adc_t *obj, uint32_t channel ); 49 | 50 | #endif // __ADC_H__ 51 | -------------------------------------------------------------------------------- /src/system/crypto/cmac.h: -------------------------------------------------------------------------------- 1 | /************************************************************************** 2 | Copyright (C) 2009 Lander Casado, Philippas Tsigas 3 | 4 | All rights reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining 7 | a copy of this software and associated documentation files 8 | (the "Software"), to deal with the Software without restriction, including 9 | without limitation the rights to use, copy, modify, merge, publish, 10 | distribute, sublicense, and/or sell copies of the Software, and to 11 | permit persons to whom the Software is furnished to do so, subject to 12 | the following conditions: 13 | 14 | Redistributions of source code must retain the above copyright notice, 15 | this list of conditions and the following disclaimers. Redistributions in 16 | binary form must reproduce the above copyright notice, this list of 17 | conditions and the following disclaimers in the documentation and/or 18 | other materials provided with the distribution. 19 | 20 | In no event shall the authors or copyright holders be liable for any special, 21 | incidental, indirect or consequential damages of any kind, or any damages 22 | whatsoever resulting from loss of use, data or profits, whether or not 23 | advised of the possibility of damage, and on any theory of liability, 24 | arising out of or in connection with the use or performance of this software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 27 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 31 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 32 | DEALINGS WITH THE SOFTWARE 33 | 34 | *****************************************************************************/ 35 | 36 | #ifndef _CMAC_H_ 37 | #define _CMAC_H_ 38 | 39 | #include "aes.h" 40 | 41 | #define AES_CMAC_KEY_LENGTH 16 42 | #define AES_CMAC_DIGEST_LENGTH 16 43 | 44 | typedef struct _AES_CMAC_CTX { 45 | aes_context rijndael; 46 | uint8_t X[16]; 47 | uint8_t M_last[16]; 48 | uint32_t M_n; 49 | } AES_CMAC_CTX; 50 | 51 | //#include 52 | 53 | //__BEGIN_DECLS 54 | void AES_CMAC_Init(AES_CMAC_CTX * ctx); 55 | void AES_CMAC_SetKey(AES_CMAC_CTX * ctx, const uint8_t key[AES_CMAC_KEY_LENGTH]); 56 | void AES_CMAC_Update(AES_CMAC_CTX * ctx, const uint8_t * data, uint32_t len); 57 | // __attribute__((__bounded__(__string__,2,3))); 58 | void AES_CMAC_Final(uint8_t digest[AES_CMAC_DIGEST_LENGTH], AES_CMAC_CTX * ctx); 59 | // __attribute__((__bounded__(__minbytes__,1,AES_CMAC_DIGEST_LENGTH))); 60 | //__END_DECLS 61 | 62 | #endif /* _CMAC_H_ */ 63 | 64 | -------------------------------------------------------------------------------- /src/system/delay.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Delay functions implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | 17 | void Delay( float s ) 18 | { 19 | DelayMs( s * 1000.0f ); 20 | } 21 | 22 | void DelayMs( uint32_t ms ) 23 | { 24 | HAL_Delay( ms ); 25 | } 26 | -------------------------------------------------------------------------------- /src/system/delay.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Delay functions implementation 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __DELAY_H__ 16 | #define __DELAY_H__ 17 | 18 | /*! 19 | * Blocking delay of "s" seconds 20 | */ 21 | void Delay( float s ); 22 | 23 | /*! 24 | * Blocking delay of "ms" milliseconds 25 | */ 26 | void DelayMs( uint32_t ms ); 27 | 28 | #endif // __DELAY_H__ 29 | 30 | -------------------------------------------------------------------------------- /src/system/eeprom.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Timer objects and scheduling management 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | 17 | #include "eeprom-board.h" 18 | 19 | uint8_t EepromWriteBuffer( uint16_t addr, uint8_t *buffer, uint16_t size ) 20 | { 21 | return EepromMcuWriteBuffer( addr, buffer, size ); 22 | } 23 | 24 | uint8_t EepromReadBuffer( uint16_t addr, uint8_t *buffer, uint16_t size ) 25 | { 26 | return EepromMcuReadBuffer( addr, buffer, size ); 27 | } 28 | 29 | void EepromSetDeviceAddr( uint8_t addr ) 30 | { 31 | EepromMcuSetDeviceAddr( addr ); 32 | } 33 | 34 | uint8_t EepromGetDeviceAddr( void ) 35 | { 36 | return EepromMcuGetDeviceAddr( ); 37 | } 38 | -------------------------------------------------------------------------------- /src/system/eeprom.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Timer objects and scheduling management 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __EEPROM_H__ 16 | #define __EEPROM_H__ 17 | 18 | /*! 19 | * Writes the given buffer to the EEPROM at the specified address. 20 | * 21 | * \param[IN] addr EEPROM address to write to 22 | * \param[IN] buffer Pointer to the buffer to be written. 23 | * \param[IN] size Size of the buffer to be written. 24 | * \retval status [SUCCESS, FAIL] 25 | */ 26 | uint8_t EepromWriteBuffer( uint16_t addr, uint8_t *buffer, uint16_t size ); 27 | 28 | /*! 29 | * Reads the EEPROM at the specified address to the given buffer. 30 | * 31 | * \param[IN] addr EEPROM address to read from 32 | * \param[OUT] buffer Pointer to the buffer to be written with read data. 33 | * \param[IN] size Size of the buffer to be read. 34 | * \retval status [SUCCESS, FAIL] 35 | */ 36 | uint8_t EepromReadBuffer( uint16_t addr, uint8_t *buffer, uint16_t size ); 37 | 38 | /*! 39 | * Sets the device address. 40 | * 41 | * \remark Useful for I2C external EEPROMS 42 | * 43 | * \param[IN] addr External EEPROM address 44 | */ 45 | void EepromSetDeviceAddr( uint8_t addr ); 46 | 47 | /*! 48 | * Gets the current device address. 49 | * 50 | * \remark Useful for I2C external EEPROMS 51 | * 52 | * \retval addr External EEPROM address 53 | */ 54 | uint8_t EepromGetDeviceAddr( void ); 55 | 56 | #endif // __EEPROM_H__ 57 | -------------------------------------------------------------------------------- /src/system/fifo.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements a FIFO buffer 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "fifo.h" 16 | 17 | static uint16_t FifoNext( Fifo_t *fifo, uint16_t index ) 18 | { 19 | return ( index + 1 ) % fifo->Size; 20 | } 21 | 22 | void FifoInit( Fifo_t *fifo, uint8_t *buffer, uint16_t size ) 23 | { 24 | fifo->Begin = 0; 25 | fifo->End = 0; 26 | fifo->Data = buffer; 27 | fifo->Size = size; 28 | } 29 | 30 | void FifoPush( Fifo_t *fifo, uint8_t data ) 31 | { 32 | fifo->End = FifoNext( fifo, fifo->End ); 33 | fifo->Data[fifo->End] = data; 34 | } 35 | 36 | uint8_t FifoPop( Fifo_t *fifo ) 37 | { 38 | uint8_t data = fifo->Data[FifoNext( fifo, fifo->Begin )]; 39 | 40 | fifo->Begin = FifoNext( fifo, fifo->Begin ); 41 | return data; 42 | } 43 | 44 | void FifoFlush( Fifo_t *fifo ) 45 | { 46 | fifo->Begin = 0; 47 | fifo->End = 0; 48 | } 49 | 50 | bool IsFifoEmpty( Fifo_t *fifo ) 51 | { 52 | return ( fifo->Begin == fifo->End ); 53 | } 54 | 55 | bool IsFifoFull( Fifo_t *fifo ) 56 | { 57 | return ( FifoNext( fifo, fifo->End ) == fifo->Begin ); 58 | } 59 | -------------------------------------------------------------------------------- /src/system/fifo.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements a FIFO buffer 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __FIFO_H__ 16 | #define __FIFO_H__ 17 | 18 | #include 19 | #include 20 | 21 | /*! 22 | * FIFO structure 23 | */ 24 | typedef struct Fifo_s 25 | { 26 | uint16_t Begin; 27 | uint16_t End; 28 | uint8_t *Data; 29 | uint16_t Size; 30 | }Fifo_t; 31 | 32 | /*! 33 | * Initializes the FIFO structure 34 | * 35 | * \param [IN] fifo Pointer to the FIFO object 36 | * \param [IN] buffer Buffer to be used as FIFO 37 | * \param [IN] size Size of the buffer 38 | */ 39 | void FifoInit( Fifo_t *fifo, uint8_t *buffer, uint16_t size ); 40 | 41 | /*! 42 | * Pushes data to the FIFO 43 | * 44 | * \param [IN] fifo Pointer to the FIFO object 45 | * \param [IN] data Data to be pushed into the FIFO 46 | */ 47 | void FifoPush( Fifo_t *fifo, uint8_t data ); 48 | 49 | /*! 50 | * Pops data from the FIFO 51 | * 52 | * \param [IN] fifo Pointer to the FIFO object 53 | * \retval data Data popped from the FIFO 54 | */ 55 | uint8_t FifoPop( Fifo_t *fifo ); 56 | 57 | /*! 58 | * Flushes the FIFO 59 | * 60 | * \param [IN] fifo Pointer to the FIFO object 61 | */ 62 | void FifoFlush( Fifo_t *fifo ); 63 | 64 | /*! 65 | * Checks if the FIFO is empty 66 | * 67 | * \param [IN] fifo Pointer to the FIFO object 68 | * \retval isEmpty true: FIFO is empty, false FIFO is not empty 69 | */ 70 | bool IsFifoEmpty( Fifo_t *fifo ); 71 | 72 | /*! 73 | * Checks if the FIFO is full 74 | * 75 | * \param [IN] fifo Pointer to the FIFO object 76 | * \retval isFull true: FIFO is full, false FIFO is not full 77 | */ 78 | bool IsFifoFull( Fifo_t *fifo ); 79 | 80 | #endif // __FIFO_H__ 81 | -------------------------------------------------------------------------------- /src/system/gpio.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Generic GPIO driver implementation 10 | 11 | Comment: Relies on the specific board GPIO implementation as well as on 12 | IO expander driver implementation if one is available on the target 13 | board. 14 | 15 | License: Revised BSD License, see LICENSE.TXT file include in the project 16 | 17 | Maintainer: Miguel Luis and Gregory Cristian 18 | */ 19 | #include "board.h" 20 | 21 | #include "gpio-board.h" 22 | 23 | #if defined( BOARD_IOE_EXT ) 24 | #include "gpio-ioe.h" 25 | #endif 26 | 27 | void GpioInit( Gpio_t *obj, PinNames pin, PinModes mode, PinConfigs config, PinTypes type, uint32_t value ) 28 | { 29 | if( ( uint32_t )( pin >> 4 ) <= 6 ) 30 | { 31 | GpioMcuInit( obj, pin, mode, config, type, value ); 32 | } 33 | else 34 | { 35 | #if defined( BOARD_IOE_EXT ) 36 | // IOExt Pin 37 | GpioIoeInit( obj, pin, mode, config, type, value ); 38 | #endif 39 | } 40 | } 41 | 42 | void GpioSetInterrupt( Gpio_t *obj, IrqModes irqMode, IrqPriorities irqPriority, GpioIrqHandler *irqHandler ) 43 | { 44 | if( ( uint32_t )( obj->pin >> 4 ) <= 6 ) 45 | { 46 | GpioMcuSetInterrupt( obj, irqMode, irqPriority, irqHandler ); 47 | } 48 | else 49 | { 50 | #if defined( BOARD_IOE_EXT ) 51 | // IOExt Pin 52 | GpioIoeSetInterrupt( obj, irqMode, irqPriority, irqHandler ); 53 | #endif 54 | } 55 | } 56 | 57 | void GpioRemoveInterrupt( Gpio_t *obj ) 58 | { 59 | if( ( uint32_t )( obj->pin >> 4 ) <= 6 ) 60 | { 61 | //GpioMcuRemoveInterrupt( obj ); 62 | } 63 | else 64 | { 65 | #if defined( BOARD_IOE_EXT ) 66 | // IOExt Pin 67 | //GpioIoeRemoveInterrupt( obj ); 68 | #endif 69 | } 70 | } 71 | 72 | void GpioWrite( Gpio_t *obj, uint32_t value ) 73 | { 74 | if( ( uint32_t )( obj->pin >> 4 ) <= 6 ) 75 | { 76 | GpioMcuWrite( obj, value ); 77 | } 78 | else 79 | { 80 | #if defined( BOARD_IOE_EXT ) 81 | // IOExt Pin 82 | GpioIoeWrite( obj, value ); 83 | #endif 84 | } 85 | } 86 | 87 | void GpioToggle( Gpio_t *obj ) 88 | { 89 | if( ( uint32_t )( obj->pin >> 4 ) <= 6 ) 90 | { 91 | GpioMcuToggle( obj ); 92 | } 93 | else 94 | { 95 | #if defined( BOARD_IOE_EXT ) 96 | // IOExt Pin 97 | GpioIoeWrite( obj, GpioIoeRead( obj ) ^ 1 ); 98 | #endif 99 | } 100 | } 101 | 102 | uint32_t GpioRead( Gpio_t *obj ) 103 | { 104 | if( ( uint32_t )( obj->pin >> 4 ) <= 6 ) 105 | { 106 | return GpioMcuRead( obj ); 107 | } 108 | else 109 | { 110 | #if defined( BOARD_IOE_EXT ) 111 | // IOExt Pin 112 | return GpioIoeRead( obj ); 113 | #else 114 | return 0; 115 | #endif 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /src/system/i2c.c: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements the generic I2C driver 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #include "board.h" 16 | #include "i2c-board.h" 17 | 18 | /*! 19 | * Flag to indicates if the I2C is initialized 20 | */ 21 | static bool I2cInitialized = false; 22 | 23 | void I2cInit( I2c_t *obj, PinNames scl, PinNames sda ) 24 | { 25 | if( I2cInitialized == false ) 26 | { 27 | I2cInitialized = true; 28 | 29 | I2cMcuInit( obj, scl, sda ); 30 | I2cMcuFormat( obj, MODE_I2C, I2C_DUTY_CYCLE_2, true, I2C_ACK_ADD_7_BIT, 400000 ); 31 | } 32 | } 33 | 34 | void I2cDeInit( I2c_t *obj ) 35 | { 36 | I2cInitialized = false; 37 | I2cMcuDeInit( obj ); 38 | } 39 | 40 | void I2cResetBus( I2c_t *obj ) 41 | { 42 | I2cInitialized = false; 43 | I2cInit( obj, I2C_SCL, I2C_SDA ); 44 | } 45 | 46 | uint8_t I2cWrite( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t data ) 47 | { 48 | if( I2cInitialized == true ) 49 | { 50 | if( I2cMcuWriteBuffer( obj, deviceAddr, addr, &data, 1 ) == FAIL ) 51 | { 52 | // if first attempt fails due to an IRQ, try a second time 53 | if( I2cMcuWriteBuffer( obj, deviceAddr, addr, &data, 1 ) == FAIL ) 54 | { 55 | return FAIL; 56 | } 57 | else 58 | { 59 | return SUCCESS; 60 | } 61 | } 62 | else 63 | { 64 | return SUCCESS; 65 | } 66 | } 67 | else 68 | { 69 | return FAIL; 70 | } 71 | } 72 | 73 | uint8_t I2cWriteBuffer( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *buffer, uint16_t size ) 74 | { 75 | if( I2cInitialized == true ) 76 | { 77 | if( I2cMcuWriteBuffer( obj, deviceAddr, addr, buffer, size ) == FAIL ) 78 | { 79 | // if first attempt fails due to an IRQ, try a second time 80 | if( I2cMcuWriteBuffer( obj, deviceAddr, addr, buffer, size ) == FAIL ) 81 | { 82 | return FAIL; 83 | } 84 | else 85 | { 86 | return SUCCESS; 87 | } 88 | } 89 | else 90 | { 91 | return SUCCESS; 92 | } 93 | } 94 | else 95 | { 96 | return FAIL; 97 | } 98 | } 99 | 100 | uint8_t I2cRead( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *data ) 101 | { 102 | if( I2cInitialized == true ) 103 | { 104 | return( I2cMcuReadBuffer( obj, deviceAddr, addr, data, 1 ) ); 105 | } 106 | else 107 | { 108 | return FAIL; 109 | } 110 | } 111 | 112 | uint8_t I2cReadBuffer( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *buffer, uint16_t size ) 113 | { 114 | if( I2cInitialized == true ) 115 | { 116 | return( I2cMcuReadBuffer( obj, deviceAddr, addr, buffer, size ) ); 117 | } 118 | else 119 | { 120 | return FAIL; 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /src/system/i2c.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements the generic I2C driver 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __I2C_H__ 16 | #define __I2C_H__ 17 | 18 | /*! 19 | * I2C object type definition 20 | */ 21 | typedef struct 22 | { 23 | I2C_HandleTypeDef I2c; 24 | Gpio_t Scl; 25 | Gpio_t Sda; 26 | }I2c_t; 27 | 28 | /*! 29 | * \brief Initializes the I2C object and MCU peripheral 30 | * 31 | * \param [IN] obj I2C object 32 | * \param [IN] scl I2C Scl pin name to be used 33 | * \param [IN] sda I2C Sda pin name to be used 34 | */ 35 | void I2cInit( I2c_t *obj, PinNames scl, PinNames sda ); 36 | 37 | /*! 38 | * \brief DeInitializes the I2C object and MCU peripheral 39 | * 40 | * \param [IN] obj I2C object 41 | */ 42 | void I2cDeInit( I2c_t *obj ); 43 | 44 | /*! 45 | * \brief Reset the I2C object and MCU peripheral 46 | * 47 | * \param [IN] obj I2C object 48 | */ 49 | void I2cResetBus( I2c_t *obj ); 50 | 51 | /*! 52 | * \brief Write data to the I2C device 53 | * 54 | * \param [IN] obj I2C object 55 | * \param [IN] deviceAddr device address 56 | * \param [IN] addr data address 57 | * \param [IN] data data to write 58 | */ 59 | uint8_t I2cWrite( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t data ); 60 | 61 | /*! 62 | * \brief Write several data to the I2C device 63 | * 64 | * \param [IN] obj I2C object 65 | * \param [IN] deviceAddr device address 66 | * \param [IN] addr data address 67 | * \param [IN] buffer data buffer to write 68 | * \param [IN] size number of bytes to write 69 | */ 70 | uint8_t I2cWriteBuffer( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *buffer, uint16_t size ); 71 | 72 | /*! 73 | * \brief Read data from the I2C device 74 | * 75 | * \param [IN] obj I2C object 76 | * \param [IN] deviceAddr device address 77 | * \param [IN] addr data address 78 | * \param [OUT] data variable used to store the data read 79 | */ 80 | uint8_t I2cRead( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *data ); 81 | 82 | /*! 83 | * \brief Read several data byte from the I2C device 84 | * 85 | * \param [IN] obj I2C object 86 | * \param [IN] deviceAddr device address 87 | * \param [IN] addr data address 88 | * \param [OUT] buffer data buffer used to store the data read 89 | * \param [IN] size number of data byte to read 90 | */ 91 | uint8_t I2cReadBuffer( I2c_t *obj, uint8_t deviceAddr, uint16_t addr, uint8_t *buffer, uint16_t size ); 92 | 93 | #endif // __I2C_H__ 94 | -------------------------------------------------------------------------------- /src/system/serial.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements the generic UART driver 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __SERIAL_H__ 16 | #define __SERIAL_H__ 17 | 18 | #endif // __SERIAL_H__ 19 | -------------------------------------------------------------------------------- /src/system/spi.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Implements the generic SPI driver 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __SPI_H__ 16 | #define __SPI_H__ 17 | 18 | #include "spi-board.h" 19 | 20 | /*! 21 | * SPI object type definition 22 | */ 23 | typedef struct Spi_s Spi_t; 24 | 25 | /*! 26 | * \brief Initializes the SPI object and MCU peripheral 27 | * 28 | * \remark When NSS pin is software controlled set the pin name to NC otherwise 29 | * set the pin name to be used. 30 | * 31 | * \param [IN] obj SPI object 32 | * \param [IN] mosi SPI MOSI pin name to be used 33 | * \param [IN] miso SPI MISO pin name to be used 34 | * \param [IN] sclk SPI SCLK pin name to be used 35 | * \param [IN] nss SPI NSS pin name to be used 36 | */ 37 | void SpiInit( Spi_t *obj, PinNames mosi, PinNames miso, PinNames sclk, PinNames nss ); 38 | 39 | /*! 40 | * \brief De-initializes the SPI object and MCU peripheral 41 | * 42 | * \param [IN] obj SPI object 43 | */ 44 | void SpiDeInit( Spi_t *obj ); 45 | 46 | /*! 47 | * \brief Configures the SPI peripheral 48 | * 49 | * \remark Slave mode isn't currently handled 50 | * 51 | * \param [IN] obj SPI object 52 | * \param [IN] bits Number of bits to be used. [8 or 16] 53 | * \param [IN] cpol Clock polarity 54 | * \param [IN] cpha Clock phase 55 | * \param [IN] slave When set the peripheral acts in slave mode 56 | */ 57 | void SpiFormat( Spi_t *obj, int8_t bits, int8_t cpol, int8_t cpha, int8_t slave ); 58 | 59 | /*! 60 | * \brief Sets the SPI speed 61 | * 62 | * \param [IN] obj SPI object 63 | * \param [IN] hz SPI clock frequency in hz 64 | */ 65 | void SpiFrequency( Spi_t *obj, uint32_t hz ); 66 | 67 | /*! 68 | * \brief Sends outData and receives inData 69 | * 70 | * \param [IN] obj SPI object 71 | * \param [IN] outData Byte to be sent 72 | * \retval inData Received byte. 73 | */ 74 | uint16_t SpiInOut( Spi_t *obj, uint16_t outData ); 75 | 76 | #endif // __SPI_H__ 77 | -------------------------------------------------------------------------------- /src/system/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | / _____) _ | | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ 5 | _____) ) ____| | | || |_| ____( (___| | | | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| 7 | (C)2013 Semtech 8 | 9 | Description: Timer objects and scheduling management 10 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project 12 | 13 | Maintainer: Miguel Luis and Gregory Cristian 14 | */ 15 | #ifndef __TIMER_H__ 16 | #define __TIMER_H__ 17 | 18 | /*! 19 | * \brief Timer object description 20 | */ 21 | typedef struct TimerEvent_s 22 | { 23 | uint32_t Timestamp; //! Current timer value 24 | uint32_t ReloadValue; //! Timer delay value 25 | bool IsRunning; //! Is the timer currently running 26 | void ( *Callback )( void ); //! Timer IRQ callback function 27 | struct TimerEvent_s *Next; //! Pointer to the next Timer object. 28 | }TimerEvent_t; 29 | 30 | /*! 31 | * \brief Timer time variable definition 32 | */ 33 | #ifndef TimerTime_t 34 | typedef uint32_t TimerTime_t; 35 | #endif 36 | 37 | /*! 38 | * \brief Initializes the timer object 39 | * 40 | * \remark TimerSetValue function must be called before starting the timer. 41 | * this function initializes timestamp and reload value at 0. 42 | * 43 | * \param [IN] obj Structure containing the timer object parameters 44 | * \param [IN] callback Function callback called at the end of the timeout 45 | */ 46 | void TimerInit( TimerEvent_t *obj, void ( *callback )( void ) ); 47 | 48 | /*! 49 | * Timer IRQ event handler 50 | */ 51 | void TimerIrqHandler( void ); 52 | 53 | /*! 54 | * \brief Starts and adds the timer object to the list of timer events 55 | * 56 | * \param [IN] obj Structure containing the timer object parameters 57 | */ 58 | void TimerStart( TimerEvent_t *obj ); 59 | 60 | /*! 61 | * \brief Stops and removes the timer object from the list of timer events 62 | * 63 | * \param [IN] obj Structure containing the timer object parameters 64 | */ 65 | void TimerStop( TimerEvent_t *obj ); 66 | 67 | /*! 68 | * \brief Resets the timer object 69 | * 70 | * \param [IN] obj Structure containing the timer object parameters 71 | */ 72 | void TimerReset( TimerEvent_t *obj ); 73 | 74 | /*! 75 | * \brief Set timer new timeout value 76 | * 77 | * \param [IN] obj Structure containing the timer object parameters 78 | * \param [IN] value New timer timeout value 79 | */ 80 | void TimerSetValue( TimerEvent_t *obj, uint32_t value ); 81 | 82 | /*! 83 | * \brief Read the current time 84 | * 85 | * \retval time returns current time 86 | */ 87 | TimerTime_t TimerGetCurrentTime( void ); 88 | 89 | /*! 90 | * \brief Return the Time elapsed since a fix moment in Time 91 | * 92 | * \param [IN] savedTime fix moment in Time 93 | * \retval time returns elapsed time 94 | */ 95 | TimerTime_t TimerGetElapsedTime( TimerTime_t savedTime ); 96 | 97 | /*! 98 | * \brief Return the Time elapsed since a fix moment in Time 99 | * 100 | * \param [IN] eventInFuture fix moment in the future 101 | * \retval time returns difference between now and future event 102 | */ 103 | TimerTime_t TimerGetFutureTime( TimerTime_t eventInFuture ); 104 | 105 | /*! 106 | * \brief Manages the entry into ARM cortex deep-sleep mode 107 | */ 108 | void TimerLowPowerHandler( void ); 109 | 110 | #endif // __TIMER_H__ 111 | --------------------------------------------------------------------------------