Xilinx zynq zynqmp Macb Gem千兆网使用

news/2024/11/18 2:46:31/

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

zynqMP GEM 如何配置GT lane
Zynq MPsoc的GEM Ethernet DTS问题
2017.1-2018.3 Zynq UltraScale+ MPSoC: Linux MACB MDIO support for single MAC managing multiple PHYs
PetaLinux - Zynq MPSoC PS-GTR SGMII - fixed link support patch
UBOOT下SGMII网络不通问题
【分享】 MPSoC的GEM通过SGMII直接和其它CPU、switch芯片连接
Zynq UltraScale+ MPSoC - SGMII using PS-GTR
Zynq UltraScale+ MPSoC ZCU102 Evaluation Kit - PING test fails if using non-English OS
AR# 66670 Zynq-7000 SoC - Linux - Macb performance is not equal/comparable in both directions when using “iperf -d”
iperf详细使用方法
GMII,RGMII,SGMII,TBI,RTBI接口信号及时序介绍
PHY88E1111配置Verilog程序
TCI6487采用SGMII口与Marvel 88e1111相连,SGMII回环成功,但是就是发不出数据
6678 88E1111 sgmii link不上
uboot网口调试Marvell phy 88E1111
Marvell 88E1145PHY芯片的初始化配置
Marvell交换芯片88E6321/88E6320驱动总结-硬件篇
Zynq 7000 双网卡配置-内核DTS该如何配置
Cadence Macb Linux Driver for Zynq and Zynq Ultrascale+ MPSoC
Xilinx GMII2RGMII convertor
ZYNQ7035 使用petalinux 2018.02 配置Gmii to Rgmii构成双网卡
AR# 67923 2016.2 PetaLinux Zynq UltraScale+ MPSoC GMII2RGMII on MACB driver
phytool
i.MX6D: AR8033 Ethernet PHY register setting
88e1512 排坑(一)sgmii网口不稳定
88e1512 排坑(二)sgmii网口存在丢包现象

u-boot新驱动

采用设备树net\eth-uclass.c,调用函数uclass_first_device

int eth_initialize(void)
{int num_devices = 0;struct udevice *dev;eth_common_init();/** Devices need to write the hwaddr even if not started so that Linux* will have access to the hwaddr that u-boot stored for the device.* This is accomplished by attempting to probe each device and calling* their write_hwaddr() operation.*/uclass_first_device(UCLASS_ETH, &dev);if (!dev) {printf("No ethernet found.\n");bootstage_error(BOOTSTAGE_ID_NET_ETH_START);} else {char *ethprime = env_get("ethprime");struct udevice *prime_dev = NULL;if (ethprime)prime_dev = eth_get_dev_by_name(ethprime);if (prime_dev) {eth_set_dev(prime_dev);eth_current_changed();} else {eth_set_dev(NULL);}bootstage_mark(BOOTSTAGE_ID_NET_ETH_INIT);do {if (num_devices)printf(", ");printf("eth%d: %s", dev->seq, dev->name);if (ethprime && dev == prime_dev)printf(" [PRIME]");eth_write_hwaddr(dev);uclass_next_device(&dev);num_devices++;} while (dev);putc('\n');}return num_devices;
}

性能

zynq,TCP发送,绑核105MB/s,不绑核只有80MB/s,加窗108MB/s且速度很稳定,TCP接收可稳定在77MB/s。

