📄 sys_config.c
字号:
/* * タ〖ゲットシステムの矢机叫蜗 */voidsys_putc(char c){ if (c == '\n') { uart_putc('\r'); } uart_putc(c); }/* * 充哈みハンドラの肋年 * * 充哈み戎规 inhno の充哈みハンドラの弹瓢戎孟を inthdr に肋年するˉ */voiddefine_inh(INHNO inhno, FP inthdr){ VW reg; assert(inhno < MAX_INT_NUM); int_table[inhno] = inthdr; if(INT_ID_BBUS_F > inhno) { /* * BBusBridge沸统ではない充哈みの判峡 */ sil_wrw_mem((VP)(IVARV_REG+inhno*4),(VW)inthdr); /* Interruput Vector Reg の肋年 */ /* IntConfigRegの肋年 */ reg = sil_rew_mem((VP)((INT_CONFIG_REG+inhno)&0xfffffffc)); reg &= ~(0xff000000 >> (inhno%4)*8); reg |= ((int_id_table[inhno] | INT_CFG_BIT_IT)<<24) >> ((inhno%4)*8); sil_wrw_mem((VP)((INT_CONFIG_REG+inhno)&0xfffffffc), reg); }}/* * 充哈みハンドラ弹瓢箕に充哈みコントロ〖ラ〖にセットするマスク猛を肋年ˉ */voiddefine_inh_mask(INHNO inhno, UW mask){ assert(inhno < MAX_INT_NUM); int_mask_table[inhno] = mask;}/* * 踏年盗の充哈みが掐った眷圭の借妄 */voidundef_interrupt(){ syslog(LOG_EMERG, "Unregistered Interrupt occurs."); while(1);}/* * BBus充哈みサ〖ビスル〖チン */voidBBus_isr(){ UW i; UW int_sts; int_sts = sil_rew_mem((VP)(BBBIS_REG)) & BBBIS_MASK; for( i = INT_ID_BBUS_F ; i < MAX_INT_NUM ; ++i ) { if(int_sts & 0x80000000) { if(0 == int_table[i]) { undef_interrupt(); } else { int_table[i](); } } int_sts <<= 1; }}/* * CS、GPIO肋年 */void cpu_CsGpioInit(void){ BOOL debugger, software_restart; software_restart = 0; cpuSetupGPIO(); *(UW*)(BBUS_GPIO_CONT1_REG) |= 0x10; /* リスタ〖トフラグの艰评□セット */ software_restart = ((~AHB_ABT_CFG_REG_restart) & sil_rew_mem((VP)AHB_ABT_CFG_REG)); /* Restart Flag get */ sil_wrw_mem((VP)AHB_ABT_CFG_REG , (AHB_ABT_CFG_REG_restart | sil_rew_mem((VP)AHB_ABT_CFG_REG))); /* Restart Flag set */ /* デバッグフラグの艰评 */ debugger = ((~AHB_ABT_CFG_REG_debug) & sil_rew_mem((VP)AHB_ABT_CFG_REG)); /* Debug Flag get */ if (!software_restart) { /* Setup the GPIO ports. */ cpuSetupGPIO(); *(UW*)(BBUS_GPIO_CONT1_REG) |= 0x10; /* Enable Instruction Cache */ cpuEnableICache(); /* Setup the Static chip selects */ cpuSetupCS0(); /* CS0 setup */ cpuSetupCS2(); /* CS2 setup */ cpuSetupCS3(); /* CS3 setup */ /* Setup the Dynamic chip selects */ cpuSetupCS5(); /* CS5 setup */ cpuSetupCS6(); /* CS6 setup */ cpuSetupCS7(); /* CS7 setup */ } else { /* Setup the GPIO ports. */ cpuSetupGPIO(); ; cpuEnableICache(); } return;}/* * CS0 Setup */static void cpuSetupCS0(void){ /* * タ〖ゲットに圭わせて介袋步借妄を淡揭する * Bootロ〖ダ〖にて肋年貉みの眷圭、ここでの肋年は稍妥 */}/* * CS2 Setup */static void cpuSetupCS2(void){ /* * タ〖ゲットに圭わせて介袋步借妄を淡揭する * Bootロ〖ダ〖にて肋年貉みの眷圭、ここでの肋年は稍妥 */}/* * CS3 Setup */static void cpuSetupCS3(void){ /* * タ〖ゲットに圭わせて介袋步借妄を淡揭する * Bootロ〖ダ〖にて肋年貉みの眷圭、ここでの肋年は稍妥 */}/* * CS5 Setup */static void cpuSetupCS5(void){ /* * タ〖ゲットに圭わせて介袋步借妄を淡揭する * Bootロ〖ダ〖にて肋年貉みの眷圭、ここでの肋年は稍妥 */}/* * CS6 Setup */static void cpuSetupCS6(void){ /* * タ〖ゲットに圭わせて介袋步借妄を淡揭する * Bootロ〖ダ〖にて肋年貉みの眷圭、ここでの肋年は稍妥 */}/* * CS7 Setup */static void cpuSetupCS7(void){ /* * タ〖ゲットに圭わせて介袋步借妄を淡揭する * Bootロ〖ダ〖にて肋年貉みの眷圭、ここでの肋年は稍妥 */}/* * GPIO Setup */static void cpuSetupGPIO(void){ UW config; /* **** Control Registers **** */ /* 澈碰pinをGPIO叫蜗に肋年した眷圭にデフォルト叫蜗を回年したい眷圭に笆布を淡揭する */ /* Control Registers #1 (GPIO[0]×[31]) */ sil_wrw_mem((VP) BBUS_GPIO_CONT1_REG , BbusGpio_ContSts1); /* Control Registers #2 (GPIO[32]×[63]) */ sil_wrw_mem((VP) BBUS_GPIO_CONT2_REG , BbusGpio_ContSts2); /* Control Registers #3 (GPIO[64]×[72]) */ sil_wrw_mem((VP) BBUS_GPIO_CONT3_REG , BbusGpio_ContSts3); /* **** Configration Registers **** */ /* Configration Registers #1 (GPIO[0]×[7]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG1_REG , BbusGpio_Config1); /* Configration Registers #2 (GPIO[8]×[15]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG2_REG , BbusGpio_Config2); /* Configration Registers #3 (GPIO[16]×[23]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG3_REG , BbusGpio_Config3); /* Configration Registers #4 (GPIO[24]×[31]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG4_REG , BbusGpio_Config4); /* Configration Registers #5 (GPIO[32]×[39]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG5_REG , BbusGpio_Config5); /* Configration Registers #6 (GPIO[40]×[47]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG6_REG , BbusGpio_Config6); /* Configration Registers #7 (GPIO[48]×[55]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG7_REG , BbusGpio_Config7); /* Configration Registers #8 (GPIO[56]×[63]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG8_REG , BbusGpio_Config8); /* Configration Registers #9 (GPIO[64]×[71]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG9_REG , BbusGpio_Config9); /* Configration Registers #10 (GPIO[72]) */ sil_wrw_mem((VP) BBUS_GPIO_CONFIG10_REG , BbusGpio_Config10);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -