├── .gitignore ├── LICENCE ├── PC ├── Makefile ├── config.h └── prios_key_cracker.c ├── README.md ├── ST-STEVAL-FKI868V1 ├── .mxproject ├── Drivers │ ├── BSP │ │ ├── inc │ │ │ ├── Platform_Configuration_NucleoF0xx.h │ │ │ ├── Platform_Configuration_NucleoF4xx.h │ │ │ ├── Platform_Configuration_NucleoL0xx.h │ │ │ ├── Platform_Configuration_NucleoL1xx.h │ │ │ ├── SDK_EVAL_Button.h │ │ │ ├── SDK_EVAL_Com.h │ │ │ ├── SDK_EVAL_Config.h │ │ │ └── SDK_EVAL_Led.h │ │ └── src │ │ │ ├── SDK_EVAL_Button.c │ │ │ ├── SDK_EVAL_Com_DMA.c │ │ │ └── SDK_EVAL_Led.c │ ├── CMSIS │ │ ├── DSP_Lib │ │ │ └── Source │ │ │ │ ├── BasicMathFunctions │ │ │ │ ├── arm_abs_f32.c │ │ │ │ ├── arm_abs_q15.c │ │ │ │ ├── arm_abs_q31.c │ │ │ │ ├── arm_abs_q7.c │ │ │ │ ├── arm_add_f32.c │ │ │ │ ├── arm_add_q15.c │ │ │ │ ├── arm_add_q31.c │ │ │ │ ├── arm_add_q7.c │ │ │ │ ├── arm_dot_prod_f32.c │ │ │ │ ├── arm_dot_prod_q15.c │ │ │ │ ├── arm_dot_prod_q31.c │ │ │ │ ├── arm_dot_prod_q7.c │ │ │ │ ├── arm_mult_f32.c │ │ │ │ ├── arm_mult_q15.c │ │ │ │ ├── arm_mult_q31.c │ │ │ │ ├── arm_mult_q7.c │ │ │ │ ├── arm_negate_f32.c │ │ │ │ ├── arm_negate_q15.c │ │ │ │ ├── arm_negate_q31.c │ │ │ │ ├── arm_negate_q7.c │ │ │ │ ├── arm_offset_f32.c │ │ │ │ ├── arm_offset_q15.c │ │ │ │ ├── arm_offset_q31.c │ │ │ │ ├── arm_offset_q7.c │ │ │ │ ├── arm_scale_f32.c │ │ │ │ ├── arm_scale_q15.c │ │ │ │ ├── arm_scale_q31.c │ │ │ │ ├── arm_scale_q7.c │ │ │ │ ├── arm_shift_q15.c │ │ │ │ ├── arm_shift_q31.c │ │ │ │ ├── arm_shift_q7.c │ │ │ │ ├── arm_sub_f32.c │ │ │ │ ├── arm_sub_q15.c │ │ │ │ ├── arm_sub_q31.c │ │ │ │ └── arm_sub_q7.c │ │ │ │ ├── CommonTables │ │ │ │ ├── arm_common_tables.c │ │ │ │ └── arm_const_structs.c │ │ │ │ ├── ComplexMathFunctions │ │ │ │ ├── arm_cmplx_conj_f32.c │ │ │ │ ├── arm_cmplx_conj_q15.c │ │ │ │ ├── arm_cmplx_conj_q31.c │ │ │ │ ├── arm_cmplx_dot_prod_f32.c │ │ │ │ ├── arm_cmplx_dot_prod_q15.c │ │ │ │ ├── arm_cmplx_dot_prod_q31.c │ │ │ │ ├── arm_cmplx_mag_f32.c │ │ │ │ ├── arm_cmplx_mag_q15.c │ │ │ │ ├── arm_cmplx_mag_q31.c │ │ │ │ ├── arm_cmplx_mag_squared_f32.c │ │ │ │ ├── arm_cmplx_mag_squared_q15.c │ │ │ │ ├── arm_cmplx_mag_squared_q31.c │ │ │ │ ├── arm_cmplx_mult_cmplx_f32.c │ │ │ │ ├── arm_cmplx_mult_cmplx_q15.c │ │ │ │ ├── arm_cmplx_mult_cmplx_q31.c │ │ │ │ ├── arm_cmplx_mult_real_f32.c │ │ │ │ ├── arm_cmplx_mult_real_q15.c │ │ │ │ └── arm_cmplx_mult_real_q31.c │ │ │ │ ├── ControllerFunctions │ │ │ │ ├── arm_pid_init_f32.c │ │ │ │ ├── arm_pid_init_q15.c │ │ │ │ ├── arm_pid_init_q31.c │ │ │ │ ├── arm_pid_reset_f32.c │ │ │ │ ├── arm_pid_reset_q15.c │ │ │ │ ├── arm_pid_reset_q31.c │ │ │ │ ├── arm_sin_cos_f32.c │ │ │ │ └── arm_sin_cos_q31.c │ │ │ │ ├── FastMathFunctions │ │ │ │ ├── arm_cos_f32.c │ │ │ │ ├── arm_cos_q15.c │ │ │ │ ├── arm_cos_q31.c │ │ │ │ ├── arm_sin_f32.c │ │ │ │ ├── arm_sin_q15.c │ │ │ │ ├── arm_sin_q31.c │ │ │ │ ├── arm_sqrt_q15.c │ │ │ │ └── arm_sqrt_q31.c │ │ │ │ ├── FilteringFunctions │ │ │ │ ├── arm_biquad_cascade_df1_32x64_init_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_32x64_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_f32.c │ │ │ │ ├── arm_biquad_cascade_df1_fast_q15.c │ │ │ │ ├── arm_biquad_cascade_df1_fast_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_init_f32.c │ │ │ │ ├── arm_biquad_cascade_df1_init_q15.c │ │ │ │ ├── arm_biquad_cascade_df1_init_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_q15.c │ │ │ │ ├── arm_biquad_cascade_df1_q31.c │ │ │ │ ├── arm_biquad_cascade_df2T_f32.c │ │ │ │ ├── arm_biquad_cascade_df2T_f64.c │ │ │ │ ├── arm_biquad_cascade_df2T_init_f32.c │ │ │ │ ├── arm_biquad_cascade_df2T_init_f64.c │ │ │ │ ├── arm_biquad_cascade_stereo_df2T_f32.c │ │ │ │ ├── arm_biquad_cascade_stereo_df2T_init_f32.c │ │ │ │ ├── arm_conv_f32.c │ │ │ │ ├── arm_conv_fast_opt_q15.c │ │ │ │ ├── arm_conv_fast_q15.c │ │ │ │ ├── arm_conv_fast_q31.c │ │ │ │ ├── arm_conv_opt_q15.c │ │ │ │ ├── arm_conv_opt_q7.c │ │ │ │ ├── arm_conv_partial_f32.c │ │ │ │ ├── arm_conv_partial_fast_opt_q15.c │ │ │ │ ├── arm_conv_partial_fast_q15.c │ │ │ │ ├── arm_conv_partial_fast_q31.c │ │ │ │ ├── arm_conv_partial_opt_q15.c │ │ │ │ ├── arm_conv_partial_opt_q7.c │ │ │ │ ├── arm_conv_partial_q15.c │ │ │ │ ├── arm_conv_partial_q31.c │ │ │ │ ├── arm_conv_partial_q7.c │ │ │ │ ├── arm_conv_q15.c │ │ │ │ ├── arm_conv_q31.c │ │ │ │ ├── arm_conv_q7.c │ │ │ │ ├── arm_correlate_f32.c │ │ │ │ ├── arm_correlate_fast_opt_q15.c │ │ │ │ ├── arm_correlate_fast_q15.c │ │ │ │ ├── arm_correlate_fast_q31.c │ │ │ │ ├── arm_correlate_opt_q15.c │ │ │ │ ├── arm_correlate_opt_q7.c │ │ │ │ ├── arm_correlate_q15.c │ │ │ │ ├── arm_correlate_q31.c │ │ │ │ ├── arm_correlate_q7.c │ │ │ │ ├── arm_fir_decimate_f32.c │ │ │ │ ├── arm_fir_decimate_fast_q15.c │ │ │ │ ├── arm_fir_decimate_fast_q31.c │ │ │ │ ├── arm_fir_decimate_init_f32.c │ │ │ │ ├── arm_fir_decimate_init_q15.c │ │ │ │ ├── arm_fir_decimate_init_q31.c │ │ │ │ ├── arm_fir_decimate_q15.c │ │ │ │ ├── arm_fir_decimate_q31.c │ │ │ │ ├── arm_fir_f32.c │ │ │ │ ├── arm_fir_fast_q15.c │ │ │ │ ├── arm_fir_fast_q31.c │ │ │ │ ├── arm_fir_init_f32.c │ │ │ │ ├── arm_fir_init_q15.c │ │ │ │ ├── arm_fir_init_q31.c │ │ │ │ ├── arm_fir_init_q7.c │ │ │ │ ├── arm_fir_interpolate_f32.c │ │ │ │ ├── arm_fir_interpolate_init_f32.c │ │ │ │ ├── arm_fir_interpolate_init_q15.c │ │ │ │ ├── arm_fir_interpolate_init_q31.c │ │ │ │ ├── arm_fir_interpolate_q15.c │ │ │ │ ├── arm_fir_interpolate_q31.c │ │ │ │ ├── arm_fir_lattice_f32.c │ │ │ │ ├── arm_fir_lattice_init_f32.c │ │ │ │ ├── arm_fir_lattice_init_q15.c │ │ │ │ ├── arm_fir_lattice_init_q31.c │ │ │ │ ├── arm_fir_lattice_q15.c │ │ │ │ ├── arm_fir_lattice_q31.c │ │ │ │ ├── arm_fir_q15.c │ │ │ │ ├── arm_fir_q31.c │ │ │ │ ├── arm_fir_q7.c │ │ │ │ ├── arm_fir_sparse_f32.c │ │ │ │ ├── arm_fir_sparse_init_f32.c │ │ │ │ ├── arm_fir_sparse_init_q15.c │ │ │ │ ├── arm_fir_sparse_init_q31.c │ │ │ │ ├── arm_fir_sparse_init_q7.c │ │ │ │ ├── arm_fir_sparse_q15.c │ │ │ │ ├── arm_fir_sparse_q31.c │ │ │ │ ├── arm_fir_sparse_q7.c │ │ │ │ ├── arm_iir_lattice_f32.c │ │ │ │ ├── arm_iir_lattice_init_f32.c │ │ │ │ ├── arm_iir_lattice_init_q15.c │ │ │ │ ├── arm_iir_lattice_init_q31.c │ │ │ │ ├── arm_iir_lattice_q15.c │ │ │ │ ├── arm_iir_lattice_q31.c │ │ │ │ ├── arm_lms_f32.c │ │ │ │ ├── arm_lms_init_f32.c │ │ │ │ ├── arm_lms_init_q15.c │ │ │ │ ├── arm_lms_init_q31.c │ │ │ │ ├── arm_lms_norm_f32.c │ │ │ │ ├── arm_lms_norm_init_f32.c │ │ │ │ ├── arm_lms_norm_init_q15.c │ │ │ │ ├── arm_lms_norm_init_q31.c │ │ │ │ ├── arm_lms_norm_q15.c │ │ │ │ ├── arm_lms_norm_q31.c │ │ │ │ ├── arm_lms_q15.c │ │ │ │ └── arm_lms_q31.c │ │ │ │ ├── MatrixFunctions │ │ │ │ ├── arm_mat_add_f32.c │ │ │ │ ├── arm_mat_add_q15.c │ │ │ │ ├── arm_mat_add_q31.c │ │ │ │ ├── arm_mat_cmplx_mult_f32.c │ │ │ │ ├── arm_mat_cmplx_mult_q15.c │ │ │ │ ├── arm_mat_cmplx_mult_q31.c │ │ │ │ ├── arm_mat_init_f32.c │ │ │ │ ├── arm_mat_init_q15.c │ │ │ │ ├── arm_mat_init_q31.c │ │ │ │ ├── arm_mat_inverse_f32.c │ │ │ │ ├── arm_mat_inverse_f64.c │ │ │ │ ├── arm_mat_mult_f32.c │ │ │ │ ├── arm_mat_mult_fast_q15.c │ │ │ │ ├── arm_mat_mult_fast_q31.c │ │ │ │ ├── arm_mat_mult_q15.c │ │ │ │ ├── arm_mat_mult_q31.c │ │ │ │ ├── arm_mat_scale_f32.c │ │ │ │ ├── arm_mat_scale_q15.c │ │ │ │ ├── arm_mat_scale_q31.c │ │ │ │ ├── arm_mat_sub_f32.c │ │ │ │ ├── arm_mat_sub_q15.c │ │ │ │ ├── arm_mat_sub_q31.c │ │ │ │ ├── arm_mat_trans_f32.c │ │ │ │ ├── arm_mat_trans_q15.c │ │ │ │ └── arm_mat_trans_q31.c │ │ │ │ ├── StatisticsFunctions │ │ │ │ ├── arm_max_f32.c │ │ │ │ ├── arm_max_q15.c │ │ │ │ ├── arm_max_q31.c │ │ │ │ ├── arm_max_q7.c │ │ │ │ ├── arm_mean_f32.c │ │ │ │ ├── arm_mean_q15.c │ │ │ │ ├── arm_mean_q31.c │ │ │ │ ├── arm_mean_q7.c │ │ │ │ ├── arm_min_f32.c │ │ │ │ ├── arm_min_q15.c │ │ │ │ ├── arm_min_q31.c │ │ │ │ ├── arm_min_q7.c │ │ │ │ ├── arm_power_f32.c │ │ │ │ ├── arm_power_q15.c │ │ │ │ ├── arm_power_q31.c │ │ │ │ ├── arm_power_q7.c │ │ │ │ ├── arm_rms_f32.c │ │ │ │ ├── arm_rms_q15.c │ │ │ │ ├── arm_rms_q31.c │ │ │ │ ├── arm_std_f32.c │ │ │ │ ├── arm_std_q15.c │ │ │ │ ├── arm_std_q31.c │ │ │ │ ├── arm_var_f32.c │ │ │ │ ├── arm_var_q15.c │ │ │ │ └── arm_var_q31.c │ │ │ │ ├── SupportFunctions │ │ │ │ ├── arm_copy_f32.c │ │ │ │ ├── arm_copy_q15.c │ │ │ │ ├── arm_copy_q31.c │ │ │ │ ├── arm_copy_q7.c │ │ │ │ ├── arm_fill_f32.c │ │ │ │ ├── arm_fill_q15.c │ │ │ │ ├── arm_fill_q31.c │ │ │ │ ├── arm_fill_q7.c │ │ │ │ ├── arm_float_to_q15.c │ │ │ │ ├── arm_float_to_q31.c │ │ │ │ ├── arm_float_to_q7.c │ │ │ │ ├── arm_q15_to_float.c │ │ │ │ ├── arm_q15_to_q31.c │ │ │ │ ├── arm_q15_to_q7.c │ │ │ │ ├── arm_q31_to_float.c │ │ │ │ ├── arm_q31_to_q15.c │ │ │ │ ├── arm_q31_to_q7.c │ │ │ │ ├── arm_q7_to_float.c │ │ │ │ ├── arm_q7_to_q15.c │ │ │ │ └── arm_q7_to_q31.c │ │ │ │ └── TransformFunctions │ │ │ │ ├── arm_bitreversal.c │ │ │ │ ├── arm_bitreversal2.S │ │ │ │ ├── arm_cfft_f32.c │ │ │ │ ├── arm_cfft_q15.c │ │ │ │ ├── arm_cfft_q31.c │ │ │ │ ├── arm_cfft_radix2_f32.c │ │ │ │ ├── arm_cfft_radix2_init_f32.c │ │ │ │ ├── arm_cfft_radix2_init_q15.c │ │ │ │ ├── arm_cfft_radix2_init_q31.c │ │ │ │ ├── arm_cfft_radix2_q15.c │ │ │ │ ├── arm_cfft_radix2_q31.c │ │ │ │ ├── arm_cfft_radix4_f32.c │ │ │ │ ├── arm_cfft_radix4_init_f32.c │ │ │ │ ├── arm_cfft_radix4_init_q15.c │ │ │ │ ├── arm_cfft_radix4_init_q31.c │ │ │ │ ├── arm_cfft_radix4_q15.c │ │ │ │ ├── arm_cfft_radix4_q31.c │ │ │ │ ├── arm_cfft_radix8_f32.c │ │ │ │ ├── arm_dct4_f32.c │ │ │ │ ├── arm_dct4_init_f32.c │ │ │ │ ├── arm_dct4_init_q15.c │ │ │ │ ├── arm_dct4_init_q31.c │ │ │ │ ├── arm_dct4_q15.c │ │ │ │ ├── arm_dct4_q31.c │ │ │ │ ├── arm_rfft_f32.c │ │ │ │ ├── arm_rfft_fast_f32.c │ │ │ │ ├── arm_rfft_fast_init_f32.c │ │ │ │ ├── arm_rfft_init_f32.c │ │ │ │ ├── arm_rfft_init_q15.c │ │ │ │ ├── arm_rfft_init_q31.c │ │ │ │ ├── arm_rfft_q15.c │ │ │ │ └── arm_rfft_q31.c │ │ ├── Device │ │ │ └── ST │ │ │ │ └── STM32L0xx │ │ │ │ ├── Include │ │ │ │ ├── stm32l010x4.h │ │ │ │ ├── stm32l010x6.h │ │ │ │ ├── stm32l010x8.h │ │ │ │ ├── stm32l010xb.h │ │ │ │ ├── stm32l011xx.h │ │ │ │ ├── stm32l021xx.h │ │ │ │ ├── stm32l031xx.h │ │ │ │ ├── stm32l041xx.h │ │ │ │ ├── stm32l051xx.h │ │ │ │ ├── stm32l052xx.h │ │ │ │ ├── stm32l053xx.h │ │ │ │ ├── stm32l061xx.h │ │ │ │ ├── stm32l062xx.h │ │ │ │ ├── stm32l063xx.h │ │ │ │ ├── stm32l071xx.h │ │ │ │ ├── stm32l072xx.h │ │ │ │ ├── stm32l073xx.h │ │ │ │ ├── stm32l081xx.h │ │ │ │ ├── stm32l082xx.h │ │ │ │ ├── stm32l083xx.h │ │ │ │ ├── stm32l0xx.h │ │ │ │ └── system_stm32l0xx.h │ │ │ │ └── Source │ │ │ │ └── Templates │ │ │ │ ├── arm │ │ │ │ ├── startup_stm32l010x4.s │ │ │ │ ├── startup_stm32l010x6.s │ │ │ │ ├── startup_stm32l010x8.s │ │ │ │ ├── startup_stm32l010xb.s │ │ │ │ ├── startup_stm32l011xx.s │ │ │ │ ├── startup_stm32l021xx.s │ │ │ │ ├── startup_stm32l031xx.s │ │ │ │ ├── startup_stm32l041xx.s │ │ │ │ ├── startup_stm32l051xx.s │ │ │ │ ├── startup_stm32l052xx.s │ │ │ │ ├── startup_stm32l053xx.s │ │ │ │ ├── startup_stm32l061xx.s │ │ │ │ ├── startup_stm32l062xx.s │ │ │ │ ├── startup_stm32l063xx.s │ │ │ │ ├── startup_stm32l071xx.s │ │ │ │ ├── startup_stm32l072xx.s │ │ │ │ ├── startup_stm32l073xx.s │ │ │ │ ├── startup_stm32l081xx.s │ │ │ │ ├── startup_stm32l082xx.s │ │ │ │ └── startup_stm32l083xx.s │ │ │ │ ├── gcc │ │ │ │ ├── startup_stm32l010x4.s │ │ │ │ ├── startup_stm32l010x6.s │ │ │ │ ├── startup_stm32l010x8.s │ │ │ │ ├── startup_stm32l010xb.s │ │ │ │ ├── startup_stm32l011xx.s │ │ │ │ ├── startup_stm32l021xx.s │ │ │ │ ├── startup_stm32l031xx.s │ │ │ │ ├── startup_stm32l041xx.s │ │ │ │ ├── startup_stm32l051xx.s │ │ │ │ ├── startup_stm32l052xx.s │ │ │ │ ├── startup_stm32l053xx.s │ │ │ │ ├── startup_stm32l061xx.s │ │ │ │ ├── startup_stm32l062xx.s │ │ │ │ ├── startup_stm32l063xx.s │ │ │ │ ├── startup_stm32l071xx.s │ │ │ │ ├── startup_stm32l072xx.s │ │ │ │ ├── startup_stm32l073xx.s │ │ │ │ ├── startup_stm32l081xx.s │ │ │ │ ├── startup_stm32l082xx.s │ │ │ │ └── startup_stm32l083xx.s │ │ │ │ ├── iar │ │ │ │ ├── linker │ │ │ │ │ ├── stm32l010x4_flash.icf │ │ │ │ │ ├── stm32l010x6_flash.icf │ │ │ │ │ ├── stm32l010x8_flash.icf │ │ │ │ │ ├── stm32l010xb_flash.icf │ │ │ │ │ ├── stm32l011xx_flash.icf │ │ │ │ │ ├── stm32l011xx_sram.icf │ │ │ │ │ ├── stm32l021xx_flash.icf │ │ │ │ │ ├── stm32l021xx_sram.icf │ │ │ │ │ ├── stm32l031xx_flash.icf │ │ │ │ │ ├── stm32l031xx_sram.icf │ │ │ │ │ ├── stm32l041xx_flash.icf │ │ │ │ │ ├── stm32l041xx_sram.icf │ │ │ │ │ ├── stm32l051xx_flash.icf │ │ │ │ │ ├── stm32l051xx_sram.icf │ │ │ │ │ ├── stm32l052xx_flash.icf │ │ │ │ │ ├── stm32l052xx_sram.icf │ │ │ │ │ ├── stm32l053xx_flash.icf │ │ │ │ │ ├── stm32l053xx_sram.icf │ │ │ │ │ ├── stm32l061xx_flash.icf │ │ │ │ │ ├── stm32l061xx_sram.icf │ │ │ │ │ ├── stm32l062xx_flash.icf │ │ │ │ │ ├── stm32l062xx_sram.icf │ │ │ │ │ ├── stm32l063xx_flash.icf │ │ │ │ │ ├── stm32l063xx_sram.icf │ │ │ │ │ ├── stm32l071xx_flash.icf │ │ │ │ │ ├── stm32l071xx_sram.icf │ │ │ │ │ ├── stm32l072xx_flash.icf │ │ │ │ │ ├── stm32l072xx_sram.icf │ │ │ │ │ ├── stm32l073xx_flash.icf │ │ │ │ │ ├── stm32l073xx_sram.icf │ │ │ │ │ ├── stm32l081xx_flash.icf │ │ │ │ │ ├── stm32l081xx_sram.icf │ │ │ │ │ ├── stm32l082xx_flash.icf │ │ │ │ │ ├── stm32l082xx_sram.icf │ │ │ │ │ ├── stm32l083xx_flash.icf │ │ │ │ │ └── stm32l083xx_sram.icf │ │ │ │ ├── startup_stm32l010x4.s │ │ │ │ ├── startup_stm32l010x6.s │ │ │ │ ├── startup_stm32l010x8.s │ │ │ │ ├── startup_stm32l010xb.s │ │ │ │ ├── startup_stm32l011xx.s │ │ │ │ ├── startup_stm32l021xx.s │ │ │ │ ├── startup_stm32l031xx.s │ │ │ │ ├── startup_stm32l041xx.s │ │ │ │ ├── startup_stm32l051xx.s │ │ │ │ ├── startup_stm32l052xx.s │ │ │ │ ├── startup_stm32l053xx.s │ │ │ │ ├── startup_stm32l061xx.s │ │ │ │ ├── startup_stm32l062xx.s │ │ │ │ ├── startup_stm32l063xx.s │ │ │ │ ├── startup_stm32l071xx.s │ │ │ │ ├── startup_stm32l072xx.s │ │ │ │ ├── startup_stm32l073xx.s │ │ │ │ ├── startup_stm32l081xx.s │ │ │ │ ├── startup_stm32l082xx.s │ │ │ │ └── startup_stm32l083xx.s │ │ │ │ └── system_stm32l0xx.c │ │ ├── Include │ │ │ ├── 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 │ │ ├── Lib │ │ │ ├── ARM │ │ │ │ ├── arm_cortexM0b_math.lib │ │ │ │ └── arm_cortexM0l_math.lib │ │ │ └── GCC │ │ │ │ └── libarm_cortexM0l_math.a │ │ └── RTOS │ │ │ └── Template │ │ │ └── cmsis_os.h │ ├── S2LP_Library │ │ ├── inc │ │ │ ├── MCU_Interface_template.h │ │ │ ├── S2LP_Commands.h │ │ │ ├── S2LP_Config.h │ │ │ ├── S2LP_Csma.h │ │ │ ├── S2LP_Fifo.h │ │ │ ├── S2LP_General.h │ │ │ ├── S2LP_Gpio.h │ │ │ ├── S2LP_PacketHandler.h │ │ │ ├── S2LP_PktBasic.h │ │ │ ├── S2LP_PktStack.h │ │ │ ├── S2LP_PktWMbus.h │ │ │ ├── S2LP_Qi.h │ │ │ ├── S2LP_Radio.h │ │ │ ├── S2LP_Regs.h │ │ │ ├── S2LP_Timer.h │ │ │ ├── S2LP_Timer_ex.h │ │ │ ├── S2LP_Types.h │ │ │ └── uint64.h │ │ └── src │ │ │ ├── S2LP_Commands.c │ │ │ ├── S2LP_Csma.c │ │ │ ├── S2LP_Fifo.c │ │ │ ├── S2LP_General.c │ │ │ ├── S2LP_Gpio.c │ │ │ ├── S2LP_PacketHandler.c │ │ │ ├── S2LP_PktBasic.c │ │ │ ├── S2LP_PktStack.c │ │ │ ├── S2LP_PktWMbus.c │ │ │ ├── S2LP_Qi.c │ │ │ ├── S2LP_Radio.c │ │ │ ├── S2LP_Timer.c │ │ │ ├── S2LP_Timer_ex.c │ │ │ └── S2LP_Types.c │ ├── S2LP_Middleware │ │ ├── inc │ │ │ ├── S2LP_AUX_EEPROM.h │ │ │ ├── S2LP_AUX_FEM.h │ │ │ ├── S2LP_AUX_TCXO.h │ │ │ ├── S2LP_AUX_UTILS.h │ │ │ ├── S2LP_CORE_GPIO.h │ │ │ ├── S2LP_CORE_SPI.h │ │ │ ├── S2LP_Middleware_Config.h │ │ │ ├── S2LP_Nucleo64_STM32_F0xx_AUTO.h │ │ │ ├── S2LP_Nucleo64_STM32_F4xx_AUTO.h │ │ │ ├── S2LP_Nucleo64_STM32_L0xx_AUTO.h │ │ │ ├── S2LP_Nucleo64_STM32_L1xx_AUTO.h │ │ │ └── cube_hal.h │ │ └── src │ │ │ ├── FEM │ │ │ └── S2LP_AUX_FEM_AUTO.c │ │ │ ├── S2LP_AUX_EEPROM.c │ │ │ ├── S2LP_AUX_UTILS.c │ │ │ ├── S2LP_CORE_GPIO.c │ │ │ ├── S2LP_CORE_SPI.c │ │ │ └── TCXO │ │ │ └── S2LP_AUX_TCXO_AUTO.c │ ├── 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_usb.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_usb.c │ │ │ └── stm32l0xx_ll_utils.c │ └── Utils │ │ ├── inc │ │ └── SDK_UTILS_Timers.h │ │ └── src │ │ └── SDK_UTILS_Timers.c ├── EWARM │ ├── IZAR-PRIOS-ST-STEVAL-FKI868V1.eww │ ├── ST-STEVAL-FKI868V1.dep │ ├── ST-STEVAL-FKI868V1.ewd │ ├── ST-STEVAL-FKI868V1.ewp │ ├── ST-STEVAL-FKI868V1.ewt │ ├── settings │ │ ├── IZAR-PRIOS-ST-STEVAL-FKI868V1.wsdt │ │ ├── Project.wsdt │ │ ├── ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.cspy.bat │ │ ├── ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.cspy.ps1 │ │ ├── ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.driver.xcl │ │ ├── ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.general.xcl │ │ ├── ST-STEVAL-FKI868V1.crun │ │ ├── ST-STEVAL-FKI868V1.dbgdt │ │ └── ST-STEVAL-FKI868V1.dnx │ ├── startup_stm32l053xx.s │ ├── stm32l053xx_flash.icf │ └── stm32l053xx_sram.icf ├── Inc │ ├── PRIOS.h │ ├── S2LP_WMBus.h │ ├── S2LP_WMBus_T1.h │ ├── WMBus.h │ ├── main.h │ ├── stm32l0xx_hal_conf.h │ └── stm32l0xx_it.h ├── ST-STEVAL-FKI868V1.ioc └── Src │ ├── PRIOS.c │ ├── S2LP_WMBus.c │ ├── WMBus.c │ ├── main.c │ ├── stm32l0xx_hal_msp.c │ ├── stm32l0xx_it.c │ └── system_stm32l0xx.c └── doc ├── 212612-FR-EN-IZAR-RC-i-R4.pdf ├── IZAR_RC_I_R4.jpg ├── steval-fki868v2.jpg └── steval-fki868v2.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | /ST-STEVAL-FKI868V1/EWARM/ST-STEVAL-FKI868V1/Obj/* 2 | /ST-STEVAL-FKI868V1/EWARM/ST-STEVAL-FKI868V1/Exe/* 3 | /ST-STEVAL-FKI868V1/EWARM/ST-STEVAL-FKI868V1/List/* 4 | /LiveWatch.log 5 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | Copyright 2020 Erwan Martin 2 | 3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 4 | 5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 6 | 7 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | 9 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 10 | 11 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /PC/Makefile: -------------------------------------------------------------------------------- 1 | all: cracker 2 | 3 | cracker: prios_key_cracker.c ../ST-STEVAL-FKI868V1/Src/PRIOS.c 4 | gcc -c -Wall -Werror -std=c99 -pedantic prios_key_cracker.c -I ../ST-STEVAL-FKI868V1/Inc 5 | gcc -c -Wall -Werror -std=c99 -pedantic ../ST-STEVAL-FKI868V1/Src/PRIOS.c -I ../ST-STEVAL-FKI868V1/Inc 6 | gcc -o prios_key_cracker prios_key_cracker.o PRIOS.o 7 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/BSP/inc/SDK_EVAL_Com.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file SDK_EVAL_Com.h 3 | * @author AMG - RF Application team 4 | * @version 3.2.1 5 | * @date 26-September-2016 6 | * @brief This file contains definitions for Software Development Kit eval board COM ports. 7 | * @details 8 | * 9 | * Configuration of the COM peripheral for the SDK motherboard. 10 | * 11 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 12 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 13 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 14 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 15 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 16 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 17 | * 18 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 19 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 20 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 21 | * 22 | *

© COPYRIGHT 2019 STMicroelectronics

23 | */ 24 | 25 | /* Define to prevent recursive inclusion -------------------------------------*/ 26 | #ifndef __SDK_EVAL_COM_H 27 | #define __SDK_EVAL_COM_H 28 | 29 | /* Includes ------------------------------------------------------------------*/ 30 | #include "cube_hal.h" 31 | #ifdef __cplusplus 32 | extern "C" { 33 | #endif 34 | 35 | 36 | /** @addtogroup SDK_EVAL_NUCLEO 37 | * @{ 38 | */ 39 | 40 | 41 | /** @addtogroup SDK_EVAL_Com SDK EVAL Com 42 | * @brief Management of Software Development Kit eval board COM ports. 43 | * @details See the file @ref SDK_EVAL_Com.h for more details. 44 | * @{ 45 | */ 46 | 47 | 48 | /** @defgroup SDK_EVAL_Com_Exported_Types SDK EVAL Com Exported Types 49 | * @{ 50 | */ 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | /** @defgroup SDK_EVAL_Com_Exported_Functions SDK EVAL Com Exported Functions 59 | * @{ 60 | */ 61 | 62 | 63 | void SdkEvalComInit(void); 64 | void SdkEvalComBaudrate(uint32_t baudrate); 65 | void SdkEvalComTriggerTx(void); 66 | unsigned char __io_getcharNonBlocking(unsigned char *data); 67 | void __io_putchar( char c ); 68 | int __io_getchar(void); 69 | void __io_flush( void ); 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | /** 76 | * @} 77 | */ 78 | 79 | 80 | /** 81 | * @} 82 | */ 83 | 84 | 85 | #ifdef __cplusplus 86 | } 87 | #endif 88 | 89 | #endif 90 | 91 | /******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/ 92 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/BSP/inc/SDK_EVAL_Led.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file SDK_EVAL_Led.h 3 | * @author AMS VMA RF application team 4 | * @version V2.0.0 5 | * @date November 29, 2018 6 | * @brief This file provides all the low level API to manage LEDs for eval board. 7 | * @details 8 | * 9 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 10 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 11 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 12 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 13 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 14 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 15 | * 16 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 17 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 18 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 19 | * 20 | *

