Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: main.c
- Revision:
- 134:caf4c9cd5052
- Parent:
- 133:90d0bf0e2996
- Child:
- 135:c1e30e0e8949
--- a/main.c Wed Apr 13 16:49:22 2016 +0000 +++ b/main.c Thu Apr 14 14:13:18 2016 +0000 @@ -33,7 +33,8 @@ /* #define IMG_START_SECTOR 0x00030000//0x00010000 /* Sector 16 #define IMG_END_SECTOR 0x00037FFF */ - +unsigned int addres = 0x1fff1fff; +uint32_t Result[5]; extern uint32_t CMD_Mode; unsigned int secPuls; float DACF, K_DAC; @@ -48,26 +49,68 @@ //UART_DMA_Init(); //инициализация DMA для UART.//не используем //WDTInit(); // G_Photo_Init(); //инициализация интерфейса I2C для фотодетектора. - //инициализация - + //инициализация/* +//NVIC_DisableIRQ(TIMER1_IRQn); +//NVIC_DisableIRQ(TIMER2_IRQn); +//NVIC_DisableIRQ(TIMER3_IRQn); +/* +NVIC_DisableIRQ(WDT_IRQn); +NVIC_DisableIRQ(TIMER0_IRQn); +NVIC_DisableIRQ(TIMER1_IRQn); +NVIC_DisableIRQ(TIMER2_IRQn); +NVIC_DisableIRQ(TIMER3_IRQn); +NVIC_DisableIRQ(UART0_IRQn); +NVIC_DisableIRQ(UART1_IRQn); +NVIC_DisableIRQ(UART2_IRQn); +NVIC_DisableIRQ(UART3_IRQn); +NVIC_DisableIRQ(PWM1_IRQn); +NVIC_DisableIRQ(I2C0_IRQn); +NVIC_DisableIRQ(I2C1_IRQn); +NVIC_DisableIRQ(I2C2_IRQn); +NVIC_DisableIRQ(SPI_IRQn); +NVIC_DisableIRQ(SSP1_IRQn); +NVIC_DisableIRQ(PLL0_IRQn); +NVIC_DisableIRQ(RTC_IRQn); +NVIC_DisableIRQ(EINT0_IRQn); +NVIC_DisableIRQ(EINT1_IRQn); +NVIC_DisableIRQ(EINT2_IRQn); +NVIC_DisableIRQ(EINT3_IRQn); +NVIC_DisableIRQ(ADC_IRQn); +NVIC_DisableIRQ(BOD_IRQn); +NVIC_DisableIRQ(USB_IRQn); +NVIC_DisableIRQ(CAN_IRQn); +NVIC_DisableIRQ(DMA_IRQn); +NVIC_DisableIRQ(I2S_IRQn); +NVIC_DisableIRQ(RIT_IRQn); +NVIC_DisableIRQ(MCPWM_IRQn); +NVIC_DisableIRQ(QEI_IRQn); +NVIC_DisableIRQ(PLL1_IRQn); +NVIC_DisableIRQ(USBActivity_IRQn); +NVIC_DisableIRQ(CANActivity_IRQn); + */ -//SystemInitDef(); -//vIAP_ReinvokeISP(); - +//NVIC_SetPriorityGrouping(1); +/* +SystemInitDef(); +SystemCoreClockUpdate1(); +vIAP_ReinvokeISP(); + */ SystemInit1(); // Инициализация контроллера: установка тактовых частот - FlashDMA_Init(); // Загрузка параметров с флэш + //FlashDMA_Init(); // Загрузка параметров с флэш SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 100MHz + + GLD_Init(); ///////////старый UART // UARTInit(); // инициализация UART0 на скорость 38400. // UART1_Init(); // инициализация UART1 на скорость 38400. - UART_InitSet (0, 921600, 0x03); // надо проверить, мож чо с ногам + UART_InitSet (0, 921600, 0x03); // надо проверить, мож чо с ногам // UART_InitSet (1, 921600, 0x03); UART_InitSet (1, 115200, 0x03); @@ -392,34 +435,49 @@ if(Gyro.FlashMod == 1) { - vIAP_ReinvokeISP(); /* Prepare Sectors to be flashed */ + NVIC_DisableIRQ(TIMER1_IRQn); + NVIC_DisableIRQ(TIMER2_IRQn); + NVIC_DisableIRQ(TIMER3_IRQn); + NVIC_DisableIRQ(EINT3_IRQn); +//SCB->VTOR = 0x00A000; +//boot_jump(addres); +SystemInitDef1(); +SystemCoreClockUpdate1(); +vIAP_ReinvokeISP(); if(u32IAP_PrepareSectors(19, 21) == IAP_STA_CMD_SUCCESS) { + + WriteCon("\r\nPrepare Sector OK"); /* Copy data (already) located in RAM to flash */ - if(u32IAP_CopyRAMToFlash(IMG_START_SECTOR, &TempA, 256) == IAP_STA_CMD_SUCCESS) - {WriteCon("\r\nWrite"); + Result[0]=u32IAP_CopyRAMToFlash(IMG_START_SECTOR, &TempA, 256); + WriteCon("\r\nWrite"); + if(Result[0] != IAP_STA_CMD_SUCCESS) + { + while(1); /* No way to recover. Just let Windows report a write failure */ + } /* Verify the flash contents with the contents in RAM */ - if(u32IAP_Compare(IMG_START_SECTOR, &TempA, 256, 0) == IAP_STA_CMD_SUCCESS){WriteCon("\r\nCompare"); - - }else{WriteCon("\r\n error Compare");} - - }else{WriteCon("\r\n error Write");} - + if(u32IAP_Compare(IMG_START_SECTOR, &TempA, 256, 0) == IAP_STA_CMD_SUCCESS) + { + WriteCon("\r\nCompare"); + } + else{WriteCon("\r\n error Compare");} }else{WriteCon("\r\n error prepare");} Gyro.FlashMod = 0; + } - if(Gyro.FlashMod == 2) // установка ног в регисторе тоже подумать , зачем отделный флаг? наверно + if(Gyro.FlashMod == 2) { Gyro.FlashMod = 0; - WriteCon("\r\Rnead from Flash"); + WriteCon("\r\Read from Flash"); + boot_jump(addres); }