root@zynq:~# iperf3 -c 192.168.6.85
Connecting to host 192.168.6.85, port 5201
[  4] local 192.168.6.195 port 33536 connected to 192.168.6.85 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.01   sec   109 MBytes   906 Mbits/sec    0    185 KBytes       
[  4]   1.01-2.01   sec   108 MBytes   905 Mbits/sec    0    191 KBytes       
[  4]   2.01-3.01   sec   108 MBytes   904 Mbits/sec    0    191 KBytes       
[  4]   3.01-4.01   sec   108 MBytes   903 Mbits/sec    0    191 KBytes       
[  4]   4.01-5.01   sec   108 MBytes   902 Mbits/sec    0    191 KBytes       
[  4]   5.01-6.01   sec   108 MBytes   903 Mbits/sec    0    192 KBytes       
[  4]   6.01-7.00   sec   108 MBytes   904 Mbits/sec    0    192 KBytes       
[  4]   7.00-8.00   sec   107 MBytes   903 Mbits/sec    0    235 KBytes       
[  4]   8.00-9.00   sec   108 MBytes   902 Mbits/sec    0    235 KBytes       
[  4]   9.00-10.00  sec   108 MBytes   902 Mbits/sec    0    235 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.05 GBytes   903 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.05 GBytes   903 Mbits/sec                  receiveriperf Done.
root@zynq:~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.6.85, port 38296
[  5] local 192.168.6.195 port 5201 connected to 192.168.6.85 port 38298
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  76.4 MBytes   641 Mbits/sec                  
[  5]   1.00-2.00   sec  77.6 MBytes   651 Mbits/sec                  
[  5]   2.00-3.00   sec  77.6 MBytes   651 Mbits/sec                  
[  5]   3.00-4.00   sec  77.7 MBytes   652 Mbits/sec                  
[  5]   4.00-5.00   sec  77.7 MBytes   652 Mbits/sec                  
[  5]   5.00-6.00   sec  77.7 MBytes   652 Mbits/sec                  
[  5]   6.00-7.00   sec  77.8 MBytes   653 Mbits/sec                  
[  5]   7.00-8.00   sec  77.6 MBytes   651 Mbits/sec                  
[  5]   8.00-9.00   sec  77.9 MBytes   653 Mbits/sec                  
[  5]   9.00-10.00  sec  77.8 MBytes   652 Mbits/sec                  
[  5]  10.00-10.02  sec  1.38 MBytes   646 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.02  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.02  sec   777 MBytes   651 Mbits/sec                  receiver

zynqmp发送接收都可达108MB/s。

88e1518

米联开发板,百兆网pc直连无法ping通,接交换机就没问题,按道理应该支持网线直连检测啊。

88e1512 sgmii

  • GPIO和serdes的初始化一定要放在uboot里
  • 第26个寄存器有对于sgmii接口电平的配置,默认值0x42,初始化的时候没有对其进行配置,猜测这个跟sgmii信号质量有关,于是将这个值设为0x47(700mV)

GEM EMIO RGMII

GEM EMIO只能出GMII,这里用到一个Xilinx的IP,GMII-to-RGMII,在米联的开发板上,不连网线,会导致无法搜索到phy,这个应该是硬件问题。米联的硬件上MDIO总线划分有问题和PL的phy共用MDIO总线,导致不能同时使用。

GEM MIO RGMII 1.8v AR8033

PS_MIO_VREF设置RGMII工作电压,配置AR8033的寄存器工作与1.8v,正确配置RX上下拉电阻。

       /* Set RGMII IO voltage to 1.8V */phy_write(dev, 0x1d, 0x1f);phy_write(dev, 0x1e, 0x8);

macb.probe failed with -16

EMIO出的MDIO总线没有接到phy上,无法获得正确的phy id,导致执行of_mdiobus_register_device而不是of_mdiobus_register_phy,返回-16,

zynqmp GEM SGMII

首先要给88E1111复位信号信号,复位引脚电平 高电平->低电平->高电平保持,低电平要维持10ms以上,可以给15ms,88E1111通过125CLK设置输出检测到了125Mhz时钟,能确定其正常工作。zynqmp的PS自带GTR,可以配置GEM直接从PS-GTR出SGMII,采用88e1111把SGMII转RJ45,但硬件设计时没有把MDIO接到GEM,所以PHY需要配置寄存器,

reg  value
0x1b 0x8084
0x16 0x0
0x00 0x8000

问题解决,只需对芯片执行软复位,发起自协商即可,可以从vivado获取example,内有verilog的配置示例,硬件原理图和封装映射错误,导致1000M无法自协商成功,直接卡死,百兆网可以。

双网口zynq eth1初始化失败