© COPYRIGHT 2015 STMicroelectronics

21 | */ 22 | 23 | 24 | /* Define to prevent recursive inclusion -------------------------------------*/ 25 | #ifndef __SDK_EVAL_LED_H 26 | #define __SDK_EVAL_LED_H 27 | 28 | /* Includes ------------------------------------------------------------------*/ 29 | 30 | #include "SDK_EVAL_Config.h" 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | /** @addtogroup SDK_EVAL_BlueNRG1 SDK EVAL BlueNRG1 37 | * @{ 38 | */ 39 | 40 | /** @addtogroup SDK_EVAL_Led SDK EVAL Led 41 | * @{ 42 | */ 43 | 44 | /** @defgroup SDK_EVAL_Led_Exported_Types SDK EVAL Led Exported Types 45 | * @{ 46 | */ 47 | 48 | /** 49 | * @brief Enumeration of SDK EVAL LEDs 50 | * Only one LED on Nucleo Boards, but three LED here defined to mantain compatibility 51 | * with BlueNRG-1/2 evaluation boards. 52 | */ 53 | typedef enum { 54 | LED1 = 0, 55 | LED2 = 0, 56 | LED3 = 0 57 | } SdkEvalLed; 58 | 59 | /** 60 | * @} 61 | */ 62 | 63 | /** @defgroup SDK_EVAL_Led_Exported_Constants SDK EVAL Led Exported Constants 64 | * @{ 65 | */ 66 | 67 | #define EVAL_BOARD_LEDS LEDn 68 | 69 | /** 70 | * @brief SDK Eval leds polarity 71 | */ 72 | #define LED_ON GPIO_PIN_SET 73 | #define LED_OFF GPIO_PIN_RESET 74 | 75 | /** 76 | * @} 77 | */ 78 | 79 | /** 80 | * @defgroup SDK_EVAL_Led_Exported_Macros SDK EVAL Led Exported Macros 81 | * @{ 82 | */ 83 | 84 | /** 85 | * @} 86 | */ 87 | 88 | /** @defgroup SDK_EVAL_Led_Exported_Functions SDK EVAL Led Exported Functions 89 | * @{ 90 | */ 91 | uint32_t Get_LedGpioPin(SdkEvalLed xLed); 92 | void SdkEvalLedInit(SdkEvalLed xLed); 93 | void SdkEvalLedOn(SdkEvalLed xLed); 94 | void SdkEvalLedOff(SdkEvalLed xLed); 95 | void SdkEvalLedToggle(SdkEvalLed xLed); 96 | FlagStatus SdkEvalLedGetState(SdkEvalLed xLed); 97 | 98 | /** 99 | * @} 100 | */ 101 | 102 | /** 103 | * @} 104 | */ 105 | 106 | /** 107 | * @} 108 | */ 109 | 110 | #ifdef __cplusplus 111 | } 112 | #endif 113 | 114 | #endif /* __SDK_EVAL_LED_H */ 115 | 116 | /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/ 117 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_init_f32.c 9 | * 10 | * Description: Floating-point PID Control initialization function 11 | * 12 | * 13 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 14 | * 15 | * Redistribution and use in source and binary forms, with or without 16 | * modification, are permitted provided that the following conditions 17 | * are met: 18 | * - Redistributions of source code must retain the above copyright 19 | * notice, this list of conditions and the following disclaimer. 20 | * - Redistributions in binary form must reproduce the above copyright 21 | * notice, this list of conditions and the following disclaimer in 22 | * the documentation and/or other materials provided with the 23 | * distribution. 24 | * - Neither the name of ARM LIMITED nor the names of its contributors 25 | * may be used to endorse or promote products derived from this 26 | * software without specific prior written permission. 27 | * 28 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 35 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 36 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 38 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 39 | * POSSIBILITY OF SUCH DAMAGE. 40 | * ------------------------------------------------------------------- */ 41 | 42 | #include "arm_math.h" 43 | 44 | /** 45 | * @addtogroup PID 46 | * @{ 47 | */ 48 | 49 | /** 50 | * @brief Initialization function for the floating-point PID Control. 51 | * @param[in,out] *S points to an instance of the PID structure. 52 | * @param[in] resetStateFlag flag to reset the state. 0 = no change in state & 1 = reset the state. 53 | * @return none. 54 | * \par Description: 55 | * \par 56 | * The resetStateFlag specifies whether to set state to zero or not. \n 57 | * The function computes the structure fields: A0, A1 A2 58 | * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd) 59 | * also sets the state variables to all zeros. 60 | */ 61 | 62 | void arm_pid_init_f32( 63 | arm_pid_instance_f32 * S, 64 | int32_t resetStateFlag) 65 | { 66 | 67 | /* Derived coefficient A0 */ 68 | S->A0 = S->Kp + S->Ki + S->Kd; 69 | 70 | /* Derived coefficient A1 */ 71 | S->A1 = (-S->Kp) - ((float32_t) 2.0 * S->Kd); 72 | 73 | /* Derived coefficient A2 */ 74 | S->A2 = S->Kd; 75 | 76 | /* Check whether state needs reset or not */ 77 | if(resetStateFlag) 78 | { 79 | /* Clear the state buffer. The size will be always 3 samples */ 80 | memset(S->state, 0, 3u * sizeof(float32_t)); 81 | } 82 | 83 | } 84 | 85 | /** 86 | * @} end of PID group 87 | */ 88 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_reset_f32.c 9 | * 10 | * Description: Floating-point PID Control reset function 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @addtogroup PID 45 | * @{ 46 | */ 47 | 48 | /** 49 | * @brief Reset function for the floating-point PID Control. 50 | * @param[in] *S Instance pointer of PID control data structure. 51 | * @return none. 52 | * \par Description: 53 | * The function resets the state buffer to zeros. 54 | */ 55 | void arm_pid_reset_f32( 56 | arm_pid_instance_f32 * S) 57 | { 58 | 59 | /* Clear the state buffer. The size will be always 3 samples */ 60 | memset(S->state, 0, 3u * sizeof(float32_t)); 61 | } 62 | 63 | /** 64 | * @} end of PID group 65 | */ 66 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_reset_q15.c 9 | * 10 | * Description: Q15 PID Control reset function 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * -------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @addtogroup PID 45 | * @{ 46 | */ 47 | 48 | /** 49 | * @brief Reset function for the Q15 PID Control. 50 | * @param[in] *S Instance pointer of PID control data structure. 51 | * @return none. 52 | * \par Description: 53 | * The function resets the state buffer to zeros. 54 | */ 55 | void arm_pid_reset_q15( 56 | arm_pid_instance_q15 * S) 57 | { 58 | /* Reset state to zero, The size will be always 3 samples */ 59 | memset(S->state, 0, 3u * sizeof(q15_t)); 60 | } 61 | 62 | /** 63 | * @} end of PID group 64 | */ 65 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_reset_q31.c 9 | * 10 | * Description: Q31 PID Control reset function 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @addtogroup PID 45 | * @{ 46 | */ 47 | 48 | /** 49 | * @brief Reset function for the Q31 PID Control. 50 | * @param[in] *S Instance pointer of PID control data structure. 51 | * @return none. 52 | * \par Description: 53 | * The function resets the state buffer to zeros. 54 | */ 55 | void arm_pid_reset_q31( 56 | arm_pid_instance_q31 * S) 57 | { 58 | 59 | /* Clear the state buffer. The size will be always 3 samples */ 60 | memset(S->state, 0, 3u * sizeof(q31_t)); 61 | } 62 | 63 | /** 64 | * @} end of PID group 65 | */ 66 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 07. September 2015 5 | * $Revision: V.1.4.5 a 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_cos_q15.c 9 | * 10 | * Description: Fast cosine calculation for Q15 values. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * -------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | #include "arm_common_tables.h" 43 | 44 | /** 45 | * @ingroup groupFastMath 46 | */ 47 | 48 | /** 49 | * @addtogroup cos 50 | * @{ 51 | */ 52 | 53 | /** 54 | * @brief Fast approximation to the trigonometric cosine function for Q15 data. 55 | * @param[in] x Scaled input value in radians. 56 | * @return cos(x). 57 | * 58 | * The Q15 input value is in the range [0 +0.9999] and is mapped to a radian 59 | * value in the range [0 2*pi). 60 | */ 61 | 62 | q15_t arm_cos_q15( 63 | q15_t x) 64 | { 65 | q15_t cosVal; /* Temporary variables for input, output */ 66 | int32_t index; /* Index variables */ 67 | q15_t a, b; /* Four nearest output values */ 68 | q15_t fract; /* Temporary values for fractional values */ 69 | 70 | /* add 0.25 (pi/2) to read sine table */ 71 | x = (uint16_t)x + 0x2000; 72 | if(x < 0) 73 | { /* convert negative numbers to corresponding positive ones */ 74 | x = (uint16_t)x + 0x8000; 75 | } 76 | 77 | /* Calculate the nearest index */ 78 | index = (uint32_t)x >> FAST_MATH_Q15_SHIFT; 79 | 80 | /* Calculation of fractional value */ 81 | fract = (x - (index << FAST_MATH_Q15_SHIFT)) << 9; 82 | 83 | /* Read two nearest values of input value from the sin table */ 84 | a = sinTable_q15[index]; 85 | b = sinTable_q15[index+1]; 86 | 87 | /* Linear interpolation process */ 88 | cosVal = (q31_t)(0x8000-fract)*a >> 16; 89 | cosVal = (q15_t)((((q31_t)cosVal << 16) + ((q31_t)fract*b)) >> 16); 90 | 91 | return cosVal << 1; 92 | } 93 | 94 | /** 95 | * @} end of cos group 96 | */ 97 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 07. September 2015 5 | * $Revision: V.1.4.5 a 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_cos_q31.c 9 | * 10 | * Description: Fast cosine calculation for Q31 values. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * -------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | #include "arm_common_tables.h" 43 | 44 | /** 45 | * @ingroup groupFastMath 46 | */ 47 | 48 | /** 49 | * @addtogroup cos 50 | * @{ 51 | */ 52 | 53 | /** 54 | * @brief Fast approximation to the trigonometric cosine function for Q31 data. 55 | * @param[in] x Scaled input value in radians. 56 | * @return cos(x). 57 | * 58 | * The Q31 input value is in the range [0 +0.9999] and is mapped to a radian 59 | * value in the range [0 2*pi). 60 | */ 61 | 62 | q31_t arm_cos_q31( 63 | q31_t x) 64 | { 65 | q31_t cosVal; /* Temporary variables for input, output */ 66 | int32_t index; /* Index variables */ 67 | q31_t a, b; /* Four nearest output values */ 68 | q31_t fract; /* Temporary values for fractional values */ 69 | 70 | /* add 0.25 (pi/2) to read sine table */ 71 | x = (uint32_t)x + 0x20000000; 72 | if(x < 0) 73 | { /* convert negative numbers to corresponding positive ones */ 74 | x = (uint32_t)x + 0x80000000; 75 | } 76 | 77 | /* Calculate the nearest index */ 78 | index = (uint32_t)x >> FAST_MATH_Q31_SHIFT; 79 | 80 | /* Calculation of fractional value */ 81 | fract = (x - (index << FAST_MATH_Q31_SHIFT)) << 9; 82 | 83 | /* Read two nearest values of input value from the sin table */ 84 | a = sinTable_q31[index]; 85 | b = sinTable_q31[index+1]; 86 | 87 | /* Linear interpolation process */ 88 | cosVal = (q63_t)(0x80000000-fract)*a >> 32; 89 | cosVal = (q31_t)((((q63_t)cosVal << 32) + ((q63_t)fract*b)) >> 32); 90 | 91 | return cosVal << 1; 92 | } 93 | 94 | /** 95 | * @} end of cos group 96 | */ 97 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_sin_q15.c 9 | * 10 | * Description: Fast sine calculation for Q15 values. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * -------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | #include "arm_common_tables.h" 43 | 44 | /** 45 | * @ingroup groupFastMath 46 | */ 47 | 48 | /** 49 | * @addtogroup sin 50 | * @{ 51 | */ 52 | 53 | /** 54 | * @brief Fast approximation to the trigonometric sine function for Q15 data. 55 | * @param[in] x Scaled input value in radians. 56 | * @return sin(x). 57 | * 58 | * The Q15 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi). 59 | */ 60 | 61 | q15_t arm_sin_q15( 62 | q15_t x) 63 | { 64 | q15_t sinVal; /* Temporary variables for input, output */ 65 | int32_t index; /* Index variables */ 66 | q15_t a, b; /* Four nearest output values */ 67 | q15_t fract; /* Temporary values for fractional values */ 68 | 69 | /* Calculate the nearest index */ 70 | index = (uint32_t)x >> FAST_MATH_Q15_SHIFT; 71 | 72 | /* Calculation of fractional value */ 73 | fract = (x - (index << FAST_MATH_Q15_SHIFT)) << 9; 74 | 75 | /* Read two nearest values of input value from the sin table */ 76 | a = sinTable_q15[index]; 77 | b = sinTable_q15[index+1]; 78 | 79 | /* Linear interpolation process */ 80 | sinVal = (q31_t)(0x8000-fract)*a >> 16; 81 | sinVal = (q15_t)((((q31_t)sinVal << 16) + ((q31_t)fract*b)) >> 16); 82 | 83 | return sinVal << 1; 84 | } 85 | 86 | /** 87 | * @} end of sin group 88 | */ 89 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_sin_q31.c 9 | * 10 | * Description: Fast sine calculation for Q31 values. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * -------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | #include "arm_common_tables.h" 43 | 44 | /** 45 | * @ingroup groupFastMath 46 | */ 47 | 48 | /** 49 | * @addtogroup sin 50 | * @{ 51 | */ 52 | 53 | /** 54 | * @brief Fast approximation to the trigonometric sine function for Q31 data. 55 | * @param[in] x Scaled input value in radians. 56 | * @return sin(x). 57 | * 58 | * The Q31 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi). */ 59 | 60 | q31_t arm_sin_q31( 61 | q31_t x) 62 | { 63 | q31_t sinVal; /* Temporary variables for input, output */ 64 | int32_t index; /* Index variables */ 65 | q31_t a, b; /* Four nearest output values */ 66 | q31_t fract; /* Temporary values for fractional values */ 67 | 68 | /* Calculate the nearest index */ 69 | index = (uint32_t)x >> FAST_MATH_Q31_SHIFT; 70 | 71 | /* Calculation of fractional value */ 72 | fract = (x - (index << FAST_MATH_Q31_SHIFT)) << 9; 73 | 74 | /* Read two nearest values of input value from the sin table */ 75 | a = sinTable_q31[index]; 76 | b = sinTable_q31[index+1]; 77 | 78 | /* Linear interpolation process */ 79 | sinVal = (q63_t)(0x80000000-fract)*a >> 32; 80 | sinVal = (q31_t)((((q63_t)sinVal << 32) + ((q63_t)fract*b)) >> 32); 81 | 82 | return sinVal << 1; 83 | } 84 | 85 | /** 86 | * @} end of sin group 87 | */ 88 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_fir_lattice_init_f32.c 9 | * 10 | * Description: Floating-point FIR Lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ---------------------------------------------------------------------------*/ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupFilters 45 | */ 46 | 47 | /** 48 | * @addtogroup FIR_Lattice 49 | * @{ 50 | */ 51 | 52 | /** 53 | * @brief Initialization function for the floating-point FIR lattice filter. 54 | * @param[in] *S points to an instance of the floating-point FIR lattice structure. 55 | * @param[in] numStages number of filter stages. 56 | * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. 57 | * @param[in] *pState points to the state buffer. The array is of length numStages. 58 | * @return none. 59 | */ 60 | 61 | void arm_fir_lattice_init_f32( 62 | arm_fir_lattice_instance_f32 * S, 63 | uint16_t numStages, 64 | float32_t * pCoeffs, 65 | float32_t * pState) 66 | { 67 | /* Assign filter taps */ 68 | S->numStages = numStages; 69 | 70 | /* Assign coefficient pointer */ 71 | S->pCoeffs = pCoeffs; 72 | 73 | /* Clear state buffer and size is always numStages */ 74 | memset(pState, 0, (numStages) * sizeof(float32_t)); 75 | 76 | /* Assign state pointer */ 77 | S->pState = pState; 78 | 79 | } 80 | 81 | /** 82 | * @} end of FIR_Lattice group 83 | */ 84 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_fir_lattice_init_q15.c 9 | * 10 | * Description: Q15 FIR Lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ---------------------------------------------------------------------------*/ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupFilters 45 | */ 46 | 47 | /** 48 | * @addtogroup FIR_Lattice 49 | * @{ 50 | */ 51 | 52 | /** 53 | * @brief Initialization function for the Q15 FIR lattice filter. 54 | * @param[in] *S points to an instance of the Q15 FIR lattice structure. 55 | * @param[in] numStages number of filter stages. 56 | * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. 57 | * @param[in] *pState points to the state buffer. The array is of length numStages. 58 | * @return none. 59 | */ 60 | 61 | void arm_fir_lattice_init_q15( 62 | arm_fir_lattice_instance_q15 * S, 63 | uint16_t numStages, 64 | q15_t * pCoeffs, 65 | q15_t * pState) 66 | { 67 | /* Assign filter taps */ 68 | S->numStages = numStages; 69 | 70 | /* Assign coefficient pointer */ 71 | S->pCoeffs = pCoeffs; 72 | 73 | /* Clear state buffer and size is always numStages */ 74 | memset(pState, 0, (numStages) * sizeof(q15_t)); 75 | 76 | /* Assign state pointer */ 77 | S->pState = pState; 78 | 79 | } 80 | 81 | /** 82 | * @} end of FIR_Lattice group 83 | */ 84 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_fir_lattice_init_q31.c 9 | * 10 | * Description: Q31 FIR lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ---------------------------------------------------------------------------*/ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupFilters 45 | */ 46 | 47 | /** 48 | * @addtogroup FIR_Lattice 49 | * @{ 50 | */ 51 | 52 | /** 53 | * @brief Initialization function for the Q31 FIR lattice filter. 54 | * @param[in] *S points to an instance of the Q31 FIR lattice structure. 55 | * @param[in] numStages number of filter stages. 56 | * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. 57 | * @param[in] *pState points to the state buffer. The array is of length numStages. 58 | * @return none. 59 | */ 60 | 61 | void arm_fir_lattice_init_q31( 62 | arm_fir_lattice_instance_q31 * S, 63 | uint16_t numStages, 64 | q31_t * pCoeffs, 65 | q31_t * pState) 66 | { 67 | /* Assign filter taps */ 68 | S->numStages = numStages; 69 | 70 | /* Assign coefficient pointer */ 71 | S->pCoeffs = pCoeffs; 72 | 73 | /* Clear state buffer and size is always numStages */ 74 | memset(pState, 0, (numStages) * sizeof(q31_t)); 75 | 76 | /* Assign state pointer */ 77 | S->pState = pState; 78 | 79 | } 80 | 81 | /** 82 | * @} end of FIR_Lattice group 83 | */ 84 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_iir_lattice_init_f32.c 9 | * 10 | * Description: Floating-point IIR lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ---------------------------------------------------------------------------*/ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupFilters 45 | */ 46 | 47 | /** 48 | * @addtogroup IIR_Lattice 49 | * @{ 50 | */ 51 | 52 | /** 53 | * @brief Initialization function for the floating-point IIR lattice filter. 54 | * @param[in] *S points to an instance of the floating-point IIR lattice structure. 55 | * @param[in] numStages number of stages in the filter. 56 | * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. 57 | * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. 58 | * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. 59 | * @param[in] blockSize number of samples to process. 60 | * @return none. 61 | */ 62 | 63 | void arm_iir_lattice_init_f32( 64 | arm_iir_lattice_instance_f32 * S, 65 | uint16_t numStages, 66 | float32_t * pkCoeffs, 67 | float32_t * pvCoeffs, 68 | float32_t * pState, 69 | uint32_t blockSize) 70 | { 71 | /* Assign filter taps */ 72 | S->numStages = numStages; 73 | 74 | /* Assign reflection coefficient pointer */ 75 | S->pkCoeffs = pkCoeffs; 76 | 77 | /* Assign ladder coefficient pointer */ 78 | S->pvCoeffs = pvCoeffs; 79 | 80 | /* Clear state buffer and size is always blockSize + numStages */ 81 | memset(pState, 0, (numStages + blockSize) * sizeof(float32_t)); 82 | 83 | /* Assign state pointer */ 84 | S->pState = pState; 85 | 86 | 87 | } 88 | 89 | /** 90 | * @} end of IIR_Lattice group 91 | */ 92 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_iir_lattice_init_q15.c 9 | * 10 | * Description: Q15 IIR lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ---------------------------------------------------------------------------*/ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupFilters 45 | */ 46 | 47 | /** 48 | * @addtogroup IIR_Lattice 49 | * @{ 50 | */ 51 | 52 | /** 53 | * @brief Initialization function for the Q15 IIR lattice filter. 54 | * @param[in] *S points to an instance of the Q15 IIR lattice structure. 55 | * @param[in] numStages number of stages in the filter. 56 | * @param[in] *pkCoeffs points to reflection coefficient buffer. The array is of length numStages. 57 | * @param[in] *pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1. 58 | * @param[in] *pState points to state buffer. The array is of length numStages+blockSize. 59 | * @param[in] blockSize number of samples to process per call. 60 | * @return none. 61 | */ 62 | 63 | void arm_iir_lattice_init_q15( 64 | arm_iir_lattice_instance_q15 * S, 65 | uint16_t numStages, 66 | q15_t * pkCoeffs, 67 | q15_t * pvCoeffs, 68 | q15_t * pState, 69 | uint32_t blockSize) 70 | { 71 | /* Assign filter taps */ 72 | S->numStages = numStages; 73 | 74 | /* Assign reflection coefficient pointer */ 75 | S->pkCoeffs = pkCoeffs; 76 | 77 | /* Assign ladder coefficient pointer */ 78 | S->pvCoeffs = pvCoeffs; 79 | 80 | /* Clear state buffer and size is always blockSize + numStages */ 81 | memset(pState, 0, (numStages + blockSize) * sizeof(q15_t)); 82 | 83 | /* Assign state pointer */ 84 | S->pState = pState; 85 | 86 | 87 | } 88 | 89 | /** 90 | * @} end of IIR_Lattice group 91 | */ 92 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_iir_lattice_init_q31.c 9 | * 10 | * Description: Initialization function for the Q31 IIR lattice filter. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * ---------------------------------------------------------------------------*/ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupFilters 45 | */ 46 | 47 | /** 48 | * @addtogroup IIR_Lattice 49 | * @{ 50 | */ 51 | 52 | /** 53 | * @brief Initialization function for the Q31 IIR lattice filter. 54 | * @param[in] *S points to an instance of the Q31 IIR lattice structure. 55 | * @param[in] numStages number of stages in the filter. 56 | * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. 57 | * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. 58 | * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. 59 | * @param[in] blockSize number of samples to process. 60 | * @return none. 61 | */ 62 | 63 | void arm_iir_lattice_init_q31( 64 | arm_iir_lattice_instance_q31 * S, 65 | uint16_t numStages, 66 | q31_t * pkCoeffs, 67 | q31_t * pvCoeffs, 68 | q31_t * pState, 69 | uint32_t blockSize) 70 | { 71 | /* Assign filter taps */ 72 | S->numStages = numStages; 73 | 74 | /* Assign reflection coefficient pointer */ 75 | S->pkCoeffs = pkCoeffs; 76 | 77 | /* Assign ladder coefficient pointer */ 78 | S->pvCoeffs = pvCoeffs; 79 | 80 | /* Clear state buffer and size is always blockSize + numStages */ 81 | memset(pState, 0, (numStages + blockSize) * sizeof(q31_t)); 82 | 83 | /* Assign state pointer */ 84 | S->pState = pState; 85 | 86 | 87 | } 88 | 89 | /** 90 | * @} end of IIR_Lattice group 91 | */ 92 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_mat_init_f32.c 9 | * 10 | * Description: Floating-point matrix initialization. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * -------------------------------------------------------------------------- */ 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupMatrix 45 | */ 46 | 47 | /** 48 | * @defgroup MatrixInit Matrix Initialization 49 | * 50 | * Initializes the underlying matrix data structure. 51 | * The functions set the numRows, 52 | * numCols, and pData fields 53 | * of the matrix data structure. 54 | */ 55 | 56 | /** 57 | * @addtogroup MatrixInit 58 | * @{ 59 | */ 60 | 61 | /** 62 | * @brief Floating-point matrix initialization. 63 | * @param[in,out] *S points to an instance of the floating-point matrix structure. 64 | * @param[in] nRows number of rows in the matrix. 65 | * @param[in] nColumns number of columns in the matrix. 66 | * @param[in] *pData points to the matrix data array. 67 | * @return none 68 | */ 69 | 70 | void arm_mat_init_f32( 71 | arm_matrix_instance_f32 * S, 72 | uint16_t nRows, 73 | uint16_t nColumns, 74 | float32_t * pData) 75 | { 76 | /* Assign Number of Rows */ 77 | S->numRows = nRows; 78 | 79 | /* Assign Number of Columns */ 80 | S->numCols = nColumns; 81 | 82 | /* Assign Data pointer */ 83 | S->pData = pData; 84 | } 85 | 86 | /** 87 | * @} end of MatrixInit group 88 | */ 89 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_mat_init_q15.c 9 | * 10 | * Description: Q15 matrix initialization. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Redistribution and use in source and binary forms, with or without 15 | * modification, are permitted provided that the following conditions 16 | * are met: 17 | * - Redistributions of source code must retain the above copyright 18 | * notice, this list of conditions and the following disclaimer. 19 | * - Redistributions in binary form must reproduce the above copyright 20 | * notice, this list of conditions and the following disclaimer in 21 | * the documentation and/or other materials provided with the 22 | * distribution. 23 | * - Neither the name of ARM LIMITED nor the names of its contributors 24 | * may be used to endorse or promote products derived from this 25 | * software without specific prior written permission. 26 | * 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | * -------------------------------------------------------------------------- */ 40 | 41 | 42 | #include "arm_math.h" 43 | 44 | /** 45 | * @ingroup groupMatrix 46 | */ 47 | 48 | /** 49 | * @addtogroup MatrixInit 50 | * @{ 51 | */ 52 | 53 | /** 54 | * @brief Q15 matrix initialization. 55 | * @param[in,out] *S points to an instance of the floating-point matrix structure. 56 | * @param[in] nRows number of rows in the matrix. 57 | * @param[in] nColumns number of columns in the matrix. 58 | * @param[in] *pData points to the matrix data array. 59 | * @return none 60 | */ 61 | 62 | void arm_mat_init_q15( 63 | arm_matrix_instance_q15 * S, 64 | uint16_t nRows, 65 | uint16_t nColumns, 66 | q15_t * pData) 67 | { 68 | /* Assign Number of Rows */ 69 | S->numRows = nRows; 70 | 71 | /* Assign Number of Columns */ 72 | S->numCols = nColumns; 73 | 74 | /* Assign Data pointer */ 75 | S->pData = pData; 76 | } 77 | 78 | /** 79 | * @} end of MatrixInit group 80 | */ 81 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 19. March 2015 5 | * $Revision: V.1.4.5 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_mat_init_q31.c 9 | * 10 | * Description: Q31 matrix initialization. 11 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 12 | * 13 | * Redistribution and use in source and binary forms, with or without 14 | * modification, are permitted provided that the following conditions 15 | * are met: 16 | * - Redistributions of source code must retain the above copyright 17 | * notice, this list of conditions and the following disclaimer. 18 | * - Redistributions in binary form must reproduce the above copyright 19 | * notice, this list of conditions and the following disclaimer in 20 | * the documentation and/or other materials provided with the 21 | * distribution. 22 | * - Neither the name of ARM LIMITED nor the names of its contributors 23 | * may be used to endorse or promote products derived from this 24 | * software without specific prior written permission. 25 | * 26 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 29 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 30 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 31 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 32 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 33 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 34 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 35 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 36 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 37 | * POSSIBILITY OF SUCH DAMAGE. 38 | * -------------------------------------------------------------------------- */ 39 | 40 | 41 | #include "arm_math.h" 42 | 43 | /** 44 | * @ingroup groupMatrix 45 | */ 46 | 47 | /** 48 | * @defgroup MatrixInit Matrix Initialization 49 | * 50 | */ 51 | 52 | /** 53 | * @addtogroup MatrixInit 54 | * @{ 55 | */ 56 | 57 | /** 58 | * @brief Q31 matrix initialization. 59 | * @param[in,out] *S points to an instance of the floating-point matrix structure. 60 | * @param[in] nRows number of rows in the matrix. 61 | * @param[in] nColumns number of columns in the matrix. 62 | * @param[in] *pData points to the matrix data array. 63 | * @return none 64 | */ 65 | 66 | void arm_mat_init_q31( 67 | arm_matrix_instance_q31 * S, 68 | uint16_t nRows, 69 | uint16_t nColumns, 70 | q31_t * pData) 71 | { 72 | /* Assign Number of Rows */ 73 | S->numRows = nRows; 74 | 75 | /* Assign Number of Columns */ 76 | S->numCols = nColumns; 77 | 78 | /* Assign Data pointer */ 79 | S->pData = pData; 80 | } 81 | 82 | /** 83 | * @} end of MatrixInit group 84 | */ 85 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file system_stm32l0xx.h 4 | * @author MCD Application Team 5 | * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer System Header File. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright(c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /** @addtogroup CMSIS 21 | * @{ 22 | */ 23 | 24 | /** @addtogroup stm32l0xx_system 25 | * @{ 26 | */ 27 | 28 | /** 29 | * @brief Define to prevent recursive inclusion 30 | */ 31 | #ifndef __SYSTEM_STM32L0XX_H 32 | #define __SYSTEM_STM32L0XX_H 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | /** @addtogroup STM32L0xx_System_Includes 39 | * @{ 40 | */ 41 | 42 | /** 43 | * @} 44 | */ 45 | 46 | 47 | /** @addtogroup STM32L0xx_System_Exported_types 48 | * @{ 49 | */ 50 | /* This variable is updated in three ways: 51 | 1) by calling CMSIS function SystemCoreClockUpdate() 52 | 2) by calling HAL API function HAL_RCC_GetSysClockFreq() 53 | 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency 54 | Note: If you use this function to configure the system clock; then there 55 | is no need to call the 2 first functions listed above, since SystemCoreClock 56 | variable is updated automatically. 57 | */ 58 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 59 | /* 60 | */ 61 | extern const uint8_t AHBPrescTable[16]; /*!< AHB prescalers table values */ 62 | extern const uint8_t APBPrescTable[8]; /*!< APB prescalers table values */ 63 | extern const uint8_t PLLMulTable[9]; /*!< PLL multipiers table values */ 64 | 65 | 66 | /** 67 | * @} 68 | */ 69 | 70 | /** @addtogroup STM32L0xx_System_Exported_Constants 71 | * @{ 72 | */ 73 | 74 | /** 75 | * @} 76 | */ 77 | 78 | /** @addtogroup STM32L0xx_System_Exported_Macros 79 | * @{ 80 | */ 81 | 82 | /** 83 | * @} 84 | */ 85 | 86 | /** @addtogroup STM32L0xx_System_Exported_Functions 87 | * @{ 88 | */ 89 | 90 | extern void SystemInit(void); 91 | extern void SystemCoreClockUpdate(void); 92 | /** 93 | * @} 94 | */ 95 | 96 | #ifdef __cplusplus 97 | } 98 | #endif 99 | 100 | #endif /*__SYSTEM_STM32L0XX_H */ 101 | 102 | /** 103 | * @} 104 | */ 105 | 106 | /** 107 | * @} 108 | */ 109 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 110 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l010x4_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x08003FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x200007FF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l010x6_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x08007FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l010x8_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l010xb_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l011xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x08003FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x200007FF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l011xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200004FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000500; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x200007FF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l021xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x08003FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x200007FF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l021xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200004FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000500; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x200007FF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l031xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x08007FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l031xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200009FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000A00; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l041xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x08007FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l041xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200009FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000A00; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l051xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l051xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l052xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l052xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l053xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l053xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l061xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l061xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l062xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l062xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l063xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l063xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l071xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0802FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l071xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x20002FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20003000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l072xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0802FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l072xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x20002FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20003000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l073xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0802FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l073xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x20002FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20003000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l081xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0802FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l081xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x20002FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20003000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l082xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0802FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l082xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x20002FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20003000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l083xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0802FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/iar/linker/stm32l083xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x20002FFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20003000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x400; 14 | define symbol __ICFEDIT_size_heap__ = 0x200; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Lib/ARM/arm_cortexM0b_math.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/ST-STEVAL-FKI868V1/Drivers/CMSIS/Lib/ARM/arm_cortexM0b_math.lib -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Lib/ARM/arm_cortexM0l_math.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/ST-STEVAL-FKI868V1/Drivers/CMSIS/Lib/ARM/arm_cortexM0l_math.lib -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/CMSIS/Lib/GCC/libarm_cortexM0l_math.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/ST-STEVAL-FKI868V1/Drivers/CMSIS/Lib/GCC/libarm_cortexM0l_math.a -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Library/inc/S2LP_Fifo.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_Fifo.h 3 | * @author ST Microelectronics 4 | * @version 1.3.0 5 | * @date June, 2019 6 | * @brief Configuration and management of S2-LP Fifo. 7 | * @details 8 | * 9 | * This module allows the user to manage the linear FIFO. The functions exported 10 | * here can be used to set the thresholds for the FIFO almost full / empty alarm 11 | * interrupts or to get the total number of elements inside the FIFO. 12 | * 13 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 14 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 15 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 16 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 17 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 18 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 19 | * 20 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 21 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 22 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 23 | * 24 | *

