17 #ifdef GSC_COMP_ENABLE_GRAPHICS 21 #include "stm32l1xx_hal.h" 40 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
41 RCC_OscInitTypeDef RCC_OscInitStruct = {0};
44 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
45 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
46 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
47 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
48 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
49 #if GSC_CPU_CLOCK_HZ == 24000000 // 24MHz 50 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
51 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV4;
54 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
55 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3;
57 if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
62 __HAL_RCC_PWR_CLK_ENABLE();
63 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
66 while(__HAL_PWR_GET_FLAG(PWR_FLAG_VOS) != RESET) {
72 RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
73 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
74 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
75 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
76 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
77 if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
94 #include "sysconfig.h" 102 #ifdef GSC_COMP_ENABLE_FATFS 107 extern const struct st_device usart2_device;
108 extern const struct st_device usart2_low_device;
109 extern const struct st_device usart4_device;
111 extern const struct st_device null_device;
113 extern const struct st_device rtc_device;
115 extern const struct st_device i2c_device;
116 extern const struct st_device adt7410_device;
117 extern const struct st_device bme280_device;
119 extern const struct st_device spi1_device;
120 extern const struct st_device spi2_device;
121 extern const struct st_device stm_mmc_device;
122 extern const struct st_device mmc_device;
124 extern const struct st_device led_device;
126 extern const struct st_device lcd_gpio_device;
127 extern const struct st_device ts_analog_device;
128 extern const struct st_device ili9325_lcd_device;
129 extern const struct st_device ili9341_lcd_device;
130 extern const struct st_device hx8357d_lcd_device;
132 extern const struct st_device buzzer_device;
133 extern const struct st_device sound_device;
135 extern const struct st_device adc_device;
137 extern const struct st_device grconsole_device;
139 extern const struct st_device gpio_button_device;
141 extern const struct st_device eeprom_device;
143 extern const struct st_device irq_device;
144 extern const struct st_device gpio_device;
146 #ifdef GSC_COMP_ENABLE_FATFS 147 static const char *
const storade_devices[] = {
161 SCB->CCR |= SCB_CCR_NONBASETHRDENA_Msk;
162 SCB->CCR |= SCB_CCR_STKALIGN_Msk;
171 register_device(&usart2_device, 0);
179 #ifdef GSC_DEV_ENABLE_RTC 181 register_device(&rtc_device, 0);
187 #ifdef GSC_DEV_ENABLE_LED 189 register_device(&led_device, 0);
192 #ifdef GSC_DEV_ENABLE_BUTTON 194 register_device(&gpio_button_device, 0);
197 #ifdef GSC_LIB_ENABLE_RANDOM 213 #ifdef GSC_DEV_ENABLE_I2C 214 register_device(&i2c_device, 0);
215 # ifdef GSC_DEV_ENABLE_TEMPSENSOR_ADT7410 // $gsc ADT7410温度センサデバイスを有効にする 218 # ifdef GSC_DEV_ENABLE_TEMPSENSOR_BME280 // $gsc BME280温度、湿度、気圧センサデバイスを有効にする 221 # ifdef GSC_DEV_ENABLE_I2CEEPROM 229 #ifdef GSC_DEV_ENABLE_STORAGE 230 register_device(&spi1_device, 0);
232 register_device(&mmc_device,
"mmc_spi");
234 # ifdef GSC_DEV_ENABLE_SPI // $gsc SPIマスタコントローラデバイスを有効にする 235 register_device(&spi1_device, 0);
239 #ifdef GSC_DEV_ENABLE_SPI2 // $gsc SPI(2)マスタコントローラデバイスを有効にする 240 register_device(&spi2_device, 0);
246 #ifdef GSC_COMP_ENABLE_GRAPHICS 247 register_device(&lcd_gpio_device, 0);
248 # ifdef GSC_DEV_ENABLE_LCD_ILI9325 // $gsc ILI9325 LCDデバイスを有効にする 251 # ifdef GSC_DEV_ENABLE_LCD_ILI9341 // $gsc ILI9341 LCDデバイスを有効にする 254 # ifdef GSC_DEV_ENABLE_LCD_HX8357D // $gsc HX8357D LCDデバイスを有効にする 258 # ifdef GSC_DEV_ENABLE_TOUCHSENSOR 259 register_device(&ts_analog_device, 0);
261 # ifdef GSC_DEV_ENABLE_GRCONSOLE 262 register_device(&grconsole_device, 0);
269 #ifdef GSC_COMP_ENABLE_FATFS 278 #ifdef GSC_DEV_ENABLE_BUZZER 280 register_device(&buzzer_device, 0);
287 #ifdef GSC_DEV_ENABLE_ADC 288 register_device(&adc_device, 0);
291 #ifdef GSC_DEV_ENABLE_NULL 293 register_device(&null_device, 0);
297 #include "stm32l1xx_hal_iwdg.h" 299 static IWDG_HandleTypeDef IwdgHandle;
301 void reset_system(
void)
303 IwdgHandle.Instance = IWDG;
304 IwdgHandle.Init.Prescaler = IWDG_PRESCALER_32;
305 IwdgHandle.Init.Reload = 0;
307 if(HAL_IWDG_Init(&IwdgHandle) != HAL_OK) {
308 SYSERR_PRINT(
"HAL_IWDG_Init() error\n");
int register_storage_device(const char *const device_name[])
ストレージデバイスをリストでマウントする
画像表示デバイスドライバ ioctl 用マクロ定義
#define DEF_DEV_NAME_SD
標準ストレージデバイス名(MMC,SD等)
int init_time(char *devname)
時計を初期する
void SystemClock_Config(void)
System Clock Configuration The system Clock is configured as follow : System Clock source = PLL (HSI)...
void register_console_in_dev(const struct st_device *in_dev)
システム標準のコンソール入力デバイスを登録する
void init_system_drivers(void)
基本ドライバ初期化後に登録するユーザドライバ登録処理
#define DEF_DEV_NAME_SPI
標準SPIマスターコントローラデバイス名
#define DEF_DEV_NAME_BUZZER
標準ブザーデバイス名
void init_file(void)
全てのファイルディスクリプタを初期化する
void init_cpu(void)
CPUを初期化する
void register_console_out_dev(const struct st_device *out_dev)
システム標準のコンソール出力デバイスを登録する
#define DEF_DEV_NAME_I2C
標準I2Cコントローラデバイス名
ストレージデバイスドライバ ioctl 用マクロ定義
void register_error_out_dev(const struct st_device *err_dev)
システム標準のエラー出力デバイスを登録する
#define DEF_DEV_NAME_RTC
標準リアルタイムクロックデバイス名
void init_storage(void)
外部記憶装置管理初期化
void init_system_process(void)
タスク起動後の初期化処理
void init_system(int *argc, char ***argv)
ドライバ初期化以前に行う初期化処理
#define DEF_DEV_NAME_VIDEO
標準ビデオデバイス名
#define DEF_DEV_NAME_VIDEOIO
標準ビデオIOデバイスドライバ名
int init_graphics(char *devname)
グラフィックスライブラリを初期化する
t_time get_systime_sec(void)
システム時間(秒)を取得する