Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: w7500-paho-mqtt openHAB_mqtt_W7500 kakaoIoTchatbot w7500-RFID-mqtt
Fork of WIZnetInterface by
Diff: arch/int/W7500x_toe.cpp
- Revision:
- 14:2101ab5ee40f
- Parent:
- 8:4c02de1dbf3a
- Child:
- 15:24a9f2df2145
--- a/arch/int/W7500x_toe.cpp Tue Jun 16 13:03:28 2015 +0900
+++ b/arch/int/W7500x_toe.cpp Wed Jun 17 00:24:45 2015 +0000
@@ -481,11 +481,11 @@
idle_MDIO(GPIOx);
}
-int ethernet_link(void) {
+int WIZnet_Chip::ethernet_link(void) {
return ((mdio_read(GPIO_MDC, PHYREG_STATUS)>>SVAL)&0x01);
}
-void ethernet_set_link(int speed, int duplex) {
+void WIZnet_Chip::ethernet_set_link(int speed, int duplex) {
uint32_t val=0;
if((speed < 0) || (speed > 1)) {
val = CNTL_AUTONEGO;
@@ -494,5 +494,37 @@
}
mdio_write(GPIO_MDC, PHYREG_CONTROL, val);
}
+
+ void WIZnet_Chip::reg_rd_mac(uint16_t addr, uint8_t* data)
+ {
+ data[0] = *(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)(addr+3));
+ data[1] = *(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)(addr+2));
+ data[2] = *(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)(addr+1));
+ data[3] = *(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)(addr+0));
+ data[4] = *(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)(addr+7));
+ data[5] = *(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)(addr+6));
+ }
+
+ void WIZnet_Chip::reg_wr_ip(uint16_t addr, uint8_t cb, const char* ip)
+ {
+ uint8_t buf[4]={0,};
+ uint32_t wr_ip = 0;
+ char* p = (char*)ip;
+
+ for(int i = 0; i < 4; i++) {
+ wr_ip = (wr_ip<<8);
+ buf[i] = atoi(p);
+ wr_ip |= buf[i];
+ p = strchr(p, '.');
+ if (p == NULL) break;
+ p++;
+ }
+ *(volatile uint32_t *)(W7500x_WZTOE_BASE + (uint32_t)((cb<<16)+addr)) = wr_ip;
+ }
+
+ void WIZnet_Chip::sreg_ip(int socket, uint16_t addr, const char* ip) {
+ reg_wr_ip(addr, (uint8_t)(0x01+(socket<<2)), ip);
+ }
+
#endif