© COPYRIGHT 2019 STMicroelectronics

25 | */ 26 | 27 | 28 | /* Define to prevent recursive inclusion -------------------------------------*/ 29 | #ifndef __S2LP_FIFO_H 30 | #define __S2LP_FIFO_H 31 | 32 | 33 | /* Includes ------------------------------------------------------------------*/ 34 | #include "S2LP_Regs.h" 35 | #include "S2LP_Types.h" 36 | #include "S2LP_CORE_SPI.h" 37 | 38 | 39 | #ifdef __cplusplus 40 | extern "C" { 41 | #endif 42 | 43 | 44 | /** 45 | * @addtogroup S2LP_Libraries 46 | * @{ 47 | */ 48 | 49 | 50 | /** 51 | * @defgroup S2LP_Fifo FIFO 52 | * @brief Configuration and management of S2LP FIFO. 53 | * @details See the file @ref S2LP_Fifo.h for more details. 54 | * @{ 55 | */ 56 | 57 | /** 58 | * @defgroup Fifo_Exported_Types FIFO Exported Types 59 | * @{ 60 | */ 61 | 62 | 63 | /** 64 | * @} 65 | */ 66 | 67 | 68 | /** 69 | * @defgroup Fifo_Exported_Constants FIFO Exported Constants 70 | * @{ 71 | */ 72 | 73 | /** 74 | * @} 75 | */ 76 | 77 | 78 | /** 79 | * @defgroup Fifo_Exported_Macros FIFO Exported Macros 80 | * @{ 81 | */ 82 | 83 | 84 | /** 85 | * @} 86 | */ 87 | 88 | 89 | /** 90 | * @defgroup Fifo_Exported_Functions FIFO Exported Functions 91 | * @{ 92 | */ 93 | 94 | uint8_t S2LPFifoReadNumberBytesRxFifo(void); 95 | uint8_t S2LPFifoReadNumberBytesTxFifo(void); 96 | void S2LPFifoSetAlmostFullThresholdRx(uint8_t cThrRxFifo); 97 | uint8_t S2LPFifoGetAlmostFullThresholdRx(void); 98 | void S2LPFifoSetAlmostEmptyThresholdRx(uint8_t cThrRxFifo); 99 | uint8_t S2LPFifoGetAlmostEmptyThresholdRx(void); 100 | void S2LPFifoSetAlmostFullThresholdTx(uint8_t cThrTxFifo); 101 | uint8_t S2LPFifoGetAlmostFullThresholdTx(void); 102 | void S2LPFifoSetAlmostEmptyThresholdTx(uint8_t cThrTxFifo); 103 | uint8_t S2LPFifoGetAlmostEmptyThresholdTx(void); 104 | void S2LPFifoMuxRxFifoIrqEnable(SFunctionalState xNewState); 105 | 106 | /** 107 | * @} 108 | */ 109 | 110 | /** 111 | * @} 112 | */ 113 | 114 | 115 | /** 116 | * @} 117 | */ 118 | 119 | #ifdef __cplusplus 120 | } 121 | #endif 122 | 123 | #endif 124 | 125 | /******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/ 126 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Library/inc/S2LP_General.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_General.h 3 | * @author ST Microelectronics 4 | * @version 1.3.0 5 | * @date June, 2019 6 | * @brief Configuration and management of S2-LP General functionalities. 7 | * @details 8 | * 9 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 10 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 11 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 12 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 13 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 14 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 15 | * 16 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 17 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 18 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 19 | * 20 | *

