diff --git a/bsp/cpudrv/ZQ/zq12xx/src/spi/cpu_peri_spi.c b/bsp/cpudrv/ZQ/zq12xx/src/spi/cpu_peri_spi.c index 44068e330edb987df1039d924ba0efe694024e41..429ba40040b115ce66b9f8444ca1d4c7734046fd 100644 --- a/bsp/cpudrv/ZQ/zq12xx/src/spi/cpu_peri_spi.c +++ b/bsp/cpudrv/ZQ/zq12xx/src/spi/cpu_peri_spi.c @@ -67,7 +67,7 @@ // ModuleInstall_SPI(CN_SPI1); // #endif // #if CFG_SPI2_ENABLE==1 -// ModuleInstall_SPI(CN_SPI2); +// ModuleInstall_SPI(CN_SPI2) // #endif //%$#@end initcode ****³õʼ»¯´úÂë½áÊø diff --git a/bsp/cpudrv/gigadevice/src/spi/cpu_peri_spi.c b/bsp/cpudrv/gigadevice/src/spi/cpu_peri_spi.c index 5f43b250c0cb86ddd659caf856700636c8009203..64d60e70c08db78c9ea7fc0ebdc04df62a9ed3ad 100644 --- a/bsp/cpudrv/gigadevice/src/spi/cpu_peri_spi.c +++ b/bsp/cpudrv/gigadevice/src/spi/cpu_peri_spi.c @@ -71,25 +71,25 @@ struct art43x_spi { - spi_type *spi_x; - struct SPI_CB spi_cb; - union { - ptu32_t IntLine; - int irqno; - }; - int port; + spi_type *spi_x; + struct SPI_CB spi_cb; + union { + ptu32_t IntLine; + int irqno; + }; + int port; }; struct art43x_spi art43x_spi[3] = { - .[CN_SPI1] = { .spi_x = SPI1, - .irqno = CN_INT_LINE_SPI1, - .port = CN_SPI1 }, - .[CN_SPI2] = { .spi_x = SPI2, - .irqno = CN_INT_LINE_SPI2_I2S2EXT, - .port = CN_SPI2 }, - .[CN_SPI3] = { .spi_x = SPI3, - .irqno = CN_INT_LINE_SPI3_I2S3EXT, - .port = CN_SPI3 } + .[CN_SPI1] = { .spi_x = SPI1, + .irqno = CN_INT_LINE_SPI1, + .port = CN_SPI1 }, + .[CN_SPI2] = { .spi_x = SPI2, + .irqno = CN_INT_LINE_SPI2_I2S2EXT, + .port = CN_SPI2 }, + .[CN_SPI3] = { .spi_x = SPI3, + .irqno = CN_INT_LINE_SPI3_I2S3EXT, + .port = CN_SPI3 } }; @@ -211,22 +211,22 @@ static s32 __SPI_Read( tagSpiReg * Reg ) static s32 __SPI_Write( tagSpiReg * Reg,uint16_t wData ) { - uint16_t tx_data; - spi_type *spi_x; - flag_status status; - int retry = CN_TIMEOUT; + uint16_t tx_data; + spi_type *spi_x; + flag_status status; + int retry = CN_TIMEOUT; spi_x = SPI1; - tx_data = wData; + tx_data = wData; do { - if (spi_i2s_flag_get(spi_x, SPI_I2S_TDBE_FLAG)) { - spi_i2s_data_transmit(spi_x, tx_data); - return 0; - } - } while (retry--); + if (spi_i2s_flag_get(spi_x, SPI_I2S_TDBE_FLAG)) { + spi_i2s_data_transmit(spi_x, tx_data); + return 0; + } + } while (retry--); - return -1; + return -1; } static bool_t __SPI_TxRxPoll(tagSpiReg *Reg,u8 *srcAddr,u32 wrSize, u8 *destAddr, u32 rdSize,u32 recvoff,u8 cs) diff --git a/bsp/cpudrv/stm32/f7/include/cpu_peri_uart.h b/bsp/cpudrv/stm32/f7/include/cpu_peri_uart.h index e192d87e6e9208b8767a0a50e8c070fe95ad8e87..bb30be697aab471c322abf94cdbb5a153f53c839 100644 --- a/bsp/cpudrv/stm32/f7/include/cpu_peri_uart.h +++ b/bsp/cpudrv/stm32/f7/include/cpu_peri_uart.h @@ -51,6 +51,8 @@ extern "C" { #include "stm32f7xx.h" #define tagUartReg USART_TypeDef +//ͬ²½/Òì²½´®¿ÚλÓò£¬bo_ÎªÎ»Æ«ÒÆ£¬1λµÄÓÃλ´øµØÖ·£¬bb_ǰ׺£¬¶àλÓÃÑÚÂ룬bm_ǰ׺ +//uart1 sr¼Ä´æÆ÷붨Òå //usart:1,2,3,6//uart4,5,7,8 #define CN_UART1 0 #define CN_UART2 1 diff --git a/bsp/cpudrv/stm32/f7/src/lcd/cpu_peri_lcd.c b/bsp/cpudrv/stm32/f7/src/lcd/cpu_peri_lcd.c index 913cb72a3c5a32a3e8dd9ed598ba07c83af979ea..a6cc69d2f762792f264993177834baaf874a6b79 100644 --- a/bsp/cpudrv/stm32/f7/src/lcd/cpu_peri_lcd.c +++ b/bsp/cpudrv/stm32/f7/src/lcd/cpu_peri_lcd.c @@ -627,7 +627,7 @@ bool_t __lcd_blt_bm_to_bm(struct RectBitmap *dst_bitmap, dst_offset = (u16*)((ptu32_t)(dst_bitmap->bm_bits+\ DstRect->top * dst_bitmap->linebytes)+\ DstRect->left*lcd.pixsize); - +// dst_offset -= 0x22; ÏÔʾȫÆÁͼƬµÄʱºò£¬»áÓÐµãÆ«²î£¬¼ÓÉÏÕâ¸ö¾ÍûÓÐÆ«²îÁË¡£ if(false==Lock_MutexPend(&Dma2dMutex,lcd.Dma2dTimeOut)) return false; DMA2D->CR=0<<16; //´æ´¢Æ÷µ½´æ´¢Æ÷ģʽ diff --git a/bsp/cpudrv/stm32/f7/src/spi/cpu_peri_spi.c b/bsp/cpudrv/stm32/f7/src/spi/cpu_peri_spi.c index e911809ac9ac74f3be932e3409c86e9ec03bfffc..6fae5aae9ac02578231fa44af24af3b62c52e037 100644 --- a/bsp/cpudrv/stm32/f7/src/spi/cpu_peri_spi.c +++ b/bsp/cpudrv/stm32/f7/src/spi/cpu_peri_spi.c @@ -67,7 +67,7 @@ // ModuleInstall_SPI(CN_SPI1); // #endif // #if CFG_SPI2_ENABLE==1 -// ModuleInstall_SPI(CN_SPI2); +// ModuleInstall_SPI(CN_SPI2) // #endif // #if CFG_SPI3_ENABLE==1 // ModuleInstall_SPI(CN_SPI3); diff --git a/bsp/cpudrv/stm32/f7/src/uart/cpu_peri_uart.c b/bsp/cpudrv/stm32/f7/src/uart/cpu_peri_uart.c index c05f28ee626941ccb99af863193d05cd155d10b9..a149ced64dc0aa9d45960e9d547419be6f13cf8a 100644 --- a/bsp/cpudrv/stm32/f7/src/uart/cpu_peri_uart.c +++ b/bsp/cpudrv/stm32/f7/src/uart/cpu_peri_uart.c @@ -110,25 +110,25 @@ //%$#@describe ****×é¼þÃèÊö¿ªÊ¼ //component name:"cpu onchip uart"//CPUµÄuartÍâÉèÇý¶¯ //parent:"uart device file" //Ìîд¸Ã×é¼þµÄ¸¸×é¼þÃû×Ö£¬none±íʾûÓи¸×é¼þ -//attribute:bsp //Ñ¡Ìî¡°third¡¢system¡¢bsp¡¢user¡±£¬±¾ÊôÐÔÓÃÓÚÔÚIDEÖзÖ×é -//select:choosable //Ñ¡Ìî¡°required¡¢choosable¡¢none¡±£¬ÈôÌî±ØÑ¡ÇÒÐèÒªÅäÖòÎÊý£¬ÔòIDE²Ã¼ô½çÃæÖÐĬÈϹ´È¡£¬ - //²»¿ÉÈ¡Ïû£¬±ØÑ¡ÇÒ²»ÐèÒªÅäÖòÎÊýµÄ£¬»òÊDz»¿ÉÑ¡µÄ£¬IDE²Ã¼ô½çÃæÖв»ÏÔʾ£¬ -//init time:early //³õʼ»¯Ê±»ú£¬¿Éѡֵ£ºearly£¬medium£¬later, pre-main¡£ - //±íʾ³õʼ»¯Ê±¼ä£¬·Ö±ðÊÇÔçÆÚ¡¢ÖÐÆÚ¡¢ºóÆÚ +//attribute:bsp //Ñ¡Ìî¡°third¡¢system¡¢bsp¡¢user¡±£¬±¾ÊôÐÔÓÃÓÚÔÚIDEÖзÖ×é +//select:choosable //Ñ¡Ìî¡°required¡¢choosable¡¢none¡±£¬ÈôÌî±ØÑ¡ÇÒÐèÒªÅäÖòÎÊý£¬ÔòIDE²Ã¼ô½çÃæÖÐĬÈϹ´È¡£¬ + //²»¿ÉÈ¡Ïû£¬±ØÑ¡ÇÒ²»ÐèÒªÅäÖòÎÊýµÄ£¬»òÊDz»¿ÉÑ¡µÄ£¬IDE²Ã¼ô½çÃæÖв»ÏÔʾ£¬ +//init time:early //³õʼ»¯Ê±»ú£¬¿Éѡֵ£ºearly£¬medium£¬later, pre-main¡£ + //±íʾ³õʼ»¯Ê±¼ä£¬·Ö±ðÊÇÔçÆÚ¡¢ÖÐÆÚ¡¢ºóÆÚ //dependence:"uart device file","cpu onchip dma"//¸Ã×é¼þµÄÒÀÀµ×é¼þÃû£¨¿ÉÒÔÊÇnone£¬±íʾÎÞÒÀÀµ×é¼þ£©£¬ - //Ñ¡ÖиÃ×é¼þʱ£¬±»ÒÀÀµ×é¼þ½«Ç¿ÖÆÑ¡ÖУ¬ - //Èç¹ûÒÀÀµ¶à¸ö×é¼þ£¬ÔòÒÀ´ÎÁгö£¬Óá°,¡±·Ö¸ô -//weakdependence:"none" //¸Ã×é¼þµÄÈõÒÀÀµ×é¼þÃû£¨¿ÉÒÔÊÇnone£¬±íʾÎÞÒÀÀµ×é¼þ£©£¬ - //Ñ¡ÖиÃ×é¼þʱ£¬±»ÒÀÀµ×é¼þ²»»á±»Ç¿ÖÆÑ¡ÖУ¬ - //Èç¹ûÒÀÀµ¶à¸ö×é¼þ£¬ÔòÒÀ´ÎÁгö£¬Óá°,¡±·Ö¸ô + //Ñ¡ÖиÃ×é¼þʱ£¬±»ÒÀÀµ×é¼þ½«Ç¿ÖÆÑ¡ÖУ¬ + //Èç¹ûÒÀÀµ¶à¸ö×é¼þ£¬ÔòÒÀ´ÎÁгö +//weakdependence:"none" //¸Ã×é¼þµÄÈõÒÀÀµ×é¼þÃû£¨¿ÉÒÔÊÇnone£¬±íʾÎÞÒÀÀµ×é¼þ£©£¬ + //Ñ¡ÖиÃ×é¼þʱ£¬±»ÒÀÀµ×é¼þ²»»á±»Ç¿ÖÆÑ¡ÖУ¬ + //Èç¹ûÒÀÀµ¶à¸ö×é¼þ£¬ÔòÒÀ´ÎÁгö£¬Óá°,¡±·Ö¸ô //mutex:"none" //¸Ã×é¼þµÄ»¥³â×é¼þÃû£¨¿ÉÒÔÊÇnone£¬±íʾÎÞ»¥³â×é¼þ£©£¬ - //Èç¹ûÓë¶à¸ö×é¼þ»¥³â£¬ÔòÒÀ´ÎÁгö£¬Óá°,¡±·Ö¸ô + //Èç¹ûÓë¶à¸ö×é¼þ»¥³â£¬ÔòÒÀ´ÎÁгö //%$#@end describe ****×é¼þÃèÊö½áÊø //%$#@configue ****²ÎÊýÅäÖÿªÊ¼ #if ( CFG_MODULE_ENABLE_CPU_ONCHIP_UART == false ) //#warning " cpu_onchip_uart ×é¼þ²ÎÊýδÅäÖã¬Ê¹ÓÃĬÈÏÅäÖÃ" -//%$#@target = header //header = Éú³ÉÍ·Îļþ,cmdline = ÃüÁîÐбäÁ¿£¬DJYOS×ÔÓÐÄ£¿é½ûÓà +//%$#@target = header //header = Éú³ÉÍ·Îļþ,cmdline = ÃüÁîÐбäÁ¿£¬DJYOS×ÔÓÐÄ£¿é½ûÓà #define CFG_MODULE_ENABLE_CPU_ONCHIP_UART false //Èç¹û¹´Ñ¡Á˱¾×é¼þ£¬½«ÓÉDIDEÔÚproject_config.h»òÃüÁîÐÐÖж¨ÒåΪtrue //%$#@num,0,512, #define CFG_UART1_SENDBUF_LEN 64 //"UART1·¢ËÍ»·Ðλº³åÇø´óС", @@ -294,14 +294,14 @@ bool_t UART_LowPowerConfig(u8 port,u8 flag) { switch(port) { - case CN_UART1: RCC->APB2ENR &=~RCC_APB2ENR_USART1EN; break; - case CN_UART2: RCC->APB1ENR &=~RCC_APB1ENR_USART2EN;break; - case CN_UART3: RCC->APB1ENR &=~RCC_APB1ENR_USART3EN;break; - case CN_UART4: RCC->APB1ENR &=~RCC_APB1ENR_UART4EN;break; - case CN_UART5: RCC->APB1ENR &=~RCC_APB1ENR_UART5EN;break; - case CN_UART6: RCC->APB2ENR &=~RCC_APB2ENR_USART6EN; break; - case CN_UART7: RCC->APB1ENR &=~RCC_APB1ENR_UART7EN;break; - case CN_UART8: RCC->APB1ENR &=~RCC_APB1ENR_UART8EN;break; + case CN_UART1: RCC->APB2ENR &=~(1<<4); break; + case CN_UART2: RCC->APB1ENR &=~(1<<17);break; + case CN_UART3: RCC->APB1ENR &=~(1<<18);break; + case CN_UART4: RCC->APB1ENR &=~(1<<19);break; + case CN_UART5: RCC->APB1ENR &=~(1<<20);break; + case CN_UART6: RCC->APB2ENR &=~(1<<5); break; + case CN_UART7: RCC->APB1ENR &=~(1<<30);break; + case CN_UART8: RCC->APB1ENR &=~(1<<31);break; default: break; } tg_UART_Reg[port]->CR1 &=~ (0x1); @@ -312,14 +312,14 @@ bool_t UART_LowPowerConfig(u8 port,u8 flag) { switch(port) { - case CN_UART1: RCC->APB2ENR |=RCC_APB2ENR_USART1EN; break; - case CN_UART2: RCC->APB1ENR |=RCC_APB1ENR_USART2EN;break; - case CN_UART3: RCC->APB1ENR |=RCC_APB1ENR_USART3EN;break; - case CN_UART4: RCC->APB1ENR |=RCC_APB1ENR_UART4EN;break; - case CN_UART5: RCC->APB1ENR |=RCC_APB1ENR_UART5EN;break; - case CN_UART6: RCC->APB2ENR |=RCC_APB2ENR_USART6EN; break; - case CN_UART7: RCC->APB1ENR |=RCC_APB1ENR_UART7EN;break; - case CN_UART8: RCC->APB1ENR |=RCC_APB1ENR_UART8EN;break; + case CN_UART1: RCC->APB2ENR |=(1<<4); break; + case CN_UART2: RCC->APB1ENR |=(1<<17);break; + case CN_UART3: RCC->APB1ENR |=(1<<18);break; + case CN_UART4: RCC->APB1ENR |=(1<<19);break; + case CN_UART5: RCC->APB1ENR |=(1<<20);break; + case CN_UART6: RCC->APB2ENR |=(1<<5); break; + case CN_UART7: RCC->APB1ENR |=(1<<30);break; + case CN_UART8: RCC->APB1ENR |=(1<<31);break; default: break; } tg_UART_Reg[port]->CR1 |= (0x1); @@ -354,7 +354,7 @@ void __UART_RxIntDisable(u8 flag, u8 port) if(flag == CN_DMA_USED) Int_SaveAsynLine(UartDmaRxInt[port]); else - tg_UART_Reg[port]->CR1 &= ~USART_CR1_RXNEIE_RXFNEIE; + tg_UART_Reg[port]->CR1 &= ~(1<<5); } // ============================================================================= @@ -444,7 +444,7 @@ static void __UART_BaudSet(tagUartReg volatile *Reg,u32 port,u32 baud) fraction = (temp - mantissa)*16; } - Reg->BRR = ((u16)mantissa<BRR = ((u16)mantissa<<4)+(u16)fraction; if(TxDirectPort == port) { @@ -464,29 +464,29 @@ static void __UART_ClkConfig(u8 SerialNo) switch(SerialNo) { case CN_UART1: - RCC->APB2ENR |=RCC_APB2ENR_USART1EN;//´®¿ÚʱÖÓʹÄÜ + RCC->APB2ENR |=(1<<4);//´®¿ÚʱÖÓʹÄÜ break; case CN_UART2: - RCC->APB1ENR |=RCC_APB1ENR_USART2EN; + RCC->APB1ENR |=(1<<17); break; case CN_UART3: - RCC->APB1ENR |=RCC_APB1ENR_USART3EN; + RCC->APB1ENR |=(1<<18); break; case CN_UART4: - RCC->APB1ENR |=RCC_APB1ENR_UART4EN; + RCC->APB1ENR |=(1<<19); break; case CN_UART5: - RCC->APB1ENR |=RCC_APB1ENR_UART5EN; + RCC->APB1ENR |=(1<<20); break; case CN_UART6: - RCC->APB2ENR |=RCC_APB2ENR_USART6EN; + RCC->APB2ENR |=(1<<5); break; case CN_UART7: - RCC->APB1ENR |=RCC_APB1ENR_UART7EN; + RCC->APB1ENR |=(1<<30); break; case CN_UART8: - RCC->APB1ENR |=RCC_APB1ENR_UART8EN; + RCC->APB1ENR |=(1<<31); break; default: break; @@ -603,21 +603,21 @@ void __UART_Enable(u32 port) switch(port) {//ʹÄÜ´®¿Ú1ʱÖÓ case CN_UART1: - RCC->APB2ENR |=RCC_APB2ENR_USART1EN;break; + RCC->APB2ENR |=(1<<4);break; case CN_UART2: - RCC->APB1ENR |= RCC_APB1ENR_USART2EN;break; + RCC->APB1ENR |=(1<<17);break; case CN_UART3: - RCC->APB1ENR |= RCC_APB1ENR_USART3EN;break; + RCC->APB1ENR |=(1<<18);break; case CN_UART4: - RCC->APB1ENR |= RCC_APB1ENR_UART4EN;break; + RCC->APB1ENR |=(1<<19);break; case CN_UART5: - RCC->APB1ENR |= RCC_APB1ENR_UART5EN;break; + RCC->APB1ENR |=(1<<20);break; case CN_UART6: - RCC->APB2ENR |=RCC_APB2ENR_USART6EN;break; + RCC->APB2ENR |=(1<<5);break; case CN_UART7: - RCC->APB1ENR |=RCC_APB1ENR_UART7EN;break; + RCC->APB1ENR |=(1<<30);break; case CN_UART8: - RCC->APB1ENR |=RCC_APB1ENR_UART8EN;break; + RCC->APB1ENR |=(1<<31);break; default: break; } @@ -633,14 +633,14 @@ void __UART_Disable(u32 port) { switch(port) { - case CN_UART1: RCC->APB2ENR &=~RCC_APB2ENR_USART1EN; break; - case CN_UART2: RCC->APB1ENR &=~RCC_APB1ENR_USART2EN; break; - case CN_UART3: RCC->APB1ENR &=~RCC_APB1ENR_USART3EN; break; - case CN_UART4: RCC->APB1ENR &=~RCC_APB1ENR_UART4EN; break; - case CN_UART5: RCC->APB1ENR &=~RCC_APB1ENR_UART5EN; break; - case CN_UART6: RCC->APB2ENR &=~RCC_APB2ENR_USART6EN; break; - case CN_UART7: RCC->APB1ENR &=~RCC_APB1ENR_UART7EN; break; - case CN_UART8: RCC->APB1ENR &=~RCC_APB1ENR_UART8EN; break; + case CN_UART1: RCC->APB2ENR &=~(1<<4); break; + case CN_UART2: RCC->APB1ENR &=~(1<<17); break; + case CN_UART3: RCC->APB1ENR &=~(1<<18); break; + case CN_UART4: RCC->APB1ENR &=~(1<<19); break; + case CN_UART5: RCC->APB1ENR &=~(1<<20); break; + case CN_UART6: RCC->APB2ENR &=~(1<<5); break; + case CN_UART7: RCC->APB1ENR &=~(1<<30); break; + case CN_UART8: RCC->APB1ENR &=~(1<<31); break; default:break; } tg_UART_Reg[port]->CR1 &= ~(1); @@ -1138,7 +1138,7 @@ uint32_t UART_DmaRx_ISR(ptu32_t port) DmaRecvBufNow=pUART_DmaRecvBuf[port][0]; } - if(UartDmaRxStream[port]->CR & DMA_SxCR_CT) //double buffer mode,current target + if(UartDmaRxStream[port]->CR & (1<<19)) DmaRecvBufNow = pUART_DmaRecvBuf[port][1]; else DmaRecvBufNow = pUART_DmaRecvBuf[port][0]; diff --git a/bsp/cpudrv/stm32/h7/include/cpu_peri_uart.h b/bsp/cpudrv/stm32/h7/include/cpu_peri_uart.h index 7155d961a146b67924f110a3af62d97d217ccc40..a574e1e16f0f05fe7cea2319e93e1f4ffc1bc39a 100644 --- a/bsp/cpudrv/stm32/h7/include/cpu_peri_uart.h +++ b/bsp/cpudrv/stm32/h7/include/cpu_peri_uart.h @@ -49,24 +49,18 @@ extern "C" { #endif -#include "stm32h7xx.h" -#define tagUartReg USART_TypeDef -//usart:1,2,3,6//uart4,5,7,8 -#define CN_UART1 0 -#define CN_UART2 1 -#define CN_UART3 2 -#define CN_UART4 3 -#define CN_UART5 4 -#define CN_UART6 5 -#define CN_UART7 6 -#define CN_UART8 7 -#define CN_UART_NUM 8 +#define CN_UART1 0 +#define CN_UART2 1 +#define CN_UART3 2 +#define CN_UART4 3 +#define CN_UART5 4 +#define CN_UART6 5 +#define CN_UART7 6 +#define CN_UART8 7 +#define CN_UART_NUM 8 -bool_t UART_LowPowerConfig(u8 port,u8 flag); ptu32_t ModuleInstall_UART(ptu32_t para); -void Stdio_KnlInOutInit(char * StdioIn, char *StdioOut); - #ifdef __cplusplus } #endif diff --git a/bsp/cpudrv/stm32/h7/src/dma/cpu_peri_dma.c b/bsp/cpudrv/stm32/h7/src/dma/cpu_peri_dma.c index bf31eb41178ead019092301d4dea4482397aae50..46eb0a65db2223f1331461eabe006487e586b485 100644 --- a/bsp/cpudrv/stm32/h7/src/dma/cpu_peri_dma.c +++ b/bsp/cpudrv/stm32/h7/src/dma/cpu_peri_dma.c @@ -132,11 +132,11 @@ u32 DMA_Config(DMA_Stream_TypeDef *DMA_Streamx,u8 chx,u32 par,bool_t MultiBuffer if((u32)DMA_Streamx>(u32)DMA2)//µÃµ½µ±Ç°streamÊÇÊôÓÚDMA2»¹ÊÇDMA1 { DMAx=DMA2; - RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN;//DMA2ʱÖÓʹÄÜ + RCC->AHB1ENR|=1<<22;//DMA2ʱÖÓʹÄÜ }else { DMAx=DMA1; - RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN;//DMA1ʱÖÓʹÄÜ + RCC->AHB1ENR|=1<<21;//DMA1ʱÖÓʹÄÜ } while(DMA_Streamx->CR&0X01) //µÈ´ýDMA¿ÉÅäÖà @@ -149,14 +149,14 @@ u32 DMA_Config(DMA_Stream_TypeDef *DMA_Streamx,u8 chx,u32 par,bool_t MultiBuffer else { if(DMAx == DMA2) - RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN;//DMA2ʱÖÓʹÄÜ + RCC->AHB1ENR &= ~(1<<22); //DMA2ʱÖÓʹÄÜ else - RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN;//DMA1ʱÖÓʹÄÜ + RCC->AHB1ENR &= ~(1<<21); return false; } } - streamx = DMA_Streamx - DMA2_Stream0; -// streamx=(((u32)DMA_Streamx-(u32)DMAx)-0X10)/0X18; //µÃµ½streamͨµÀºÅ + + streamx=(((u32)DMA_Streamx-(u32)DMAx)-0X10)/0X18; //µÃµ½streamͨµÀºÅ if(streamx>=6) DMAx->HIFCR|=0X3D<<(6*(streamx-6)+16); //Çå¿Õ֮ǰ¸ÃstreamÉϵÄËùÓÐÖжϱêÖ¾ else if(streamx>=4) @@ -173,8 +173,8 @@ u32 DMA_Config(DMA_Stream_TypeDef *DMA_Streamx,u8 chx,u32 par,bool_t MultiBuffer DMA_Streamx->CR=0; //ÏÈÈ«²¿¸´Î»CR¼Ä´æÆ÷Öµ if(MultiBuffer) { - DMA_Streamx->CR |= DMA_SxCR_DBM; - DMA_Streamx->CR |= DMA_SxCR_TCIE;//´«ÊäÍê³ÉÖÐ¶Ï + DMA_Streamx->CR|=1<<18; + DMA_Streamx->CR|=(1<<4);//´«ÊäÍê³ÉÖÐ¶Ï } else DMA_Streamx->CR|=(dir == DMA_DIR_P2M)?(1<<3):(1<<4);//°ë´«ÊäÖÐ¶Ï @@ -213,11 +213,11 @@ void DMA_Enable(DMA_Stream_TypeDef *DMA_Streamx,u32 mar,u16 ndtr) if((u32)DMA_Streamx>(u32)DMA2)//µÃµ½µ±Ç°streamÊÇÊôÓÚDMA2»¹ÊÇDMA1 { DMAx=DMA2; - RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN;//DMA2ʱÖÓʹÄÜ + RCC->AHB1ENR|=1<<22;//DMA2ʱÖÓʹÄÜ }else { DMAx=DMA1; - RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN;//DMA1ʱÖÓʹÄÜ + RCC->AHB1ENR|=1<<21;//DMA1ʱÖÓʹÄÜ } streamx=(((u32)DMA_Streamx-(u32)DMAx)-0X10)/0X18; //µÃµ½streamͨµÀºÅ @@ -264,11 +264,11 @@ void DMA_ClearIntFlag(DMA_Stream_TypeDef *DMA_Streamx) if((u32)DMA_Streamx>(u32)DMA2)//µÃµ½µ±Ç°streamÊÇÊôÓÚDMA2»¹ÊÇDMA1 { DMAx=DMA2; - RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN;//DMA2ʱÖÓʹÄÜ + RCC->AHB1ENR|=1<<22;//DMA2ʱÖÓʹÄÜ }else { DMAx=DMA1; - RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN;//DMA2ʱÖÓʹÄÜ + RCC->AHB1ENR|=1<<21;//DMA1ʱÖÓʹÄÜ } streamx=(((u32)DMA_Streamx-(u32)DMAx)-0X10)/0X18; //µÃµ½streamͨµÀºÅ diff --git a/bsp/cpudrv/stm32/h7/src/lcd/cpu_peri_lcd.c b/bsp/cpudrv/stm32/h7/src/lcd/cpu_peri_lcd.c index d74968565f892efb661dd5b421c795c09241e286..68dee5556b817394726ab3da4a41aa36caa19ec5 100644 --- a/bsp/cpudrv/stm32/h7/src/lcd/cpu_peri_lcd.c +++ b/bsp/cpudrv/stm32/h7/src/lcd/cpu_peri_lcd.c @@ -328,7 +328,7 @@ static void LTDC_Init(u8 *pFrameBufferFG) LTDC_Layer_Parameter_Config(0,(u32)pFrameBufferFG,lcd.LtdcPixelFormat,255,0,6,7,0X000000);//²ã²ÎÊýÅäÖà LTDC_Layer_Window_Config(0,0,0,lcd_display.width,lcd_display.height); LTDC_Select_Layer(0); //Ñ¡ÔñµÚ1²ã - Lcd_BackLight_OnOff(1); + Lcd_BackLight_OnOff(0); } //------------------------------------------------------------------ diff --git a/bsp/cpudrv/stm32/h7/src/spi/cpu_peri_spi.c b/bsp/cpudrv/stm32/h7/src/spi/cpu_peri_spi.c index 024a288399c992cb6315621d6c1db7e3c54d818f..13a63ae07a4066b05ac932236cccefa70ac233c5 100644 --- a/bsp/cpudrv/stm32/h7/src/spi/cpu_peri_spi.c +++ b/bsp/cpudrv/stm32/h7/src/spi/cpu_peri_spi.c @@ -68,7 +68,7 @@ // ModuleInstall_SPI(CN_SPI1); // #endif // #if CFG_SPI2_ENABLE==1 -// ModuleInstall_SPI(CN_SPI2); +// ModuleInstall_SPI(CN_SPI2) // #endif // #if CFG_SPI3_ENABLE==1 // ModuleInstall_SPI(CN_SPI3); @@ -233,11 +233,9 @@ static void __SPI_SetClk(volatile tagSpiReg *Reg,u32 Fre) { u8 br; br = (u8)__SPI_BrCal(Fre); -// Reg->CR1 &= ~SPI_CR1_SPE; Reg->CFG1 &= ~SPI_CR1_SPE; Reg->CFG1 &= ~SPI_CFG1_MBR; - Reg->CFG1 |= br<CR1 |= SPI_CR1_SPE; + Reg->CFG1 |= br<<28; } // ============================================================================= @@ -318,7 +316,6 @@ static void __SPI_GpioInit(u32 BaseAddr) static void __SPI_Config(volatile tagSpiReg *Reg,tagSpiConfig *ptr) { __SPI_SetClk(Reg,ptr->Freq); -// Reg->CR1 &= ~SPI_CR1_SPE; //set the PHA if(ptr->Mode & SPI_CPHA) @@ -355,7 +352,6 @@ static void __SPI_Config(volatile tagSpiReg *Reg,tagSpiConfig *ptr) { Reg->CFG2 &= ~SPI_CFG2_LSBFRST; } -// Reg->CR1 |= SPI_CR1_SPE; } // ============================================================================= @@ -375,7 +371,7 @@ static void __SPI_HardConfig(u32 BaseAddr) Reg->CR1 = SPI_CR1_SSI;////SSM //Ö÷²¨ÌØÂÊ£ºÖ÷ʱÖÓ/16£¬16λÊý¾Ý£¬ - Reg->CFG1 = (7<<28)|(15<<16)|(7<<0); + Reg->CFG1 = (3<<28)|(15<<16)|(7<<0); //SSMÖÃ룬sck¿ÕÏеͣ¬µÚÒ»´ÎʱÖÓÑØ¿ªÊ¼²ÉÑù£¬ÏÈ·¢MSB£¬masterÖ÷ģʽ£¬È«Ë«¹¤ Reg->CFG2 = (1<<26)|(0<<25)|(0<<24)|(0<<23)|(1<<22)|(0<<17); diff --git a/bsp/cpudrv/stm32/h7/src/uart/cpu_peri_uart.c b/bsp/cpudrv/stm32/h7/src/uart/cpu_peri_uart.c index a04abc2a355d0097331ec06fc9334cc077a227b8..e0a2ba3dc4b8a53a9353d0582bd945b2b4e8dc99 100644 --- a/bsp/cpudrv/stm32/h7/src/uart/cpu_peri_uart.c +++ b/bsp/cpudrv/stm32/h7/src/uart/cpu_peri_uart.c @@ -22,33 +22,33 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. //----------------------------------------------------------------------------- -// Copyright (c) 2018������Ȩ�ɶ����߲���ϵͳ��Դ�����Ŷ����С�����Ȩ�˱���һ��Ȩ���� +// Copyright (c) 2018£¬Öø×÷ȨÓɶ¼½­Ñß²Ù×÷ϵͳ¿ªÔ´¿ª·¢ÍŶÓËùÓС£Öø×÷ȨÈ˱£ÁôÒ»ÇÐȨÀû¡£ // -// �����Ȩ�����ʹ���߷������������������£�����ʹ����ʹ�ü���ɢ���� -// �����װԭʼ�뼰����λ��ִ����ʽ��Ȩ�������۴˰�װ�Ƿñ¾­¸ï¿½ï¿½ï¿½ï¿½ï¿½È»ï¿½ï¿½ +// Õâ·ÝÊÚȨÌõ¿î£¬ÔÚʹÓÃÕß·ûºÏÏÂÁÐÌõ¼þµÄÇéÐÎÏ£¬ÊÚÓèʹÓÃÕßʹÓü°ÔÙÉ¢²¥±¾ +// Èí¼þ°üװԭʼÂë¼°¶þ½øÎ»¿ÉÖ´ÐÐÐÎʽµÄȨÀû£¬ÎÞÂ۴˰ü×°ÊÇ·ñ¾­¸Ä×÷½ÔÈ»£º // -// 1. ���ڱ����Դ�������ɢ�������뱣�������İ�Ȩ���桢�������б��� -// ������������������ -// 2. ���ڱ��׼�����λ��ִ����ʽ����ɢ���������������ļ��Լ������������� -// ��ɢ����װ�е�ý�鷽ʽ����������֮��Ȩ���桢�������б��Լ����� -// ������������ - -// ����������������DZ������Ȩ�������Լ�����������״��"as is"���ṩ�� -// �������װ�����κ���ʾ��Ĭʾ֮�������Σ������������ھ��������Լ��ض�Ŀ -// �ĵ�������ΪĬʾ�Ե�������Ȩ�����˼������֮�����ߣ������κ������� -// ���۳�����κ��������塢���۴�����Ϊ���Լ��ϵ���޹�ʧ������������Υ -// Լ֮��Ȩ��������ʧ������ԭ��ȣ����𣬶����κ���ʹ�ñ������װ�������� -// �κ�ֱ���ԡ�����ԡ�ż���ԡ������ԡ��ͷ��Ի��κν�����𺦣����������� -// �������Ʒ������֮���á�ʹ����ʧ��������ʧ��������ʧ��ҵ���жϵȵȣ��� -// �����κ����Σ����ڸ���ʹ���ѻ���ǰ��֪���ܻ���ɴ����𺦵���������Ȼ�� +// 1. ¶ÔÓÚ±¾Èí¼þÔ´´úÂëµÄÔÙÉ¢²¥£¬±ØÐë±£ÁôÉÏÊöµÄ°æÈ¨Ðû¸æ¡¢±¾Ìõ¼þÁÐ±í£¬ÒÔ +// ¼°ÏÂÊöµÄÃâÔðÉùÃ÷¡£ +// 2. ¶ÔÓÚ±¾Ì×¼þ¶þ½øÎ»¿ÉÖ´ÐÐÐÎʽµÄÔÙÉ¢²¥£¬±ØÐëÁ¬´øÒÔÎļþÒÔ¼°£¯»òÕ߯äËû¸½ +// ÓÚÉ¢²¥°ü×°ÖеÄý½é·½Ê½£¬ÖØÖÆÉÏÊöÖ®°æÈ¨Ðû¸æ¡¢±¾Ìõ¼þÁÐ±í£¬ÒÔ¼°ÏÂÊö +// µÄÃâÔðÉùÃ÷¡£ + +// ÃâÔðÉùÃ÷£º±¾Èí¼þÊDZ¾Èí¼þ°æÈ¨³ÖÓÐÈËÒÔ¼°¹±Ï×ÕßÒÔÏÖ×´£¨"as is"£©Ìṩ£¬ +// ±¾Èí¼þ°ü×°²»¸ºÈκÎÃ÷ʾ»òĬʾ֮µ£±£ÔðÈΣ¬°üÀ¨µ«²»ÏÞÓÚ¾ÍÊÊÊÛÐÔÒÔ¼°Ìض¨Ä¿ +// µÄµÄÊÊÓÃÐÔΪĬʾÐÔµ£±£¡£°æÈ¨³ÖÓÐÈ˼°±¾Èí¼þÖ®¹±Ï×Õߣ¬ÎÞÂÛÈκÎÌõ¼þ¡¢ +// ÎÞÂÛ³ÉÒò»òÈκÎÔðÈÎÖ÷Ìå¡¢ÎÞÂÛ´ËÔðÈÎΪÒòºÏÔ¼¹ØÏµ¡¢ÎÞ¹ýʧÔðÈÎÖ÷Ìå»òÒò·ÇÎ¥ +// Ô¼Ö®ÇÖȨ£¨°üÀ¨¹ýʧ»òÆäËûÔ­ÒòµÈ£©¶øÆð£¬¶ÔÓÚÈκÎÒòʹÓñ¾Èí¼þ°ü×°Ëù²úÉúµÄ +// ÈκÎÖ±½ÓÐÔ¡¢¼ä½ÓÐÔ¡¢Å¼·¢ÐÔ¡¢ÌØÊâÐÔ¡¢³Í·£ÐÔ»òÈκνá¹ûµÄË𺦣¨°üÀ¨µ«²»ÏÞ +// ÓÚÌæ´úÉÌÆ·»òÀÍÎñÖ®¹ºÓá¢Ê¹ÓÃËðʧ¡¢×ÊÁÏËðʧ¡¢ÀûÒæËðʧ¡¢ÒµÎñÖжϵȵȣ©£¬ +// ²»¸ºÈκÎÔðÈΣ¬¼´ÔÚ¸ÃÖÖʹÓÃÒÑ»ñÊÂǰ¸æÖª¿ÉÄÜ»áÔì³É´ËÀàË𺦵ÄÇéÐÎÏÂÒàÈ»¡£ //----------------------------------------------------------------------------- // ============================================================================= -// ��� ��cpu_peri_uart.c -// �����: DJYOS����ģ��ĵײ��������֣���Ҫʵ�ּĴ�������IJ��������жϵ� -// ģ��汾: V1.10 -// ������Ա: -// ����ʱ��: +// ÎļþÃû £ºcpu_peri_uart.c +// Ä£¿éÃèÊö: DJYOS´®¿ÚÄ£¿éµÄµ×²ãÇý¶¯²¿·Ö£¬Ö÷ҪʵÏּĴæÆ÷¼¶±ðµÄ²Ù×÷£¬ÈçÖÐ¶ÏµÈ +// Ä£¿é°æ±¾: V1.10 +// ´´½¨ÈËÔ±: +// ´´½¨Ê±¼ä: // ============================================================================= #include "stdint.h" #include "stdio.h" @@ -62,12 +62,12 @@ #include "djyos.h" #include "cpu_peri_uart.h" #include "cpu_peri_int_line.h" -#include "project_config.h" //�����IDE�����ý������ɣ������APP�Ĺ���Ŀ¼�С� - //�����Ǹ����ļ����������ý���Ĭ��ֵ���á� +#include "project_config.h" //±¾ÎļþÓÉIDEÖÐÅäÖýçÃæÉú³É£¬´æ·ÅÔÚAPPµÄ¹¤³ÌĿ¼ÖС£ + //ÔÊÐíÊǸö¿ÕÎļþ£¬ËùÓÐÅäÖý«°´Ä¬ÈÏÖµÅäÖᣠ-//@#$%component configure ****������ÿ�ʼ������ DIDE ��ͼ�λ����ý��� -//****���ÿ���﷨��ʹ�÷������μ�Դ���Ŀ¼�µ��ļ���component_config_readme.txt**** -//%$#@initcode ****��ʼ�����뿪ʼ���� DIDE ɾ����//����copy����ʼ���ļ��� +//@#$%component configure ****×é¼þÅäÖÿªÊ¼£¬ÓÃÓÚ DIDE ÖÐͼÐλ¯ÅäÖýçÃæ +//****ÅäÖÿéµÄÓï·¨ºÍʹÓ÷½·¨£¬²Î¼ûÔ´Âë¸ùĿ¼ÏµÄÎļþ£ºcomponent_config_readme.txt**** +//%$#@initcode ****³õʼ»¯´úÂ뿪ʼ£¬ÓÉ DIDE ɾ³ý¡°//¡±ºócopyµ½³õʼ»¯ÎļþÖÐ // extern ptu32_t ModuleInstall_UART(ptu32_t SerialNo); // // #if CFG_UART1_ENABLE ==1 @@ -101,49 +101,49 @@ // #if CFG_UART8_ENABLE ==1 // ModuleInstall_UART(CN_UART8); // #endif -//%$#@end initcode ****��ʼ��������� - -//%$#@describe ****���������ʼ -//component name:"cpu onchip uart"//CPU��uart�������� -//parent:"uart device file" //��д������ĸ�������֣�none��ʾû�и���� -//attribute:bsp //ѡ�third��system��bsp��user����������������IDE��� -//select:choosable //ѡ�required��choosable��none���������ѡ����Ҫ���ò�������IDE�ü�������Ĭ�Ϲ�ȡ�� - //����ȡ������ѡ�Ҳ���Ҫ���ò����ģ����Dz���ѡ�ģ�IDE�ü������в���ʾ�� -//init time:early //��ʼ��ʱ������ѡֵ��early��medium��later, pre-main�� - //��ʾ��ʼ��ʱ�䣬�ֱ������ڡ����ڡ����� -//dependence:"device file system","lock","uart device file","heap"//������������������������none����ʾ������������� - //ѡ�и����ʱ�������������ǿ��ѡ�У� - //����������������������г����á�,���ָ� -//weakdependence:"none" //��������������������������none����ʾ������������� - //ѡ�и����ʱ��������������ᱻǿ��ѡ�У� - //����������������������г����á�,���ָ� -//mutex:"none" //����������������������none����ʾ�޻���������� - //�������������⣬�������г����á�,���ָ� -//%$#@end describe ****����������� - -//%$#@configue ****�������ÿ�ʼ +//%$#@end initcode ****³õʼ»¯´úÂë½áÊø + +//%$#@describe ****×é¼þÃèÊö¿ªÊ¼ +//component name:"cpu onchip uart"//CPUµÄuartÍâÉèÇý¶¯ +//parent:"uart device file" //Ìîд¸Ã×é¼þµÄ¸¸×é¼þÃû×Ö£¬none±íʾûÓи¸×é¼þ +//attribute:bsp //Ñ¡Ìî¡°third¡¢system¡¢bsp¡¢user¡±£¬±¾ÊôÐÔÓÃÓÚÔÚIDEÖзÖ×é +//select:choosable //Ñ¡Ìî¡°required¡¢choosable¡¢none¡±£¬ÈôÌî±ØÑ¡ÇÒÐèÒªÅäÖòÎÊý£¬ÔòIDE²Ã¼ô½çÃæÖÐĬÈϹ´È¡£¬ + //²»¿ÉÈ¡Ïû£¬±ØÑ¡ÇÒ²»ÐèÒªÅäÖòÎÊýµÄ£¬»òÊDz»¿ÉÑ¡µÄ£¬IDE²Ã¼ô½çÃæÖв»ÏÔʾ£¬ +//init time:early //³õʼ»¯Ê±»ú£¬¿Éѡֵ£ºearly£¬medium£¬later, pre-main¡£ + //±íʾ³õʼ»¯Ê±¼ä£¬·Ö±ðÊÇÔçÆÚ¡¢ÖÐÆÚ¡¢ºóÆÚ +//dependence:"device file system","lock","uart device file","heap"//¸Ã×é¼þµÄÒÀÀµ×é¼þÃû£¨¿ÉÒÔÊÇnone£¬±íʾÎÞÒÀÀµ×é¼þ£©£¬ + //Ñ¡ÖиÃ×é¼þʱ£¬±»ÒÀÀµ×é¼þ½«Ç¿ÖÆÑ¡ÖУ¬ + //Èç¹ûÒÀÀµ¶à¸ö×é¼þ£¬ÔòÒÀ´ÎÁгö£¬Óá°,¡±·Ö¸ô +//weakdependence:"none" //¸Ã×é¼þµÄÈõÒÀÀµ×é¼þÃû£¨¿ÉÒÔÊÇnone£¬±íʾÎÞÒÀÀµ×é¼þ£©£¬ + //Ñ¡ÖиÃ×é¼þʱ£¬±»ÒÀÀµ×é¼þ²»»á±»Ç¿ÖÆÑ¡ÖУ¬ + //Èç¹ûÒÀÀµ¶à¸ö×é¼þ£¬ÔòÒÀ´ÎÁгö£¬Óá°,¡±·Ö¸ô +//mutex:"none" //¸Ã×é¼þµÄ»¥³â×é¼þÃû£¨¿ÉÒÔÊÇnone£¬±íʾÎÞ»¥³â×é¼þ£©£¬ + //Èç¹ûÓë¶à¸ö×é¼þ»¥³â£¬ÔòÒÀ´ÎÁгö£¬Óá°,¡±·Ö¸ô +//%$#@end describe ****×é¼þÃèÊö½áÊø + +//%$#@configue ****²ÎÊýÅäÖÿªÊ¼ #if ( CFG_MODULE_ENABLE_CPU_ONCHIP_UART == false ) -//#warning " cpu_onchip_uart �������δ���ã�ʹ��Ĭ������" -//%$#@target = header //header = ����ͷ�ļ�,cmdline = ���������DJYOS�������� -#define CFG_MODULE_ENABLE_CPU_ONCHIP_UART false //�����ѡ�˱����������DIDE��project_config.h���������ж���Ϊtrue +//#warning " cpu_onchip_uart ×é¼þ²ÎÊýδÅäÖã¬Ê¹ÓÃĬÈÏÅäÖÃ" +//%$#@target = header //header = Éú³ÉÍ·Îļþ,cmdline = ÃüÁîÐбäÁ¿£¬DJYOS×ÔÓÐÄ£¿é½ûÓà +#define CFG_MODULE_ENABLE_CPU_ONCHIP_UART false //Èç¹û¹´Ñ¡Á˱¾×é¼þ£¬½«ÓÉDIDEÔÚproject_config.h»òÃüÁîÐÐÖж¨ÒåΪtrue //%$#@num,32,512, -#define CFG_UART_SENDBUF_LEN 32 //"���ڷ��ͻ��λ�������С", -#define CFG_UART_RECVBUF_LEN 32 //"���ڽ��ջ��λ�������С", +#define CFG_UART_SENDBUF_LEN 32 //"´®¿Ú·¢ËÍ»·Ðλº³åÇø´óС", +#define CFG_UART_RECVBUF_LEN 32 //"´®¿Ú½ÓÊÕ»·Ðλº³åÇø´óС", //%$#@enum,,false,true -#define CFG_UART1_ENABLE true //"�����Ƿ�ʹ��UART1", -#define CFG_UART2_ENABLE false //"�����Ƿ�ʹ��UART2", -#define CFG_UART3_ENABLE false //"�����Ƿ�ʹ��UART3", -#define CFG_UART4_ENABLE false //"�����Ƿ�ʹ��UART4", -#define CFG_UART5_ENABLE false //"�����Ƿ�ʹ��UART5", -#define CFG_UART6_ENABLE false //"�����Ƿ�ʹ��UART6", -#define CFG_UART7_ENABLE false //"�����Ƿ�ʹ��UART7", -#define CFG_UART8_ENABLE false //"�����Ƿ�ʹ��UART8", +#define CFG_UART1_ENABLE true //"ÅäÖÃÊÇ·ñʹÓÃUART1", +#define CFG_UART2_ENABLE false //"ÅäÖÃÊÇ·ñʹÓÃUART2", +#define CFG_UART3_ENABLE false //"ÅäÖÃÊÇ·ñʹÓÃUART3", +#define CFG_UART4_ENABLE false //"ÅäÖÃÊÇ·ñʹÓÃUART4", +#define CFG_UART5_ENABLE false //"ÅäÖÃÊÇ·ñʹÓÃUART5", +#define CFG_UART6_ENABLE false //"ÅäÖÃÊÇ·ñʹÓÃUART6", +#define CFG_UART7_ENABLE false //"ÅäÖÃÊÇ·ñʹÓÃUART7", +#define CFG_UART8_ENABLE false //"ÅäÖÃÊÇ·ñʹÓÃUART8", //%$#@string,1,10, -//%$#select, ***���г���ѡ����ѡ�����ɸ�����ɺ� +//%$#select, ***´ÓÁгöµÄÑ¡ÏîÖÐÑ¡ÔñÈô¸É¸ö¶¨Òå³Éºê //%$#@free, #endif -//%$#@end configue ****�������ý��� +//%$#@end configue ****²ÎÊýÅäÖýáÊø //@#$%component end configure // ============================================================================= @@ -250,11 +250,11 @@ static const tagUartCfg sUartCfg[CN_UART_NUM] = { //#define CFG_UART_SENDBUF_LEN 32 //#define CFG_UART_RECVBUF_LEN 32 -static u32 TxByteTime; //��������һ���ֽ�����Ҫ��ʱ�� -static UART_HandleTypeDef *PutStrDirectH; //����printk���͵Ĵ��� -static UART_HandleTypeDef *GetCharDirectH; //����ֱ�ӽ��յĴ��� -static u32 TxDirectPort; //����printk���͵Ĵ��ں� -static u32 RxDirectPort; //����ֱ�ӽ��յĴ��ں� +static u32 TxByteTime; //Õý³£·¢ËÍÒ»¸ö×Ö½ÚËùÐèÒªµÄʱ¼ä +static UART_HandleTypeDef *PutStrDirectH; //ÓÃÓÚprintk·¢Ë͵Ĵ®¿Ú +static UART_HandleTypeDef *GetCharDirectH; //ÓÃÓÚÖ±½Ó½ÓÊյĴ®¿Ú +static u32 TxDirectPort; //ÓÃÓÚprintk·¢Ë͵Ĵ®¿ÚºÅ +static u32 RxDirectPort; //ÓÃÓÚÖ±½Ó½ÓÊյĴ®¿ÚºÅ // ============================================================================= static struct UartGeneralCB *pUartCB[CN_UART_NUM]; @@ -298,8 +298,8 @@ static void __UART_RCC_Enable(u8 port,u8 en) if(en) { switch(port) - {//ʹ�ܴ���1ʱ�� - case CN_UART1: __HAL_RCC_USART1_CLK_ENABLE(); break; //ʹ�ܴ���1ʱ�� + {//ʹÄÜ´®¿Ú1ʱÖÓ + case CN_UART1: __HAL_RCC_USART1_CLK_ENABLE(); break; //ʹÄÜ´®¿Ú1ʱÖÓ case CN_UART2: __HAL_RCC_USART2_CLK_ENABLE(); break; case CN_UART3: __HAL_RCC_USART3_CLK_ENABLE(); break; case CN_UART4: __HAL_RCC_UART4_CLK_ENABLE(); break; @@ -330,12 +330,12 @@ static void __UART_RCC_Enable(u8 port,u8 en) } } // ============================================================================= -// ����: ����baud,PCLKΪ25M��CPU��ƵΪ216M����,������ֻ�ṩ9600��19200��57600�� -// 115200���ֲ��������� -// ����: Reg,�������ļĴ�����ָ�� -// port,���ں� -// baud,������ -// ����: �� +// ¹¦ÄÜ: ÉèÖô®¿Úbaud,PCLKΪ25M£¬CPUÖ÷ƵΪ216M¼ÆËã,¸ÃÇý¶¯Ö»Ìṩ9600¡¢19200¡¢57600¡¢ +// 115200ËÄÖÖ²¨ÌØÂÊÉèÖà +// ²ÎÊý: Reg,±»²Ù×÷µÄ¼Ä´æÆ÷×éÖ¸Õë +// port,´®¿ÚºÅ +// baud,²¨ÌØÂÊ +// ·µ»Ø: ÎÞ // ============================================================================= static void __UART_BaudSet(u32 port,u32 baud) { @@ -348,7 +348,7 @@ static void __UART_BaudSet(u32 port,u32 baud) } if(TxDirectPort == port) { - TxByteTime = 11000000/baud; //1���ֽڴ���ʱ�䣬��10bit��+10%���� + TxByteTime = 11000000/baud; //1¸ö×Ö½Ú´«Êäʱ¼ä£¬°´10bit£¬+10%¼ÆËã } } @@ -365,10 +365,10 @@ static void __UART_Stop(u8 port) } // ============================================================================= -// ����: �йش��ڲ����ij�ʼ���������ʣ�ֹͣλ����żУ��λ -// ������port,���ں� -// data������ -// ����: �� +// ¹¦ÄÜ: Óйش®¿Ú²ÎÊýµÄ³õʼ»¯£¬²¨ÌØÂÊ£¬Í£Ö¹Î»£¬ÆæÅ¼Ð£Ñéλ +// ²ÎÊý£ºport,´®¿ÚºÅ +// data£¬²ÎÊý +// ·µ»Ø: ÎÞ // ============================================================================= static void __UART_ComConfig(u32 port, struct COMParam *COM) { @@ -405,9 +405,9 @@ static void __UART_ComConfig(u32 port, struct COMParam *COM) // ============================================================================= -// ����: ��ʼ��UART��Ӧ���ж��ߣ�����ʼ���ж���ں��� -// ������SerialNo,���ں� -// ����: �� +// ¹¦ÄÜ: ³õʼ»¯UART¶ÔÓ¦µÄÖжÏÏߣ¬²¢³õʼ»¯ÖжÏÈë¿Úº¯Êý +// ²ÎÊý£ºSerialNo,´®¿ÚºÅ +// ·µ»Ø: ÎÞ // ============================================================================= static void __UART_IntInit(u32 port) { @@ -436,10 +436,10 @@ void HAL_UART_MspInit(UART_HandleTypeDef *huart) } // ============================================================================= -// ����: Ӳ���������úͼĴ����ij�ʼ�������������ʡ�ֹͣλ��У��λ������λ��Ĭ�������: -// ������:115200 �� ֹͣλ:1 ; ��:�� ; ����λ:8bit -// ����: SerialNo,���ںţ�0~3 -// ����: �� +// ¹¦ÄÜ: Ó²¼þ²ÎÊýÅäÖúͼĴæÆ÷µÄ³õʼ»¯£¬°üÀ¨²¨ÌØÂÊ¡¢Í£Ö¹Î»¡¢Ð£Ñéλ¡¢Êý¾Ýλ£¬Ä¬ÈÏÇé¿öÏÂ: +// ²¨ÌØÂÊ:115200 £» ֹͣλ:1 ; УÑé:ÎÞ ; Êý¾Ýλ:8bit +// ²ÎÊý: SerialNo,´®¿ÚºÅ£¬0~3 +// ·µ»Ø: ÎÞ // ============================================================================= static void __UART_HardInit(u8 port) { @@ -464,9 +464,9 @@ static void __UART_HardInit(u8 port) } // ============================================================================= -// ����: �������ڷ��ͣ��������������ʹ��DMA��ʹ��DMA -// ����: Reg,�������Ĵ��ڼĴ���ָ��. -// ����: ���͵ĸ��� +// ¹¦ÄÜ: Æô¶¯´®¿Ú·¢ËÍ£¬°üÀ¨Á½ÖÖÇé¿ö£¬Ê¹ÓÃDMA»ò²»Ê¹ÓÃDMA +// ²ÎÊý: Reg,±»²Ù×÷µÄ´®¿Ú¼Ä´æÆ÷Ö¸Õë. +// ·µ»Ø: ·¢Ë͵ĸöÊý // ============================================================================= static u32 __UART_SendStart (u16 port) { @@ -503,10 +503,10 @@ static u32 __UART_SendStart (u16 port) } // ============================================================================= -// ���ܣ������Ƿ�ʹ��DMA���䣬 -// ������port��ʹ�õĴ��ں� -// enable,1 or 0,ʹ�ܻ���� -// ���أ��� +// ¹¦ÄÜ£ºÅäÖÃÊÇ·ñʹÓÃDMA´«Ê䣬 +// ²ÎÊý£ºport£¬Ê¹ÓõĴ®¿ÚºÅ +// enable,1 or 0,ʹÄÜ»ò½ûÄÜ +// ·µ»Ø£ºÎÞ // ============================================================================= void __UART_SetDmaUsed(u8 port,u8 enable) { @@ -604,11 +604,11 @@ void __UART_SetDmaUsed(u8 port,u8 enable) __UART_StartRecv(port); } // ============================================================================= -// ����: �����豸�Ŀ��ƺ���,������Ӳ���Ĵ���������� -// ����: Reg,�������Ĵ��ڼĴ���ָ��. -// cmd,�������� -// data1,data2,������cmd���� -// ����: ������. +// ¹¦ÄÜ: ´®¿ÚÉ豸µÄ¿ØÖƺ¯Êý,Óë¾ßÌåµÄÓ²¼þ¼Ä´æÆ÷ÉèÖÃÏà¹Ø +// ²ÎÊý: Reg,±»²Ù×÷µÄ´®¿Ú¼Ä´æÆ÷Ö¸Õë. +// cmd,²Ù×÷ÀàÐÍ +// data1,data2,º¬ÒåÒÀcmd¶ø¶¨ +// ·µ»Ø: ÎÞÒâÒå. // ============================================================================= static ptu32_t __UART_Ctrl(u32 port,u32 cmd, va_list *arg0) { @@ -654,10 +654,10 @@ static ptu32_t __UART_Ctrl(u32 port,u32 cmd, va_list *arg0) } // ============================================================================= -// ���ܣ�������ɻص���������HAL�жϺ������ã���DMA�жϵ��ô˺������ɱ�Ȼ�����õĴ��ͳ��� -// ��ɣ���������ɣ������÷���ING���Ϊfalse -// ������huart��HAL�ṩ��UARTHandler -// ���أ��� +// ¹¦ÄÜ£º·¢ËÍÍê³É»Øµ÷º¯Êý£¬ÓÉHALÖжϺ¯Êýµ÷Óã¬ÈôDMAÖжϵ÷Óô˺¯Êý£¬ÓɱØÈ»ÊÇÅäÖõĴ«Ëͳ¤¶È +// Íê³É£¬Èô´«ËÍÍê³É£¬ÐèÅäÖ÷¢ËÍING±ê¼ÇΪfalse +// ²ÎÊý£ºhuart£¬HALÌṩµÄUARTHandler +// ·µ»Ø£ºÎÞ // ============================================================================= void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { @@ -686,10 +686,10 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) } // ============================================================================= -// ���ܣ�������ɻص�����������DMA������ɣ���HAL�жϺ������ã���DMA�жϵ��ô˺������ɱ�Ȼ -// �����õĴ��ͳ�����ɣ�����������е�num == UART_RxBufLen -// ������huart��HAL�ṩ��UARTHandler -// ���أ��� +// ¹¦ÄÜ£º½ÓÊÕÍê³É»Øµ÷º¯Êý£¬°üÀ¨DMA½ÓÊÕÍê³É£¬ÓÉHALÖжϺ¯Êýµ÷Óã¬ÈôDMAÖжϵ÷Óô˺¯Êý£¬ÓɱØÈ» +// ÊÇÅäÖõĴ«Ëͳ¤¶ÈÍê³É£¬¼´ÏÂÃæ´úÂëÖеÄnum == UART_RxBufLen +// ²ÎÊý£ºhuart£¬HALÌṩµÄUARTHandler +// ·µ»Ø£ºÎÞ // ============================================================================= void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { @@ -724,7 +724,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) } } -void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)//�봫���ж� +void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)//°ë´«ÊäÖÐ¶Ï { u8 port,num; u8 *src; @@ -757,9 +757,9 @@ void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)//�봫���ж } } // ============================================================================= -// ���ܣ���������ص����������緢����żУ�����Ӳ�������HAL����ô˺��� -// ������huart��HAL�ṩ��UARTHandler -// ���أ��� +// ¹¦ÄÜ£º·¢Éú´íÎ󻨵÷º¯Êý£¬ÀýÈç·¢ÉúÆæÅ¼Ð£Ñé´íÎó¡¢Ó²¼þ´íÎóµÈHAL»áµ÷Óô˺¯Êý +// ²ÎÊý£ºhuart£¬HALÌṩµÄUARTHandler +// ·µ»Ø£ºÎÞ // ============================================================================= void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { @@ -776,10 +776,10 @@ void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) } } // ============================================================================= -// ���ܣ�UART�ж�,��Ϊidle�жϣ����DMA�������ж������ݣ�����������DMA���������HAL�ж� -// �����������ջ���õ�HAL_UART_XXXXCallback���� -// ���������ں� -// ���أ�1=�ɹ���0=ʧ�� +// ¹¦ÄÜ£ºUARTÖжÏ,ÈôΪidleÖжϣ¬Ôò´ÓDMA»º³åÇøÖжÁ³öÊý¾Ý£¬²¢ÖØÐÂÆô¶¯DMA£¬·ñÔòµ÷ÓÃHALÖÐ¶Ï +// ´¦Àíº¯Êý£¬×îÖÕ»áµ÷Óõ½HAL_UART_XXXXCallback£¨£© +// ²ÎÊý£º´®¿ÚºÅ +// ·µ»Ø£º1=³É¹¦£¬0=ʧ°Ü // ============================================================================= u32 UART_ISR(ptu32_t port) { @@ -813,13 +813,13 @@ u32 UART_ISR(ptu32_t port) } // ============================================================================= -// ���ܣ���ʼ��uart1�,��װ�ش����豸�������uart.c��API�������ú�����Ҫ��ɵĹ��� -// ���£� -// 1.��ʼ�����ڵ�Ӳ�����֣���GPIO���жϡ��������õ�COM����������baud = 115200 -// stop bits = 1,����żУ��, data bits = 8 -// 2.����uart.c��API����UART_InstallPort��װ�봮���豸 -// ���������ںţ�0~3 -// ���أ�1=�ɹ���0=ʧ�� +// ¹¦ÄÜ£º³õʼ»¯uart1Ä£¿é,²¢×°ÔØ´®¿ÚÉ豸£¬»áµ÷ÓÃuart.cµÄAPIº¯Êý¡£¸Ãº¯ÊýÖ÷ÒªÍê³ÉµÄ¹¦ÄÜ +// ÈçÏ£º +// 1.³õʼ»¯´®¿ÚµÄÓ²¼þ²¿·Ö£¬ÈçGPIO¡¢Öжϡ¢ÅäÖÃÅäÖõÄCOM²ÎÊý£¬ÅäÖÃbaud = 115200 +// stop bits = 1,ÎÞÆæÅ¼Ð£Ñé, data bits = 8 +// 2.µ÷ÓÃuart.cµÄAPIº¯ÊýUART_InstallPort£¬×°Èë´®¿ÚÉ豸 +// ²ÎÊý£º´®¿ÚºÅ£¬0~3 +// ·µ»Ø£º1=³É¹¦£¬0=ʧ°Ü // ============================================================================= ptu32_t ModuleInstall_UART(u32 port) { @@ -842,7 +842,7 @@ ptu32_t ModuleInstall_UART(u32 port) if( ( pUartCB[port] != NULL) && (pUartSndBuf[port] != NULL) ) { pUartRcvBuf[port] = pUartSndBuf[port] + CFG_UART_SENDBUF_LEN; - __UART_HardInit(port); //Ӳ����ʼ�� + __UART_HardInit(port); //Ó²¼þ³õʼ»¯ __UART_IntInit(port); return true; } @@ -850,11 +850,11 @@ ptu32_t ModuleInstall_UART(u32 port) } // ============================================================================= -// ���ܣ��ַ��ն�ֱ�ӷ��ͺ�����������ѯ��ʽ��ֱ��д�Ĵ���������printk������stdout -// û�г�ʼ�� -// ������str�������ַ���ָ�� -// len�����͵��ֽ��� -// ���أ�0����������result,�������ݳ��ȣ��ֽڵ�λ +// ¹¦ÄÜ£º×Ö·ûÖÕ¶ËÖ±½Ó·¢Ëͺ¯Êý£¬²ÉÓÃÂÖѯ·½Ê½£¬Ö±½Óд¼Ä´æÆ÷£¬ÓÃÓÚprintk£¬»òÕßstdout +// ûÓгõʼ»¯ +// ²ÎÊý£ºstr£¬·¢ËÍ×Ö·û´®Ö¸Õë +// len£¬·¢Ë͵Ä×Ö½ÚÊý +// ·µ»Ø£º0£¬·¢Éú´íÎó£»result,·¢ËÍÊý¾Ý³¤¶È£¬×Ö½Úµ¥Î» // ============================================================================= s32 Uart_PutStrDirect(const char *str,u32 len) { @@ -870,10 +870,10 @@ s32 Uart_PutStrDirect(const char *str,u32 len) } // ============================================================================= -// ���ܣ��ַ��ն�ֱ�ӽ��պ�����������ѯ��ʽ��ֱ�Ӷ��Ĵ���������stdin��ʼ��ǰ -// ������str�������ַ���ָ�� -// len�����͵��ֽ��� -// ���أ�0����������result,�������ݳ��ȣ��ֽڵ�λ +// ¹¦ÄÜ£º×Ö·ûÖÕ¶ËÖ±½Ó½ÓÊÕº¯Êý£¬²ÉÓÃÂÖѯ·½Ê½£¬Ö±½Ó¶Á¼Ä´æÆ÷£¬ÓÃÓÚstdin³õʼ»¯Ç° +// ²ÎÊý£ºstr£¬·¢ËÍ×Ö·û´®Ö¸Õë +// len£¬·¢Ë͵Ä×Ö½ÚÊý +// ·µ»Ø£º0£¬·¢Éú´íÎó£»result,·¢ËÍÊý¾Ý³¤¶È£¬×Ö½Úµ¥Î» // ============================================================================= char Uart_GetCharDirect(void) { @@ -885,10 +885,10 @@ char Uart_GetCharDirect(void) return result; } -//----��ʼ���ں˼�IO----------------------------------------------------------- -//���ܣ���ʼ���ں˼��������������runtime����ָ�롣 -//�������� -//���أ��� +//----³õʼ»¯Äں˼¶IO----------------------------------------------------------- +//¹¦ÄÜ£º³õʼ»¯Äں˼¶ÊäÈëºÍÊä³öËùÐèµÄruntimeº¯ÊýÖ¸Õë¡£ +//²ÎÊý£ºÎÞ +//·µ»Ø£ºÎÞ //----------------------------------------------------------------------------- void Stdio_KnlInOutInit(char * StdioIn, char *StdioOut) { @@ -932,7 +932,7 @@ void Stdio_KnlInOutInit(char * StdioIn, char *StdioOut) { // PutStrDirectH = &sHuart[TxDirectPort]; __UART_HardInit(TxDirectPort); - TxByteTime = 95; //��ʼ��Ĭ��115200������һ��byte��87uS,+10%���� + TxByteTime = 95; //³õʼ»¯Ä¬ÈÏ115200£¬·¢ËÍÒ»¸öbyteÊÇ87uS,+10%ÈÝÏÞ PutStrDirect = Uart_PutStrDirect; } diff --git a/bsp/cpudrv/stm32/src/cpu_peri_hal.c b/bsp/cpudrv/stm32/src/cpu_peri_hal.c index 373ddd5750aa9f33a9b3eae760fccc7fb49bf219..bc9f6b0953bce10ebe51e49836a6c871b5be6db0 100644 --- a/bsp/cpudrv/stm32/src/cpu_peri_hal.c +++ b/bsp/cpudrv/stm32/src/cpu_peri_hal.c @@ -70,7 +70,7 @@ //HAL_RCC»áÓõ½SystemCoreClock£¬ÒòΪDJYOSʹÓÃ×Ô¼ºµÄʱÖÓ³õʼ»¯¹ý³Ì£¬Óû§Ê¹ÓÃhal¿âʱ£¬ //¾Í»áûÓж¨Ò壬Òò´ËÐè´Ë´¦¶¨ÒåºÍ¸³Öµ //ÀýÈçETHÍøÂçÇý¶¯ÖУ¬stm32f7xx_hal_eth.cÖлáµ÷Óà -//uint32_t SystemCoreClock = CN_CFG_MCLK; //HAL_RCC»áÓõ½´ËÁ¿ +// uint32_t SystemCoreClock = CN_CFG_MCLK; //HAL_RCC»áÓõ½´ËÁ¿ #if(CFG_STM32_HAL_TIMER == 1) TIM_TypeDef* const STM32_HAL_TIMER = TIM1; diff --git a/component/charset/cyril/cyril.c b/component/charset/cyril/cyril.c index c6ab8f11a206dd77cc31734cfadc4895af21b46d..c6bb9edcae5d67a464b3edebec0efbe5d313d835 100644 --- a/component/charset/cyril/cyril.c +++ b/component/charset/cyril/cyril.c @@ -217,13 +217,13 @@ void module_init_encode_cyril(ptu32_t para) } //----µãÕóÌáÈ¡----------------------------------------------------------------- -//¹¦ÄÜ: ÌáÈ¡cyril n*16µãÕó×ÖÌ壬Èç¹ûcharcode³¬³ö0~0xffµÄ·¶Î§£¬ÏÔʾ±àÂëΪ0x00µÄ×Ö +//¹¦ÄÜ: ÌáÈ¡cyril n*16µãÕó£¬Èç¹ûcharcode³¬³ö0~0xffµÄ·¶Î§£¬ÏÔʾ±àÂëΪ0x00µÄ×Ö // ·û£¬ascii°üº¬À©Õ¹µÄasciiÂë //²ÎÊý: charcode£¬´ýÏÔʾµÄcyrilÂëµÃucs4±àÂë // size£¬ÎÞЧ // resv£¬ÎÞЧ // bitmap£¬±£´æËùÌáÈ¡µÄµãÕóµÄλͼ£¬»º³åÇøÓɵ÷ÓÃÕßÌṩ -//·µ»Ø: true=Õý³££¬false=charcode²»ÊǸÃ×ÖÌåËùÖ§³ÖµÄ×Ö·û¼¯·¶Î§£¬µ«´ËʱÈÔÈ»·µ»Ø +//·µ»Ø: true=Õý³££¬false=charcode²»ÊǸÃËùÖ§³ÖµÄ×Ö·û¼¯·¶Î§£¬µ«´ËʱÈÔÈ»·µ»Ø // ĬÈÏ×Ö·ûµÄµãÕó //----------------------------------------------------------------------------- bool_t __cyril16_get_char_bitmap(u32 charcode, u32 size,u32 resv, diff --git a/component/charset/gb2312/gb2312.c b/component/charset/gb2312/gb2312.c index c61224534b2e98d7ce29145f94731e0e58bd25f7..5c55edcbcbac178fcd9d3dc57483aa07f48621af 100644 --- a/component/charset/gb2312/gb2312.c +++ b/component/charset/gb2312/gb2312.c @@ -2764,11 +2764,11 @@ s32 Gb2312_Ucs4ToMb (char* mb, u32 wc) used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); used = (used & 0x00ff) + (used >> 8); c = gb2312_2charset[summary->indx + used]+0x8080; -#if CN_CFG_BYTE_ORDER == CN_CFG_LITTLE_ENDIAN +//#if CN_CFG_BYTE_ORDER == CN_CFG_LITTLE_ENDIAN mb[0] = (c >> 8) ; mb[1] = (c & 0xff); -#else - mb[1] = (c >> 8) ; mb[0] = (c & 0xff); -#endif +//#else +// mb[1] = (c >> 8) ; mb[0] = (c & 0xff); +//#endif return 2; } } diff --git a/component/font/dotfont-gb2312/dot-gb2312.c b/component/font/dotfont-gb2312/dot-gb2312.c index 110246adfe6d665cc912af20e8e53a31d352e599..9695178836646eddf5eee9c8aeda733d14d8c278 100644 --- a/component/font/dotfont-gb2312/dot-gb2312.c +++ b/component/font/dotfont-gb2312/dot-gb2312.c @@ -447,7 +447,7 @@ bool_t __Font_Gb2312_16GetCharBitMapSong(u32 charcode, u32 size,u32 resv, } }else { - offset = (94*(gbcode[1]-0xa1) + gbcode[0] - 0xa1)*FONT_HZ16_GLYPH_BYTES; + offset = (94*(gbcode[0]-0xa1) + gbcode[1] - 0xa1)*FONT_HZ16_GLYPH_BYTES; bitmap->width = FONT_HZ16_W; bitmap->height = FONT_HZ16_H; bitmap->linebytes = (FONT_HZ16_W+7)/8; diff --git a/component/gui/gdd/gdd_message.c b/component/gui/gdd/gdd_message.c index b0cf8ffa97fa1d726715da80ae0c25b6e957473a..4873b6da10c67059b03b280cbe43060ce1b77363 100644 --- a/component/gui/gdd/gdd_message.c +++ b/component/gui/gdd/gdd_message.c @@ -202,7 +202,7 @@ ErrorExit: } //´ÓÏûÏ¢¶ÓÁÐÖÐɾ³ýÖ¸¶¨¾ä±úµÄËùÓÐÏûÏ¢¡£ -void __GUI_DeleteMsg(HWND hwnd) +void __GUI_DeleteMsg(HWND hwnd) { struct MsgList *currentmsg; struct MsgList *premsg,*freemsg; @@ -211,6 +211,8 @@ void __GUI_DeleteMsg(HWND hwnd) { premsg = pMsgQ->post_first; currentmsg = premsg; + if(currentmsg == NULL) + currentmsg = NULL; while(currentmsg != NULL) { if(currentmsg->Msg.hwnd != hwnd) //²»ÊÍ·ÅÏûÏ¢ @@ -656,11 +658,11 @@ bool_t GDD_PostMessage(HWND hwnd,u32 msg,u32 param1,ptu32_t param2) if(__GDD_Lock()) { - if(hwnd->pGkWin == NULL) //ÎÞgkwinµÄ¾ä±ú£¬Ò»¶¨ÊÇÎÞЧµÄ¡£ +/* if(hwnd->pGkWin == NULL) //ÎÞgkwinµÄ¾ä±ú£¬Ò»¶¨ÊÇÎÞЧµÄ¡£ { __GDD_Unlock(); return false; - } + }*/ pMsgQ =__GDD_GetWindowMsgQ(hwnd); if(NULL!=pMsgQ) { @@ -934,7 +936,6 @@ bool_t GDD_GetMessage(struct WindowMsg *pMsg,HWND hwnd,bool_t *SyncMsg) //µÈ´ý£¬Ö±µ½ÓÐÏûÏ¢½øÈë¶ÓÁÐ Lock_SempPend(pMsgQ->sem_msg,CN_TIMEOUT_FOREVER); } - } } } diff --git a/component/gui/gdd/gdd_window.c b/component/gui/gdd/gdd_window.c index 11a5758ea60fff4926ae3751de6382b85c866e3b..fcda29031bb49d9bc81fcfc0161b8c2f9866b565 100644 --- a/component/gui/gdd/gdd_window.c +++ b/component/gui/gdd/gdd_window.c @@ -643,6 +643,12 @@ void GDD_SetWindowName(HWND hwnd, char *NewName) __GDD_DrawWinCaption(hwnd); return ; } +// //È¡´°¿ÚÃû×Ö +// char *GDD_GetWindowName(HWND hwnd) +// { +// char* name=GK_GetName(hwnd->pGkWin); +// return name; +// } //----³õʼ»¯´°¿ÚÊý¾Ý½á¹¹--------------------------------------------------------- //ÃèÊö: ¸Ãº¯ÊýΪÄÚ²¿µ÷ÓÃ. @@ -726,7 +732,8 @@ bool_t GDD_DesktopPaint(struct WindowMsg *pMsg) return false; GDD_GetClientRect(hwnd,&rc); - GDD_GradientFillRect(hdc,&rc,RGB(120,120,255),RGB(20,20,80),CN_FILLRECT_MODE_UD); + GDD_FillRectEx(hdc,&rc,RGB(1,1,1)); + //GDD_GradientFillRect(hdc,&rc,RGB(120,120,255),RGB(20,20,80),CN_FILLRECT_MODE_N); GDD_EndPaint(hwnd,hdc); return true; @@ -1089,27 +1096,56 @@ void __GDD_DeleteMainWindowData(HWND hwnd) } -//----Ïú»ÙÒ»¸ö´°¿Ú-------------------------------------------------------------- -//ÃèÊö: ¿ÉÒÔÊÇÖ÷´°¿ÚºÍ×Ó´°¿Ú,ͨ¹ý¸ø´°¿Ú·¢ËÍcloseÏûÏ¢À´ÊµÏÖ¡£close´¦Àíʱ£¬½«Í¬Ê± -// Ïú»Ùºó´ú´°¿Ú¡£ -//²ÎÊý£ºhwnd:ÐèÒªÏú»ÙµÄ´°¿Ú¾ä±ú -//·µ»Ø£ºÎÞ. -//------------------------------------------------------------------------------ -void GDD_DestroyWindow(HWND hwnd) +////----Ïú»ÙÒ»¸ö´°¿Ú-------------------------------------------------------------- +////ÃèÊö: ¿ÉÒÔÊÇÖ÷´°¿ÚºÍ×Ó´°¿Ú,ͨ¹ý¸ø´°¿Ú·¢ËÍcloseÏûÏ¢À´ÊµÏÖ¡£close´¦Àíʱ£¬½«Í¬Ê± +//// Ïú»Ùºó´ú´°¿Ú¡£ +////²ÎÊý£ºhwnd:ÐèÒªÏú»ÙµÄ´°¿Ú¾ä±ú +////·µ»Ø£ºÎÞ. +////------------------------------------------------------------------------------ +//void GDD_DestroyWindow(HWND hwnd) +//{ +// HWND parent; +// parent = GDD_GetWindowParent(hwnd); +// hwnd->Text = NULL; //ËüÖ¸ÏòGKµÄ´°¿ÚÃû£¬ÏÂÒ»ÐÐGK½«±»ÊÍ·Å +// GK_DestroyWin(hwnd->pGkWin); +// if(GDD_PostMessage(hwnd, MSG_CLOSE, 0, 0)) +// { +// hwnd->pGkWin = NULL; +// //Ö´ÐÐ MSG_CLOSE ÏûÏ¢ºó£¬hwnd½«±»ÊÍ·Å£¬´Ëºó½«ÎÞ·¨Ö´ÐÐÏÔʾˢвÙ×÷£¬¹ÊÐèÒª¸ø +// //¸¸´°¿Ú·¢Ò»¸öË¢ÐÂÏûÏ¢¡£ +// GDD_SyncShow(parent); +// } +//} +void GDD_DestroyWindow(HWND hwnd) { + HWND Current = hwnd; HWND parent; parent = GDD_GetWindowParent(hwnd); - hwnd->Text = NULL; //ËüÖ¸ÏòGKµÄ´°¿ÚÃû£¬ÏÂÒ»ÐÐGK½«±»ÊÍ·Å - GK_DestroyWin(hwnd->pGkWin); - hwnd->pGkWin = NULL; - if(GDD_PostMessage(hwnd, MSG_CLOSE, 0, 0)) + + if(__GDD_Lock()) { - //Ö´ÐÐ MSG_CLOSE ÏûÏ¢ºó£¬hwnd½«±»ÊÍ·Å£¬´Ëºó½«ÎÞ·¨Ö´ÐÐÏÔʾˢвÙ×÷£¬¹ÊÐèÒª¸ø - //¸¸´°¿Ú·¢Ò»¸öË¢ÐÂÏûÏ¢¡£ + Current = (HWND)GK_GetUserTag(GK_GetTwig(hwnd->pGkWin)); + while(Current != NULL) + { +// GDD_SetWindowHide(Current); //MSG_CLOSEÏûÏ¢ÊÇ×îºó´¦ÀíµÄ£¬ÏÈÒþ²Ø´°¿Ú +// temphwnd = (HWND)GK_GetUserTag(GK_TraveChild(hwnd->pGkWin,Current->pGkWin)); + Current->Text = NULL; //ËüÖ¸ÏòGKµÄ´°¿ÚÃû£¬ÏÂÒ»ÐÐGK½«±»ÊÍ·Å + GK_DestroyWin(Current->pGkWin); + Current->pGkWin = NULL; + GDD_PostMessage(Current, MSG_CLOSE, 0, 0); + Current = (HWND)GK_GetUserTag(GK_GetTwig(hwnd->pGkWin)); + } + hwnd->Text = NULL; //ËüÖ¸ÏòGKµÄ´°¿ÚÃû£¬ÏÂÒ»ÐÐGK½«±»ÊÍ·Å + GK_DestroyWin(hwnd->pGkWin); + hwnd->pGkWin = NULL; + GDD_PostMessage(hwnd, MSG_CLOSE, 0, 0); + GDD_SyncShow(parent); + __GDD_Unlock(); } +// GDD_PostMessage(hwnd, MSG_SYNC_DISPLAY,0,0); + return ; } - //----Ïú»ÙÈ«²¿×Ó´°¿Ú----------------------------------------------------------- //ÃèÊö: ³ýhwnd´°¿Ú±¾Éí²»Ïú»ÙÍ⣬ÆäÓàͬDestroyWindow //²ÎÊý£ºhwnd:ÐèÒªÏú»ÙµÄ´°¿Ú¾ä±ú @@ -1129,7 +1165,12 @@ void GDD_DestroyAllChild(HWND hwnd) GK_DestroyWin(Current->pGkWin); Current->pGkWin = NULL; GDD_PostMessage(Current, MSG_CLOSE, 0, 0); - Current = (HWND)GK_GetUserTag(GK_TraveChild(hwnd->pGkWin,Current->pGkWin)); + Current = (HWND)GK_GetUserTag(GK_GetTwig(hwnd->pGkWin)); + // Current->Text = NULL; //ËüÖ¸ÏòGKµÄ´°¿ÚÃû£¬ÏÂÒ»ÐÐGK½«±»ÊÍ·Å + // GK_DestroyWin(Current->pGkWin); + // Current->pGkWin = NULL; + // GDD_PostMessage(Current, MSG_CLOSE, 0, 0); + // Current = (HWND)GK_GetUserTag(GK_TraveChild(hwnd->pGkWin,Current->pGkWin)); } GDD_SyncShow(hwnd); __GDD_Unlock(); @@ -1200,7 +1241,14 @@ bool_t GDD_IsWindowVisible(HWND hwnd) // } return res; } - +bool_t GDD_IsWindowExist(HWND hwnd) +{ + if(hwnd->pGkWin==NULL) + { + return false; + } + return true; +} //----ÉèÖô°¿ÚΪÎÞЧ------------------------------------------------------------- //ÃèÊö: ÂÔ //²ÎÊý£ºhwnd:´°¿Ú¾ä±ú. @@ -1610,46 +1658,47 @@ static ptu32_t __GDD_DefWindowProcCLOSE(struct WindowMsg *pMsg) // if(__GDD_Lock()) // { hwnd = pMsg->hwnd; + GDD_SetFocusWindow( GDD_GetDesktopWindow(NULL)); //²éÕÒ±»É¾³ý´°¿ÚÊÇ·ñfocus´°¿ÚµÄ׿ÏÈ´°¿Ú£¬ÈçÊÇ£¬ÔòÐèÒª×ªÒÆfocus´°¿Ú //´Ó±»É¾´°¿ÚµÄÐֵܴ°¿ÚÖÐÕÒµ½Ò»¸öÔÊÐífocusµÄ´°¿Ú£¬ÉèΪеÄfocus´°¿Ú¡£ //Èô»¹ÊÇûÓÐÕÒµ½£¬Ôò¿´¸¸´°¿ÚÊÇ·ñÔÊÐífocus£¬ÔÊÐíÔòÉèΪfocus´°¿Ú¡£ //·ñÔòÒÔ desktop Ϊ focus ´°¿Ú - if(GDD_IsFocusAncestor(hwnd)) - { - next = GDD_GetWindowNext(hwnd); - while(next != hwnd) - { - if( GDD_IsFocusEnable(next) ) - { - GDD_SetFocusWindow(next); - break; - } - else - next = GDD_GetWindowNext(hwnd); - } - if(next == hwnd) - { - if(GDD_IsFocusEnable(GDD_GetWindowParent(next))) - { - GDD_SetFocusWindow(GDD_GetWindowParent(next)); - } - else - { - GDD_SetFocusWindow(GDD_GetDesktopWindow(NULL )); - } - } - } - Current = __GDD_GetWindowTwig(hwnd); - while(Current != NULL) - { - //Ä©ÉÒ´°¿ÚÖ±½Óµ÷ÓÃÏûÏ¢´¦Àíº¯Êý£¬±ØÐëµ÷ÓÃWinMsgProcº¯Êý·½Ê½ÊµÏÖ£¬ÕâÑù - //²ÅÄÜÕýÈ·µ÷ÓÃÓû§¶¨ÒåµÄÏûÏ¢´¦Àíº¯Êý£¬²¢ÇÒÕýÈ·´¦ÀíÏûÏ¢´¦Àíº¯ÊýµÄ¼Ì³Ð - //¹ØÏµ¡£ - //ÕâÀォÒýÆðµÝ¹é£¬µ«µÝ¹éÉî¶ÈÖ»ÓÐ1¼¶£¬ÒòΪ twig ²»»áÔÙÓÐ×Ó´°¿ÚÁË¡£ - __GDD_InitMsg(&SubMsg, Current, MSG_CLOSE, 0, (ptu32_t)Current->PrivateData); - __GDD_WinMsgProc(&SubMsg); - Current = __GDD_GetWindowTwig(hwnd); - } +// if(GDD_IsFocusAncestor(hwnd)) +// { +// next = GDD_GetWindowNext(hwnd); +// while(next != hwnd) +// { +// if( GDD_IsFocusEnable(next) ) +// { +// GDD_SetFocusWindow(next); +// break; +// } +// else +// next = GDD_GetWindowNext(hwnd); +// } +// if(next == hwnd) +// { +// if(GDD_IsFocusEnable(GDD_GetWindowParent(next))) +// { +// GDD_SetFocusWindow(GDD_GetWindowParent(next)); +// } +// else +// { +// GDD_SetFocusWindow(GDD_GetDesktopWindow(NULL )); +// } +// } +// } + // Current = __GDD_GetWindowTwig(hwnd); + // while(Current != NULL) + // { + //Ä©ÉÒ´°¿ÚÖ±½Óµ÷ÓÃÏûÏ¢´¦Àíº¯Êý£¬±ØÐëµ÷ÓÃWinMsgProcº¯Êý·½Ê½ÊµÏÖ£¬ÕâÑù + //²ÅÄÜÕýÈ·µ÷ÓÃÓû§¶¨ÒåµÄÏûÏ¢´¦Àíº¯Êý£¬²¢ÇÒÕýÈ·´¦ÀíÏûÏ¢´¦Àíº¯ÊýµÄ¼Ì³Ð + //¹ØÏµ¡£ + //ÕâÀォÒýÆðµÝ¹é£¬µ«µÝ¹éÉî¶ÈÖ»ÓÐ1¼¶£¬ÒòΪ twig ²»»áÔÙÓÐ×Ó´°¿ÚÁË¡£ + // __GDD_InitMsg(&SubMsg, hwnd, MSG_CLOSE, 0, (ptu32_t)hwnd->PrivateData); + // __GDD_WinMsgProc(&SubMsg); + // Current = __GDD_GetWindowTwig(hwnd); + // } //GK_DestroyWin±ØÐëÔÚGDDµÄAPIÖÐɾ³ý£¬·ñÔòÏûÏ¢ÑÓ³Ù´¦Àí»áµ¼ÖÂÏú»Ù´°¿Úºó²»ÄÜÁ¢¼´ //´´½¨Í¬Ãû´°¿Ú¡£ // GK_DestroyWin(hwnd->pGkWin); @@ -1723,11 +1772,11 @@ ptu32_t __GDD_WinMsgProc(struct WindowMsg *pMsg) if(__GDD_Lock()) { hwnd = pMsg->hwnd; - if(hwnd->pGkWin == NULL) //ÎÞgkwinµÄ¾ä±ú£¬Ò»¶¨ÊÇÎÞЧµÄ¡£ - { - __GDD_Unlock(); - return 0; - } +// if(hwnd->pGkWin == NULL) //ÎÞgkwinµÄ¾ä±ú£¬Ò»¶¨ÊÇÎÞЧµÄ¡£ +// { +// __GDD_Unlock(); +// return 0; +// } //Öð¼¶ÏûÏ¢´¦Àí¼Ì³Ð»úÖÆ£¬ÏÈ´Ó×îºóÌí¼ÓµÄÏûÏ¢±í¿ªÊ¼²éÕÒ£¬Ö±µ½ÕÒµ½Ò»¸ö²»ÐèÒª¼Ì³ÐÉϼ¶ //ÏûÏ¢µÄÏûÏ¢´¦Àíº¯Êý. //ÕâÓеãÏñC++µÄ¼Ì³Ð»úÖÆ¡£Ï൱ÓÚÓû§¼Ì³Ð¿Ø¼þ£¬¿Ø¼þ¼Ì³Ð´°¿Úϵͳ¡£ @@ -1779,6 +1828,7 @@ ptu32_t __GDD_WinMsgProc(struct WindowMsg *pMsg) else __GDD_DeleteChildWindowData(hwnd); } + __GDD_Unlock(); } return result; diff --git a/component/hmi-input/keypad/keyboard.c b/component/hmi-input/keypad/keyboard.c index a613d4a6a38bd3d277a45689d43fdf66b6a045d0..0a82882c7ec4163b248f7f5ecc0f740d080849d0 100644 --- a/component/hmi-input/keypad/keyboard.c +++ b/component/hmi-input/keypad/keyboard.c @@ -223,6 +223,8 @@ ptu32_t KeyBoard_Scan(void) key_msg.time = DJY_GetSysTime(); key_msg.key_value[1] = 0; key_msg.key_value[0] = key; + //int value3 = (keyboard_pr->key_now >> 8) & 0xFF; + //key_msg.key_value[0] = (keyboard_pr->key_now >> 8) & 0xFF; HmiIn_InputMsg(KeyboardObj->device_id,(u8*)&key_msg); } } diff --git a/component/tcpip/tcp/tcp.c b/component/tcpip/tcp/tcp.c index 76054294f691e7ea314f3d2c31d15527263109b0..32d6ab4a63b6b28686b92032119d7a6c252ca84c 100644 --- a/component/tcpip/tcp/tcp.c +++ b/component/tcpip/tcp/tcp.c @@ -1811,12 +1811,23 @@ static s32 __tcprecv(struct tagSocket *sock, void *buf,s32 len, u32 flags) timeout = CN_TIMEOUT_FOREVER; else timeout = endtime - (u32)DJY_GetSysTime(); + + if ((s32)timeout < 0) + { + timeout = 0; + } + if(Lock_SempPend(ccb->rbuf.bufsync,timeout)) { if(endtime == CN_TIMEOUT_FOREVER) timeout = CN_TIMEOUT_FOREVER; else timeout = endtime - (u32)DJY_GetSysTime(); + + if ((s32)timeout < 0) + { + timeout = 0; + } if(Lock_MutexPend(sock->SockSync, timeout)) //¼ÌÐøËø×¡socket { prebuflen = ccb->rbuf.buflen; diff --git a/component/ymodem/ymodem.c b/component/ymodem/ymodem.c index 34affcbb775be670a8650b06ec62111914429cd9..e51febb9709915879980bee162c450aaf77d3414 100644 --- a/component/ymodem/ymodem.c +++ b/component/ymodem/ymodem.c @@ -104,9 +104,9 @@ #define CFG_MODULE_ENABLE_YMODEM false //Èç¹û¹´Ñ¡Á˱¾×é¼þ£¬½«ÓÉDIDEÔÚproject_config.h»òÃüÁîÐÐÖж¨ÒåΪtrue //%$#@num,0,100, #define CFG_YMODEM_BUF_NUM 32 //"»º´æymodem°üÊýÁ¿",ÿ°ü1024×Ö½Ú -//%$#@num,5000,300000000, +//%$#@num,1,100000000, #define CFG_YMODEM_PKG_TIMEOUT (15*1000*1000) //"°ü¼ä¸ô³¬Ê±Ê±¼ä",΢Ãë -#define CFG_YMODEM_TIMEOUT (300*1000*1000) //"ymodem´«Êä×ܳ¬Ê±Ê±¼ä",΢Ãë +#define CFG_YMODEM_TIMEOUT (300) //"ymodem´«Êä×ܳ¬Ê±Ê±¼ä",Ãë //%$#@enum,true,false, //%$#@string,1,128, #define CFG_YMODEM_DEVNAME "std" //"ymodem´«ÊäÉ豸£¬std±íʾʹÓñê×¼ÊäÈëÊä³öÉ豸" @@ -847,7 +847,7 @@ bool_t downloadym(char *Param) pYmodem->FileCnt = 0; pYmodem->PkgNo = 0; pYmodem->PkgSize = CN_YMODEM_SOH_SIZE; - pYmodem->TimeOut = CFG_YMODEM_TIMEOUT; + pYmodem->TimeOut = CFG_YMODEM_TIMEOUT * 1000 *1000; pYmodem->PkgBufCnt = 0; pYmodem->FileBufCnt = 0; pYmodem->Status = ENUM_YMODEM_STA_INFO; diff --git a/third/firmware/pai-ic/CMSIS/SVD/SVDConv.exe b/third/firmware/pai-ic/CMSIS/SVD/SVDConv.exe index 6008adc23f4c70e488b2ee2c2be6cf81c308cdad..983f5ab0aeba415f5817216f6e42f4dc691f6c48 100644 Binary files a/third/firmware/pai-ic/CMSIS/SVD/SVDConv.exe and b/third/firmware/pai-ic/CMSIS/SVD/SVDConv.exe differ diff --git a/third/micropython1.13/mpy-cross/mpy-cross.exe b/third/micropython1.13/mpy-cross/mpy-cross.exe index c7ccf47d5164d633fa29a45ebb8a89209bc8726c..f550b54f94473eb953fd92409c6e1c17d85b2303 100644 Binary files a/third/micropython1.13/mpy-cross/mpy-cross.exe and b/third/micropython1.13/mpy-cross/mpy-cross.exe differ diff --git a/third/mongoose-6.15/mongoose.c b/third/mongoose-6.15/mongoose.c index 641d866297fcb3e845875905321427746760b03e..df0248f52df1229d02c0d7622519850d473c280a 100644 --- a/third/mongoose-6.15/mongoose.c +++ b/third/mongoose-6.15/mongoose.c @@ -9,6 +9,9 @@ */ #include "stdlib.h" +#include "stdio.h" +#include "stdint.h" +#include "stddef.h" void *djyos_realloc(void *p, size_t size) { void *rp = 0; @@ -235,7 +238,7 @@ extern "C" { #endif #ifndef MG_MALLOC -#define MG_MALLOC malloc +#define MG_MALLOC M_Malloc #endif #ifndef MG_CALLOC @@ -247,7 +250,7 @@ extern "C" { #endif #ifndef MG_FREE -#define MG_FREE free +#define MG_FREE M_Free #endif #ifdef __cplusplus @@ -874,7 +877,7 @@ DIR *opendir(const char *name) { if (name == NULL) { SetLastError(ERROR_BAD_ARGUMENTS); - } else if ((dir = (struct win32_dir *) MG_MALLOC(sizeof(*dir))) == NULL) { + } else if ((dir = (struct win32_dir *) MG_MALLOC(sizeof(*dir),CN_TIMEOUT_FOREVER)) == NULL) { SetLastError(ERROR_NOT_ENOUGH_MEMORY); } else { to_wchar(name, wpath, ARRAY_SIZE(wpath)); @@ -884,7 +887,7 @@ DIR *opendir(const char *name) { dir->handle = FindFirstFileW(wpath, &dir->info); dir->result.d_name[0] = '\0'; } else { - MG_FREE(dir); + MG_FREE(dir,CN_TIMEOUT_FOREVER); dir = NULL; } } @@ -899,7 +902,7 @@ int closedir(DIR *d) { if (dir != NULL) { if (dir->handle != INVALID_HANDLE_VALUE) result = FindClose(dir->handle) ? 0 : -1; - MG_FREE(dir); + MG_FREE(dir,CN_TIMEOUT_FOREVER); } else { result = -1; SetLastError(ERROR_BAD_ARGUMENTS); @@ -1592,7 +1595,7 @@ void cs_hmac_sha1(const unsigned char *key, size_t keylen, #endif #ifndef MBUF_FREE -#define MBUF_FREE free +#define MBUF_FREE MG_FREE #endif void mbuf_init(struct mbuf *mbuf, size_t initial_size) WEAK; @@ -1605,7 +1608,7 @@ void mbuf_init(struct mbuf *mbuf, size_t initial_size) { void mbuf_free(struct mbuf *mbuf) WEAK; void mbuf_free(struct mbuf *mbuf) { if (mbuf->buf != NULL) { - MBUF_FREE(mbuf->buf); + MBUF_FREE(mbuf->buf,CN_TIMEOUT_FOREVER); mbuf_init(mbuf, 0); } } @@ -1781,7 +1784,7 @@ static struct mg_str mg_strdup_common(const struct mg_str s, int nul_terminate) { struct mg_str r = {NULL, 0}; if (s.len > 0 && s.p != NULL) { - char *sc = (char *) MG_MALLOC(s.len + (nul_terminate ? 1 : 0)); + char *sc = (char *) MG_MALLOC(s.len + (nul_terminate ? 1 : 0),CN_TIMEOUT_FOREVER); if (sc != NULL) { memcpy(sc, s.p, s.len); if (nul_terminate) sc[s.len] = '\0'; @@ -2174,7 +2177,7 @@ const char *c_strnstr(const char *s, const char *find, size_t slen) { char *strdup(const char *src) WEAK; char *strdup(const char *src) { size_t len = strlen(src) + 1; - char *ret = MG_MALLOC(len); + char *ret = MG_MALLOC(len,CN_TIMEOUT_FOREVER); if (ret != NULL) { strcpy(ret, src); } @@ -2279,12 +2282,12 @@ int mg_avprintf(char **buf, size_t size, const char *fmt, va_list ap) { * succeed or out of memory. */ *buf = NULL; /* LCOV_EXCL_START */ while (len < 0) { - MG_FREE(*buf); + MG_FREE(*buf,CN_TIMEOUT_FOREVER); if (size == 0) { size = 5; } size *= 2; - if ((*buf = (char *) MG_MALLOC(size)) == NULL) { + if ((*buf = (char *) MG_MALLOC(size,CN_TIMEOUT_FOREVER)) == NULL) { len = -1; break; } @@ -2301,7 +2304,7 @@ int mg_avprintf(char **buf, size_t size, const char *fmt, va_list ap) { /* LCOV_EXCL_STOP */ } else if (len >= (int) size) { /* Standard-compliant code path. Allocate a buffer that is large enough. */ - if ((*buf = (char *) MG_MALLOC(len + 1)) == NULL) { + if ((*buf = (char *) MG_MALLOC(len + 1,CN_TIMEOUT_FOREVER)) == NULL) { len = -1; /* LCOV_EXCL_LINE */ } else { /* LCOV_EXCL_LINE */ va_copy(ap_copy, ap); @@ -2595,7 +2598,7 @@ void mg_destroy_conn(struct mg_connection *conn, int destroy_if) { mbuf_free(&conn->send_mbuf); memset(conn, 0, sizeof(*conn)); - MG_FREE(conn); + MG_FREE(conn,CN_TIMEOUT_FOREVER); } void mg_close_conn(struct mg_connection *conn) { @@ -2658,7 +2661,7 @@ void mg_mgr_init_opt(struct mg_mgr *m, void *user_data, } m->num_ifaces = opts.num_ifaces; m->ifaces = - (struct mg_iface **) MG_MALLOC(sizeof(*m->ifaces) * opts.num_ifaces); + (struct mg_iface **) MG_MALLOC(sizeof(*m->ifaces) * opts.num_ifaces,CN_TIMEOUT_FOREVER); for (i = 0; i < opts.num_ifaces; i++) { m->ifaces[i] = mg_if_create_iface(opts.ifaces[i], m); m->ifaces[i]->vtable->init(m->ifaces[i]); @@ -2704,12 +2707,12 @@ void mg_mgr_free(struct mg_mgr *m) { int i; for (i = 0; i < m->num_ifaces; i++) { m->ifaces[i]->vtable->free(m->ifaces[i]); - MG_FREE(m->ifaces[i]); + MG_FREE(m->ifaces[i],CN_TIMEOUT_FOREVER); } - MG_FREE(m->ifaces); + MG_FREE(m->ifaces,CN_TIMEOUT_FOREVER); } - MG_FREE((char *) m->nameserver); + MG_FREE((char *) m->nameserver,CN_TIMEOUT_FOREVER); } int mg_mgr_poll(struct mg_mgr *m, int timeout_ms) { @@ -2730,7 +2733,7 @@ int mg_vprintf(struct mg_connection *nc, const char *fmt, va_list ap) { mg_send(nc, buf, len); } if (buf != mem && buf != NULL) { - MG_FREE(buf); /* LCOV_EXCL_LINE */ + MG_FREE(buf,CN_TIMEOUT_FOREVER); /* LCOV_EXCL_LINE */ } /* LCOV_EXCL_LINE */ return len; @@ -2816,7 +2819,7 @@ MG_INTERNAL struct mg_connection *mg_create_connection( struct mg_connection *conn = mg_create_connection_base(mgr, callback, opts); if (conn != NULL && !conn->iface->vtable->create_conn(conn)) { - MG_FREE(conn); + MG_FREE(conn,CN_TIMEOUT_FOREVER); conn = NULL; } if (conn == NULL) { @@ -3915,18 +3918,29 @@ void mg_set_non_blocking_mode(sock_t sock) { struct tagSocket *sock_obj = __Fd2Sock(sock); if (sock_obj && sock_obj->sockstat &CN_SOCKET_LISTEN) { printf("listen socket!!!!!!!!!\r\n"); + opt = 1; + if(0 != setsockopt(sock, SOL_SOCKET, SO_NONBLOCK, &opt,4)) + { + printf("error: setsockopt, SO_NONBLOCK!\r\n"); + } } else { - opt = 6 * 1024; + opt = 150 * 1024; if (0 != setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &opt, 4)) { printf("Client: setsockopt failed!\n\r"); } - } - opt = 1; - if(0 != setsockopt(sock, SOL_SOCKET, SO_NONBLOCK, &opt,4)) - { - printf("error: setsockopt, SO_NONBLOCK!\r\n"); + opt = 0; + if(0 != setsockopt(sock, SOL_SOCKET, SO_NONBLOCK, &opt,4)) + { + printf("error: setsockopt, SO_NONBLOCK!\r\n"); + } + ///opt = 60000 * 1000;//³¬Ê±Ê±¼ä60s + opt = 10000 * 1000;//³¬Ê±Ê±¼ä10s + if (0 != setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &opt, 4)) + { + printf("Client: setsockopt failed!\n\r"); + } } #else int flags = fcntl(sock, F_GETFL, 0); @@ -3950,6 +3964,8 @@ void mg_socket_if_connect_tcp(struct mg_connection *nc, const union socket_address *sa) { int rc, proto = 0; nc->sock = socket(AF_INET, SOCK_STREAM, proto); + //int opt = 10 * 1024; + //setsockopt(nc->sock, SOL_SOCKET, SO_RCVBUF, &opt, 4); if (nc->sock == INVALID_SOCKET) { nc->err = mg_get_errno() ? mg_get_errno() : 1; return; @@ -4710,7 +4726,7 @@ static int mg_socks_if_create_conn(struct mg_connection *c) { static void mg_socks_if_destroy_conn(struct mg_connection *c) { c->iface->vtable->free(c->iface); - MG_FREE(c->iface); + MG_FREE(c->iface,CN_TIMEOUT_FOREVER); c->iface = NULL; LOG(LL_DEBUG, ("%p", c)); } @@ -4729,8 +4745,8 @@ static void mg_socks_if_free(struct mg_iface *iface) { LOG(LL_DEBUG, ("%p", iface)); if (d != NULL) { socks_if_disband(d); - MG_FREE(d->proxy_addr); - MG_FREE(d); + MG_FREE(d->proxy_addr,CN_TIMEOUT_FOREVER); + MG_FREE(d,CN_TIMEOUT_FOREVER,CN_TIMEOUT_FOREVER); iface->data = NULL; } } @@ -4966,7 +4982,7 @@ void mg_ssl_if_conn_free(struct mg_connection *nc) { if (ctx->ssl_ctx != NULL && nc->listener == NULL) SSL_CTX_free(ctx->ssl_ctx); mbuf_free(&ctx->psk); memset(ctx, 0, sizeof(*ctx)); - MG_FREE(ctx); + MG_FREE(ctx,CN_TIMEOUT_FOREVER); } /* @@ -5397,22 +5413,22 @@ static enum mg_ssl_if_result mg_ssl_if_mbed_err(struct mg_connection *nc, static void mg_ssl_if_mbed_free_certs_and_keys(struct mg_ssl_if_ctx *ctx) { if (ctx->cert != NULL) { mbedtls_x509_crt_free(ctx->cert); - MG_FREE(ctx->cert); + MG_FREE(ctx->cert,CN_TIMEOUT_FOREVER); ctx->cert = NULL; mbedtls_pk_free(ctx->key); - MG_FREE(ctx->key); + MG_FREE(ctx->key,CN_TIMEOUT_FOREVER); ctx->key = NULL; } if (ctx->ca_cert != NULL) { mbedtls_ssl_conf_ca_chain(ctx->conf, NULL, NULL); #ifdef MBEDTLS_X509_CA_CHAIN_ON_DISK if (ctx->conf->ca_chain_file != NULL) { - MG_FREE((void *) ctx->conf->ca_chain_file); + MG_FREE((void *) ctx->conf->ca_chain_file,CN_TIMEOUT_FOREVER); ctx->conf->ca_chain_file = NULL; } #endif mbedtls_x509_crt_free(ctx->ca_cert); - MG_FREE(ctx->ca_cert); + MG_FREE(ctx->ca_cert,CN_TIMEOUT_FOREVER); ctx->ca_cert = NULL; } } @@ -5439,7 +5455,7 @@ enum mg_ssl_if_result mg_ssl_if_handshake(struct mg_connection *nc) { if (nc->listener == NULL) { if (ctx->conf->key_cert != NULL) { /* Note that this assumes one key_cert entry, which matches our init. */ - MG_FREE(ctx->conf->key_cert); + MG_FREE(ctx->conf->key_cert,CN_TIMEOUT_FOREVER); ctx->conf->key_cert = NULL; } mbedtls_ssl_conf_ca_chain(ctx->conf, NULL, NULL); @@ -5493,16 +5509,16 @@ void mg_ssl_if_conn_free(struct mg_connection *nc) { nc->ssl_if_data = NULL; if (ctx->ssl != NULL) { mbedtls_ssl_free(ctx->ssl); - MG_FREE(ctx->ssl); + MG_FREE(ctx->ssl,CN_TIMEOUT_FOREVER); } mg_ssl_if_mbed_free_certs_and_keys(ctx); if (ctx->conf != NULL) { mbedtls_ssl_config_free(ctx->conf); - MG_FREE(ctx->conf); + MG_FREE(ctx->conf,CN_TIMEOUT_FOREVER); } mbuf_free(&ctx->cipher_suites); memset(ctx, 0, sizeof(*ctx)); - MG_FREE(ctx); + MG_FREE(ctx,CN_TIMEOUT_FOREVER); } static enum mg_ssl_if_result mg_use_ca_cert(struct mg_ssl_if_ctx *ctx, @@ -6165,9 +6181,9 @@ static struct mg_http_proto_data *mg_http_get_proto_data( #if MG_ENABLE_HTTP_STREAMING_MULTIPART static void mg_http_free_proto_data_mp_stream( struct mg_http_multipart_stream *mp) { - MG_FREE((void *) mp->boundary); - MG_FREE((void *) mp->var_name); - MG_FREE((void *) mp->file_name); + MG_FREE((void *) mp->boundary,CN_TIMEOUT_FOREVER); + MG_FREE((void *) mp->var_name,CN_TIMEOUT_FOREVER); + MG_FREE((void *) mp->file_name,CN_TIMEOUT_FOREVER); memset(mp, 0, sizeof(*mp)); } #endif @@ -6188,10 +6204,10 @@ static void mg_http_free_proto_data_endpoints(struct mg_http_endpoint **ep) { while (current != NULL) { struct mg_http_endpoint *tmp = current->next; - MG_FREE((void *) current->uri_pattern.p); - MG_FREE((void *) current->auth_domain); - MG_FREE((void *) current->auth_file); - MG_FREE(current); + MG_FREE((void *) current->uri_pattern.p,CN_TIMEOUT_FOREVER); + MG_FREE((void *) current->auth_domain,CN_TIMEOUT_FOREVER); + MG_FREE((void *) current->auth_file,CN_TIMEOUT_FOREVER); + MG_FREE(current,CN_TIMEOUT_FOREVER); current = tmp; } @@ -6227,7 +6243,7 @@ static void mg_http_proto_data_destructor(void *proto_data) { #endif mg_http_free_proto_data_endpoints(&pd->endpoints); mg_http_free_reverse_proxy_data(&pd->reverse_proxy_data); - MG_FREE(proto_data); + MG_FREE(proto_data,CN_TIMEOUT_FOREVER); } #if MG_ENABLE_FILESYSTEM @@ -6965,7 +6981,7 @@ static void mg_http_multipart_begin(struct mg_connection *nc, mbuf_remove(io, req_len); } exit_mp: - if (boundary != boundary_buf) MG_FREE(boundary); + if (boundary != boundary_buf) MG_FREE(boundary,CN_TIMEOUT_FOREVER); } #define CONTENT_DISPOSITION "Content-Disposition: " @@ -6993,9 +7009,9 @@ static int mg_http_multipart_finalize(struct mg_connection *c) { struct mg_http_proto_data *pd = mg_http_get_proto_data(c); mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_END, NULL, 0); - MG_FREE((void *) pd->mp_stream.file_name); + MG_FREE((void *) pd->mp_stream.file_name,CN_TIMEOUT_FOREVER); pd->mp_stream.file_name = NULL; - MG_FREE((void *) pd->mp_stream.var_name); + MG_FREE((void *) pd->mp_stream.var_name,CN_TIMEOUT_FOREVER); pd->mp_stream.var_name = NULL; mg_http_multipart_call_handler(c, MG_EV_HTTP_MULTIPART_REQUEST_END, NULL, 0); mg_http_free_proto_data_mp_stream(&pd->mp_stream); @@ -7091,9 +7107,9 @@ static int mg_http_multipart_process_boundary(struct mg_connection *c) { altbuf_append(&ab_var_name, '\0'); altbuf_append(&ab_var_name, '\0'); - MG_FREE((void *) pd->mp_stream.file_name); + MG_FREE((void *) pd->mp_stream.file_name,CN_TIMEOUT_FOREVER); pd->mp_stream.file_name = altbuf_get_buf(&ab_file_name, 1 /* trim */); - MG_FREE((void *) pd->mp_stream.var_name); + MG_FREE((void *) pd->mp_stream.var_name,CN_TIMEOUT_FOREVER); pd->mp_stream.var_name = altbuf_get_buf(&ab_var_name, 1 /* trim */); mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_BEGIN, NULL, 0); @@ -7364,9 +7380,9 @@ void mg_http_send_redirect(struct mg_connection *nc, int status_code, (int) location.len, location.p, bl, (int) extra_headers.len, extra_headers.p, (extra_headers.len > 0 ? "\r\n" : "")); mg_send_response_line(nc, status_code, phead); - if (phead != bhead) MG_FREE(phead); + if (phead != bhead) MG_FREE(phead,CN_TIMEOUT_FOREVER); mg_send(nc, pbody, bl); - if (pbody != bbody) MG_FREE(pbody); + if (pbody != bbody) MG_FREE(pbody,CN_TIMEOUT_FOREVER); } void mg_send_head(struct mg_connection *c, int status_code, @@ -7413,12 +7429,12 @@ static int mg_http_parse_range_header(const struct mg_str *header, int64_t *a, * so we have this. Ugh. */ int result; - char *p = (char *) MG_MALLOC(header->len + 1); + char *p = (char *) MG_MALLOC(header->len + 1,CN_TIMEOUT_FOREVER); if (p == NULL) return 0; memcpy(p, header->p, header->len); p[header->len] = '\0'; result = sscanf(p, "bytes=%" INT64_FMT "-%" INT64_FMT, a, b); - MG_FREE(p); + MG_FREE(p,CN_TIMEOUT_FOREVER); return result; } @@ -7633,7 +7649,7 @@ void mg_printf_http_chunk(struct mg_connection *nc, const char *fmt, ...) { /* LCOV_EXCL_START */ if (buf != mem && buf != NULL) { - MG_FREE(buf); + MG_FREE(buf,CN_TIMEOUT_FOREVER); } /* LCOV_EXCL_STOP */ } @@ -7660,7 +7676,7 @@ void mg_printf_html_escape(struct mg_connection *nc, const char *fmt, ...) { /* LCOV_EXCL_START */ if (buf != mem && buf != NULL) { - MG_FREE(buf); + MG_FREE(buf,CN_TIMEOUT_FOREVER); } /* LCOV_EXCL_STOP */ } @@ -7725,7 +7741,7 @@ int mg_http_parse_header(struct mg_str *hdr, const char *var_name, char *buf, if (buf2 != buf) { /* Buffer was not enough and was reallocated: free it and just return 0 */ - MG_FREE(buf2); + MG_FREE(buf2,CN_TIMEOUT_FOREVER); return 0; } @@ -7747,7 +7763,7 @@ int mg_parse_http_basic_auth(struct mg_str *hdr, char *user, size_t user_len, if (mg_strncmp(*hdr, mg_mk_str("Basic "), 6) != 0) return -1; - buf = (char *) MG_MALLOC(hdr->len); + buf = (char *) MG_MALLOC(hdr->len,CN_TIMEOUT_FOREVER); cs_base64_decode((unsigned char *) hdr->p + 6, hdr->len, buf, NULL); /* e.g. "%123[^:]:%321[^\n]" */ @@ -7757,7 +7773,7 @@ int mg_parse_http_basic_auth(struct mg_str *hdr, char *user, size_t user_len, res = -1; } - MG_FREE(buf); + MG_FREE(buf,CN_TIMEOUT_FOREVER); return res; } @@ -7903,13 +7919,13 @@ int mg_http_check_digest_auth(struct http_message *hm, const char *auth_domain, fp); clean: - if (username != username_buf) MG_FREE(username); - if (cnonce != cnonce_buf) MG_FREE(cnonce); - if (response != response_buf) MG_FREE(response); - if (uri != uri_buf) MG_FREE(uri); - if (qop != qop_buf) MG_FREE(qop); - if (nc != nc_buf) MG_FREE(nc); - if (nonce != nonce_buf) MG_FREE(nonce); + if (username != username_buf) MG_FREE(username,CN_TIMEOUT_FOREVER); + if (cnonce != cnonce_buf) MG_FREE(cnonce,CN_TIMEOUT_FOREVER); + if (response != response_buf) MG_FREE(response,CN_TIMEOUT_FOREVER); + if (uri != uri_buf) MG_FREE(uri,CN_TIMEOUT_FOREVER); + if (qop != qop_buf) MG_FREE(qop,CN_TIMEOUT_FOREVER); + if (nc != nc_buf) MG_FREE(nc,CN_TIMEOUT_FOREVER); + if (nonce != nonce_buf) MG_FREE(nonce,CN_TIMEOUT_FOREVER); return ret; } @@ -8160,7 +8176,7 @@ MG_INTERNAL void mg_find_index_file(const char *path, const char *list, } } if (!found) { - MG_FREE(*index_file); + MG_FREE(*index_file,CN_TIMEOUT_FOREVER); *index_file = NULL; } LOG(LL_DEBUG, ("[%s] [%s]", path, (*index_file ? *index_file : ""))); @@ -8287,7 +8303,7 @@ void mg_http_reverse_proxy(struct mg_connection *nc, mg_send(be, hm->body.p, hm->body.len); cleanup: - if (purl != burl) MG_FREE(purl); + if (purl != burl) MG_FREE(purl,CN_TIMEOUT_FOREVER); } static int mg_http_handle_forwarding(struct mg_connection *nc, @@ -8377,7 +8393,7 @@ MG_INTERNAL int mg_uri_to_local_path(struct http_message *hm, { /* 2. Find where in the canonical URI path the local path ends. */ const char *u = file_uri_start + 1; - char *lp = (char *) MG_MALLOC(root.len + hm->uri.len + 1); + char *lp = (char *) MG_MALLOC(root.len + hm->uri.len + 1,CN_TIMEOUT_FOREVER); char *lp_end = lp + root.len + hm->uri.len + 1; char *p = lp, *ps; int exists = 1; @@ -8457,7 +8473,7 @@ MG_INTERNAL int mg_uri_to_local_path(struct http_message *hm, remainder->p = u; remainder->len = cp_end - u; } else { - MG_FREE(lp); + MG_FREE(lp,CN_TIMEOUT_FOREVER); } } @@ -8581,14 +8597,14 @@ MG_INTERNAL void mg_send_http_file(struct mg_connection *nc, char *path, "HTTP/1.1 301 Moved\r\nLocation: %.*s/\r\n" "Content-Length: 0\r\n\r\n", (int) hm->uri.len, hm->uri.p); - MG_FREE(index_file); + MG_FREE(index_file,CN_TIMEOUT_FOREVER); return; } /* If we have path_info, the only way to handle it is CGI. */ if (path_info->len > 0 && !is_cgi) { mg_http_send_error(nc, 501, NULL); - MG_FREE(index_file); + MG_FREE(index_file,CN_TIMEOUT_FOREVER); return; } @@ -8659,7 +8675,7 @@ MG_INTERNAL void mg_send_http_file(struct mg_connection *nc, char *path, } else { mg_http_serve_file2(nc, index_file ? index_file : path, hm, opts); } - MG_FREE(index_file); + MG_FREE(index_file,CN_TIMEOUT_FOREVER); } void mg_serve_http(struct mg_connection *nc, struct http_message *hm, @@ -8714,7 +8730,7 @@ void mg_serve_http(struct mg_connection *nc, struct http_message *hm, } mg_send_http_file(nc, path, &path_info, hm, &opts); - MG_FREE(path); + MG_FREE(path,CN_TIMEOUT_FOREVER); path = NULL; /* Close connection for non-keep-alive requests */ @@ -8754,10 +8770,10 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data, nc->flags |= MG_F_CLOSE_IMMEDIATELY; return; } - fus->lfn = (char *) MG_MALLOC(lfn.len + 1); + fus->lfn = (char *) MG_MALLOC(lfn.len + 1,CN_TIMEOUT_FOREVER); memcpy(fus->lfn, lfn.p, lfn.len); fus->lfn[lfn.len] = '\0'; - if (lfn.p != mp->file_name) MG_FREE((char *) lfn.p); + if (lfn.p != mp->file_name) MG_FREE((char *) lfn.p,CN_TIMEOUT_FOREVER); LOG(LL_DEBUG, ("%p Receiving file %s -> %s", nc, mp->file_name, fus->lfn)); fus->fp = mg_fopen(fus->lfn, "wb"); @@ -8833,8 +8849,8 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data, */ } if (fus->fp != NULL) fclose(fus->fp); - MG_FREE(fus->lfn); - MG_FREE(fus); + MG_FREE(fus->lfn,CN_TIMEOUT_FOREVER); + MG_FREE(fus,CN_TIMEOUT_FOREVER); mp->user_data = NULL; /* Don't close the connection yet, there may be more files to come. */ break; @@ -8918,7 +8934,7 @@ struct mg_connection *mg_connect_http_base( } out: - if (conn_addr != NULL && conn_addr != conn_addr_buf) MG_FREE(conn_addr); + if (conn_addr != NULL && conn_addr != conn_addr_buf) MG_FREE(conn_addr,CN_TIMEOUT_FOREVER); return nc; } @@ -8994,7 +9010,7 @@ size_t mg_parse_multipart(const char *buf, size_t buf_len, char *var_name, mg_http_parse_header2(&header, "name", &var_name2, var_name_len); /* TODO: handle reallocated buffer correctly */ if (var_name2 != var_name) { - MG_FREE(var_name2); + MG_FREE(var_name2,CN_TIMEOUT_FOREVER); var_name[0] = '\0'; } } @@ -9003,7 +9019,7 @@ size_t mg_parse_multipart(const char *buf, size_t buf_len, char *var_name, mg_http_parse_header2(&header, "filename", &file_name2, file_name_len); /* TODO: handle reallocated buffer correctly */ if (file_name2 != file_name) { - MG_FREE(file_name2); + MG_FREE(file_name2,CN_TIMEOUT_FOREVER); file_name[0] = '\0'; } } @@ -9160,7 +9176,7 @@ static void *mg_push_to_stdin(void *arg) { } DBG(("%s", "FORWARED EVERYTHING TO CGI")); CloseHandle(tp->hPipe); - MG_FREE(tp); + MG_FREE(tp,CN_TIMEOUT_FOREVER); return NULL; } @@ -9181,13 +9197,13 @@ static void *mg_pull_from_stdout(void *arg) { CloseHandle(tp->hPipe); shutdown(tp->s, 2); // Without this, IO thread may get truncated data closesocket(tp->s); - MG_FREE(tp); + MG_FREE(tp,CN_TIMEOUT_FOREVER); return NULL; } static void mg_spawn_stdio_thread(sock_t sock, HANDLE hPipe, void *(*func)(void *)) { - struct mg_threadparam *tp = (struct mg_threadparam *) MG_MALLOC(sizeof(*tp)); + struct mg_threadparam *tp = (struct mg_threadparam *) MG_MALLOC(sizeof(*tp),CN_TIMEOUT_FOREVER); if (tp != NULL) { tp->s = sock; tp->hPipe = hPipe; @@ -10417,7 +10433,7 @@ void mg_printf_websocket_frame(struct mg_connection *nc, int op, va_end(ap); if (buf != mem && buf != NULL) { - MG_FREE(buf); + MG_FREE(buf,CN_TIMEOUT_FOREVER); } } @@ -11141,7 +11157,7 @@ static void mqtt_handler(struct mg_connection *nc, int ev, } static void mg_mqtt_proto_data_destructor(void *proto_data) { - MG_FREE(proto_data); + MG_FREE(proto_data,CN_TIMEOUT_FOREVER); } static struct mg_str mg_mqtt_next_topic_component(struct mg_str *topic) { @@ -11490,10 +11506,10 @@ static void mg_mqtt_remove_session(struct mg_mqtt_session *s) { static void mg_mqtt_destroy_session(struct mg_mqtt_session *s) { size_t i; for (i = 0; i < s->num_subscriptions; i++) { - MG_FREE((void *) s->subscriptions[i].topic); + MG_FREE((void *) s->subscriptions[i].topic,CN_TIMEOUT_FOREVER); } - MG_FREE(s->subscriptions); - MG_FREE(s); + MG_FREE(s->subscriptions,CN_TIMEOUT_FOREVER); + MG_FREE(s,CN_TIMEOUT_FOREVER); } static void mg_mqtt_close_session(struct mg_mqtt_session *s) { @@ -11561,7 +11577,7 @@ static void mg_mqtt_broker_handle_subscribe(struct mg_connection *nc, (pos = mg_mqtt_next_subscribe_topic(msg, &topic, &qos, pos)) != -1; ss->num_subscriptions++) { te = &ss->subscriptions[ss->num_subscriptions]; - te->topic = (char *) MG_MALLOC(topic.len + 1); + te->topic = (char *) MG_MALLOC(topic.len + 1,CN_TIMEOUT_FOREVER); te->qos = qos; memcpy((char *) te->topic, topic.p, topic.len); ((char *) te->topic)[topic.len] = '\0'; @@ -11593,7 +11609,7 @@ static void mg_mqtt_broker_handle_publish(struct mg_mqtt_broker *brk, } mg_mqtt_publish(s->nc, p, 0, 0, msg->payload.p, msg->payload.len); if (p != buf) { - MG_FREE(p); + MG_FREE(p,CN_TIMEOUT_FOREVER); } break; } @@ -11854,7 +11870,7 @@ void mg_send_dns_query(struct mg_connection *nc, const char *name, mbuf_free(&pkt); cleanup: - MG_FREE(msg); + MG_FREE(msg,CN_TIMEOUT_FOREVER); } static unsigned char *mg_parse_dns_resource_record( @@ -12292,16 +12308,16 @@ static void mg_resolve_async_eh(struct mg_connection *nc, int ev, } break; case MG_EV_RECV: - msg = (struct mg_dns_message *) MG_MALLOC(sizeof(*msg)); + msg = (struct mg_dns_message *) MG_MALLOC(sizeof(*msg),CN_TIMEOUT_FOREVER); if (mg_parse_dns(nc->recv_mbuf.buf, *(int *) data, msg) == 0 && msg->num_answers > 0) { req->callback(msg, req->data, MG_RESOLVE_OK); nc->user_data = NULL; - MG_FREE(req); + MG_FREE(req,CN_TIMEOUT_FOREVER); } else { req->err = MG_RESOLVE_NO_ANSWERS; } - MG_FREE(msg); + MG_FREE(msg,CN_TIMEOUT_FOREVER); nc->flags |= MG_F_CLOSE_IMMEDIATELY; break; case MG_EV_SEND: @@ -12326,7 +12342,7 @@ static void mg_resolve_async_eh(struct mg_connection *nc, int ev, #endif req->callback(NULL, req->data, req->err); nc->user_data = NULL; - MG_FREE(req); + MG_FREE(req,CN_TIMEOUT_FOREVER); } break; } @@ -12383,7 +12399,7 @@ int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query, dns_nc = mg_connect(mgr, nameserver_url, MG_CB(mg_resolve_async_eh, NULL)); if (dns_nc == NULL) { - MG_FREE(req); + MG_FREE(req,CN_TIMEOUT_FOREVER); return -1; } dns_nc->user_data = req; @@ -12395,7 +12411,7 @@ int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query, } void mg_set_nameserver(struct mg_mgr *mgr, const char *nameserver) { - MG_FREE((char *) mgr->nameserver); + MG_FREE((char *) mgr->nameserver,CN_TIMEOUT_FOREVER); mgr->nameserver = NULL; if (nameserver != NULL) { mgr->nameserver = strdup(nameserver); @@ -12431,7 +12447,7 @@ void mg_set_nameserver(struct mg_mgr *mgr, const char *nameserver) { void mg_coap_free_options(struct mg_coap_message *cm) { while (cm->options != NULL) { struct mg_coap_option *next = cm->options->next; - MG_FREE(cm->options); + MG_FREE(cm->options,CN_TIMEOUT_FOREVER); cm->options = next; } } @@ -13219,7 +13235,7 @@ struct mg_connection *mg_sntp_connect(struct mg_mgr *mgr, cleanup: if (p_url != url) { - MG_FREE(p_url); + MG_FREE(p_url,CN_TIMEOUT_FOREVER); } return c; @@ -13263,7 +13279,7 @@ static void mg_sntp_util_ev_handler(struct mg_connection *c, int ev, c->flags |= MG_F_CLOSE_IMMEDIATELY; break; case MG_EV_CLOSE: - MG_FREE(user_data); + MG_FREE(user_data,CN_TIMEOUT_FOREVER); c->user_data = NULL; break; } @@ -13281,7 +13297,7 @@ struct mg_connection *mg_sntp_get_time(struct mg_mgr *mgr, c = mg_sntp_connect(mgr, MG_CB(mg_sntp_util_ev_handler, sd), sntp_server_name); if (c == NULL) { - MG_FREE(sd); + MG_FREE(sd,CN_TIMEOUT_FOREVER); return NULL; } @@ -13504,7 +13520,7 @@ int asprintf(char **strp, const char *fmt, ...) { va_list ap; int len; - *strp = MG_MALLOC(BUFSIZ); + *strp = MG_MALLOC(BUFSIZ,CN_TIMEOUT_FOREVER); if (*strp == NULL) return -1; va_start(ap, fmt); @@ -15116,12 +15132,12 @@ void mg_ssl_if_conn_free(struct mg_connection *nc) { struct mg_ssl_if_ctx *ctx = (struct mg_ssl_if_ctx *) nc->ssl_if_data; if (ctx == NULL) return; nc->ssl_if_data = NULL; - MG_FREE(ctx->ssl_cert); - MG_FREE(ctx->ssl_key); - MG_FREE(ctx->ssl_ca_cert); - MG_FREE(ctx->ssl_server_name); + MG_FREE(ctx->ssl_cert,CN_TIMEOUT_FOREVER); + MG_FREE(ctx->ssl_key,CN_TIMEOUT_FOREVER); + MG_FREE(ctx->ssl_ca_cert,CN_TIMEOUT_FOREVER); + MG_FREE(ctx->ssl_server_name,CN_TIMEOUT_FOREVER); memset(ctx, 0, sizeof(*ctx)); - MG_FREE(ctx); + MG_FREE(ctx,CN_TIMEOUT_FOREVER); } bool pem_to_der(const char *pem_file, const char *der_file) { @@ -15191,7 +15207,7 @@ static char *sl_pem2der(const char *pem_file) { memmove(der_file, der_file + MG_SSL_IF_SIMPLELINK_SLFS_PREFIX_LEN, l - 2 /* including \0 */); } else { - MG_FREE(der_file); + MG_FREE(der_file,CN_TIMEOUT_FOREVER); der_file = NULL; } return der_file; @@ -15218,14 +15234,14 @@ int sl_set_ssl_opts(int sock, struct mg_connection *nc) { err = sl_SetSockOpt(sock, SL_SOL_SOCKET, SL_SO_SECURE_FILES_CERTIFICATE_FILE_NAME, ssl_cert, strlen(ssl_cert)); - MG_FREE(ssl_cert); + MG_FREE(ssl_cert,CN_TIMEOUT_FOREVER); LOG(LL_DEBUG, ("CERTIFICATE_FILE_NAME %s -> %d", ssl_cert, err)); ssl_key = sl_pem2der(ctx->ssl_key); if (ssl_key != NULL) { err = sl_SetSockOpt(sock, SL_SOL_SOCKET, SL_SO_SECURE_FILES_PRIVATE_KEY_FILE_NAME, ssl_key, strlen(ssl_key)); - MG_FREE(ssl_key); + MG_FREE(ssl_key,CN_TIMEOUT_FOREVER); LOG(LL_DEBUG, ("PRIVATE_KEY_FILE_NAME %s -> %d", ssl_key, err)); } else { err = -1; @@ -15246,7 +15262,7 @@ int sl_set_ssl_opts(int sock, struct mg_connection *nc) { } else { err = -1; } - MG_FREE(ssl_ca_cert); + MG_FREE(ssl_ca_cert,CN_TIMEOUT_FOREVER); if (err != 0) return err; } } @@ -16011,7 +16027,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) { pbuf_free(seg); } memset(cs, 0, sizeof(*cs)); - MG_FREE(cs); + MG_FREE(cs,CN_TIMEOUT_FOREVER); } else if (nc->listener == NULL) { /* Only close outgoing UDP pcb or listeners. */ struct udp_pcb *upcb = cs->pcb.udp; @@ -16020,7 +16036,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) { mg_lwip_netif_run_on_tcpip(udp_remove_tcpip, upcb); } memset(cs, 0, sizeof(*cs)); - MG_FREE(cs); + MG_FREE(cs,CN_TIMEOUT_FOREVER); } nc->sock = INVALID_SOCKET; } @@ -16185,7 +16201,7 @@ void mg_lwip_if_init(struct mg_iface *iface) { } void mg_lwip_if_free(struct mg_iface *iface) { - MG_FREE(iface->data); + MG_FREE(iface->data,CN_TIMEOUT_FOREVER); iface->data = NULL; } @@ -16571,12 +16587,12 @@ static void mg_handle_recv(struct mg_connection *nc) { if (bytes_read != 0 && (nc->recv_mbuf_limit == -1 || nc->recv_mbuf.len + bytes_read < nc->recv_mbuf_limit)) { - buf = (uint8_t *) MG_MALLOC(bytes_read); + buf = (uint8_t *) MG_MALLOC(bytes_read,CN_TIMEOUT_FOREVER); if (TCPIP_UDP_ArrayGet((UDP_SOCKET) nc->sock, buf, bytes_read) != bytes_read) { nc->flags |= MG_F_CLOSE_IMMEDIATELY; bytes_read = 0; - MG_FREE(buf); + MG_FREE(buf,CN_TIMEOUT_FOREVER); } } } else { @@ -16586,11 +16602,11 @@ static void mg_handle_recv(struct mg_connection *nc) { nc->recv_mbuf_limit - nc->recv_mbuf.len > bytes_read) { bytes_read = nc->recv_mbuf_limit - nc->recv_mbuf.len; } - buf = (uint8_t *) MG_MALLOC(bytes_read); + buf = (uint8_t *) MG_MALLOC(bytes_read,CN_TIMEOUT_FOREVER); if (TCPIP_TCP_ArrayGet((TCP_SOCKET) nc->sock, buf, bytes_read) != bytes_read) { nc->flags |= MG_F_CLOSE_IMMEDIATELY; - MG_FREE(buf); + MG_FREE(buf,CN_TIMEOUT_FOREVER); bytes_read = 0; } } diff --git a/third/sqlite3/os.h b/third/sqlite3/os.h index 146b1d6bf763e8fed92699e4054f3efb2abb5ac0..a5a2ddf2f1cb5c4fd3c154571464c495fb82ba45 100644 --- a/third/sqlite3/os.h +++ b/third/sqlite3/os.h @@ -20,6 +20,9 @@ #ifndef _SQLITE_OS_H_ #define _SQLITE_OS_H_ + +#include +#include /* ** Figure out if we are dealing with Unix, Windows, or some other ** operating system. After the following block of preprocess macros, diff --git a/third/sqlite3/os_djyos.c b/third/sqlite3/os_djyos.c index b8d13c465a5c31de90d07652a344cb2059e94043..31625ab7d8bf960e542f71cb2b99f5f2faf2e02f 100644 --- a/third/sqlite3/os_djyos.c +++ b/third/sqlite3/os_djyos.c @@ -434,7 +434,9 @@ static int djyClose(sqlite3_file *id){ } static int seekAndRead(FILE *fp, sqlite3_int64 offset, void *pBuf, int cnt){ fseek(fp,offset,SEEK_SET); - return fread(pBuf,cnt,1,fp); + //ÐÞ¸Ä + return fread(pBuf,1,cnt,fp); + //return fread(pBuf,cnt,1,fp); } /* ** Read data from a file into a buffer. Return SQLITE_OK if all @@ -462,7 +464,9 @@ static int djyRead( } static int seekAndWrite(FILE *fp, sqlite3_int64 offset, void *pBuf, int cnt){ fseek(fp,offset,SEEK_SET); - return fwrite(pBuf,cnt,1,fp); + //ÐÞ¸Ä + return fwrite(pBuf,1,cnt,fp); + //return fwrite(pBuf,cnt,1,fp); } /* @@ -598,7 +602,8 @@ static int djyFileSize(sqlite3_file *id, sqlite3_int64 *pSize){ assert( id!=0 ); SimulateIOError(return SQLITE_IOERR_FSTAT); - if(fstat(pFile->djyFp,&info)) + //ÐÞ¸Ä + if(fstat(fileno(pFile->djyFp),&info)==0) { *pSize = info.st_size; return SQLITE_OK; @@ -608,7 +613,16 @@ static int djyFileSize(sqlite3_file *id, sqlite3_int64 *pSize){ *pSize = 0; return SQLITE_ERROR; } - +// if(fstat(pFile->djyFp,&info)==0) +// { +// *pSize = info.st_size; +// return SQLITE_OK; +// } +// else +// { +// *pSize = 0; +// return SQLITE_ERROR; +// } } /* @@ -933,7 +947,8 @@ static int djyIsDir(const char *zConverted){ struct stat fp_info; bool_t result; result = stat(zConverted,&fp_info); - if(result != -1) + //ÐÞ¸ÄÎļþ´æÔÚ²ÅÅжÏÊDz»ÊÇĿ¼ + if(result ==0) { if( fp_info.st_mode & S_IFDIR) return true; @@ -942,6 +957,15 @@ static int djyIsDir(const char *zConverted){ } else return false; +// if(result != -1) +// { +// if( fp_info.st_mode & S_IFDIR) +// return true; +// else +// return false; +// } +// else +// return false; } /* @@ -981,10 +1005,16 @@ static int djyOpen( open_mode = "r"; else { - if(stat(zFileName,NULL) != -1) + //ÐÞ¸Ä + struct stat fp_info; + if(stat(zFileName,&fp_info) == 0) open_mode = "r+"; else open_mode = "w+"; +// if(stat(zFileName,NULL) == 0) +// open_mode = "r+"; +// else +// open_mode = "w+"; } memset(pFile, 0, sizeof(*pFile)); pFile->djyFp = 0; @@ -1016,7 +1046,6 @@ static int djyOpen( *pOutFlags = 0; } } - pFile->pMethod = &djyIoMethod; pFile->lastErrno = 0; pFile->pVfs = pVfs; diff --git a/third/sqlite3/pager.c b/third/sqlite3/pager.c index 59cf535617aa387baca20fe49a36b7a3481f41b3..6f67d44cae8b8ec4e3abba4feaccfc46d61bfcfd 100644 --- a/third/sqlite3/pager.c +++ b/third/sqlite3/pager.c @@ -1437,7 +1437,7 @@ static int writeJournalHdr(Pager *pPager){ */ for(nWrite=0; rc==SQLITE_OK&&nWritejournalHdr, nHeader)) - rc = sqlite3OsWrite(pPager->jfd, zHeader, nHeader, pPager->journalOff); + rc = sqlite3OsWrite(pPager->fd, zHeader, nHeader, pPager->journalOff); assert( pPager->journalHdr <= pPager->journalOff ); pPager->journalOff += nHeader; } @@ -5227,7 +5227,9 @@ static int pager_open_journal(Pager *pPager){ pVfs, pPager->zJournal, pPager->jfd, flags, jrnlBufferSize(pPager) ); #else - rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, flags, 0); + //ÐÞ¸Ä + //ÖØ¸´´ò¿ªÎļþϵͳ + //rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, flags, 0); #endif } assert( rc!=SQLITE_OK || isOpen(pPager->jfd) );