diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1f28b7f --- /dev/null +++ b/.gitignore @@ -0,0 +1,72 @@ +# ############################## +# 1. 忽略所有编译目录(不管层级) +# ############################## +**/IAR/ +**/IAR_*/ +**/Debug/ +**/FlashDebug/ +**/Release/ +**/SES/ +**/Output/ +**/settings/ + +# ############################## +# 2. 忽略所有 IAR/SES 编译产物 +# ############################## +**/*.dep +**/*.out +**/*.bin +**/*.elf +**/*.map +**/*.lst +**/*.o +**/*.a +**/*.pbi +**/*.pbi.dep +**/*.xcl +**/*.r79 +**/*.sdf +**/*.sim +**/*.icf +**/*.wsdt +**/*.ninja_log + +# ############################## +# 3. 强制保留工程和源码文件(兜底!关键!) +# ############################## +!**/*.eww +!**/*.ewp +!**/*.ewd +!**/*.ewt +!**/*.custom_argvars +!**/*.c +!**/*.h + +# ############################## +# 4. 系统/编辑器垃圾文件 +# ############################## +.DS_Store +._* +Thumbs.db +Desktop.ini +.vscode/ +.idea/ +*.swp +*.swo +*.log +*.tmp + +# 忽略 IAR 工具生成的 browse/调试文件 +**/*.pbd +**/*.pbdb +**/*.sf.*.bat +**/*.sf.*.pbi +**/*.ninja_log + +# 忽略 IAR 工具链自动生成的调试/浏览文件 +**/*.ninja_log +**/*.pbd +**/*.pbd.browse +**/*.pbw +**/*.cspy.bat +**/*.cspy.ps1 \ No newline at end of file diff --git a/boards/e3_176_ref/board.c b/boards/e3_176_ref/board.c index 062b83c..634fb2b 100644 --- a/boards/e3_176_ref/board.c +++ b/boards/e3_176_ref/board.c @@ -98,7 +98,7 @@ sdrv_uart_t g_console_uart; static sdrv_uart_config_t console_uart_config = { .base = DEVICE_BASE(CONSOLE_UART), .irq = DEVICE_INTR(CONSOLE_UART), - .baud = 4608000, + .baud = 4000000, .data_bits = SDRV_UART_CHAR_8_BITS, .stop_bits = SDRV_UART_STOP_1_BIT, .parity = SDRV_UART_NO_PARITY, diff --git a/boards/e3_176_ref/driver_demo/gpio/main.c b/boards/e3_176_ref/driver_demo/gpio/main.c index 8f27f0c..6c091c0 100644 --- a/boards/e3_176_ref/driver_demo/gpio/main.c +++ b/boards/e3_176_ref/driver_demo/gpio/main.c @@ -184,6 +184,7 @@ int main(void) sdrv_gpio_set_pin_output_level(GPIO_B9, 1); //ʱ + External_wdt_refresh(); // TimerʼṩLWIP sys_nowӿڻȡǰʱ btm_init(); @@ -223,13 +224,14 @@ int main(void) sdrv_gpio_set_pin_output_level(GPIO_Y1, 0); //E2дʹ External_wdt_refresh(); - printf("feed 1! \r\n"); board_norflash_init();//flash ʼ - - initSpi(); + External_wdt_refresh(); + initSpi(); + External_wdt_refresh(); // ETHʼ board_eth_init(); + External_wdt_refresh(); // wdt_init(WDT_OUTms); // wrbyte_24c02(0x00,1); @@ -264,9 +266,10 @@ int main(void) { CAN_Send_Msg(handle,OTA_CANTxID, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, BOOT_Arr,2, TX_MB_INDEX);//boot ֡ UdpSendToData(UDPCB_1, BOOT_Arr, 2, des_ipaddr, BOOT_TX_PORT); - } + } + - ssdk_printf(SSDK_INFO, "SSDK E3 boot! verison V1.28 \r\n"); + ssdk_printf(SSDK_INFO, "SSDK E3 boot! verison V1.30 \r\n"); for(;;) { @@ -288,7 +291,7 @@ int main(void) RgWDT500msflg = 0; External_wdt_refresh(); - printf("RUN2F! \r\n"); + printf("RUN33! \r\n"); } } } diff --git a/boards/e3_176_ref/driver_demo/gpio/wdt_refresh.c b/boards/e3_176_ref/driver_demo/gpio/wdt_refresh.c index 5ab5f29..0317056 100644 --- a/boards/e3_176_ref/driver_demo/gpio/wdt_refresh.c +++ b/boards/e3_176_ref/driver_demo/gpio/wdt_refresh.c @@ -72,7 +72,7 @@ void External_wdt_refresh(void) // sdrv_wdt_refresh(wdt_type);//ι sdrv_gpio_toggle_pin_output_level(WDTGPIO); -// printf("wdtfeed! \r\n"); +// printf("feed wdt! \r\n"); } diff --git a/drivers/source/eth/sdrv_eth.c b/drivers/source/eth/sdrv_eth.c index 85d2f9f..bd8b450 100644 --- a/drivers/source/eth/sdrv_eth.c +++ b/drivers/source/eth/sdrv_eth.c @@ -173,18 +173,17 @@ static void eth_mac_init(dwc_eth_config_t *cfg, struct eqos_priv *eqos) uint32_t skip_len = eqos->desc_size - sizeof(struct eqos_desc); uint8_t bus_width = cfg->dma_bus_width ? cfg->dma_bus_width : 64; eqos->dsl = skip_len * 8 / bus_width; - + //DMA init mac_init_dma(cfg->base, eqos); //MTL init mac_init_mtl(cfg->base); - + //core init phy_speed_t speed = (cfg->phy[0].phy_addr == ~0) ? PHY_SPEED_1000 : cfg->phy[0].speed; dwmac_core_init(cfg->base, cfg->mtu, speed, cfg->mac_addr); - dwmac_mac_rx_queue_mcbc_routing(cfg->base, 0); } @@ -285,13 +284,14 @@ static err_t dwc_eth_init(struct net_driver_s *dev) #endif ASSERT(eqos->rx_dma_buf); memset(eqos->rx_dma_buf, 0, EQOS_RX_BUFFER_SIZE); -#endif +#endif + //init phy phy_init(ð_dev->phy_bus); //init mac eth_mac_init(cfg, eqos); - + // set up dma tx/rx descriptors memset(eqos->descs, 0, eqos->desc_size * EQOS_DESCRIPTORS_NUM); @@ -309,7 +309,7 @@ static err_t dwc_eth_init(struct net_driver_s *dev) arch_clean_cache_range((addr_t)rx_desc, sizeof(struct eqos_desc)); arch_invalidate_cache_range((addr_t)((char *)eqos->rx_dma_buf + (i * EQOS_MAX_PACKET_SIZE)), EQOS_MAX_PACKET_SIZE); - } + } //enable rx/tx mac_start(cfg->base, true); @@ -775,11 +775,11 @@ int dwc_eth_probe(struct net_driver_s *dev, dwc_eth_config_t *cfg) for (int i = 0; cfg->phy[i].phy_addr != ~0; i++) { phy_dev_register(&dw_eth_dev->phy_bus, &cfg->phy[i]); } - - int ret = netdev_register(dev, NET_LL_ETHERNET); + External_wdt_refresh(); + int ret = netdev_register(dev, NET_LL_ETHERNET); + External_wdt_refresh(); irq_attach(cfg->irq_num, dwc_eth_irq_handler, dev); - irq_enable(cfg->irq_num); return ret; diff --git a/drivers/source/eth/sdrv_mac_lld.c b/drivers/source/eth/sdrv_mac_lld.c index 6279b18..773900b 100644 --- a/drivers/source/eth/sdrv_mac_lld.c +++ b/drivers/source/eth/sdrv_mac_lld.c @@ -18,7 +18,6 @@ #include "regs_base.h" #include "phy/phy.h" #include "sdrv_mac_lld.h" -#include static uint8_t deafult_mac_addr[6] = {0x00, 0x1f, 0x29, 0x00, 0x12, 0x15}; @@ -658,7 +657,7 @@ int32_t dwmac_dma_reset(uint32_t regbase) if (!(readl(regbase + DMA_BUS_MODE) & DMA_BUS_MODE_SFT_RESET)) break; - mdelay(1); //20251106 ޸Ϊ110ʵʱΪ140ms + mdelay(1);//20251106 ޸Ϊ110ʵʱΪ140ms } if (limit <= 0) { diff --git a/drivers/source/spi_nor/sdrv_hyperbus.c b/drivers/source/spi_nor/sdrv_hyperbus.c index 37c799b..1753828 100644 --- a/drivers/source/spi_nor/sdrv_hyperbus.c +++ b/drivers/source/spi_nor/sdrv_hyperbus.c @@ -272,7 +272,7 @@ static int sdrv_hyperbus_wait_idle(struct spi_nor *nor) } -// ssdk_printf(SSDK_INFO, "flash_status = 0x%x \r\n", flash_status); + ssdk_printf(SSDK_INFO, "flash_status = 0x%x \r\n", flash_status); if ((flash_status & BIT(7))) break; diff --git a/drivers/source/spi_nor/sdrv_spi_nor.c b/drivers/source/spi_nor/sdrv_spi_nor.c index e9a63e9..9c363a5 100644 --- a/drivers/source/spi_nor/sdrv_spi_nor.c +++ b/drivers/source/spi_nor/sdrv_spi_nor.c @@ -624,7 +624,7 @@ static int sdrv_spibus_wait_idle(struct spi_nor *nor) } } -// ssdk_printf(SSDK_INFO, "flash_status = 0x%x \r\n", flash_status); + ssdk_printf(SSDK_INFO, "flash_status = 0x%x \r\n", flash_status); if (!(flash_status & BIT(0))) break; @@ -1123,7 +1123,7 @@ static int sdrv_spibus_write(struct spi_nor *nor, flash_addr_t addr, { int ret; - if (!IS_ALIGNED(addr, 4) || !IS_ALIGNED(buf, 4)) { + if (!IS_ALIGNED(addr, 4) || !IS_ALIGNED(buf, 4)) { return SPI_NOR_ERR_STATUS(SPI_NOR_WRITE, SPI_NOR_ADDRESS_INVALID); } else if (!IS_ALIGNED(size, 4)) { return SPI_NOR_ERR_STATUS(SPI_NOR_WRITE, SPI_NOR_LENGTH_INVALID); diff --git a/drivers/source/spi_nor/sdrv_xspi.c b/drivers/source/spi_nor/sdrv_xspi.c index 4d7e1fa..58e2aba 100644 --- a/drivers/source/spi_nor/sdrv_xspi.c +++ b/drivers/source/spi_nor/sdrv_xspi.c @@ -1098,9 +1098,9 @@ static void sdrv_xspi_polling_handler(void *arg) } nor->xfer_info_bottom.opt_result = ret ? FLASH_OPT_FAILED : FLASH_OPT_PENDING; -// ssdk_printf(SSDK_DEBUG, "xfer_type = %d, xfer size = %lld, xfer result = %d\r\n", -// nor->xfer_info_bottom.opt_type == FLASH_OPT_READ, nor->xfer_info_bottom.size, -// nor->xfer_info_bottom.opt_result); + ssdk_printf(SSDK_DEBUG, "xfer_type = %d, xfer size = %lld, xfer result = %d\r\n", + nor->xfer_info_bottom.opt_type == FLASH_OPT_READ, nor->xfer_info_bottom.size, + nor->xfer_info_bottom.opt_result); if ((nor->xfer_info_bottom.size == 0 || nor->xfer_info_bottom.buf == NULL) && nor->xfer_info_bottom.opt_result == FLASH_OPT_PENDING) { diff --git a/middleware/lwip/contrib/ports/baremetal/netdev.c b/middleware/lwip/contrib/ports/baremetal/netdev.c index 2cbfe3f..4b38565 100644 --- a/middleware/lwip/contrib/ports/baremetal/netdev.c +++ b/middleware/lwip/contrib/ports/baremetal/netdev.c @@ -40,8 +40,10 @@ static err_t netdev_init_fn(struct netif *netif) } if (dev->d_init) { + External_wdt_refresh(); + dev->d_init(dev); - + External_wdt_refresh(); } return ERR_OK; @@ -58,6 +60,7 @@ err_t netdev_register(struct net_driver_s *dev, enum net_lltype_e lltype) ip_2_ip4(&dev->d_netmask), ip_2_ip4(&dev->d_gateway), dev, netdev_init_fn, netif_input); + netif_set_default(&dev->d_netif); netif_set_up(&dev->d_netif); diff --git a/tools/sdtools/sdtools.rar b/tools/sdtools/sdtools.rar new file mode 100644 index 0000000..c0fd109 Binary files /dev/null and b/tools/sdtools/sdtools.rar differ diff --git a/tools/sdtools/sfs/sfs.rar b/tools/sdtools/sfs/sfs.rar new file mode 100644 index 0000000..201a1ec Binary files /dev/null and b/tools/sdtools/sfs/sfs.rar differ