© COPYRIGHT 2019 STMicroelectronics

21 | */ 22 | 23 | 24 | /* Define to prevent recursive inclusion -------------------------------------*/ 25 | #ifndef __S2LP_GENERAL_H 26 | #define __S2LP_GENERAL_H 27 | 28 | 29 | /* Includes ------------------------------------------------------------------*/ 30 | 31 | #include "S2LP_Regs.h" 32 | #include "S2LP_Types.h" 33 | #include "S2LP_CORE_SPI.h" 34 | 35 | 36 | 37 | #ifdef __cplusplus 38 | extern "C" { 39 | #endif 40 | 41 | /** 42 | * @addtogroup S2LP_Libraries 43 | * @{ 44 | */ 45 | 46 | 47 | /** 48 | * @defgroup S2LP_General General 49 | * @brief Configuration and management of S2LP General functionalities. 50 | * @details See the file @ref S2LP_General.h for more details. 51 | * @{ 52 | */ 53 | 54 | /** 55 | * @defgroup General_Exported_Types General Exported Types 56 | * @{ 57 | */ 58 | 59 | 60 | /** 61 | * @brief S2LP version type enumeration 62 | */ 63 | 64 | typedef enum { 65 | MODE_EXT_XO = 0, 66 | MODE_EXT_XIN = 0x80, 67 | } ModeExtRef; 68 | 69 | 70 | /** 71 | * @} 72 | */ 73 | 74 | 75 | /** 76 | * @defgroup General_Exported_Constants General Exported Constants 77 | * @{ 78 | */ 79 | 80 | 81 | /** 82 | * @} 83 | */ 84 | 85 | 86 | /** 87 | * @defgroup General_Exported_Macros General Exported Macros 88 | * @{ 89 | */ 90 | #define S2LPGeneralLibraryVersion() "S2LP_Libraries_v.1.3.0" 91 | 92 | 93 | /** 94 | * @} 95 | */ 96 | 97 | 98 | /** 99 | * @defgroup General_Exported_Functions General Exported Functions 100 | * @{ 101 | */ 102 | 103 | uint8_t S2LPGeneralGetDevicePN(void); 104 | uint8_t S2LPGeneralGetVersion(void); 105 | void S2LPGeneralSetExtRef(ModeExtRef xExtMode); 106 | ModeExtRef S2LPGeneralGetExtRef(void); 107 | void S2LPRadioSetExternalSmpsMode(SFunctionalState xNewState); 108 | void S2LPRefreshStatus(void); 109 | 110 | /** 111 | * @} 112 | */ 113 | 114 | /** 115 | * @} 116 | */ 117 | 118 | 119 | /** 120 | * @} 121 | */ 122 | 123 | 124 | #ifdef __cplusplus 125 | } 126 | #endif 127 | 128 | #endif 129 | 130 | /******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/ 131 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Library/inc/S2LP_Timer_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_Timer_ex.h 3 | * @author ST Microelectronics 4 | * @version 1.3.0 5 | * @date June, 2019 6 | * @brief Configuration and management of S2-LP Timers using floating point. 7 | * @details 8 | * 9 | * This module provides API to configure the S2-LP timing mechanisms using floating points. 10 | * 11 | * Example: 12 | * @code 13 | * ... 14 | * 15 | * S2LPTimerSetRxTimeoutMs(50.0); 16 | * 17 | * ... 18 | * 19 | * @endcode 20 | * 21 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 22 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 23 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 24 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 25 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 26 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 27 | * 28 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 29 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 30 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 31 | * 32 | *

© COPYRIGHT 2017 STMicroelectronics

