下面**描述了在使用者層訪問smi/mdio匯流排, 讀寫phy晶元暫存器的通用**。linux核心2.6以上通用。
將下面**編譯後,將可執行檔案a.out 重新命名為mdio
mdio eth0 1 讀取phy暫存器1的數值
mdio eth0 0 0x1120 將0x1120寫入 phy暫存器1
eth0 為mac層控制器的名稱, 一般為eth0 或mgmt0。
#include #include #include #include #include #include #include #include #include #include #include #define reteck(ret) \
if(ret < 0)
#define help() \
printf("mdio:\n"); \
printf("read operation: mdio reg_addr\n"); \
printf("write operation: mdio reg_addr value\n"); \
printf("for example:\n"); \
printf("mdio eth0 1\n"); \
printf("mdio eth0 0 0x12\n\n"); \
exit(0);
int sockfd;
int main(int argc, char *ar**)
struct mii_ioctl_data *mii = null;
struct ifreq ifr;
int ret;
memset(&ifr, 0, sizeof(ifr));
strncpy(ifr.ifr_name, ar**[1], ifnamsiz - 1);
sockfd = socket(pf_local, sock_dgram, 0);
reteck(sockfd);
//get phy address in smi bus
ret = ioctl(sockfd, siocgmiiphy, &ifr);
reteck(ret);
mii = (struct mii_ioctl_data*)&ifr.ifr_data;
if(argc == 3)else if(argc == 4)
lab:
close(sockfd);
return 0;
}
Linux 下訪問PHY晶元暫存器
mdio eth0 1 讀取phy暫存器1的數值 mdio eth0 0 0x1120 將0x1120寫入 phy暫存器1 eth0 為mac層控制器的名稱,一般為eth0 或mgmt0。include include include include include include include ...
linux下qt開發環境安裝
分類 qt 2012 02 21 00 17 579人閱讀收藏 舉報qt ubuntu 測試ide平台 linux環境 ubuntu 10.4.2 我的qt是4.7.4版本的,現在最新的是4.80 解壓 cpp view plain copy tar zvxf qt everywhere opens...
linux下lua開發環境安裝
我前面我們介紹了nginx lua環境的搭建,在此我們再來了解下lua開發環境的安裝。目前lua版本已經更新到lua5.3,但是我們在此安裝lua5.1,因為5.1執行了好多年,有好多模組都是基於此版本的,例如lua gd。安裝 1.先安裝lua的相關依賴 yum install readline ...