2015.2.1手动生成设备树,默认设置has-mdio=1,所以双网卡共享mdio时,eth1需要覆盖数值为0。

双网口内核 kernel oops

petalinux 2015.2.1,使能了双网口,GEM1的设备树没有配置phy node导致,

macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 145 (00:0a:02:f2:ab:aa)
macb e000b000.ethernet eth0: attached PHY driver [Atheros 8031 ethernet] (mii_bus:phy_addr=e000b000.etherne:01, irq=-1)
Unable to handle kernel NULL pointer dereference at virtual address 00000028
pgd = 40004000
[00000028] *pgd=00000000
Internal error: Oops - BUG: 17 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.19.0-xilinx #3
Hardware name: Xilinx Zynq Platform
task: 7d82c9c0 ti: 7d84e000 task.ti: 7d84e000
PC is at mutex_lock+0x10/0x4c
LR is at mdiobus_read+0x1c/0x44
pc : [<404893a4>]    lr : [<402d1944>]    psr: 600d0013
sp : 7d84fd80  ip : 7d84fdd0  fp : 7d9a0500
r10: 7d80d300  r9 : 00000000  r8 : 7d84fdac
r7 : 403a34a8  r6 : 00000002  r5 : 00000028  r4 : 00000028
r3 : 00000000  r2 : 00000002  r1 : 403a34a8  r0 : 00000028
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 18c5387d  Table: 3dbb004a  DAC: 00000015
Process swapper/0 (pid: 1, stack limit = 0x7d84e238)
Stack: (0x7d84fd80 to 0x7d850000)
fd80: 00000000 402d1944 00000000 7d9a0500 00000000 403a34a8 00000000 402d1688
fda0: 00000004 7d9a0000 7d8d2a10 00000000 00000000 00000000 00000000 00000000
fdc0: 00000000 00000000 00000000 00000000 7d9a0000 7d9a0500 00000000 7d9a0000
fde0: 7d80dc80 7d80dc80 00000000 7d80d300 7d9a0500 402d6ce4 7d8d2a00 7d80dc80
fe00: 7d80dc80 403a34a8 00000001 7d9a0000 7d8d2a10 7d8d2a00 7d80dc80 40671b88
fe20: 00000080 7d9a0000 7d9a0520 401060a0 00000000 00000001 00000008 7d9a0500
fe40: 7d8d0300 00000001 00000000 7d9a0520 406cd400 ffffffed 7d8d2a10 406bac38
fe60: 406bac38 00000000 406cd400 40683e94 00000000 40274e10 7d8d2a10 406f4ddc
fe80: 406bac38 402739c8 7d8d2a10 7d8d2a44 406bac38 406abb98 406996e0 40273bb4
fea0: 00000000 406bac38 40273b4c 402722ec 7d80fb5c 7d8b4334 406bac38 00000000
fec0: 7d9d6f00 4027328c 405d13e8 405d13e9 00000000 406bac38 4067150c 00000000
fee0: 406996e0 402740b8 00000000 406bac24 4067150c 40274e88 7db92880 4067150c
ff00: 00000000 400088e0 7d875180 40490c58 406d3f38 40683e70 00000000 400fe5e4
ff20: 405a9292 7d875400 4069d2b8 60000013 000000b4 7ffffe16 00000000 40035990
ff40: 000000b5 00000006 00000006 000000b4 4069d2a0 00000006 000000b5 00000006
ff60: 000000b5 4068ac8c 40683e8c 406cd400 406cd400 40657d3c 00000006 00000006
ff80: 406574fc 7d84e000 00000000 40483968 00000000 00000000 00000000 00000000
ffa0: 00000000 40483970 00000000 4000dd40 00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
[<404893a4>] (mutex_lock) from [<402d1944>] (mdiobus_read+0x1c/0x44)
[<402d1944>] (mdiobus_read) from [<402d1688>] (get_phy_device+0x130/0x198)
[<402d1688>] (get_phy_device) from [<402d6ce4>] (macb_mii_init+0x1c8/0x308)
[<402d6ce4>] (macb_mii_init) from [<40671b88>] (macb_probe+0x664/0x7d0)
[<40671b88>] (macb_probe) from [<40274e10>] (platform_drv_probe+0x48/0x98)
[<40274e10>] (platform_drv_probe) from [<402739c8>] (driver_probe_device+0x8c/0x1cc)
[<402739c8>] (driver_probe_device) from [<40273bb4>] (__driver_attach+0x68/0x8c)
[<40273bb4>] (__driver_attach) from [<402722ec>] (bus_for_each_dev+0x6c/0x90)
[<402722ec>] (bus_for_each_dev) from [<4027328c>] (bus_add_driver+0xdc/0x1c4)
[<4027328c>] (bus_add_driver) from [<402740b8>] (driver_register+0x8c/0xd0)
[<402740b8>] (driver_register) from [<40274e88>] (__platform_driver_probe+0x20/0x94)
[<40274e88>] (__platform_driver_probe) from [<400088e0>] (do_one_initcall+0x100/0x180)
[<400088e0>] (do_one_initcall) from [<40657d3c>] (kernel_init_freeable+0x110/0x1d4)
[<40657d3c>] (kernel_init_freeable) from [<40483970>] (kernel_init+0x8/0xe4)
[<40483970>] (kernel_init) from [<4000dd40>] (ret_from_fork+0x14/0x34)
Code: e92d4010 e1a04000 f57ff05b f590f000 (e1903f9f) 
---[ end trace b13f75501ad3b839 ]---
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000bCPU0: stopping
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D        3.19.0-xilinx #3
Hardware name: Xilinx Zynq Platform
[<400147f0>] (unwind_backtrace) from [<40010d54>] (show_stack+0x10/0x14)
[<40010d54>] (show_stack) from [<40486d38>] (dump_stack+0x80/0xcc)
[<40486d38>] (dump_stack) from [<400131c8>] (ipi_cpu_stop+0x3c/0x6c)
[<400131c8>] (ipi_cpu_stop) from [<400137b0>] (handle_IPI+0x64/0x84)
[<400137b0>] (handle_IPI) from [<400085cc>] (gic_handle_irq+0x54/0x5c)
[<400085cc>] (gic_handle_irq) from [<40011700>] (__irq_svc+0x40/0x74)
Exception stack(0x4068ff60 to 0x4068ffa8)
ff60: ffffffed 00000000 00000000 4001c9c0 4068e000 00000000 00000000 4068ffb0
ff80: 4048def0 7ffffdc0 00000000 ffffffed 00000001 4068ffa8 4000e7d4 4000e7d8
ffa0: 600d0013 ffffffff
[<40011700>] (__irq_svc) from [<4000e7d8>] (arch_cpu_idle+0x2c/0x38)
[<4000e7d8>] (arch_cpu_idle) from [<40048c94>] (cpu_startup_entry+0xcc/0x1e8)
[<40048c94>] (cpu_startup_entry) from [<40657bcc>] (start_kernel+0x324/0x384)
[<40657bcc>] (start_kernel) from [<00008074>] (0x8074)
---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