33 | */ 34 | 35 | 36 | /* Define to prevent recursive inclusion -------------------------------------*/ 37 | #ifndef __S2LP_TIMER_EX_H 38 | #define __S2LP_TIMER_EX_H 39 | 40 | 41 | /* Includes ------------------------------------------------------------------*/ 42 | 43 | #include "S2LP_Timer_ex.h" 44 | #include "S2LP_CORE_SPI.h" 45 | 46 | 47 | #ifdef __cplusplus 48 | extern "C" { 49 | #endif 50 | 51 | /** 52 | * @addtogroup S2LP_Libraries 53 | * @{ 54 | */ 55 | 56 | 57 | /** 58 | * @defgroup S2LP_Timer_ex Timer Wrapper 59 | * @brief Configuration and management of S2LP Timers using floating point. 60 | * @details See the file @ref S2LP_Timer.h for more details. 61 | * @{ 62 | */ 63 | 64 | 65 | /** 66 | * @defgroup Timer_ex_Exported_Types Timer Wrapper Exported Types 67 | * @{ 68 | */ 69 | 70 | 71 | 72 | 73 | /** 74 | * @defgroup Timer_ex_Exported_Functions Timer Wrapper Exported Functions 75 | * @{ 76 | */ 77 | void S2LPTimerSetRxTimerMs(float fDesiredMsec); 78 | void S2LPTimerGetRxTimer(float* pfTimeoutMsec, uint8_t* pcCounter , uint8_t* pcPrescaler); 79 | void S2LPTimerSetWakeUpTimerMs(float fDesiredMsec); 80 | void S2LPTimerSetWakeUpTimerReloadMs(float fDesiredMsec); 81 | void S2LPTimerGetWakeUpTimer(float* pfWakeUpMsec, uint8_t* pcCounter , uint8_t* pcPrescaler, uint8_t* pcMulti); 82 | void S2LPTimerGetWakeUpTimerReload(float* pfWakeUpReloadMsec, uint8_t* pcCounter, uint8_t* pcPrescaler, uint8_t* pcMulti); 83 | void S2LPTimerComputeWakeUpValues(float fDesiredMsec , uint8_t* pcCounter , uint8_t* pcPrescaler); 84 | 85 | /** 86 | * @} 87 | */ 88 | 89 | /** 90 | * @} 91 | */ 92 | 93 | 94 | /** 95 | * @} 96 | */ 97 | 98 | #ifdef __cplusplus 99 | } 100 | #endif 101 | 102 | #endif 103 | 104 | /******************* (C) COPYRIGHT 2017 STMicroelectronics *****END OF FILE****/ 105 | 106 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Library/inc/uint64.h: -------------------------------------------------------------------------------- 1 | // 2 | // A few 64-bit integer functions that use only 32-bit arithmetic 3 | // 4 | // If you are porting to a small PIC, maybe leave out any 5 | // calls to print functions and run through the debugger. 6 | // 7 | // This project was compiled on a PC with GNU gcc 8 | // 9 | // davekw7x 10 | // 11 | 12 | #ifndef UINT64_H__ 13 | #define UINT64_H__ 14 | 15 | #include 16 | 17 | typedef struct uint64 { 18 | uint32_t low; 19 | uint32_t high; 20 | } uint64; 21 | 22 | int uint64_is_zero(uint64 ); 23 | uint64 and_uint64(uint64 *x, uint64 *y); 24 | uint64 make_uint64(uint32_t); 25 | 26 | void set_zero_uint64(uint64 *); 27 | 28 | uint64 multiply_uint32x32(uint32_t *multiplicand, uint32_t *multiplier); 29 | uint64 shift_left_one_uint64(uint64*); 30 | uint64 shift_left_uint64(uint64*, uint8_t); 31 | uint64 shift_right_one_uint64(uint64*); 32 | 33 | uint64 add_uint64(uint64* augend, uint64* addend); 34 | uint64 subtract_uint64(uint64 *minuend, uint64 *subtrahend); 35 | uint64 divide_uint64_by_uint32(uint64 *numerator, uint32_t *denominator, uint32_t *remainder); 36 | int compare_uint64(uint64 *first, uint64 *second); 37 | void print_uint64(uint64 *x); 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Library/src/S2LP_Commands.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_Commands.c 3 | * @author ST Microelectronics 4 | * @version 1.3.0 5 | * @date June, 2019 6 | * @brief Management of S2-LP Commands. 7 | * @details 8 | * 9 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 10 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 11 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 12 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 13 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 14 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 15 | * 16 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 17 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 18 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 19 | * 20 | *

© COPYRIGHT 2019 STMicroelectronics

21 | */ 22 | 23 | 24 | /* Includes ------------------------------------------------------------------*/ 25 | #include "S2LP_Commands.h" 26 | 27 | 28 | 29 | /** 30 | * @addtogroup S2LP_Libraries 31 | * @{ 32 | */ 33 | 34 | 35 | /** 36 | * @addtogroup S2LP_Commands 37 | * @{ 38 | */ 39 | 40 | 41 | /** 42 | * @defgroup Commands_Private_TypesDefinitions Commands Private TypesDefinitions 43 | * @{ 44 | */ 45 | 46 | /** 47 | *@} 48 | */ 49 | 50 | 51 | /** 52 | * @defgroup Commands_Private_Defines Commands Private Defines 53 | * @{ 54 | */ 55 | 56 | /** 57 | *@} 58 | */ 59 | 60 | /** 61 | * @defgroup Commands_Private_Macros Commands Private Macros 62 | * @{ 63 | */ 64 | 65 | #define IS_S2LP_CMD(CMD) (CMD == CMD_TX || \ 66 | CMD == CMD_RX || \ 67 | CMD == CMD_READY || \ 68 | CMD == CMD_STANDBY || \ 69 | CMD == CMD_SLEEP || \ 70 | CMD == CMD_LOCKRX || \ 71 | CMD == CMD_LOCKTX || \ 72 | CMD == CMD_SABORT || \ 73 | CMD == CMD_LDC_RELOAD || \ 74 | CMD == CMD_SEQUENCE_UPDATE || \ 75 | CMD == CMD_SRES || \ 76 | CMD == CMD_FLUSHRXFIFO || \ 77 | CMD == CMD_FLUSHTXFIFO \ 78 | ) 79 | 80 | /** 81 | *@} 82 | */ 83 | 84 | 85 | /** 86 | * @defgroup Commands_Private_Variables Commands Private Variables 87 | * @{ 88 | */ 89 | 90 | /** 91 | *@} 92 | */ 93 | 94 | 95 | 96 | /** 97 | * @defgroup Commands_Private_FunctionPrototypes Commands Private Function Prototypes 98 | * @{ 99 | */ 100 | 101 | /** 102 | *@} 103 | */ 104 | 105 | 106 | /** 107 | * @defgroup Commands_Private_Functions Commands Private Functions 108 | * @{ 109 | */ 110 | 111 | /** 112 | * @brief Send a specific command to S2LP. 113 | * @param xCommandCode code of the command to send. 114 | This parameter can be any value of @ref S2LPCmd. 115 | * @retval None. 116 | */ 117 | void S2LPCmdStrobeCommand(S2LPCmd xCommandCode) 118 | { 119 | /* Check the parameters */ 120 | s_assert_param(IS_S2LP_CMD(xCommandCode)); 121 | 122 | *(uint8_t*)&g_xStatus = S2LPSpiCommandStrobes((uint8_t) xCommandCode); 123 | } 124 | 125 | 126 | /** 127 | *@} 128 | */ 129 | 130 | 131 | /** 132 | *@} 133 | */ 134 | 135 | 136 | /** 137 | *@} 138 | */ 139 | 140 | 141 | 142 | 143 | /******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/ 144 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Library/src/S2LP_Timer_ex.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_Timer_ex.c 3 | * @author LowPower RF BU - AMG 4 | * @version 1.2.0 5 | * @date October 31, 2016 6 | * @brief This file provides functions to manage S2-LP debug. 7 | * @details 8 | * 9 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 10 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 11 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 12 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 13 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 14 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 15 | * 16 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 17 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 18 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 19 | * 20 | *

© COPYRIGHT 2019 STMicroelectronics

21 | * 22 | */ 23 | 24 | /* Includes ------------------------------------------------------------------*/ 25 | #include "S2LP_Timer.h" 26 | #include "S2LP_Timer_ex.h" 27 | #include "S2LP_Regs.h" 28 | 29 | 30 | /** @addtogroup S2LP_Libraries 31 | * @{ 32 | */ 33 | 34 | 35 | /** @addtogroup S2LP_Types 36 | * @{ 37 | */ 38 | 39 | /** @defgroup Types_Private_Functions Types Private Functions 40 | * @{ 41 | */ 42 | 43 | 44 | void S2LPTimerSetRxTimerMs(float fDesiredMsec) 45 | { 46 | S2LPTimerSetRxTimerUs((uint32_t)(fDesiredMsec*1000)); 47 | } 48 | 49 | void S2LPTimerGetRxTimer(float* pfTimeoutMsec, uint8_t* pcCounter , uint8_t* pcPrescaler) 50 | { 51 | uint32_t timeoutUsec; 52 | 53 | S2LPTimerGetRxTimerUs(&timeoutUsec, pcCounter , pcPrescaler); 54 | 55 | (*pfTimeoutMsec)=((float)timeoutUsec)/1000; 56 | } 57 | 58 | void S2LPTimerSetWakeUpTimerMs(float fDesiredMsec) 59 | { 60 | S2LPTimerSetWakeUpTimerUs((uint32_t)(fDesiredMsec*1000)); 61 | } 62 | 63 | void S2LPTimerSetWakeUpTimerReloadMs(float fDesiredMsec) 64 | { 65 | S2LPTimerSetWakeUpTimerReloadUs((uint32_t)(fDesiredMsec*1000)); 66 | } 67 | 68 | void S2LPTimerGetWakeUpTimer(float* pfWakeUpMsec, uint8_t* pcCounter , uint8_t* pcPrescaler, uint8_t* pcMulti) 69 | { 70 | uint32_t timeoutUsec; 71 | 72 | S2LPTimerGetWakeUpTimerUs(&timeoutUsec, pcCounter , pcPrescaler, pcMulti); 73 | 74 | (*pfWakeUpMsec)=((float)timeoutUsec)/1000; 75 | } 76 | 77 | void S2LPTimerGetWakeUpTimerReload(float* pfWakeUpReloadMsec, uint8_t* pcCounter, uint8_t* pcPrescaler, uint8_t* pcMulti) 78 | { 79 | uint32_t timeoutUsec; 80 | 81 | S2LPTimerGetWakeUpTimerReloadUs(&timeoutUsec, pcCounter , pcPrescaler, pcMulti); 82 | 83 | (*pfWakeUpReloadMsec)=((float)timeoutUsec)/1000; 84 | } 85 | 86 | 87 | 88 | /** 89 | * @} 90 | */ 91 | 92 | 93 | 94 | /** 95 | * @} 96 | */ 97 | 98 | 99 | 100 | /** 101 | * @} 102 | */ 103 | 104 | 105 | 106 | /******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/ 107 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Middleware/inc/S2LP_AUX_FEM.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_FEM.h 3 | * @author AMG - RF Application team 4 | * @version 1.0.0 5 | * @date March, 2020 6 | * @brief FEM (Front end module, aka power amplifier) management 7 | * @details This module exports API to manage a FEM possibly present on an 8 | * S2-LP board. The API is intended to provided users hooks to configure the 9 | * FEM in his own board. 10 | * 11 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 12 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 13 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 14 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 15 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 16 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 17 | * 18 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 19 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 20 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 21 | * 22 | *

© COPYRIGHT 2020 STMicroelectronics

23 | */ 24 | 25 | /* Define to prevent recursive inclusion -------------------------------------*/ 26 | #ifndef __S2LP_FEM_H__ 27 | #define __S2LP_FEM_H__ 28 | 29 | #include "cube_hal.h" 30 | 31 | #ifdef __cplusplus 32 | "C" { 33 | #endif 34 | 35 | /** 36 | * @addtogroup S2LP_AUX_FEM_AUTO 37 | * @{ 38 | */ 39 | 40 | /** 41 | * @defgroup S2LP_AUX_FEM_AUTO_TYPES S2LP AUX FEM AUTO Exported Types 42 | * @{ 43 | */ 44 | 45 | 46 | /** 47 | * @brief Opcode for FEM management 48 | */ 49 | #define POWER_DBM 12 50 | 51 | /*Structure to manage External PA */ 52 | typedef enum 53 | { 54 | FEM_SHUTDOWN = 0x00, 55 | FEM_TX_BYPASS = 0x01, 56 | FEM_TX = 0x02, 57 | FEM_RX = 0x03, 58 | } FEM_OperationType; 59 | 60 | /*Structure to describe gain parametr */ 61 | typedef enum 62 | { 63 | FEM_GAIN_TX = 0x00, 64 | FEM_GAIN_RX = 0x01, 65 | } FEM_GainType; 66 | 67 | /** 68 | * @} 69 | */ 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | /** 76 | * @brief Initializes the power amplfier control lines. 77 | * @param None 78 | * @retval None 79 | */ 80 | void FEM_Init(void); 81 | 82 | /** 83 | * @brief Perform operation on FEM, usually controlling the configuration lines via GPIO in the uC. 84 | * If FEM is under control of S2-LP GPIOs, possibly this function can be implemented as dummy function. 85 | * @param operation: operation requested, if FEM is not present this is implemented by dummy function 86 | * @retval None 87 | */ 88 | void FEM_Operation(FEM_OperationType operation); 89 | 90 | /** 91 | * @brief Return gain for the FEM. 92 | * @retval FEM_GainType 93 | */ 94 | FEM_GainType FEM_GetGain(void); 95 | 96 | /** 97 | * @brief Set gain value for the FEM. 98 | * @param direction: operation requested, if FEM is not present this is implemented by dummy function 99 | * @retval None 100 | */ 101 | void FEM_SetGain(FEM_GainType direction); 102 | 103 | /* 104 | * @brief Set the FEM in Bypass (if bypass mode is available) 105 | * This function configures the FEM in Bypass Mode, 106 | * whereas the Bypass mode is available 107 | * @param the Bypass flag (1 means "set Bypass") 108 | * @retval None 109 | */ 110 | void FEM_SetBypass(uint8_t bypass_mode); 111 | 112 | /* 113 | * @brief Get the FEM Bypass Mode 114 | * This function returns 1 if the FEM is in Bypass Mode 115 | * @param None 116 | * @retval the Bypass state 117 | */ 118 | uint8_t FEM_GetBypass(void); 119 | 120 | #ifdef __cplusplus 121 | } 122 | #endif 123 | 124 | 125 | #endif 126 | /******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/ 127 | 128 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Middleware/inc/S2LP_AUX_TCXO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_TCXO.h 3 | * @author AMG - RF Application team 4 | * @version 1.0.0 5 | * @date March, 2020 6 | * @brief TCXO (Temperature controlled crystal oscillator) management 7 | * @details This module exports API to manage a TCXO possibly present on an 8 | * S2-LP board. 9 | * 10 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 11 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 12 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 13 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 14 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 15 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 16 | * 17 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 18 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 19 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 20 | * 21 | *

© COPYRIGHT 2020 STMicroelectronics

22 | */ 23 | 24 | /* Define to prevent recursive inclusion -------------------------------------*/ 25 | #ifndef __S2LP_TCXO_H__ 26 | #define __S2LP_TCXO_H__ 27 | 28 | /* Includes ------------------------------------------------------------------*/ 29 | 30 | #ifdef __cplusplus 31 | "C" { 32 | #endif 33 | 34 | /** 35 | * @addtogroup S2LP_AUX_TCXO_AUTO 36 | * @{ 37 | */ 38 | 39 | 40 | /** 41 | * @defgroup S2LP_AUX_TCXO_AUTO_TYPES S2LP AUX TCXO Auto exported types 42 | * @{ 43 | */ 44 | 45 | 46 | 47 | /** 48 | * @brief Opcode for TCXO management 49 | */ 50 | 51 | typedef enum 52 | { 53 | TCXO_OFF = 0x00, 54 | TCXO_ON = 0x01, 55 | } TCXO_OperationType; 56 | 57 | /** 58 | * @brief Initializes the TCXO control lines. If not present is implemented by dummy function. 59 | * @param None 60 | * @retval None 61 | */ 62 | void TCXO_Init(void); 63 | 64 | /** 65 | * @brief Turn on/off TCXO. 66 | * @param operation: operation requested, if TCXO is not present this is implemented by dummy function 67 | * @retval None 68 | */ 69 | void TCXO_Operation(TCXO_OperationType operation); 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | 76 | /** 77 | * @} 78 | */ 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | #endif 86 | /******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/ 87 | 88 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Middleware/inc/S2LP_AUX_UTILS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_EVAL_Utils.h 3 | * @author VMA division - AMS 4 | * @version 4.0.1 5 | * @date March, 2020 6 | * @brief Identification and utils functions for S2LP DK. 7 | * @details 8 | * 9 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 10 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 11 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 12 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 13 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 14 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 15 | * 16 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 17 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 18 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 19 | * 20 | *

© COPYRIGHT 2020 STMicroelectronics

21 | */ 22 | 23 | #ifndef __S2LP_AUX_UTILS_H 24 | #define __S2LP_AUX_UTILS_H 25 | 26 | /* Includes ------------------------------------------------------------------*/ 27 | #include "S2LP_AUX_EEPROM.h" 28 | 29 | /** 30 | * @addtogroup S2LP_AUX_UTILS 31 | * @{ 32 | */ 33 | 34 | /** 35 | * @defgroup SDK_S2LP_MANAGEMENT_FUNCTIONS SDK S2LP Management Functions 36 | * @{ 37 | */ 38 | 39 | /** 40 | * @defgroup S2LP_AUX_UTILS_TYPES S2LP AUX UTILS exported types 41 | * @{ 42 | */ 43 | 44 | typedef enum 45 | { 46 | RANGE_EXT_NONE = 0, 47 | RANGE_EXT_SKY_66100_11 = 1, 48 | RANGE_EXT_SKYWORKS_SE2435L = 2, 49 | RANGE_EXT_SKYWORKS_SKY66420 = 3, 50 | RANGE_EXT_CUSTOM = 4 51 | } RangeExtType; 52 | 53 | typedef enum 54 | { 55 | S2LP_CUT_2_1 = 0x91, 56 | S2LP_CUT_2_0 = 0x81, 57 | S2LP_CUT_3_0 = 0xC1, 58 | } S2LPCutType; 59 | 60 | /** 61 | * @} 62 | */ 63 | 64 | /** 65 | * @} 66 | */ 67 | 68 | 69 | S2LPCutType S2LPManagementGetCut(void); 70 | uint8_t S2LPManagementGetBand(void); 71 | void S2LPManagementSetBand(uint8_t band); 72 | RangeExtType S2LPManagementGetRangeExtender(void); 73 | void S2LPManagementSetRangeExtender(RangeExtType value); 74 | uint32_t S2LPManagementComputeXtalFrequency(void); 75 | void S2LPManagementIdentificationRFBoard(void); 76 | uint8_t S2LPManagementGetTcxo(void); 77 | uint32_t S2LPManagementGetXtalFrequency(void); 78 | uint32_t S2LPGetFrequencyBand(void); 79 | void S2LPRadioSetXtalFrequency(uint32_t xtal); 80 | uint8_t EepromIdentification(void); 81 | uint32_t S2LPManagementComputeRcoFrequency(void); 82 | void S2LPManagementRcoCalibration(void); 83 | uint32_t S2LPManagementComputeRcoFrequency(void); 84 | uint32_t S2LPGetSPIPrescaler(void); 85 | /** 86 | * @} 87 | */ 88 | 89 | 90 | 91 | /** 92 | * @} 93 | */ 94 | 95 | 96 | /** 97 | * @} 98 | */ 99 | 100 | /** 101 | * @} 102 | */ 103 | 104 | #endif /*__S2LP_AUX_UTILS_H */ 105 | 106 | /******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/ 107 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Middleware/inc/S2LP_CORE_SPI.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_CORE_SPI.h 3 | * @author LowPower RF BU - AMG 4 | * @version 2.0.0 5 | * @date March, 2020 6 | * @brief Header file for the SPI of S2-LP interface. 7 | * @details 8 | * 9 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 10 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 11 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 12 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 13 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 14 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 15 | * 16 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 17 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 18 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 19 | * 20 | *

