修改30ms喂狗,解决初始化超时问题
This commit is contained in:
@@ -184,7 +184,6 @@ int main(void)
|
|||||||
|
|
||||||
sdrv_gpio_set_pin_output_level(GPIO_B9, 1); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
sdrv_gpio_set_pin_output_level(GPIO_B9, 1); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
|
||||||
External_wdt_refresh();
|
|
||||||
|
|
||||||
// Timer<65><72>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩLWIP sys_now<6F>ӿڻ<D3BF>ȡ<EFBFBD><C8A1>ǰʱ<C7B0><CAB1>
|
// Timer<65><72>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩLWIP sys_now<6F>ӿڻ<D3BF>ȡ<EFBFBD><C8A1>ǰʱ<C7B0><CAB1>
|
||||||
btm_init();
|
btm_init();
|
||||||
@@ -224,20 +223,20 @@ int main(void)
|
|||||||
sdrv_gpio_set_pin_output_level(GPIO_Y1, 0); //E2дʹ<D0B4><CAB9>
|
sdrv_gpio_set_pin_output_level(GPIO_Y1, 0); //E2дʹ<D0B4><CAB9>
|
||||||
|
|
||||||
External_wdt_refresh();
|
External_wdt_refresh();
|
||||||
|
printf("feed 1! \r\n");
|
||||||
|
|
||||||
board_norflash_init();//flash <20><>ʼ<EFBFBD><CABC>
|
board_norflash_init();//flash <20><>ʼ<EFBFBD><CABC>
|
||||||
External_wdt_refresh();
|
|
||||||
initSpi();
|
initSpi();
|
||||||
// ETH<54><48>ʼ<EFBFBD><CABC>
|
// ETH<54><48>ʼ<EFBFBD><CABC>
|
||||||
board_eth_init();
|
board_eth_init();
|
||||||
External_wdt_refresh();
|
|
||||||
// wdt_init(WDT_OUTms);
|
// wdt_init(WDT_OUTms);
|
||||||
// wrbyte_24c02(0x00,1);
|
// wrbyte_24c02(0x00,1);
|
||||||
|
|
||||||
UDP_Echo_Init(UDPCB_1, udp_Callback_1, DOWNLOAR_PORT);
|
UDP_Echo_Init(UDPCB_1, udp_Callback_1, DOWNLOAR_PORT);
|
||||||
|
|
||||||
ethernetInterfaceInit();
|
ethernetInterfaceInit();
|
||||||
External_wdt_refresh();
|
// External_wdt_refresh();
|
||||||
e2_boot_arr[0] = rdbyte_24c02(APP_VERSION_E2adr);
|
e2_boot_arr[0] = rdbyte_24c02(APP_VERSION_E2adr);
|
||||||
e2_boot_arr[1] = rdbyte_24c02(APP_VERSION_E2adr+1);
|
e2_boot_arr[1] = rdbyte_24c02(APP_VERSION_E2adr+1);
|
||||||
e2_boot_arr[2] = rdbyte_24c02(APP_VERSION_E2adr+2);
|
e2_boot_arr[2] = rdbyte_24c02(APP_VERSION_E2adr+2);
|
||||||
@@ -255,7 +254,7 @@ int main(void)
|
|||||||
des_ipaddr[1] = rdbyte_24c02(BOOT_DES_IP+1);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>IP
|
des_ipaddr[1] = rdbyte_24c02(BOOT_DES_IP+1);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>IP
|
||||||
des_ipaddr[2] = rdbyte_24c02(BOOT_DES_IP+2);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>IP
|
des_ipaddr[2] = rdbyte_24c02(BOOT_DES_IP+2);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>IP
|
||||||
des_ipaddr[3] = rdbyte_24c02(BOOT_DES_IP+3);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>IP
|
des_ipaddr[3] = rdbyte_24c02(BOOT_DES_IP+3);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>IP
|
||||||
External_wdt_refresh();
|
// External_wdt_refresh();
|
||||||
|
|
||||||
if(g_systemDataRecord.canBootloaderUpgrade == NORMAL_ON)//0<><30><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD>APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>BOOT<4F><54><EFBFBD><EFBFBD>
|
if(g_systemDataRecord.canBootloaderUpgrade == NORMAL_ON)//0<><30><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD>APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>BOOT<4F><54><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
@@ -267,7 +266,7 @@ int main(void)
|
|||||||
UdpSendToData(UDPCB_1, BOOT_Arr, 2, des_ipaddr, BOOT_TX_PORT);
|
UdpSendToData(UDPCB_1, BOOT_Arr, 2, des_ipaddr, BOOT_TX_PORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
ssdk_printf(SSDK_INFO, "SSDK E3 boot! verison V1.24 \r\n");
|
ssdk_printf(SSDK_INFO, "SSDK E3 boot! verison V1.28 \r\n");
|
||||||
|
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
@@ -289,7 +288,7 @@ int main(void)
|
|||||||
RgWDT500msflg = 0;
|
RgWDT500msflg = 0;
|
||||||
External_wdt_refresh();
|
External_wdt_refresh();
|
||||||
|
|
||||||
printf("RUN24! \r\n");
|
printf("RUN2F! \r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ void External_wdt_refresh(void)
|
|||||||
// sdrv_wdt_refresh(wdt_type);//ι<><CEB9>
|
// sdrv_wdt_refresh(wdt_type);//ι<><CEB9>
|
||||||
|
|
||||||
sdrv_gpio_toggle_pin_output_level(WDTGPIO);
|
sdrv_gpio_toggle_pin_output_level(WDTGPIO);
|
||||||
|
// printf("wdtfeed! \r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
#include "sdrv_eth.h"
|
#include "sdrv_eth.h"
|
||||||
#include "phy/phy.h"
|
#include "phy/phy.h"
|
||||||
|
|
||||||
|
#include <wdt_refresh.h>
|
||||||
|
|
||||||
/* Eth frame header and crc length. */
|
/* Eth frame header and crc length. */
|
||||||
#define ETH_FRAME_HEADER_LEN (6 + 6 + 2)
|
#define ETH_FRAME_HEADER_LEN (6 + 6 + 2)
|
||||||
#define ETH_FRAME_OVERHEAD_LEN (ETH_FRAME_HEADER_LEN + 4)
|
#define ETH_FRAME_OVERHEAD_LEN (ETH_FRAME_HEADER_LEN + 4)
|
||||||
@@ -171,17 +173,18 @@ 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);
|
uint32_t skip_len = eqos->desc_size - sizeof(struct eqos_desc);
|
||||||
uint8_t bus_width = cfg->dma_bus_width ? cfg->dma_bus_width : 64;
|
uint8_t bus_width = cfg->dma_bus_width ? cfg->dma_bus_width : 64;
|
||||||
eqos->dsl = skip_len * 8 / bus_width;
|
eqos->dsl = skip_len * 8 / bus_width;
|
||||||
|
|
||||||
//DMA init
|
//DMA init
|
||||||
mac_init_dma(cfg->base, eqos);
|
mac_init_dma(cfg->base, eqos);
|
||||||
|
|
||||||
//MTL init
|
//MTL init
|
||||||
mac_init_mtl(cfg->base);
|
mac_init_mtl(cfg->base);
|
||||||
|
|
||||||
//core init
|
//core init
|
||||||
phy_speed_t speed = (cfg->phy[0].phy_addr == ~0) ?
|
phy_speed_t speed = (cfg->phy[0].phy_addr == ~0) ?
|
||||||
PHY_SPEED_1000 : cfg->phy[0].speed;
|
PHY_SPEED_1000 : cfg->phy[0].speed;
|
||||||
dwmac_core_init(cfg->base, cfg->mtu, speed, cfg->mac_addr);
|
dwmac_core_init(cfg->base, cfg->mtu, speed, cfg->mac_addr);
|
||||||
|
|
||||||
dwmac_mac_rx_queue_mcbc_routing(cfg->base, 0);
|
dwmac_mac_rx_queue_mcbc_routing(cfg->base, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,14 +285,13 @@ static err_t dwc_eth_init(struct net_driver_s *dev)
|
|||||||
#endif
|
#endif
|
||||||
ASSERT(eqos->rx_dma_buf);
|
ASSERT(eqos->rx_dma_buf);
|
||||||
memset(eqos->rx_dma_buf, 0, EQOS_RX_BUFFER_SIZE);
|
memset(eqos->rx_dma_buf, 0, EQOS_RX_BUFFER_SIZE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//init phy
|
//init phy
|
||||||
phy_init(ð_dev->phy_bus);
|
phy_init(ð_dev->phy_bus);
|
||||||
|
|
||||||
//init mac
|
//init mac
|
||||||
eth_mac_init(cfg, eqos);
|
eth_mac_init(cfg, eqos);
|
||||||
|
|
||||||
// set up dma tx/rx descriptors
|
// set up dma tx/rx descriptors
|
||||||
memset(eqos->descs, 0, eqos->desc_size * EQOS_DESCRIPTORS_NUM);
|
memset(eqos->descs, 0, eqos->desc_size * EQOS_DESCRIPTORS_NUM);
|
||||||
|
|
||||||
@@ -307,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_clean_cache_range((addr_t)rx_desc, sizeof(struct eqos_desc));
|
||||||
arch_invalidate_cache_range((addr_t)((char *)eqos->rx_dma_buf +
|
arch_invalidate_cache_range((addr_t)((char *)eqos->rx_dma_buf +
|
||||||
(i * EQOS_MAX_PACKET_SIZE)), EQOS_MAX_PACKET_SIZE);
|
(i * EQOS_MAX_PACKET_SIZE)), EQOS_MAX_PACKET_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//enable rx/tx
|
//enable rx/tx
|
||||||
mac_start(cfg->base, true);
|
mac_start(cfg->base, true);
|
||||||
@@ -773,10 +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++) {
|
for (int i = 0; cfg->phy[i].phy_addr != ~0; i++) {
|
||||||
phy_dev_register(&dw_eth_dev->phy_bus, &cfg->phy[i]);
|
phy_dev_register(&dw_eth_dev->phy_bus, &cfg->phy[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ret = netdev_register(dev, NET_LL_ETHERNET);
|
int ret = netdev_register(dev, NET_LL_ETHERNET);
|
||||||
|
|
||||||
irq_attach(cfg->irq_num, dwc_eth_irq_handler, dev);
|
irq_attach(cfg->irq_num, dwc_eth_irq_handler, dev);
|
||||||
|
|
||||||
irq_enable(cfg->irq_num);
|
irq_enable(cfg->irq_num);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,64 +1,65 @@
|
|||||||
#include <types.h>
|
#include <types.h>
|
||||||
#include <netdev.h>
|
#include <netdev.h>
|
||||||
#include <lwip/debug.h>
|
#include <lwip/debug.h>
|
||||||
#include <lwip/def.h>
|
#include <lwip/def.h>
|
||||||
#include <lwip/tcpip.h>
|
#include <lwip/tcpip.h>
|
||||||
#include <lwip/etharp.h>
|
#include <lwip/etharp.h>
|
||||||
|
#include <wdt_refresh.h>
|
||||||
static err_t netdev_linkoutput_fn(struct netif *netif, struct pbuf *p)
|
|
||||||
{
|
static err_t netdev_linkoutput_fn(struct netif *netif, struct pbuf *p)
|
||||||
struct net_driver_s *dev;
|
{
|
||||||
|
struct net_driver_s *dev;
|
||||||
dev = (struct net_driver_s *)netif->state;
|
|
||||||
|
dev = (struct net_driver_s *)netif->state;
|
||||||
return dev->d_txavail ? dev->d_txavail(dev, p) : ERR_IF;
|
|
||||||
}
|
return dev->d_txavail ? dev->d_txavail(dev, p) : ERR_IF;
|
||||||
|
}
|
||||||
static err_t netdev_init_fn(struct netif *netif)
|
|
||||||
{
|
static err_t netdev_init_fn(struct netif *netif)
|
||||||
struct net_driver_s *dev;
|
{
|
||||||
|
struct net_driver_s *dev;
|
||||||
netif->output = etharp_output;
|
|
||||||
netif->linkoutput = netdev_linkoutput_fn;
|
netif->output = etharp_output;
|
||||||
|
netif->linkoutput = netdev_linkoutput_fn;
|
||||||
dev = (struct net_driver_s *)netif->state;
|
|
||||||
|
dev = (struct net_driver_s *)netif->state;
|
||||||
if (dev->d_getmac) {
|
|
||||||
netif->hwaddr_len = (u8_t)(dev->d_getmac(dev, netif->hwaddr, sizeof(netif->hwaddr)));
|
if (dev->d_getmac) {
|
||||||
}
|
netif->hwaddr_len = (u8_t)(dev->d_getmac(dev, netif->hwaddr, sizeof(netif->hwaddr)));
|
||||||
|
}
|
||||||
if (dev->d_getmtu) {
|
|
||||||
netif->mtu = (u16_t)(dev->d_getmtu(dev));
|
if (dev->d_getmtu) {
|
||||||
}
|
netif->mtu = (u16_t)(dev->d_getmtu(dev));
|
||||||
|
}
|
||||||
if (dev->d_lltype == NET_LL_ETHERNET) {
|
|
||||||
netif->name[0] = 'e';
|
if (dev->d_lltype == NET_LL_ETHERNET) {
|
||||||
netif->name[1] = 'n';
|
netif->name[0] = 'e';
|
||||||
netif->num = 0;
|
netif->name[1] = 'n';
|
||||||
netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
|
netif->num = 0;
|
||||||
}
|
netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
|
||||||
|
}
|
||||||
if (dev->d_init) {
|
|
||||||
dev->d_init(dev);
|
if (dev->d_init) {
|
||||||
}
|
dev->d_init(dev);
|
||||||
|
|
||||||
return ERR_OK;
|
}
|
||||||
}
|
|
||||||
|
return ERR_OK;
|
||||||
err_t netdev_register(struct net_driver_s *dev, enum net_lltype_e lltype)
|
}
|
||||||
{
|
|
||||||
LWIP_ASSERT("netdev_register: dev is NULL", dev != NULL);
|
err_t netdev_register(struct net_driver_s *dev, enum net_lltype_e lltype)
|
||||||
|
{
|
||||||
dev->d_lltype = (u8_t)lltype;
|
LWIP_ASSERT("netdev_register: dev is NULL", dev != NULL);
|
||||||
|
|
||||||
netif_add(&dev->d_netif,
|
dev->d_lltype = (u8_t)lltype;
|
||||||
ip_2_ip4(&dev->d_ipaddr),
|
|
||||||
ip_2_ip4(&dev->d_netmask),
|
netif_add(&dev->d_netif,
|
||||||
ip_2_ip4(&dev->d_gateway),
|
ip_2_ip4(&dev->d_ipaddr),
|
||||||
dev, netdev_init_fn, netif_input);
|
ip_2_ip4(&dev->d_netmask),
|
||||||
|
ip_2_ip4(&dev->d_gateway),
|
||||||
netif_set_default(&dev->d_netif);
|
dev, netdev_init_fn, netif_input);
|
||||||
netif_set_up(&dev->d_netif);
|
netif_set_default(&dev->d_netif);
|
||||||
|
netif_set_up(&dev->d_netif);
|
||||||
return ERR_OK;
|
|
||||||
}
|
return ERR_OK;
|
||||||
|
}
|
||||||
|
|||||||
BIN
tools/sdtools/temp/2025110901boot.bin
Normal file
BIN
tools/sdtools/temp/2025110901boot.bin
Normal file
Binary file not shown.
BIN
tools/sdtools/temp/2025111601boot.bin
Normal file
BIN
tools/sdtools/temp/2025111601boot.bin
Normal file
Binary file not shown.
Binary file not shown.
1
tools/sdtools/打包命令.txt
Normal file
1
tools/sdtools/打包命令.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
sign_tool\windows\atb_signer.exe sign --v 2 --sec_ver 0 --dgst sha256 --rcp key=sign_tool\keys\TestRSA2048_ossl.pem --iib core=0 type=0x0 image=temp\sf.bin dlp=0x8 to=0x504000 entry=0x504000 --psn 0x10D --of temp\2025111601boot.bin
|
||||||
Reference in New Issue
Block a user