link up但是ping不通

petalinux 2015.2.1,设备树配phy node配置compatible错误,

ethernet@e000b000 {compatible = "xlnx,ps7-ethernet-1.00.a";reg = <0xe000b000 0x1000>;status = "okay";interrupts = <0x0 0x16 0x4>;clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>;clock-names = "pclk", "hclk", "tx_clk";#address-cells = <0x1>;#size-cells = <0x0>;phy-mode = "rgmii-id";xlnx,ptp-enet-clock = <0x69f6bcb>;local-mac-address = [00 0a 35 00 1e 53];xlnx,has-mdio = <0x1>;phy-handle = <0x4>;mdio {#address-cells = <0x1>;#size-cells = <0x0>;phy@1 {compatible = "atheros, at803x";device_type = "ethernet-phy";reg = <0x1>;reset-gpio = <0x5 0x2f 0x0>;linux,phandle = <0x4>;phandle = <0x4>;};phy@3 {compatible = "atheros, at803x";device_type = "ethernet-phy";reg = <0x3>;linux,phandle = <0x6>;phandle = <0x6>;};};
};

fixed phy

ti-linux-kernel的cpsw驱动不支持fixed-link
I.MX6 PHY fixup 调用流程 hacking

ping不通,内核打印,FPGA时钟设置不对,重新设置设备树的时钟源,为0,是因为fsbl设置的0