© COPYRIGHT 2020 STMicroelectronics

21 | */ 22 | 23 | 24 | /* Includes ------------------------------------------------------------------*/ 25 | #include 26 | 27 | /** 28 | * @addtogroup S2LP_CORE_SPI 29 | * @{ 30 | */ 31 | 32 | /** @defgroup S2LP_CORE_SPI_Functions S2LP CORE SPI exported functions 33 | * @{ 34 | */ 35 | 36 | /** 37 | * @brief Configures SPI interface 38 | * @param None. 39 | * @retval None. 40 | */ 41 | void S2LPSpiInit(void); 42 | 43 | /** 44 | * @brief Deinitializes the SPI 45 | * @param None 46 | * @retval None 47 | */ 48 | void SdkEvalSpiDeinit(void); 49 | 50 | void S2LPSpiRaw(uint8_t n_bytes, uint8_t* in_buffer, uint8_t* out_buffer, uint8_t can_return_bef_tx); 51 | 52 | /** 53 | * @brief SPI function to read registers from a slave device 54 | * @param RegisterAddr: register address 55 | * @param NumByteToRead: number of byte to read 56 | * @param pBuffer: buffer to retrieve data from a slave 57 | * @retval ErrorStatus: error status @ref ErrorStatus 58 | * This parameter can be: SUCCESS or ERROR. 59 | */ 60 | uint16_t S2LPSpiReadRegisters(uint8_t RegisterAddr, uint8_t NumByteToRead, uint8_t* pBuffer); 61 | 62 | /** 63 | * @brief SPI function to write registers of a slave device 64 | * @param RegisterAddr: register address 65 | * @param NumByteToRead: number of byte to write 66 | * @param pBuffer: buffer contains data to write 67 | * @retval ErrorStatus: error status @ref ErrorStatus 68 | * This parameter can be: SUCCESS or ERROR. 69 | */ 70 | uint16_t S2LPSpiWriteRegisters(uint8_t RegisterAddr, uint8_t NumByteToRead, uint8_t* pBuffer); 71 | 72 | uint16_t S2LPSpiCommandStrobes(uint8_t command); 73 | 74 | uint16_t S2LPSpiReadFifo(uint8_t n_bytes, uint8_t* buffer); 75 | 76 | uint16_t S2LPSpiWriteFifo(uint8_t n_bytes, uint8_t* buffer); 77 | 78 | void S2LPSetSpiInUse(uint8_t state); 79 | 80 | uint8_t S2LPGetSpiInUse(void); 81 | /** 82 | * @} 83 | */ 84 | 85 | /** 86 | * @} 87 | */ 88 | 89 | /******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/ 90 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Middleware/inc/cube_hal.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file cube_hal.h 4 | * @author CL 5 | * @version V1.0.0 6 | * @date 04-March-2019 7 | * @brief 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© COPYRIGHT(c) 2014 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 | #ifndef _CUBE_HAL_H_ 39 | #define _CUBE_HAL_H_ 40 | 41 | #if !defined(USE_STM32L1XX_NUCLEO) && !defined(USE_STM32F4XX_NUCLEO) && !defined(USE_STM32L0XX_NUCLEO) 42 | #define USE_STM32L1XX_NUCLEO 43 | #endif 44 | 45 | /* Includes ------------------------------------------------------------------*/ 46 | #ifdef USE_STM32F4XX_NUCLEO 47 | #include "stm32f4xx_hal.h" 48 | #include "stm32f4xx.h" 49 | #include "stm32xx_it.h" 50 | #endif 51 | 52 | #ifdef USE_STM32L1XX_NUCLEO 53 | #include "stm32l1xx_hal.h" 54 | #include "stm32l1xx.h" 55 | #include "stm32l1xx_it.h" 56 | #endif 57 | 58 | #ifdef USE_STM32L0XX_NUCLEO 59 | #include "stm32l0xx_hal.h" 60 | #include "stm32l0xx.h" 61 | #include "stm32l0xx_it.h" 62 | #endif 63 | 64 | 65 | void SystemClock_Config(void); 66 | 67 | #endif //_CUBE_HAL_H_ 68 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/S2LP_Middleware/src/TCXO/S2LP_AUX_TCXO_AUTO.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file S2LP_TCXO_AUTO.c 3 | * @author LowPower RF BU - AMG 4 | * @version V1.0.0 5 | * @date March, 2020 6 | * @brief This file provides an implementation of TCXO function when 7 | * TCXO is autodetected by the EEPROM in ST Evaluation kits. Users are normally 8 | * not interested in this file since it is useful only for ST Eval kit. 9 | * Please have a look at S2LP_TCXO_YES.c for a template file for users. 10 | * @details 11 | * 12 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 13 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 14 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 15 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 16 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 17 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 18 | * 19 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 20 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 21 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 22 | * 23 | *

© COPYRIGHT 2020 STMicroelectronics

24 | */ 25 | 26 | /* Includes ------------------------------------------------------------------*/ 27 | #include "S2LP_Middleware_Config.h" 28 | #include "S2LP_AUX_TCXO.h" 29 | 30 | /** @addtogroup S2LP_MIDDLEWARE_STM32 S2LP Middleware - STM32 31 | * @{ 32 | */ 33 | 34 | /** @defgroup S2LP_AUX_TCXO_AUTO S2LP AUX TCXO AUTO 35 | * @brief S2-LP TCXO handling module. 36 | * This module exports all the main operations to deal with TCXO. 37 | * @{ 38 | */ 39 | 40 | /** @defgroup S2LP_AUX_TCXO_AUTO_Functions S2LP AUX TCXO Auto exported functions 41 | * @{ 42 | */ 43 | 44 | 45 | /** 46 | * @brief TCXO initialization function. 47 | * This function automatically sets the TCXO according to the information stored in the device EEPROM. 48 | * This function can be redefined for special needs. 49 | * @param None 50 | * @retval None 51 | */ 52 | __weak void TCXO_Init() 53 | { 54 | /* Not implemented: at the moment there isn't any eval kit with TCXO */ 55 | } 56 | 57 | 58 | /** 59 | * @brief TCXO Operation function. 60 | * This function configures the TCXO according to the desired status. 61 | * This function can be redefined for special needs. 62 | * @param operation Specifies the operation to perform. 63 | * This parameter can be one of following parameters: 64 | * @arg TCXO_ON: Turns on TCXO 65 | * @arg TCXO_OFF: Turns off TCXO 66 | * @retval None 67 | */ 68 | __weak void TCXO_Operation(TCXO_OperationType operation) 69 | { 70 | /* Not implemented: at the moment there isn't any eval kit with TCXO */ 71 | } 72 | 73 | /** 74 | * @} 75 | */ 76 | 77 | /** 78 | * @} 79 | */ 80 | 81 | /** 82 | * @} 83 | */ 84 | 85 | /******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/ 86 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Inc/stm32_assert_template.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32_assert.h 4 | * @author MCD Application Team 5 | * @brief STM32 assert template file. 6 | * This file should be copied to the application folder and renamed 7 | * to stm32_assert.h. 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | *

© Copyright (c) 2016 STMicroelectronics. 12 | * All rights reserved.

13 | * 14 | * This software component is licensed by ST under BSD 3-Clause license, 15 | * the "License"; You may not use this file except in compliance with the 16 | * License. You may obtain a copy of the License at: 17 | * opensource.org/licenses/BSD-3-Clause 18 | * 19 | ****************************************************************************** 20 | */ 21 | 22 | /* Define to prevent recursive inclusion -------------------------------------*/ 23 | #ifndef __STM32_ASSERT_H 24 | #define __STM32_ASSERT_H 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | /* Exported types ------------------------------------------------------------*/ 31 | /* Exported constants --------------------------------------------------------*/ 32 | /* Includes ------------------------------------------------------------------*/ 33 | /* Exported macro ------------------------------------------------------------*/ 34 | #ifdef USE_FULL_ASSERT 35 | /** 36 | * @brief The assert_param macro is used for function's parameters check. 37 | * @param expr If expr is false, it calls assert_failed function 38 | * which reports the name of the source file and the source 39 | * line number of the call that failed. 40 | * If expr is true, it returns no value. 41 | * @retval None 42 | */ 43 | #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) 44 | /* Exported functions ------------------------------------------------------- */ 45 | void assert_failed(uint8_t* file, uint32_t line); 46 | #else 47 | #define assert_param(expr) ((void)0U) 48 | #endif /* USE_FULL_ASSERT */ 49 | 50 | #ifdef __cplusplus 51 | } 52 | #endif 53 | 54 | #endif /* __STM32_ASSERT_H */ 55 | 56 | 57 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 58 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_comp_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_comp_ex.h 4 | * @author MCD Application Team 5 | * @brief Header file of COMP HAL Extended module. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright(c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __STM32L0xx_HAL_COMP_EX_H 22 | #define __STM32L0xx_HAL_COMP_EX_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | #if !defined(STM32L010xB) && !defined (STM32L010x8) && !defined (STM32L010x6) && !defined (STM32L010x4) 29 | /* Includes ------------------------------------------------------------------*/ 30 | #include "stm32l0xx_hal_def.h" 31 | 32 | /** @addtogroup STM32L0xx_HAL_Driver 33 | * @{ 34 | */ 35 | 36 | /** @defgroup COMPEx COMPEx 37 | * @{ 38 | */ 39 | 40 | /* Exported functions --------------------------------------------------------*/ 41 | /** @defgroup COMPEx_Exported_Functions COMPEx Exported Functions 42 | * @{ 43 | */ 44 | 45 | /** @defgroup COMPEx_Exported_Functions_Group1 Extended COMP VREFINT setup functions 46 | * @{ 47 | */ 48 | /* COMP specific functions to manage VREFINT *************************************/ 49 | void HAL_COMPEx_EnableVREFINT(void); 50 | void HAL_COMPEx_DisableVREFINT(void); 51 | 52 | /** 53 | * @} 54 | */ 55 | 56 | /** 57 | * @} 58 | */ 59 | 60 | /** 61 | * @} 62 | */ 63 | 64 | /** 65 | * @} 66 | */ 67 | #endif /* #if !defined(STM32L010xB) && !defined (STM32L010x8) && !defined (STM32L010x6) && !defined (STM32L010x4) */ 68 | 69 | #ifdef __cplusplus 70 | } 71 | #endif 72 | 73 | #endif /* __STM32L0xx_HAL_COMP_EX_H */ 74 | 75 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 76 | 77 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_cryp_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_cryp_ex.h 4 | * @author MCD Application Team 5 | * @brief Header file of CRYPEx HAL module. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright(c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __STM32L0xx_HAL_CRYP_EX_H 22 | #define __STM32L0xx_HAL_CRYP_EX_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | #if defined (STM32L021xx) || defined (STM32L041xx) || defined (STM32L061xx) || defined (STM32L062xx) || defined (STM32L063xx) || (STM32L081xx) || defined (STM32L082xx) || defined (STM32L083xx) 29 | 30 | /* Includes ------------------------------------------------------------------*/ 31 | #include "stm32l0xx_hal_def.h" 32 | 33 | /** @addtogroup STM32L0xx_HAL_Driver 34 | * @{ 35 | */ 36 | 37 | /** @defgroup CRYPEx CRYPEx 38 | * @{ 39 | */ 40 | 41 | /* Exported types ------------------------------------------------------------*/ 42 | /* Exported constants --------------------------------------------------------*/ 43 | /* Exported functions --------------------------------------------------------*/ 44 | 45 | /** @defgroup CRYPEx_Exported_Functions CRYPEx Exported Functions 46 | * @{ 47 | */ 48 | 49 | /** @defgroup CRYPEx_Exported_Functions_Group1 Extended features functions 50 | * @{ 51 | */ 52 | 53 | /* CallBack functions ********************************************************/ 54 | void HAL_CRYPEx_ComputationCpltCallback(CRYP_HandleTypeDef *hcryp); 55 | 56 | /** 57 | * @} 58 | */ 59 | 60 | /** 61 | * @} 62 | */ 63 | 64 | /** 65 | * @} 66 | */ 67 | 68 | /** 69 | * @} 70 | */ 71 | 72 | #endif /* STM32L021xx || STM32L041xx || STM32L061xx || STM32L062xx || STM32L063xx || STM32L081xx || STM32L082xx || STM32L083xx */ 73 | 74 | #ifdef __cplusplus 75 | } 76 | #endif 77 | 78 | #endif /* __STM32L0xx_HAL_CRYP_EX_H */ 79 | 80 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 81 | 82 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_flash_ramfunc.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_flash_ramfunc.h 4 | * @author MCD Application Team 5 | * @brief Header file of FLASH RAMFUNC driver. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __STM32L0xx_FLASH_RAMFUNC_H 22 | #define __STM32L0xx_FLASH_RAMFUNC_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | /* Includes ------------------------------------------------------------------*/ 29 | #include "stm32l0xx_hal_def.h" 30 | 31 | /** @addtogroup STM32L0xx_HAL_Driver 32 | * @{ 33 | */ 34 | 35 | /** @addtogroup FLASH_RAMFUNC 36 | * @{ 37 | */ 38 | 39 | /* Exported types ------------------------------------------------------------*/ 40 | 41 | 42 | /* Exported functions --------------------------------------------------------*/ 43 | 44 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions 45 | * @{ 46 | */ 47 | 48 | /* 49 | * @brief FLASH memory functions that should be executed from internal SRAM. 50 | * These functions are defined inside the "stm32l0xx_hal_flash_ramfunc.c" 51 | * file. 52 | */ 53 | 54 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group1 55 | * @{ 56 | */ 57 | 58 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EnableRunPowerDown(void); 59 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DisableRunPowerDown(void); 60 | 61 | /** 62 | * @} 63 | */ 64 | 65 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group2 66 | * @{ 67 | */ 68 | 69 | #if defined(FLASH_PECR_PARALLBANK) 70 | 71 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EraseParallelPage(uint32_t Page_Address1, uint32_t Page_Address2); 72 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_ProgramParallelHalfPage(uint32_t Address1, uint32_t* pBuffer1, uint32_t Address2, uint32_t* pBuffer2); 73 | 74 | #endif /* FLASH_PECR_PARALLBANK */ 75 | 76 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_HalfPageProgram(uint32_t Address, uint32_t* pBuffer); 77 | 78 | /** 79 | * @} 80 | */ 81 | 82 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group3 83 | * @{ 84 | */ 85 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_GetError(uint32_t *Error); 86 | /** 87 | * @} 88 | */ 89 | 90 | /** 91 | * @} 92 | */ 93 | 94 | /** 95 | * @} 96 | */ 97 | 98 | /** 99 | * @} 100 | */ 101 | 102 | #ifdef __cplusplus 103 | } 104 | #endif 105 | 106 | #endif /* __STM32L0xx_FLASH_RAMFUNC_H */ 107 | 108 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 109 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_pcd_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_pcd_ex.h 4 | * @author MCD Application Team 5 | * @brief Header file of PCD HAL Extension module. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef STM32L0xx_HAL_PCD_EX_H 22 | #define STM32L0xx_HAL_PCD_EX_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | /* Includes ------------------------------------------------------------------*/ 29 | #include "stm32l0xx_hal_def.h" 30 | 31 | #if defined (USB) 32 | /** @addtogroup STM32L0xx_HAL_Driver 33 | * @{ 34 | */ 35 | 36 | /** @addtogroup PCDEx 37 | * @{ 38 | */ 39 | /* Exported types ------------------------------------------------------------*/ 40 | /* Exported constants --------------------------------------------------------*/ 41 | /* Exported macros -----------------------------------------------------------*/ 42 | /* Exported functions --------------------------------------------------------*/ 43 | /** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions 44 | * @{ 45 | */ 46 | /** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions 47 | * @{ 48 | */ 49 | 50 | 51 | 52 | HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd, 53 | uint16_t ep_addr, 54 | uint16_t ep_kind, 55 | uint32_t pmaadress); 56 | 57 | 58 | HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd); 59 | HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd); 60 | 61 | 62 | HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd); 63 | HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd); 64 | void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd); 65 | 66 | void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); 67 | void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); 68 | 69 | /** 70 | * @} 71 | */ 72 | 73 | /** 74 | * @} 75 | */ 76 | 77 | /** 78 | * @} 79 | */ 80 | 81 | /** 82 | * @} 83 | */ 84 | #endif /* defined (USB) */ 85 | 86 | #ifdef __cplusplus 87 | } 88 | #endif 89 | 90 | 91 | #endif /* STM32L0xx_HAL_PCD_EX_H */ 92 | 93 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 94 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_pwr_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_pwr_ex.h 4 | * @author MCD Application Team 5 | * @brief Header file of PWR HAL Extension module. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright(c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __STM32L0xx_HAL_PWR_EX_H 22 | #define __STM32L0xx_HAL_PWR_EX_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | /* Includes ------------------------------------------------------------------*/ 29 | #include "stm32l0xx_hal_def.h" 30 | 31 | /** @addtogroup STM32L0xx_HAL_Driver 32 | * @{ 33 | */ 34 | 35 | /** @defgroup PWREx PWREx 36 | * @{ 37 | */ 38 | 39 | /** @defgroup PWREx_Exported_Macros PWREx Exported Macros 40 | * @{ 41 | */ 42 | 43 | /** @brief Macros to enable the Deep-sleep mode with Flash memory kept off. 44 | * @note When entering low power mode (stop or standby only), if DS_EE_KOFF and RUN_PD of 45 | * FLASH_ACR register are both set , the Flash memory will not be woken up 46 | * when exiting from deep-sleep mode. 47 | */ 48 | #define __HAL_PWR_FLASHWAKEUP_ENABLE() CLEAR_BIT(PWR->CR, PWR_CR_DSEEKOFF) 49 | 50 | /** @brief Macros to disable the Deep-sleep mode with Flash memory kept off. 51 | * @note When entering low power mode (stop or standby only), if DS_EE_KOFF and RUN_PD of 52 | * FLASH_ACR register are both set , the Flash memory will not be woken up 53 | * when exiting from deep-sleep mode. 54 | */ 55 | #define __HAL_PWR_FLASHWAKEUP_DISABLE() SET_BIT(PWR->CR, PWR_CR_DSEEKOFF) 56 | /** 57 | * @} 58 | */ 59 | 60 | /** @defgroup PWREx_Exported_Functions PWREx Exported Functions 61 | * @{ 62 | */ 63 | uint32_t HAL_PWREx_GetVoltageRange(void); 64 | void HAL_PWREx_EnableFastWakeUp(void); 65 | void HAL_PWREx_DisableFastWakeUp(void); 66 | void HAL_PWREx_EnableUltraLowPower(void); 67 | void HAL_PWREx_DisableUltraLowPower(void); 68 | void HAL_PWREx_EnableLowPowerRunMode(void); 69 | HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void); 70 | /** 71 | * @} 72 | */ 73 | 74 | /* Define the private group ***********************************/ 75 | /**************************************************************/ 76 | /** @defgroup PWREx_Private PWREx Private 77 | * @{ 78 | */ 79 | /** 80 | * @} 81 | */ 82 | /**************************************************************/ 83 | 84 | /** 85 | * @} 86 | */ 87 | 88 | /** 89 | * @} 90 | */ 91 | 92 | #ifdef __cplusplus 93 | } 94 | #endif 95 | 96 | #endif /* __STM32L0xx_HAL_PWR_EX_H */ 97 | 98 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 99 | 100 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_cryp_ex.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_cryp_ex.c 4 | * @author MCD Application Team 5 | * @brief CRYPEx HAL module driver. 6 | * 7 | * This file provides firmware functions to manage the following 8 | * functionalities of the Cryptography (CRYP) extension peripheral: 9 | * + Computation completed callback. 10 | * 11 | ****************************************************************************** 12 | * @attention 13 | * 14 | *

