/* init2(): */ void init2(void) { #if INCLUDE_FLASH | INCLUDE_TFS int rc = 0; #endif #if INCLUDE_FBI if(StateOfMonitor == INITIALIZE) { fbdev_init(); /* Initialize the frame-buffer device */ } #endif #if INCLUDE_FLASH if(StateOfMonitor == INITIALIZE) { rc = FlashInit(); /* Init flashop data structures and (possibly) */ } /* the relocatable functions. This MUST be */ #endif /* done prior to turning on cache!!! */ cacheInit(); /* Initialize cache. */ #if INCLUDE_ETHERNET enreset(); /* Clear the ethernet interface. */ #endif #if INCLUDE_TFS if(rc != -1) { /* Start up TFS as long as flash */ tfsstartup(); /* initialization didn't fail. */ } #endif }
void setup() { setupSystemClock(); setup_system_tick(SYSTEM_TICK_FREQ); setupUART(); #ifdef GPS setupGPS(); #endif I2C_Init(); FlashInit(); UpdateBoardVersion(false); #ifdef OPTION_RC RC_Init(); if(IsSSVConnected()) Battery_Init(); LED_Init(); TIMER_Init(); stabilizerInit(); #endif #ifdef ABROBOT ABRobotMotorInit(); #endif nvtAHRSInit(); SensorsInit(); ChronographSet(ChronMain); }
void Fl2FlashInitEntry() { #if USE_ARGC_ARGV theFlashParams.count = FlashInit((CODE_REF)theFlashParams.base_ptr, theFlashParams.block_size, // Image size theFlashParams.offset_into_block,// link adr theFlashParams.count, // flags __argc, __argv); #else theFlashParams.count = FlashInit((CODE_REF)theFlashParams.base_ptr, theFlashParams.block_size, // Image size theFlashParams.offset_into_block,// link adr theFlashParams.count); // flags #endif }
void LogInit( void ){ if ( bInit == TRUE ){ return; } FlashInit( ); bInit = TRUE; e2prom_read( (BYTE*)&logPtrSta, LOG_PTR_STA_ADDR, sizeof( DWORD )); e2prom_read( (BYTE*)&logPtrEnd, LOG_PTR_END_ADDR, sizeof( DWORD )); ScaleLogPtr(LOG_SAVE_PTR_NONE); e2prom_read( (BYTE*)&wLogStamp, LOG_STAMP_ADDR, sizeof( WORD )); e2prom_read( (BYTE*)&bLogLevel, LOG_LEVEL_ADDR, sizeof( BYTE )); if ( bLogLevel > LOG_ALL ){ bLogLevel = LOG_ALL; e2prom_write( (BYTE*)&bLogLevel, LOG_LEVEL_ADDR, sizeof( BYTE )); } if ( bLogLevel > LOG_HW ) { bLogLevel = LOG_ALL; } return; }
uint8 InitDevice()//TODO:异常处理 { uint8 r=0,t=0; //GPIO PinInit(); IO0DIR=1<<29|1<<30;//P0.29,P0.30必须同为输出才能输出(SSP0的片选). //GpioSpeedHigh();//全局高速模式,因为P0.29问题无法使用。 //指示系统启动 LED1ON(); //UART0-GCS r+=UARTInit(FCUARTPORT,FCUARTBPS);//UART0-PC UARTSendChar(FCUARTPORT,0x40); UARTSendChar(FCUARTPORT,0x40); //UART2-INS r+=UARTInit(INSUARTPORT,INSUARTBPS); //UARTSendChar(2,0x40); //UARTSendChar(2,0x40); //SSP0-FPGA r+=SSP0FPGAMode(); //r+=SPIInit(); //while(1) //{ t=FPGACheck(); //} if(t==TRUE) { FCEventSend(OKFPGA); } else { FCEventSend(ErrFPGA); } r+=t; //SSP1-FLASH r+=FlashInit(FlashQueueSize); //Timer0-MainLoop r+=TimerInit(0,1000/MainLoopHz); TimerDisable(0); //TimerEnable(0); //Timer1-Time+LED1 r+=TimerInit(1,1000); TimerEnable(1); //Timer2-Working-LED2 r+=TimerInit(2,100); TimerDisable(2); //启动中断 IRQEnable(); return r; }
/************************************************************************************//** ** \brief Initializes the NVM driver. ** \return none. ** ****************************************************************************************/ void NvmInit(void) { #if (BOOT_NVM_HOOKS_ENABLE > 0) /* give the application a chance to initialize a driver for operating on NVM * that is not by default supported by this driver. */ NvmInitHook(); #endif /* init the internal driver */ FlashInit(); } /*** end of NvmInit ***/
void SysInit(void) { /*****************************电源控制*******************************/ PowerIoInit(); //电源控制IO引脚初始化 POWER_MAIN_ON; //主电源开关(是否进行降压) POWER_MCU_ON; //MCU电源开关 POWER_ZIGBEE_ON; //ZIGBEE电源开关 POWER_ADC_ON; //LTC2402以及其基准源电源开关 DRIVER_EN_OFF; //振弦电路的发射部分的开关 /*****************************串口输出******************************/ UART_Init(UART_0,UART_SouceClk_SMCLK,UART_SMCLKBaud_9600); FlashInit(); }
void setup() { int i; setupSystemClock(); setupUART(); setup_system_tick(SYSTEM_TICK_FREQ); ID_Init(); // MO: Is it also system init? GetID(); /* Init AHRS I2C */ /* ----Initialize I2C slave mode--- */ if(devNum == 0) I2C_MS_Master_Init(); else I2C_MS_Slave_Init(); //I2CWakeUpInit(); TIDMstFirstInitFIN = 0; TIDMstInitFIN = 0; TIDMstStage = 0; TIDMstInitDevState = 1; FlashInit(); // Setup function pointers for default sensor boards. for(i=0; i<MAX_TID_DEV; i++) { if (pTidList[i]) SetDeviceFunction(pTidList[i], &(pfnDevFunc[i])); } // Call board init function if (pTidList[devNum]->func.pfnSetup) pTidList[devNum]->func.pfnSetup(); // Load TID feature from flash GetFlashTID(&(pTidList[devNum]->Feature), devNum); // Set Timer1 to (1000/value) in (Hz) Timer1Init(1000 / (pTidList[devNum]->Feature.data1.value)); /* TID initialize */ SlvDataInit(); MstDataInit(); }
PUBLIC void FlashWrite(Object object) { uint8 data[CONFIG_OBJECT_SIZE]; // init FlashInit(data); data[0] = FLASH_HAS_DATA; ConverterUint32ToUint8(object.valControl, &data[1]); ConverterUint32ToUint8(object.sendDval, &data[5]); ConverterUint16ToUint8(object.readTime, &data[9]); ConverterUint16ToUint8(object.sendTime, &data[11]); ConverterUint32ToUint8(object.config, &data[13]); bAHI_FullFlashProgram(m_FlashStartAddress + DEVISEDESCRIPTOR_SIZE + object.objectID * CONFIG_OBJECT_SIZE, CONFIG_OBJECT_SIZE, data); vAHI_FlashPowerDown(); }
PUBLIC void FlashRead(Object* object) { uint8 data[CONFIG_OBJECT_SIZE]; FlashInit(data); bAHI_FullFlashRead(m_FlashStartAddress + DEVISEDESCRIPTOR_SIZE + object->objectID * CONFIG_OBJECT_SIZE, CONFIG_OBJECT_SIZE, data); if (data[0] == FLASH_HAS_DATA) { ConverterUint8ToUint32(&data[1], (uint32*) &object->valControl); ConverterUint8ToUint32(&data[5], (uint32*) &object->sendDval); ConverterUint8ToUint16(&data[9], &object->readTime); ConverterUint8ToUint16(&data[11], &object->sendTime); ConverterUint8ToUint32(&data[13], (uint32*) &object->config); } vAHI_FlashPowerDown(); }
PUBLIC void FlashWriteDeviceDescriptor(DeviceDescriptor deviceDescriptor) { uint8 data[DEVISEDESCRIPTOR_SIZE]; // init FlashInit(data); bAHI_FlashEraseSector(3); data[0] = FLASH_HAS_DATA; ConverterStringToUint8(deviceDescriptor.name, &data[1]); data[33] = deviceDescriptor.netID; data[34] = deviceDescriptor.demoMode; data[35] = deviceDescriptor.testMode; ConverterStringToUint8(deviceDescriptor.descriptor, &data[36]); ConverterStringToUint8(deviceDescriptor.xdata, &data[49]); // запись даты поверки в датчиках и цифровой подписи в координаторах data[50] = deviceDescriptor.router; // 1-режим работы только с роутерами //bAHI_FullFlashProgram(m_FlashStartAddress+deviceDescriptor.objectID*CONFIG_OBJECT_SIZE, DEVISEDESCRIPTOR_SIZE, data); bAHI_FullFlashProgram(m_FlashStartAddress, DEVISEDESCRIPTOR_SIZE, data); vAHI_FlashPowerDown(); }
static DWORD* AllocXIPLoc(void) { DWORD *pMem; DWORD dwBlockStart; DWORD dwBlockLen; FlashInit(TRUE); FlashGetBlockInfo((LPVOID)pdwXIPLoc, &dwBlockStart, &dwBlockLen); pMem = (DWORD *) malloc(dwBlockLen * sizeof(BYTE)); if (NULL == pMem) { return 0; } FlashRead((LPVOID)pdwXIPLoc, (LPVOID)pMem, dwBlockLen); return pMem; }
void InitAll() { __disable_irq(); TimInit(); PWMStart(); InputDecoder(); UartInit(); FlashInit(); SDFatFSInit(); printf("mpu6050 id:0x%x\r\n",MPU6050_Init()); IMU_Init(); UIInit(); sys.status = READY; HAL_ADC_Start(&hadc1); printf("init finish!\r\n"); __enable_irq(); }
PUBLIC void FlashReadDeviceDescriptor(DeviceDescriptor* deviceDescriptor) { uint8 data[DEVISEDESCRIPTOR_SIZE]; FlashInit(data); //bAHI_FullFlashRead(m_FlashStartAddress+deviceDescriptor->objectID*CONFIG_OBJECT_SIZE, DEVISEDESCRIPTOR_SIZE, data); bAHI_FullFlashRead(m_FlashStartAddress, DEVISEDESCRIPTOR_SIZE, data); if (data[0] == FLASH_HAS_DATA) { ConverterUint8ToString(&data[1], deviceDescriptor->name); deviceDescriptor->netID = data[33]; deviceDescriptor->demoMode = data[34]; deviceDescriptor->testMode = data[35]; ConverterUint8ToString(&data[36], deviceDescriptor->descriptor); ConverterUint8ToString(&data[49], deviceDescriptor->xdata); // чтение даты поверки в датчиках и цифровой подписи в координаторах deviceDescriptor->router = data[50]; // 1-режим работы только с роутерами } vAHI_FlashPowerDown(); }
/* configure for arrangement of flash */ FlashError_t BDMFlashConfigSet( int fd, unsigned int Base, unsigned int Chips, unsigned int Bytes ) { FlashError_t Error; PRINTD( "Base = %u, Chips = %u, Bytes = %u\n", Base, Chips, Bytes ); BDMFlash.Device = fd; BDMFlash.Base = Base; Error = FlashInit( &Flash, &BDMFlash, BDMFlashElementRead, BDMFlashElementWrite, Bytes, 1, /* BDM in Big-Endian */ Chips ); return (Error); }
///////////////////////////////////////////////////////////////////////////// // Function: InitializeBoard() // Input: none // Output: none // Overview: Initializes the hardware components including the PIC device // used. ///////////////////////////////////////////////////////////////////////////// void InitializeBoard(void) { CLKDIVbits.RCDIV = 0; CLKDIVbits.DOZE = 0; CLKDIVbits.PLLEN = 1; CLKDIVbits.CPDIV = 0; OSCCONbits.COSC = 0b001; ANSA = 0x0000; ANSB = 0x0000; ANSC = 0x0010; // RC4 as touch screen X+ ANSD = 0x0000; ANSE = 0x0200; // RE9 used as Y+ ANSF = 0x0000; ANSG = 0x0000; LED_TRIS = 0; // Initialize graphics library and create default style scheme for GOL GOLInit(); _DPTEST = 0b00; i2cInit(); SPI1CON1 = 0b0000000100111110; SPI1STAT = 0x8000; RFIF = 0; if( RF_INT_PIN == 0 ) { RFIF = 1; } //The following are PIC device specific settings for the SPI channel //used. //Set IOs directions for SST25 SPI SST25_CS_LAT = 1; Nop(); SST25_CS_TRIS = 0; SST25_SCK_TRIS = 0; Nop(); SST25_SDO_TRIS = 0; Nop(); SST25_SDI_TRIS = 1; //radio pins _RP11R = 8; // assign RP11 for SCK1 _RP2R = 7; // assign RP2 for SDO1 _SDI1R = 36; // assign RP36 for SDI1 _INT1R = 37; // set the peripheral pin select for the PSI channel used __builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS #if (SST25_SPI_CHANNEL == 1) RPOR3bits.RP6R = 8; // assign RP6 for SCK1 RPOR9bits.RP18R = 7; // assign RP18 for SDO1 RPINR20bits.SDI1R = 32; // assign RP18 for SDI1 #elif (SST25_SPI_CHANNEL == 2) _RP6R = 11; // assign RP11 for SCK2 _RP18R = 10; // assign RP2 for SDO2 _SDI2R = 32; // assign RP36 for SDI2 #endif __builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS //radio PHY_CS_TRIS = 0; Nop(); PHY_CS = 1; Nop(); PHY_RESETn_TRIS = 0; PHY_RESETn = 1; RF_INT_TRIS = 1; SDI_TRIS = 1; SDO_TRIS = 0; SCK_TRIS = 0; SPI_SDO = 0; SPI_SCK = 0; PHY_WAKE_TRIS = 0; PHY_WAKE = 1; LED = 1; TRISAbits.TRISA1 = 0; Nop(); PORTAbits.RA1 = 1; // initialize the Flash Memory driver FlashInit(&SPI_Init_Data); LED = 0; // initialize the timer that manages the tick counter TickInit(); // initialize the components for Resistive Touch Screen TouchInit(NVMWrite, NVMRead, NVMSectorErase, TOUCH_INIT_VALUES); LED = 0; }
void setup() { uint8_t i=0; //初始化系统时钟 setupSystemClock(); //初始化串口 setupUART(); UART_NVIC_INIT(); //初始化System_tick setup_system_tick(SYSTEM_TICK_FREQ); //初始化IIC I2C_Init(); //初始化FLASH FlashInit(); LoadParamsFromFlash(); //初始化低电压检测 BatteryCheckInit(); //初始化遥控 Comm_Init(); //初始化LED LED_Init(); //初始化SENSOR #ifdef IMU_SW //软件姿态解算 // MPU6050_initialize(); // DelayMsec(1000); //必须加延迟,否则读取陀螺仪数据出错 #else MPU6050_initialize(); DelayMsec(1000); //必须加延迟,否则读取陀螺仪数据出错 MPU6050_DMP_Initialize(); //初始化DMP引擎 #endif //初始化自稳定 // LED_ON(); // //测试用,延迟启动时间 // for(i=0;i<6;i++) // { // DelayMsec(1000); // LED_OFF(); // } //初始化电机 Motor_Init(); //printf("Motor_Init(); \n"); //IMU_Init(); // sample rate and cutoff freq. sample rate is too low now due to using dmp. // printf("\n\nCPU @ %dHz\n", SystemCoreClock); //MotorPwmOutput(100,100,0,0); }
/** * @brief Main program. * @param None * @retval None */ void main(void) { CLK_Config(); FlashInit(); sim(); // disable interrupts GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Fast); GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Fast); GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Fast); GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Fast); GPIO_Init(GPIOE, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Fast); GPIO_Init(GPIOF, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Fast); GPIO_Init(GPIOG, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Fast); delay1s(5); #ifdef DEBUG AppTrace_Init(); printf("\r\nSTM8L152 Start ...\r\n"); #endif LED_Init(); LED1_ON(); scheduler_init(); // Build count init event count_event.eCount_event = COUNT_INIT; app_sched_event_put(&count_event,sizeof(count_event),count_event_handler); // Build key init event key_event.eKey_event = KEY_INIT; app_sched_event_put(&key_event,sizeof(key_event),key_event_handler); // Build the valve standby event valve_event.eValve_event = VALVE_STANDBY_EVENT; app_sched_event_put(&valve_event,sizeof(valve_event),valve_event_handler); // Build the LCD init event lcd_event.eLcd_event = LCD_INIT; app_sched_event_put(&lcd_event,sizeof(lcd_event),lcd_event_handler); // Build the beeper init event beeper_event.eBeeper_event = BEEPER_INIT; app_sched_event_put(&beeper_event,sizeof(beeper_event),beeper_event_handler); // Build the cc1120 Init event cc112x_event.eCC112x_event = CC112X_INIT_EVENT; app_sched_event_put(&cc112x_event,sizeof(cc112x_event),cc112x_event_handler); // Build the IC card Init event ic_card_event.eIC_event = IC_CARD_INIT; app_sched_event_put(&ic_card_event,sizeof(ic_card_event),ic_event_handler); // Build the IC card Init event battery_event.eBattery_event = INT_BATTERY_EVENT; app_sched_event_put(&battery_event,sizeof(battery_event),battery_event_handler); // enable interrupts rim(); LED1_OFF(); // Infinite loop while (1) { app_sched_execute(); app_evt_wait(); } }