xemacps e000c000.ethernet: Set clk to 0 Hz
xemacps e000c000.ethernet: link up (1000/FULL)

设备树,

fixed-link {reg = <1>;full-duplex = <1>; /*0 1*/speed = <1000>; /*10 100 1000*/pause = <0>; /*0 1*/asym-pause = <0>; /*0 1*/autoneg = <0>; /*0 1*/duplex = <1>; /*0 1*/
}

zynq uboot下超时

在百兆网时经常出现这个问题,

zynq-uboot> run update_boot
Gem.e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Gem.e000b000: No link, phyaddr: 1.
Gem.e000b000:1 is connected to Gem.e000b000.  Reconnecting to Gem.e000b000
Gem.e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Gem.e000b000: No link, phyaddr: 1.
Gem.e000b000 Waiting for PHY auto negotiation to complete.....user interrupt!
Gem.e000b000: No link, phyaddr: 3.

增大uboot自协商超时时间。

#define PHY_ANEG_TIMEOUT	16000

tftp超时,时断时续,编辑uboot tftp.c下相关时间宏定义。

AR8033初始化错误导致linux ping不通

petalinux 2015.2.1,wireshark调试,实际情况是包根本没有发出去,在emmc做rootfs时出现,原因不明,参考uboot在驱动中加上下面的补丁。

static int at803x_config_init(struct phy_device *phydev)
{int ret;/*printk("%s %d\n", __FUNCTION__, __LINE__);*/
#if 1/*mwm193 rd rootfs ok, emmc rootfs net ping failed*/{int regval;phy_write(phydev, 0xd, 0x0007);phy_write(phydev, 0xe, 0x8016);phy_write(phydev, 0xd, 0x4007);regval = phy_read(phydev, 0xe);phy_write(phydev, 0xe, (regval|0x0018));phy_write(phydev, 0x1d, 0x05);regval = phy_read(phydev, 0x1e);phy_write(phydev, 0x1e, (regval|0x0100));}
#endif
...
}

20190815更新,

	if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID || phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) {ret = phy_write(phydev, AT803X_DEBUG_ADDR,0x0);if (ret)return ret;ret = phy_write(phydev, AT803X_DEBUG_DATA,BIT(15));if (ret)return ret;}if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID || phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) {ret = phy_write(phydev, AT803X_DEBUG_ADDR,AT803X_DEBUG_SYSTEM_MODE_CTRL);if (ret)return ret;ret = phy_write(phydev, AT803X_DEBUG_DATA,AT803X_DEBUG_RGMII_TX_CLK_DLY);if (ret)return ret;}

budget exhausted after napi reschedule

【Linux4.1.12源码分析】收包软中断和NAPI
Linux内核NAPI机制分析

打印来自napi_poll函数,目前不影响使用,

	/* Some drivers may have called napi_schedule* prior to exhausting their budget.*/if (unlikely(!list_empty(&n->poll_list))) {pr_warn_once("%s: Budget exhausted after napi rescheduled\n",n->dev ? n->dev->name : "backlog");goto out_unlock;}

phytool

直接敲phytool输出帮助,phytool -h会报错error: bad location format