© Copyright(c) 2016 STMicroelectronics. 15 | * All rights reserved.

16 | * 17 | * This software component is licensed by ST under BSD 3-Clause license, 18 | * the "License"; You may not use this file except in compliance with the 19 | * License. You may obtain a copy of the License at: 20 | * opensource.org/licenses/BSD-3-Clause 21 | * 22 | ****************************************************************************** 23 | */ 24 | 25 | #if defined (STM32L021xx) || defined (STM32L041xx) || defined (STM32L061xx) || defined (STM32L062xx) || defined (STM32L063xx) || defined (STM32L081xx) || defined (STM32L082xx) || defined (STM32L083xx) 26 | /* Includes ------------------------------------------------------------------*/ 27 | #include "stm32l0xx_hal.h" 28 | 29 | /** @addtogroup STM32L0xx_HAL_Driver 30 | * @{ 31 | */ 32 | #ifdef HAL_CRYP_MODULE_ENABLED 33 | 34 | 35 | /** @addtogroup CRYPEx 36 | * @brief CRYP HAL Extended module driver. 37 | * @{ 38 | */ 39 | 40 | 41 | /* Private typedef -----------------------------------------------------------*/ 42 | /* Private define ------------------------------------------------------------*/ 43 | /* Private macro -------------------------------------------------------------*/ 44 | /* Private variables ---------------------------------------------------------*/ 45 | /* Private function prototypes -----------------------------------------------*/ 46 | /* Private functions ---------------------------------------------------------*/ 47 | 48 | /** @addtogroup CRYPEx_Exported_Functions 49 | * @{ 50 | */ 51 | 52 | 53 | /** @addtogroup CRYPEx_Exported_Functions_Group1 54 | * @brief Extended features functions. 55 | * 56 | @verbatim 57 | =============================================================================== 58 | ##### Extended features functions ##### 59 | =============================================================================== 60 | [..] This section provides callback functions: 61 | (+) Computation completed. 62 | 63 | @endverbatim 64 | * @{ 65 | */ 66 | 67 | /** 68 | * @brief Computation completed callbacks. 69 | * @param hcryp pointer to a CRYP_HandleTypeDef structure that contains 70 | * the configuration information for CRYP module 71 | * @retval None 72 | */ 73 | __weak void HAL_CRYPEx_ComputationCpltCallback(CRYP_HandleTypeDef *hcryp) 74 | { 75 | /* Prevent unused argument(s) compilation warning */ 76 | UNUSED(hcryp); 77 | 78 | /* NOTE : This function Should not be modified, when the callback is needed, 79 | the HAL_CRYP_ComputationCpltCallback could be implemented in the user file 80 | */ 81 | } 82 | 83 | /** 84 | * @} 85 | */ 86 | 87 | 88 | /** 89 | * @} 90 | */ 91 | /** 92 | * @} 93 | */ 94 | 95 | #endif /* HAL_CRYP_MODULE_ENABLED */ 96 | 97 | /** 98 | * @} 99 | */ 100 | #endif /* STM32L021xx || STM32L041xx || STM32L061xx || STM32L062xx || STM32L063xx || STM32L081xx || STM32L082xx || STM32L083xx */ 101 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 102 | 103 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_msp_template.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_hal_msp_template.c 4 | * @author MCD Application Team 5 | * @brief HAL MSP module. 6 | * This file template is located in the HAL folder and should be copied 7 | * to the user folder. 8 | * 9 | @verbatim 10 | =============================================================================== 11 | ##### How to use this driver ##### 12 | =============================================================================== 13 | [..] 14 | This file is eventually modified by the user. 15 | 16 | @endverbatim 17 | ****************************************************************************** 18 | * @attention 19 | * 20 | *

© Copyright (c) 2016 STMicroelectronics. 21 | * All rights reserved.

22 | * 23 | * This software component is licensed by ST under BSD 3-Clause license, 24 | * the "License"; You may not use this file except in compliance with the 25 | * License. You may obtain a copy of the License at: 26 | * opensource.org/licenses/BSD-3-Clause 27 | * 28 | ****************************************************************************** 29 | */ 30 | 31 | /* Includes ------------------------------------------------------------------*/ 32 | #include "stm32l0xx_hal.h" 33 | 34 | /** @addtogroup STM32L0xx_HAL_Driver 35 | * @{ 36 | */ 37 | 38 | /** @defgroup HAL_MSP 39 | * @brief HAL MSP module. 40 | * @{ 41 | */ 42 | 43 | /* Private typedef -----------------------------------------------------------*/ 44 | /* Private define ------------------------------------------------------------*/ 45 | /* Private macro -------------------------------------------------------------*/ 46 | /* Private variables ---------------------------------------------------------*/ 47 | /* Private function prototypes -----------------------------------------------*/ 48 | /* Private functions ---------------------------------------------------------*/ 49 | 50 | /** @defgroup HAL_MSP_Private_Functions 51 | * @{ 52 | */ 53 | 54 | /** 55 | * @brief Initializes the Global BSP. 56 | * @param None 57 | * @retval None 58 | */ 59 | void HAL_MspInit(void) 60 | { 61 | /* NOTE : This function is eventually modified by the user */ 62 | } 63 | 64 | /** 65 | * @brief DeInitializes the Global MSP. 66 | * @param None 67 | * @retval None 68 | */ 69 | void HAL_MspDeInit(void) 70 | { 71 | /* NOTE : This function is eventually modified by the user */ 72 | } 73 | 74 | /** 75 | * @brief Initializes the PPP MSP. 76 | * @param None 77 | * @retval None 78 | */ 79 | void HAL_PPP_MspInit(void) 80 | { 81 | /* NOTE : This function is eventually modified by the user */ 82 | } 83 | 84 | /** 85 | * @brief DeInitializes the PPP MSP. 86 | * @param None 87 | * @retval None 88 | */ 89 | void HAL_PPP_MspDeInit(void) 90 | { 91 | /* NOTE : This function is eventually modified by the user */ 92 | } 93 | 94 | /** 95 | * @} 96 | */ 97 | 98 | /** 99 | * @} 100 | */ 101 | 102 | /** 103 | * @} 104 | */ 105 | 106 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 107 | 108 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_wwdg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_wwdg.c -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_crc.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_ll_crc.c 4 | * @author MCD Application Team 5 | * @brief CRC LL module driver. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | #if defined(USE_FULL_LL_DRIVER) 20 | 21 | /* Includes ------------------------------------------------------------------*/ 22 | #include "stm32l0xx_ll_crc.h" 23 | #include "stm32l0xx_ll_bus.h" 24 | 25 | #ifdef USE_FULL_ASSERT 26 | #include "stm32_assert.h" 27 | #else 28 | #define assert_param(expr) ((void)0U) 29 | #endif 30 | 31 | /** @addtogroup STM32L0xx_LL_Driver 32 | * @{ 33 | */ 34 | 35 | #if defined (CRC) 36 | 37 | /** @addtogroup CRC_LL 38 | * @{ 39 | */ 40 | 41 | /* Private types -------------------------------------------------------------*/ 42 | /* Private variables ---------------------------------------------------------*/ 43 | /* Private constants ---------------------------------------------------------*/ 44 | /* Private macros ------------------------------------------------------------*/ 45 | /* Private function prototypes -----------------------------------------------*/ 46 | 47 | /* Exported functions --------------------------------------------------------*/ 48 | /** @addtogroup CRC_LL_Exported_Functions 49 | * @{ 50 | */ 51 | 52 | /** @addtogroup CRC_LL_EF_Init 53 | * @{ 54 | */ 55 | 56 | /** 57 | * @brief De-initialize CRC registers (Registers restored to their default values). 58 | * @param CRCx CRC Instance 59 | * @retval An ErrorStatus enumeration value: 60 | * - SUCCESS: CRC registers are de-initialized 61 | * - ERROR: CRC registers are not de-initialized 62 | */ 63 | ErrorStatus LL_CRC_DeInit(CRC_TypeDef *CRCx) 64 | { 65 | ErrorStatus status = SUCCESS; 66 | 67 | /* Check the parameters */ 68 | assert_param(IS_CRC_ALL_INSTANCE(CRCx)); 69 | 70 | if (CRCx == CRC) 71 | { 72 | /* Force CRC reset */ 73 | LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_CRC); 74 | 75 | /* Release CRC reset */ 76 | LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_CRC); 77 | } 78 | else 79 | { 80 | status = ERROR; 81 | } 82 | 83 | return (status); 84 | } 85 | 86 | /** 87 | * @} 88 | */ 89 | 90 | /** 91 | * @} 92 | */ 93 | 94 | /** 95 | * @} 96 | */ 97 | 98 | #endif /* defined (CRC) */ 99 | 100 | /** 101 | * @} 102 | */ 103 | 104 | #endif /* USE_FULL_LL_DRIVER */ 105 | 106 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 107 | 108 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_crs.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_ll_crs.h 4 | * @author MCD Application Team 5 | * @brief CRS LL module driver. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright(c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | #if defined(USE_FULL_LL_DRIVER) 20 | 21 | /* Includes ------------------------------------------------------------------*/ 22 | #include "stm32l0xx_ll_crs.h" 23 | #include "stm32l0xx_ll_bus.h" 24 | 25 | /** @addtogroup STM32L0xx_LL_Driver 26 | * @{ 27 | */ 28 | 29 | #if defined(CRS) 30 | 31 | /** @defgroup CRS_LL CRS 32 | * @{ 33 | */ 34 | 35 | /* Private types -------------------------------------------------------------*/ 36 | /* Private variables ---------------------------------------------------------*/ 37 | /* Private constants ---------------------------------------------------------*/ 38 | /* Private macros ------------------------------------------------------------*/ 39 | /* Private function prototypes -----------------------------------------------*/ 40 | 41 | /* Exported functions --------------------------------------------------------*/ 42 | /** @addtogroup CRS_LL_Exported_Functions 43 | * @{ 44 | */ 45 | 46 | /** @addtogroup CRS_LL_EF_Init 47 | * @{ 48 | */ 49 | 50 | /** 51 | * @brief De-Initializes CRS peripheral registers to their default reset values. 52 | * @retval An ErrorStatus enumeration value: 53 | * - SUCCESS: CRS registers are de-initialized 54 | * - ERROR: not applicable 55 | */ 56 | ErrorStatus LL_CRS_DeInit(void) 57 | { 58 | LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_CRS); 59 | LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_CRS); 60 | 61 | return SUCCESS; 62 | } 63 | 64 | 65 | 66 | /** 67 | * @} 68 | */ 69 | 70 | /** 71 | * @} 72 | */ 73 | 74 | /** 75 | * @} 76 | */ 77 | 78 | #endif /* defined(CRS) */ 79 | 80 | /** 81 | * @} 82 | */ 83 | 84 | #endif /* USE_FULL_LL_DRIVER */ 85 | 86 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 87 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_ll_pwr.c 4 | * @author MCD Application Team 5 | * @brief PWR LL module driver. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright(c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | #if defined(USE_FULL_LL_DRIVER) 20 | 21 | /* Includes ------------------------------------------------------------------*/ 22 | #include "stm32l0xx_ll_pwr.h" 23 | #include "stm32l0xx_ll_bus.h" 24 | 25 | /** @addtogroup STM32L0xx_LL_Driver 26 | * @{ 27 | */ 28 | 29 | #if defined(PWR) 30 | 31 | /** @defgroup PWR_LL PWR 32 | * @{ 33 | */ 34 | 35 | /* Private types -------------------------------------------------------------*/ 36 | /* Private variables ---------------------------------------------------------*/ 37 | /* Private constants ---------------------------------------------------------*/ 38 | /* Private macros ------------------------------------------------------------*/ 39 | /* Private function prototypes -----------------------------------------------*/ 40 | 41 | /* Exported functions --------------------------------------------------------*/ 42 | /** @addtogroup PWR_LL_Exported_Functions 43 | * @{ 44 | */ 45 | 46 | /** @addtogroup PWR_LL_EF_Init 47 | * @{ 48 | */ 49 | 50 | /** 51 | * @brief De-initialize the PWR registers to their default reset values. 52 | * @retval An ErrorStatus enumeration value: 53 | * - SUCCESS: PWR registers are de-initialized 54 | * - ERROR: not applicable 55 | */ 56 | ErrorStatus LL_PWR_DeInit(void) 57 | { 58 | /* Force reset of PWR clock */ 59 | LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_PWR); 60 | 61 | /* Release reset of PWR clock */ 62 | LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_PWR); 63 | 64 | return SUCCESS; 65 | } 66 | 67 | /** 68 | * @} 69 | */ 70 | 71 | /** 72 | * @} 73 | */ 74 | 75 | /** 76 | * @} 77 | */ 78 | #endif /* defined(PWR) */ 79 | /** 80 | * @} 81 | */ 82 | 83 | #endif /* USE_FULL_LL_DRIVER */ 84 | 85 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 86 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rng.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32l0xx_ll_rng.c 4 | * @author MCD Application Team 5 | * @brief RNG LL module driver. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright(c) 2018 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | #if defined(USE_FULL_LL_DRIVER) 20 | 21 | /* Includes ------------------------------------------------------------------*/ 22 | #include "stm32l0xx_ll_rng.h" 23 | #include "stm32l0xx_ll_bus.h" 24 | 25 | #ifdef USE_FULL_ASSERT 26 | #include "stm32_assert.h" 27 | #else 28 | #define assert_param(expr) ((void)0U) 29 | #endif 30 | 31 | /** @addtogroup STM32L0xx_LL_Driver 32 | * @{ 33 | */ 34 | 35 | #if defined (RNG) 36 | 37 | /** @addtogroup RNG_LL 38 | * @{ 39 | */ 40 | 41 | /* Private types -------------------------------------------------------------*/ 42 | /* Private variables ---------------------------------------------------------*/ 43 | /* Private constants ---------------------------------------------------------*/ 44 | /* Private macros ------------------------------------------------------------*/ 45 | /* Private function prototypes -----------------------------------------------*/ 46 | 47 | /* Exported functions --------------------------------------------------------*/ 48 | /** @addtogroup RNG_LL_Exported_Functions 49 | * @{ 50 | */ 51 | 52 | /** @addtogroup RNG_LL_EF_Init 53 | * @{ 54 | */ 55 | 56 | /** 57 | * @brief De-initialize RNG registers (Registers restored to their default values). 58 | * @param RNGx RNG Instance 59 | * @retval An ErrorStatus enumeration value: 60 | * - SUCCESS: RNG registers are de-initialized 61 | * - ERROR: not applicable 62 | */ 63 | ErrorStatus LL_RNG_DeInit(RNG_TypeDef *RNGx) 64 | { 65 | /* Check the parameters */ 66 | assert_param(IS_RNG_ALL_INSTANCE(RNGx)); 67 | /* Enable RNG reset state */ 68 | LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_RNG); 69 | 70 | /* Release RNG from reset state */ 71 | LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_RNG); 72 | return (SUCCESS); 73 | } 74 | 75 | /** 76 | * @} 77 | */ 78 | 79 | /** 80 | * @} 81 | */ 82 | 83 | /** 84 | * @} 85 | */ 86 | 87 | #endif /* RNG */ 88 | 89 | /** 90 | * @} 91 | */ 92 | 93 | #endif /* USE_FULL_LL_DRIVER */ 94 | 95 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 96 | 97 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Drivers/Utils/inc/SDK_UTILS_Timers.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file SDK_UTILS_Timers.c 3 | * @author LowPower RF BU - AMG 4 | * @version 4.1.0 5 | * @date September, 2019 6 | * @brief SDK EVAL timers configuration. 7 | * @details 8 | * 9 | * 10 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 11 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 12 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 13 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 14 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 15 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 16 | * 17 | * THIS SOURCE CODE IS PROTECTED BY A LICENSE. 18 | * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 19 | * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE. 20 | * 21 | *

© COPYRIGHT 2019 STMicroelectronics

