This commit is contained in:
2024-10-10 19:45:45 +06:00
parent df9b2445bd
commit 8d0606462d
4 changed files with 51 additions and 24 deletions

View File

@@ -6,10 +6,10 @@ W5500 VERSIONR: 0x04
Registering DHCP callbacks...
Calling DHCP_run()...
> Send DHCP_DISCOVER
DHCP message : 192.168.102.1(67) 311 received.
DHCP message : 192.168.102.1(67) 311 received.
> Receive DHCP_OFFER
> Send DHCP_REQUEST
DHCP message : 192.168.102.1(67) 311 received.
DHCP message : 192.168.102.1(67) 311 received.
> Receive DHCP_ACK
> Check leased IP - OK
@@ -23,20 +23,49 @@ Calling DNS_init()...
Resolving domain name "hye.su"...
> DNS Query to DNS Server : 192.168.102.1
> Receive DNS message from 192.168.102.1(53). len = 21
> Partial DNS message: 11 23 81 82 00 01 00 00 00 00 00 00 03 68 79 65 00 00 00 02 73
> Partial DNS message: 11 23 81 82 00 01 00 00 00 00 00 00 03 68 79 65 00 00 00 02 73
DNS_run() failed, res = 0
```
w/ ch32v003fun
> Partial DNS message: `11 23 81 82 00 01 00 00 00 00 00 00 03 68 79 65 00 00 00 02 73`
**DNS_run() failed, res = 0**
> **DNS_run() failed, res = 0**
w/ WCH HAL (none-os).. I get a full response
> Receive DNS message from 192.168.102.1(53). len = 56
> Partial DNS message: `11 23 81 80 00 01 00 02 00 00 00 00 03 68 79 65 02 73 75 00 00 01 00 01 C0 0C 00 01 00 01 00 00 01 2C 00 04 68 15 33 7F C0 0C 00 01 00 01 00 00 01 2C 00 04 AC 43 B4 9A `
Result: 172.67.180.154
> Result: 172.67.180.154
`RCC_CTLR`, GPIO Registers, `SPIx_CTLR1` registers are identical
## LA
### ch32v003fun
![ch32v003fun](notes/2024-10-10-191033_1876x540_scrot.png)
```
00 00 34 11 27 01 00 00 01 00 00 00 00 00 00 03 68 79 65 00 00 00 02 73 75 00 00 00 00 01 00 01
```
- 32 bytes long
- (Post `68 79 65`): `00 00 00 02 73 75 00 00 00 00 01 00 01`
### none-os
![none-os](notes/2024-10-10-191043_1891x525_scrot.png)
```
00 00 34 11 27 01 00 00 01 00 00 00 00 00 00 03 68 79 65 02 73 75 00 00 01 00 01
```
- 27 bytes long
- (Post `68 79 65`): `02 73 75 00 00 01 00 01`
## none-os
```c
// Initialize GPIO for W5500 CS
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
@@ -80,4 +109,4 @@ Result: 172.67.180.154
SPI_Cmd(SPI1, ENABLE);
}
```
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View File

@@ -74,8 +74,8 @@ void init_spi(void) {
SPI1->CTLR1 = 0;
// set prescaler
// 001: FPCLK/4;
SPI1->CTLR1 = (SPI1->CTLR1 & ~SPI_CTLR1_BR) | (0x1 << 3);
// 011: FPCLK/16
SPI1->CTLR1 = (SPI1->CTLR1 & ~SPI_CTLR1_BR) | (0x3 << 3);
// set clock polarity and phase
SPI1->CTLR1 |= (SPI_CPOL_Low | SPI_CPHA_1Edge);
@@ -174,25 +174,23 @@ int main(void) {
printf("Calling DNS_init()...\r\n");
DNS_init(DNS_SOCKET, dns_buffer);
const char domain_name[] = "hye.su";
uint8_t addr[4];
{
char domain_name[] = "hye.su";
int8_t res;
uint8_t retries = 0;
while (retries < 10) {
Delay_Ms(250);
printf("Resolving domain name \"%s\"...\r\n", domain_name);
int8_t res = DNS_run(dns, (uint8_t*)&domain_name, addr);
if (res != 1) {
printf("DNS_run() failed, res = %d", res);
return 1;
res = DNS_run(dns, (uint8_t *)domain_name, addr);
if (res == 1) {
printf("Result: %d.%d.%d.%d\r\n", addr[0], addr[1], addr[2], addr[3]);
} else {
printf("DNS_run() failed, res = %d. Retries: %u\r\n", res, retries);
}
printf("Result: %d.%d.%d.%d\r\n", addr[0], addr[1], addr[2], addr[3]);
}
while (1) {
GPIOB->BSHR = (1 << 3) | (1 << 4);
printf("+%lu\n", count++);
Delay_Ms(1000); // from ch32v003fun.h
GPIOB->BCR = (1 << 3) | (1 << 4);
printf("-%lu\n", count++);
Delay_Ms(1000);
retries++;
}
}