root@zynq:~# phytool print eth0/0
ieee-phy: id:0x02430c54ieee-phy: reg:BMCR(0x00) val:0x3100flags:          -reset -loopback +aneg-enable -power-down -isolate -aneg-restart -collision-testspeed:          100-fullieee-phy: reg:BMSR(0x01) val:0x786dcapabilities:   -100-b4 +100-f +100-h +10-f +10-h -100-t2-f -100-t2-hflags:          -ext-status +aneg-complete -remote-fault +aneg-capable +link -jabber +ext-register
root@zynq:~# phytool
Usage: phytool read  IFACE/ADDR/REGphytool write IFACE/ADDR/REG <0-0xffff>phytool print IFACE/ADDR[/REG]
whereADDR := C22 | C45
C22  := <0-0x1f>
C45  := <0-0x1f>:<0-0x1f>
REG  := <0-0x1f>Examples:phytool read  eth0/0:3/1phytool write eth0/0xa/0 0x1140phytool print eth0/0x1c

http://www.ppmy.cn/news/271978.html

相关文章

【Arduino + Linux】基于 Helix 解码库实现 MP3 音频播放

目录 一、MP3 文件结构1.1、ID3V2.31.1.1、标签头1.1.2、扩展标签头1.1.3、标签帧 1.2、音频数据1.3、ID3V11.4、MP3文件结构图 二、MP3 解码库三、Windows上播放MP3文件3.1、伪代码分析3.2、创建项目 & 编译生成可执行文件 四、ESP32上播放MP3文件4.1、VS Code开发环境搭建…

STM32MP157学习笔记(四) ---- Debian文件系统移植

一、构建 Debian for ARM Linux 主机环境 $ uname -a Linux lodge-ubuntu 5.11.0-35-generic #37~20.04.1-Ubuntu SMP Mon Sep 13 13:30:34 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux 1、安装构建工具 sudo apt-get install binfmt-support qemu qemu-user-static debootst…

Java程序执行流程

Java程序执行的整个过程可以分为三个阶段&#xff1a;编译、加载和运行 1.编译 Java程序的源代码需要经过编译器&#xff08;例如javac&#xff09;的编译&#xff0c;将其转换成字节码&#xff08;即.class文件&#xff09;&#xff0c;这个过程称为编译。编译器会对源代码中…

电脑充电器,电脑充电器没带怎么充电

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 电脑充电器没带的解决方法&#xff1a; 1、有USB的充电线&#xff0c;另一端插到手机中即可充电。 2、借用别人的充电器。 3、把电池装在别人的电脑上充满再用。 4、笔记本可以用车…

DB107-ASEMI适配充电器LED适配器桥堆

编辑&#xff1a;ll DB107-ASEMI适配充电器LED适配器桥堆 型号&#xff1a;DB107 品牌&#xff1a;ASEMI 封装&#xff1a;DB-4 电流&#xff1a;1A 电压&#xff1a;1000V 正向电压&#xff1a;1.1V 引脚数量&#xff1a;4 芯片个数&#xff1a;4 芯片尺寸&#xff…

诺基亚微软软件测试,【诺基亚6710N评测】软件测试1-中关村在线

软件测试1 软件测试&#xff1a; 下面我们开始对诺基亚的7610N的性能进行全面的测试&#xff0c;选用的软件依然是JBenchmark、JBenchmark II、JBenchmark 3D、JBenchmark HD以及的SPMarkJAVA 06。在这里需要说明一下的是&#xff0c;我们运行评测软件都是在手机开机一小时后&a…

自制USB接口供电的手机电池充电器电路

自制USB接口供电的手机电池充电器电路 (2011-03-30 20:30:57) 转载 标签&#xff1a; 充电电压 宋体 诺基亚手机 usb接口 电池充电 it 分类&#xff1a; 专业 该电路的充电电流有100mA (图中开关SB断开时)、500mA(图中开关S闭合时)两挡可供选择。电路允许的MAX1811的第1脚按图连…

虚拟机安装和配置红帽企业版 7.4 操作系统及相关设置

虚拟机安装和配置红帽企业版 7.4 操作系统及相关设置 当安装红帽企业版 7.4 操作系统时&#xff0c;可以按照以下步骤进行配置和设置&#xff1a; 使用 VM16.0 安装软件&#xff0c;打开虚拟机管理程序&#xff0c;并选择创建新的虚拟机。在创建虚拟机的过程中&#xff0c;选…