fix: warnings
This commit is contained in:
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@@ -35,6 +35,9 @@
|
|||||||
"list": "c",
|
"list": "c",
|
||||||
"locale": "c",
|
"locale": "c",
|
||||||
"regex": "c",
|
"regex": "c",
|
||||||
"vector": "c"
|
"vector": "c",
|
||||||
|
"memory_resource": "c",
|
||||||
|
"__config": "c",
|
||||||
|
"string": "c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
2
Makefile
2
Makefile
@@ -40,8 +40,6 @@ ADDITIONAL_C_FILES := \
|
|||||||
$(LWIP_C_FILES_WITH_PATH) \
|
$(LWIP_C_FILES_WITH_PATH) \
|
||||||
$(LWIP_PORT_FILES)
|
$(LWIP_PORT_FILES)
|
||||||
|
|
||||||
$(info Final ADDITIONAL_C_FILES is: [$(ADDITIONAL_C_FILES)])
|
|
||||||
|
|
||||||
include $(CH32V003FUN)/ch32fun.mk
|
include $(CH32V003FUN)/ch32fun.mk
|
||||||
|
|
||||||
CFLAGS += -Wall -Wextra $(INCLUDE_DIRS)
|
CFLAGS += -Wall -Wextra $(INCLUDE_DIRS)
|
||||||
|
|||||||
30
main.c
30
main.c
@@ -27,6 +27,7 @@
|
|||||||
#define STATS_PRINT_INTERVAL_MS 10000
|
#define STATS_PRINT_INTERVAL_MS 10000
|
||||||
|
|
||||||
struct netif g_netif;
|
struct netif g_netif;
|
||||||
|
static volatile int g_httpd_is_initialized = 0;
|
||||||
|
|
||||||
int clock_init(void);
|
int clock_init(void);
|
||||||
void led_init(void);
|
void led_init(void);
|
||||||
@@ -76,9 +77,21 @@ void led_init(void) {
|
|||||||
GPIOA->CFGLR |= (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP) << (4 * LED2_PIN);
|
GPIOA->CFGLR |= (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP) << (4 * LED2_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void link_callback(struct netif* netif) {
|
||||||
|
if (netif_is_link_up(netif)) {
|
||||||
|
printf("Link is UP\n");
|
||||||
|
printf("Starting DHCP client...\n");
|
||||||
|
dhcp_start(netif);
|
||||||
|
} else {
|
||||||
|
printf("Link is DOWN\n");
|
||||||
|
printf("Stopping DHCP client...\n");
|
||||||
|
dhcp_stop(netif);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void netif_status_callback(struct netif* netif) {
|
static void netif_status_callback(struct netif* netif) {
|
||||||
if (netif_is_up(netif) && !ip_addr_isany_val(*netif_ip4_addr(netif))) {
|
if (netif_is_up(netif) && !ip_addr_isany_val(*netif_ip4_addr(netif))) {
|
||||||
printf("netif UP\n");
|
printf("netif is UP with a valid IP\n");
|
||||||
printf(" MAC : %02X:%02X:%02X:%02X:%02X:%02X\n", netif->hwaddr[0],
|
printf(" MAC : %02X:%02X:%02X:%02X:%02X:%02X\n", netif->hwaddr[0],
|
||||||
netif->hwaddr[1], netif->hwaddr[2], netif->hwaddr[3],
|
netif->hwaddr[1], netif->hwaddr[2], netif->hwaddr[3],
|
||||||
netif->hwaddr[4], netif->hwaddr[5]);
|
netif->hwaddr[4], netif->hwaddr[5]);
|
||||||
@@ -86,12 +99,17 @@ static void netif_status_callback(struct netif* netif) {
|
|||||||
printf(" Mask : %s\n", ip4addr_ntoa(netif_ip4_netmask(netif)));
|
printf(" Mask : %s\n", ip4addr_ntoa(netif_ip4_netmask(netif)));
|
||||||
printf(" GW : %s\n", ip4addr_ntoa(netif_ip4_gw(netif)));
|
printf(" GW : %s\n", ip4addr_ntoa(netif_ip4_gw(netif)));
|
||||||
|
|
||||||
|
if (!g_httpd_is_initialized) {
|
||||||
httpd_init();
|
httpd_init();
|
||||||
printf("HTTP server init\n");
|
printf("HTTP server initialized\n");
|
||||||
|
g_httpd_is_initialized = 1;
|
||||||
|
}
|
||||||
|
|
||||||
GPIOA->BSHR = (1 << LED2_PIN);
|
GPIOA->BSHR = (1 << LED2_PIN);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
printf("netif DOWN or has no IP address\n");
|
printf("netif is DOWN or has no IP address\n");
|
||||||
|
|
||||||
GPIOA->BSHR = (1 << (LED2_PIN + 16));
|
GPIOA->BSHR = (1 << (LED2_PIN + 16));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -109,12 +127,10 @@ void lwip_stack_init(void) {
|
|||||||
ðernet_input);
|
ðernet_input);
|
||||||
|
|
||||||
netif_set_status_callback(&g_netif, netif_status_callback);
|
netif_set_status_callback(&g_netif, netif_status_callback);
|
||||||
|
netif_set_link_callback(&g_netif, link_callback);
|
||||||
|
|
||||||
netif_set_default(&g_netif);
|
netif_set_default(&g_netif);
|
||||||
netif_set_up(&g_netif);
|
netif_set_up(&g_netif);
|
||||||
|
|
||||||
printf("Starting DHCP client...\n");
|
|
||||||
dhcp_start(&g_netif);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LWIP_STATS
|
#if LWIP_STATS
|
||||||
@@ -155,7 +171,9 @@ int main() {
|
|||||||
|
|
||||||
uint32_t last_led_toggle_time = 0;
|
uint32_t last_led_toggle_time = 0;
|
||||||
uint32_t last_link_poll_time = 0;
|
uint32_t last_link_poll_time = 0;
|
||||||
|
#if LWIP_STATS
|
||||||
uint32_t last_stats_print_time = 0;
|
uint32_t last_stats_print_time = 0;
|
||||||
|
#endif
|
||||||
int led_state = 0;
|
int led_state = 0;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|||||||
@@ -124,11 +124,9 @@ static void low_level_init(struct netif* netif) {
|
|||||||
ETH10M->ERXST = ethernetif->DMARxDescToGet->Buffer1Addr;
|
ETH10M->ERXST = ethernetif->DMARxDescToGet->Buffer1Addr;
|
||||||
ETH10M->ECON1 = RB_ETH_ECON1_RXEN;
|
ETH10M->ECON1 = RB_ETH_ECON1_RXEN;
|
||||||
|
|
||||||
printf("Resetting PHY...\n");
|
|
||||||
WritePHYReg(PHY_BMCR, PHY_BMCR_RESET);
|
WritePHYReg(PHY_BMCR, PHY_BMCR_RESET);
|
||||||
Delay_Ms(200);
|
Delay_Ms(200);
|
||||||
|
|
||||||
printf("Starting PHY, Mode: 10BASE_T_FD\n");
|
|
||||||
WritePHYReg(PHY_BMCR, PHY_BMCR_FULL_DUPLEX);
|
WritePHYReg(PHY_BMCR, PHY_BMCR_FULL_DUPLEX);
|
||||||
|
|
||||||
ETH10M->EIR = 0xFF; // clear all interrupt flags
|
ETH10M->EIR = 0xFF; // clear all interrupt flags
|
||||||
@@ -136,14 +134,13 @@ static void low_level_init(struct netif* netif) {
|
|||||||
RB_ETH_EIE_TXERIE | RB_ETH_EIE_RXERIE | RB_ETH_EIE_R_EN50;
|
RB_ETH_EIE_TXERIE | RB_ETH_EIE_RXERIE | RB_ETH_EIE_R_EN50;
|
||||||
|
|
||||||
NVIC_EnableIRQ(ETH_IRQn);
|
NVIC_EnableIRQ(ETH_IRQn);
|
||||||
printf("low_level_init: done\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static err_t low_level_output(struct netif* netif, struct pbuf* p) {
|
static err_t low_level_output(struct netif* netif, struct pbuf* p) {
|
||||||
|
(void)netif;
|
||||||
|
|
||||||
if (DMATxDscrTab[0].Status & ETH_DMATxDesc_OWN) {
|
if (DMATxDscrTab[0].Status & ETH_DMATxDesc_OWN) {
|
||||||
#if LWIP_STATS
|
|
||||||
LINK_STATS_INC(link.drop);
|
LINK_STATS_INC(link.drop);
|
||||||
#endif
|
|
||||||
return ERR_BUF;
|
return ERR_BUF;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,9 +157,7 @@ static err_t low_level_output(struct netif* netif, struct pbuf* p) {
|
|||||||
DMATxDscrTab[0].Status |= ETH_DMATxDesc_OWN;
|
DMATxDscrTab[0].Status |= ETH_DMATxDesc_OWN;
|
||||||
ETH10M->ECON1 |= RB_ETH_ECON1_TXRTS;
|
ETH10M->ECON1 |= RB_ETH_ECON1_TXRTS;
|
||||||
|
|
||||||
#if LWIP_STATS
|
|
||||||
LINK_STATS_INC(link.xmit);
|
LINK_STATS_INC(link.xmit);
|
||||||
#endif
|
|
||||||
MIB2_STATS_NETIF_ADD(netif, ifoutoctets, len);
|
MIB2_STATS_NETIF_ADD(netif, ifoutoctets, len);
|
||||||
|
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
@@ -178,9 +173,7 @@ static struct pbuf* low_level_input(struct netif* netif) {
|
|||||||
uint16_t len = ETH10M->ERXLN;
|
uint16_t len = ETH10M->ERXLN;
|
||||||
|
|
||||||
if (len < MIN_ETH_FRAME_SIZE || len > ETH_MAX_PACKET_SIZE) {
|
if (len < MIN_ETH_FRAME_SIZE || len > ETH_MAX_PACKET_SIZE) {
|
||||||
#if LWIP_STATS
|
|
||||||
LINK_STATS_INC(link.lenerr);
|
LINK_STATS_INC(link.lenerr);
|
||||||
#endif
|
|
||||||
ETH10M->EIR = RB_ETH_EIR_RXIF;
|
ETH10M->EIR = RB_ETH_EIR_RXIF;
|
||||||
ETH10M->ECON1 |= RB_ETH_ECON1_RXEN;
|
ETH10M->ECON1 |= RB_ETH_ECON1_RXEN;
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -196,15 +189,11 @@ static struct pbuf* low_level_input(struct netif* netif) {
|
|||||||
memcpy(q->payload, current_rx_buffer_ptr + offset, q->len);
|
memcpy(q->payload, current_rx_buffer_ptr + offset, q->len);
|
||||||
offset += q->len;
|
offset += q->len;
|
||||||
}
|
}
|
||||||
#if LWIP_STATS
|
|
||||||
LINK_STATS_INC(link.recv);
|
LINK_STATS_INC(link.recv);
|
||||||
#endif
|
|
||||||
MIB2_STATS_NETIF_ADD(netif, ifinoctets, len);
|
MIB2_STATS_NETIF_ADD(netif, ifinoctets, len);
|
||||||
} else {
|
} else {
|
||||||
#if LWIP_STATS
|
|
||||||
LINK_STATS_INC(link.memerr);
|
LINK_STATS_INC(link.memerr);
|
||||||
LINK_STATS_INC(link.drop);
|
LINK_STATS_INC(link.drop);
|
||||||
#endif
|
|
||||||
MIB2_STATS_NETIF_INC(netif, ifindiscards);
|
MIB2_STATS_NETIF_INC(netif, ifindiscards);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,13 +226,11 @@ void ethernetif_link_poll(struct netif* netif) {
|
|||||||
|
|
||||||
if (bmsr & PHY_BMSR_LINK_STATUS) {
|
if (bmsr & PHY_BMSR_LINK_STATUS) {
|
||||||
if (!netif_is_link_up(netif)) {
|
if (!netif_is_link_up(netif)) {
|
||||||
printf("Link is UP\n");
|
|
||||||
ETH10M->MACON2 |= RB_ETH_MACON2_FULDPX;
|
ETH10M->MACON2 |= RB_ETH_MACON2_FULDPX;
|
||||||
netif_set_link_up(netif);
|
netif_set_link_up(netif);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (netif_is_link_up(netif)) {
|
if (netif_is_link_up(netif)) {
|
||||||
printf("Link is DOWN\n");
|
|
||||||
netif_set_link_down(netif);
|
netif_set_link_down(netif);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -261,17 +248,13 @@ void ETH_IRQHandler(void) {
|
|||||||
if (flags & RB_ETH_EIR_TXERIF) {
|
if (flags & RB_ETH_EIR_TXERIF) {
|
||||||
DMATxDscrTab[0].Status &= ~ETH_DMATxDesc_OWN;
|
DMATxDscrTab[0].Status &= ~ETH_DMATxDesc_OWN;
|
||||||
ETH10M->EIR = RB_ETH_EIR_TXERIF;
|
ETH10M->EIR = RB_ETH_EIR_TXERIF;
|
||||||
#if LWIP_STATS
|
|
||||||
LINK_STATS_INC(link.err);
|
LINK_STATS_INC(link.err);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & RB_ETH_EIR_RXERIF) {
|
if (flags & RB_ETH_EIR_RXERIF) {
|
||||||
ETH10M->EIR = RB_ETH_EIR_RXERIF;
|
ETH10M->EIR = RB_ETH_EIR_RXERIF;
|
||||||
ETH10M->ECON1 |= RB_ETH_ECON1_RXEN;
|
ETH10M->ECON1 |= RB_ETH_ECON1_RXEN;
|
||||||
#if LWIP_STATS
|
|
||||||
LINK_STATS_INC(link.err);
|
LINK_STATS_INC(link.err);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & RB_ETH_EIR_LINKIF) {
|
if (flags & RB_ETH_EIR_LINKIF) {
|
||||||
@@ -282,7 +265,7 @@ void ETH_IRQHandler(void) {
|
|||||||
|
|
||||||
void WritePHYReg(uint8_t reg_add, uint16_t reg_val) {
|
void WritePHYReg(uint8_t reg_add, uint16_t reg_val) {
|
||||||
R32_ETH_MIWR = (reg_add & RB_ETH_MIREGADR_MASK) | RB_ETH_MIWR_MIIWR |
|
R32_ETH_MIWR = (reg_add & RB_ETH_MIREGADR_MASK) | RB_ETH_MIWR_MIIWR |
|
||||||
RB_ETH_MIWR_DATA_SHIFT;
|
(reg_val << RB_ETH_MIWR_DATA_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t ReadPHYReg(uint8_t reg_add) {
|
uint16_t ReadPHYReg(uint8_t reg_add) {
|
||||||
|
|||||||
@@ -50,8 +50,9 @@
|
|||||||
#define LWIP_SOCKET 0
|
#define LWIP_SOCKET 0
|
||||||
|
|
||||||
// Statistics
|
// Statistics
|
||||||
#define LWIP_STATS 1
|
#define LWIP_STATS 0
|
||||||
#define LINK_STATS 1
|
#define LINK_STATS 0
|
||||||
|
#define MIB2_STATS 0
|
||||||
|
|
||||||
#define LWIP_HTTPD 1
|
#define LWIP_HTTPD 1
|
||||||
// Use a read-only filesystem populated by makefsdata
|
// Use a read-only filesystem populated by makefsdata
|
||||||
@@ -60,7 +61,7 @@
|
|||||||
#define HTTPD_USE_CUSTOM_FSDATA 1
|
#define HTTPD_USE_CUSTOM_FSDATA 1
|
||||||
|
|
||||||
#define LWIP_NETIF_HOSTNAME 1
|
#define LWIP_NETIF_HOSTNAME 1
|
||||||
// #define LWIP_NETIF_LINK_CALLBACK 1
|
#define LWIP_NETIF_LINK_CALLBACK 1
|
||||||
#define LWIP_NETIF_STATUS_CALLBACK 1
|
#define LWIP_NETIF_STATUS_CALLBACK 1
|
||||||
|
|
||||||
#define LWIP_SUPPORT_CUSTOM_PBUF 1
|
#define LWIP_SUPPORT_CUSTOM_PBUF 1
|
||||||
|
|||||||
Reference in New Issue
Block a user