22 | */ 23 | 24 | /* Define to prevent recursive inclusion -------------------------------------*/ 25 | #ifndef __SDK_EVAL_TIMERS_H 26 | #define __SDK_EVAL_TIMERS_H 27 | 28 | /* Includes ------------------------------------------------------------------*/ 29 | 30 | #include "cube_hal.h" 31 | #include "SDK_EVAL_Config.h" 32 | 33 | #ifdef __cplusplus 34 | extern "C" { 35 | #endif 36 | 37 | /** 38 | * @addtogroup SDK_EVAL_NUCLEO 39 | * @{ 40 | */ 41 | 42 | /** 43 | * @defgroup SDK_EVAL_Timers SDK EVAL Timers 44 | * @brief Management of STM32L timers. 45 | * @details See the file @ref SDK_EVAL_Timers.h for more details. 46 | * @{ 47 | */ 48 | 49 | 50 | 51 | 52 | /** 53 | * @defgroup SDK_EVAL_Timers_Exported_Constants SDK EVAL Timers Exported Constants 54 | * @{ 55 | */ 56 | 57 | 58 | /** 59 | * @brief Absolute value macro. 60 | * @param x: Value on which apply the abs function. 61 | * @retval None 62 | */ 63 | #define ABS(x) (x>0?x:-x) 64 | 65 | /** 66 | *@} 67 | */ 68 | 69 | 70 | /** 71 | * @defgroup SDK_EVAL_Timers_Exported_Macros SDK EVAL Timers Exported Macros 72 | * @{ 73 | */ 74 | typedef enum TimerID_Enum { 75 | TIMESTAMP_TIMER_ID = 0, 76 | APPL_TIMER_ID, 77 | GP_TIMER_ID 78 | } TimerID_Type; 79 | 80 | typedef void (*TimerCallbackType)(uint32_t time); 81 | 82 | typedef struct TIMER_InfoS { 83 | TimerCallbackType callback; 84 | uint32_t timeout; 85 | uint16_t delay; 86 | uint8_t enabled; 87 | } TIMER_InfoType; 88 | 89 | 90 | /** 91 | *@} 92 | */ 93 | 94 | 95 | /** 96 | * @defgroup SDK_EVAL_Timers_Exported_Functions SDK EVAL Timers Exported Functions 97 | * @{ 98 | */ 99 | 100 | #ifdef USE_SYSTICK_DELAY 101 | void SysTick_Handler(void); 102 | void SdkDelayMs(volatile uint32_t lTimeMs); 103 | uint32_t SdkGetCurrentSysTick(void); 104 | void SdkStartSysTick(void); 105 | #endif 106 | 107 | 108 | uint32_t SdkEvalGetTimerValue(void); 109 | void SdkEvalTimersResetCounter(TimerID_Type timerID); 110 | uint32_t SdkEvalTimersState(TimerID_Type timerID, TIM_HandleTypeDef *tim, uint8_t enable); 111 | void SdkEvalTimersTimConfig_ms(TimerID_Type timerID, uint16_t ms); 112 | void SdkEvalTimerTimestampReset(void); 113 | void SdkEvalTimersFindFactors(uint32_t n, uint16_t *pnPrescaler, uint16_t *pnCounter); 114 | void SdkEvalTimersTimConfig(TIM_HandleTypeDef* TIM_TimeBaseStructure, uint16_t nPrescaler, uint16_t nPeriod); 115 | 116 | /** 117 | *@} 118 | */ 119 | 120 | /** 121 | *@} 122 | */ 123 | 124 | /** 125 | *@} 126 | */ 127 | 128 | #ifdef __cplusplus 129 | } 130 | #endif 131 | 132 | #endif /*__SDK_EVAL_TIMERS_H*/ 133 | 134 | /******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/ 135 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/IZAR-PRIOS-ST-STEVAL-FKI868V1.eww: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $WS_DIR$\ST-STEVAL-FKI868V1.ewp 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/settings/ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.cspy.bat: -------------------------------------------------------------------------------- 1 | @REM This batch file has been generated by the IAR Embedded Workbench 2 | @REM C-SPY Debugger, as an aid to preparing a command line for running 3 | @REM the cspybat command line utility using the appropriate settings. 4 | @REM 5 | @REM Note that this file is generated every time a new debug session 6 | @REM is initialized, so you may want to move or rename the file before 7 | @REM making changes. 8 | @REM 9 | @REM You can launch cspybat by typing the name of this batch file followed 10 | @REM by the name of the debug file (usually an ELF/DWARF or UBROF file). 11 | @REM 12 | @REM Read about available command line parameters in the C-SPY Debugging 13 | @REM Guide. Hints about additional command line parameters that may be 14 | @REM useful in specific cases: 15 | @REM --download_only Downloads a code image without starting a debug 16 | @REM session afterwards. 17 | @REM --silent Omits the sign-on message. 18 | @REM --timeout Limits the maximum allowed execution time. 19 | @REM 20 | 21 | 22 | @echo off 23 | 24 | if not "%~1" == "" goto debugFile 25 | 26 | @echo on 27 | 28 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.general.xcl" --backend -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.driver.xcl" 29 | 30 | @echo off 31 | goto end 32 | 33 | :debugFile 34 | 35 | @echo on 36 | 37 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.driver.xcl" 38 | 39 | @echo off 40 | :end -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/settings/ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.cspy.ps1: -------------------------------------------------------------------------------- 1 | param([String]$debugfile = ""); 2 | 3 | # This powershell file has been generated by the IAR Embedded Workbench 4 | # C - SPY Debugger, as an aid to preparing a command line for running 5 | # the cspybat command line utility using the appropriate settings. 6 | # 7 | # Note that this file is generated every time a new debug session 8 | # is initialized, so you may want to move or rename the file before 9 | # making changes. 10 | # 11 | # You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed 12 | # by the name of the debug file (usually an ELF / DWARF or UBROF file). 13 | # 14 | # Read about available command line parameters in the C - SPY Debugging 15 | # Guide. Hints about additional command line parameters that may be 16 | # useful in specific cases : 17 | # --download_only Downloads a code image without starting a debug 18 | # session afterwards. 19 | # --silent Omits the sign - on message. 20 | # --timeout Limits the maximum allowed execution time. 21 | # 22 | 23 | 24 | if ($debugfile -eq "") 25 | { 26 | & "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.general.xcl" --backend -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.driver.xcl" 27 | } 28 | else 29 | { 30 | & "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\settings\ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.driver.xcl" 31 | } 32 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/settings/ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.driver.xcl: -------------------------------------------------------------------------------- 1 | "--endian=little" 2 | 3 | "--cpu=Cortex-M0+" 4 | 5 | "--fpu=None" 6 | 7 | "-p" 8 | 9 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\CONFIG\debugger\ST\STM32L053R8.ddf" 10 | 11 | "--drv_verify_download" 12 | 13 | "--semihosting" 14 | 15 | "--device=STM32L053R8" 16 | 17 | "--drv_interface=SWD" 18 | 19 | "--stlink_reset_strategy=0,2" 20 | 21 | "--drv_swo_clock_setup=2097000,0,2000000" 22 | 23 | "--drv_catch_exceptions=0x000" 24 | 25 | "--drv_debug_ap=0" 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/settings/ST-STEVAL-FKI868V1.ST-STEVAL-FKI868V1.general.xcl: -------------------------------------------------------------------------------- 1 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armproc.dll" 2 | 3 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armstlink2.dll" 4 | 5 | "C:\Users\ZWM\Desktop\meters\c_code\ST-STEVAL-FKI868V1\EWARM\ST-STEVAL-FKI868V1\Exe\ST-STEVAL-FKI868V1.out" 6 | 7 | --plugin="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armbat.dll" 8 | 9 | --device_macro="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\config\debugger\ST\STM32L0xx.dmac" 10 | 11 | --flash_loader="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\config\flashloader\ST\FlashSTM32L0xxx8.board" 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/settings/ST-STEVAL-FKI868V1.crun: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | * 7 | * 8 | * 9 | 0 10 | 1 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/settings/ST-STEVAL-FKI868V1.dnx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 1 6 | 90 7 | 1 8 | 1 9 | 1 10 | main 11 | 0 12 | 50 13 | 14 | 15 | 0670FF495355878281223610 16 | 17 | _ 0 18 | _ 0 19 | 0 20 | 2 21 | 22 | 23 | 2385112967 24 | 25 | 26 | _ 0 27 | _ 0 28 | 29 | 30 | 0 31 | 32 | 33 | 1 34 | 35 | 36 | {W}1:A_Id 4 0 37 | {W}1:cRxData 3 0 38 | 39 | 40 | 0 41 | 42 | 43 | 0 44 | 45 | 46 | _ 0 47 | _ "" 48 | 49 | 50 | _ 0 51 | _ "" 52 | _ 0 53 | 54 | 55 | 0 56 | 0 57 | 58 | 59 | 0 60 | 61 | 62 | 1 63 | 64 | 65 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/stm32l053xx_flash.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0800FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x800; 14 | define symbol __ICFEDIT_size_heap__ = 0x400; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; 34 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/EWARM/stm32l053xx_sram.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x20000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x20000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; 11 | 12 | /*-Sizes-*/ 13 | define symbol __ICFEDIT_size_cstack__ = 0x800; 14 | define symbol __ICFEDIT_size_heap__ = 0x400; 15 | /**** End of ICF editor section. ###ICF###*/ 16 | 17 | 18 | define memory mem with size = 4G; 19 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 20 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 21 | 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 24 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; 25 | 26 | initialize by copy { readwrite }; 27 | do not initialize { section .noinit }; 28 | 29 | place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; 30 | 31 | place in ROM_region { readonly }; 32 | place in RAM_region { readwrite, 33 | block CSTACK, block HEAP }; 34 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Inc/PRIOS.h: -------------------------------------------------------------------------------- 1 | #ifndef __PRIOS_H 2 | #define __PRIOS_H 3 | 4 | #include 5 | #include 6 | 7 | /** Contains all the booleans required to store the alarms of a PRIOS device. */ 8 | typedef struct _izar_alarms { 9 | bool general_alarm; 10 | bool leakage_currently; 11 | bool leakage_previously; 12 | bool meter_blocked; 13 | bool back_flow; 14 | bool underflow; 15 | bool overflow; 16 | bool submarine; 17 | bool sensor_fraud_currently; 18 | bool sensor_fraud_previously; 19 | bool mechanical_fraud_currently; 20 | bool mechanical_fraud_previously; 21 | } izar_alarms; 22 | 23 | /** Describe the various unit types we can encounter */ 24 | typedef enum unit_type {UNKNOWN_UNIT, VOLUME_CUBIC_METER} unit_type_t; 25 | 26 | /** Can store everything a PRIOS frame can offer */ 27 | typedef struct _izar_reading { 28 | izar_alarms alarms; 29 | uint8_t random_generator; 30 | uint8_t radio_interval; 31 | float remaining_battery_life; 32 | unit_type_t unit_type; 33 | float current_reading; 34 | float h0_reading; 35 | uint16_t h0_year; 36 | uint8_t h0_month; 37 | uint8_t h0_day; 38 | } izar_reading; 39 | 40 | void printIZARReadingAsCSV(const uint32_t A_Id, const izar_reading * const reading); 41 | uint8_t decodePRIOSPayload(const uint8_t * const in, const uint8_t payload_len, const uint32_t key, uint8_t *out); 42 | uint8_t getMetricsFromPRIOSWMBusFrame(const uint8_t * const frame, izar_reading * const reading); 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Inc/S2LP_WMBus.h: -------------------------------------------------------------------------------- 1 | #ifndef S2LP_WMBUS_h 2 | #define S2LP_WMBUS_h 3 | 4 | #include 5 | 6 | void S2LP_ConfigureSlaveBoardLink(uint32_t *PinIRQ); 7 | void S2LP_ConfigureForWMBusT1Receiver(void); 8 | void S2LP_ConfigureEnableIrqs(void); 9 | void S2LP_CompleteConfigurationAndStart(void); 10 | 11 | void S2LP_HandleGPIOInterrupt(void); 12 | 13 | #endif -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Inc/S2LP_WMBus_T1.h: -------------------------------------------------------------------------------- 1 | #ifndef __WMBUS_T1_H 2 | #define __WMBUS_T1_H 3 | 4 | #define BASE_FREQUENCY 868950000 5 | #define MODULATION_SELECT MOD_2FSK 6 | #define DATARATE 100000 7 | #define FREQ_DEVIATION 75000 8 | #define BANDWIDTH 350000 9 | #define POWER_DBM 12/*.0*/ 10 | #define PREAMBLE_LENGTH 19 11 | #define SYNC_LENGTH 10 12 | #define SYNC_WORD 0x0F400000 13 | #define VARIABLE_LENGTH S_DISABLE 14 | #define EXTENDED_LENGTH_FIELD S_DISABLE 15 | #define PAYLOAD_LENGTH 0x1E 16 | #define CRC_MODE PKT_NO_CRC 17 | #define EN_ADDRESS S_DISABLE 18 | #define EN_FEC S_DISABLE 19 | #define EN_WHITENING S_DISABLE 20 | #define RSSI_THRESHOLD -100 21 | #define RX_TIMER_TIMEOUT_US 700E3 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Inc/WMBus.h: -------------------------------------------------------------------------------- 1 | #ifndef __WMBUS_H 2 | #define __WMBUS_H 3 | 4 | uint8_t CheckWMBusFrame(const uint8_t * const frame, const uint8_t len, uint8_t * const LField, uint8_t * const CField, uint16_t * const Manufacturer, uint32_t * const A_Id, uint8_t * const A_Ver, uint8_t * const A_Type); 5 | 6 | #endif -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Inc/main.h: -------------------------------------------------------------------------------- 1 | /* USER CODE BEGIN Header */ 2 | /** 3 | ****************************************************************************** 4 | * @file : main.h 5 | * @brief : Header for main.c file. 6 | * This file contains the common defines of the application. 7 | ****************************************************************************** 8 | * @attention 9 | * 10 | *

© Copyright (c) 2020 STMicroelectronics. 11 | * All rights reserved.

12 | * 13 | * This software component is licensed by ST under BSD 3-Clause license, 14 | * the "License"; You may not use this file except in compliance with the 15 | * License. You may obtain a copy of the License at: 16 | * opensource.org/licenses/BSD-3-Clause 17 | * 18 | ****************************************************************************** 19 | */ 20 | /* USER CODE END Header */ 21 | 22 | /* Define to prevent recursive inclusion -------------------------------------*/ 23 | #ifndef __MAIN_H 24 | #define __MAIN_H 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | /* Includes ------------------------------------------------------------------*/ 31 | #include "stm32l0xx_hal.h" 32 | 33 | /* Private includes ----------------------------------------------------------*/ 34 | /* USER CODE BEGIN Includes */ 35 | #include "S2LP_WMBus.h" 36 | /* USER CODE END Includes */ 37 | 38 | /* Exported types ------------------------------------------------------------*/ 39 | /* USER CODE BEGIN ET */ 40 | 41 | /* USER CODE END ET */ 42 | 43 | /* Exported constants --------------------------------------------------------*/ 44 | /* USER CODE BEGIN EC */ 45 | 46 | /* USER CODE END EC */ 47 | 48 | /* Exported macro ------------------------------------------------------------*/ 49 | /* USER CODE BEGIN EM */ 50 | 51 | /* USER CODE END EM */ 52 | 53 | /* Exported functions prototypes ---------------------------------------------*/ 54 | void Error_Handler(void); 55 | 56 | /* USER CODE BEGIN EFP */ 57 | 58 | /* USER CODE END EFP */ 59 | 60 | /* Private defines -----------------------------------------------------------*/ 61 | #define B1_Pin GPIO_PIN_13 62 | #define B1_GPIO_Port GPIOC 63 | #define USART_TX_Pin GPIO_PIN_2 64 | #define USART_TX_GPIO_Port GPIOA 65 | #define USART_RX_Pin GPIO_PIN_3 66 | #define USART_RX_GPIO_Port GPIOA 67 | #define LD2_Pin GPIO_PIN_5 68 | #define LD2_GPIO_Port GPIOA 69 | #define TMS_Pin GPIO_PIN_13 70 | #define TMS_GPIO_Port GPIOA 71 | #define TCK_Pin GPIO_PIN_14 72 | #define TCK_GPIO_Port GPIOA 73 | /* USER CODE BEGIN Private defines */ 74 | 75 | /* USER CODE END Private defines */ 76 | 77 | #ifdef __cplusplus 78 | } 79 | #endif 80 | 81 | #endif /* __MAIN_H */ 82 | 83 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 84 | -------------------------------------------------------------------------------- /ST-STEVAL-FKI868V1/Inc/stm32l0xx_it.h: -------------------------------------------------------------------------------- 1 | /* USER CODE BEGIN Header */ 2 | /** 3 | ****************************************************************************** 4 | * @file stm32l0xx_it.h 5 | * @brief This file contains the headers of the interrupt handlers. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | /* USER CODE END Header */ 20 | 21 | /* Define to prevent recursive inclusion -------------------------------------*/ 22 | #ifndef __STM32L0xx_IT_H 23 | #define __STM32L0xx_IT_H 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif 28 | 29 | /* Private includes ----------------------------------------------------------*/ 30 | /* USER CODE BEGIN Includes */ 31 | 32 | /* USER CODE END Includes */ 33 | 34 | /* Exported types ------------------------------------------------------------*/ 35 | /* USER CODE BEGIN ET */ 36 | 37 | /* USER CODE END ET */ 38 | 39 | /* Exported constants --------------------------------------------------------*/ 40 | /* USER CODE BEGIN EC */ 41 | 42 | /* USER CODE END EC */ 43 | 44 | /* Exported macro ------------------------------------------------------------*/ 45 | /* USER CODE BEGIN EM */ 46 | 47 | /* USER CODE END EM */ 48 | 49 | /* Exported functions prototypes ---------------------------------------------*/ 50 | void NMI_Handler(void); 51 | void HardFault_Handler(void); 52 | void SVC_Handler(void); 53 | void PendSV_Handler(void); 54 | void SysTick_Handler(void); 55 | /* USER CODE BEGIN EFP */ 56 | 57 | /* USER CODE END EFP */ 58 | 59 | #ifdef __cplusplus 60 | } 61 | #endif 62 | 63 | #endif /* __STM32L0xx_IT_H */ 64 | 65 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 66 | -------------------------------------------------------------------------------- /doc/212612-FR-EN-IZAR-RC-i-R4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/doc/212612-FR-EN-IZAR-RC-i-R4.pdf -------------------------------------------------------------------------------- /doc/IZAR_RC_I_R4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/doc/IZAR_RC_I_R4.jpg -------------------------------------------------------------------------------- /doc/steval-fki868v2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/doc/steval-fki868v2.jpg -------------------------------------------------------------------------------- /doc/steval-fki868v2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZeWaren/izar-prios-smart-meter-collector/5f7aba86ddfc2d216c859774d46968952feb2b2d/doc/steval-fki868v2.pdf --------------------------------------------------------------------------------