页次: 1
yixiuge 说:
同网段多口测试易被路由/ARP抢走,先分不同网段或加策略路由,再用iperf3 -B绑定网口。
网口有问题的原因不是测试方法的问题, 原子, 创龙, 幸狐, 米尔, 都是一样的问题, 合众没有这样的问题;
测试的方法如下: (用串口连接上开发板)
开发板上电, 然后 ifconfig eth0 xxx.xxx.xxx.xx 设置网口1的IP, ifconfig eth1 设置网口2的IP
然后从开发板ping电脑(网线直连, 不经过任何路由, 集线器)
拔掉网线插到另外一个网口, 可能就不通了(此时这个网口的IP, 可能由于DHCP重置, 需再次进行设置成指定IP)
@memory
是啊, 这几家的开发板也买过, 没有出现过这样的现象, 这次碰到这个问题, 很是奇怪了; 其实只是想测试一下3个网口同时传输时的总带宽, 评估一下这个板子能否满足三网口同时传输的需求; 前面用的是匠芯创的D213+FPGA来完成多网口传输的, 看到T153这个板子, 4核, 频率高, 就想试试;
测试过程没有写过NAND或EMMC, 都是用原厂板子自带的系统
T153有三个网口, 一般理解, 这三个网口是独立的, 把网线从某个网口拔下, 插到另一个网口, 应该都通, 但这几款开发板, 只有一个网口能通, 这样就比较奇怪, 而且无法测试总的带宽
是原厂固件, 用串口连上之后, 设置ifconfig eth0 xxx.xxx.xxx.xxx, ifconfig eth1 xxx.xxx.xxx.xxx, 然后从开发板ping -I xxx.xxx.xxx.xxx 主机IP, 会有一个口不通的情况, 从主机ping开发板, 也是一样的情况
买了5块不同牌子的T153开发板, 其中创龙, 幸狐, 米尔, 网络怪怪的, 一般只有一个通(这些板子都有2个以上网口), 正点原子的板子, 网口能通, 但仅仅能PING通,
如果执行iperf3 -s这速度始终为0, 还有2块合纵横越的还没有收到, 估计也会是一样的问题, 这个问题是不是出在适配的不好?
当年也碰到这个问题(主要做上位机工程软件), 上位机工程软件这个东西, 一个项目和另一个项目相似度很高, 都是给客户定制的, 做久了, 也是感觉瓶颈很大, 而且国内对搞软件的总带有特别的看法, 你们整天坐在电脑边, 敲敲键盘, 工资就不少, 这就是当年碰到的情况, 其实现在改观也不大.
于是就寻思, 要做一个东西, 把自己的知识, 经验等等, 在这个东西上体现出来(国内对有形的产品, 认可度更高一些, 为无形的产品付费, 总觉得亏的慌), 于是就学了ARM, FPGA, 尝试着看原理图等等, 完全能独立设计产品时, 那种瓶颈的感觉就没有了, 只感觉有做不完的事情....
可能之一, rgb的移位频率低了
示波器看的是信号之间的偏移, 比如: rx_clk和rxd之间的偏移是否为中心对齐, tx_clk和txd之间的偏移等;
ping检查的数据包的完整性, 数据包有校验值, 可以对收到的数据校验; 同时ping可以持续大量的发送或接收, 并且能够进行统计
所以两者的目的不一样
D213接千兆, PHY芯片采用YT8531, 有原理图吗?
海石生风 wrote:
参照芯片手册的CMU章节修改PLL倍频和分频设置即可
估计有困难, D213启动的设置是一个PBP文件, 这个程序是闭源的
估计得烧录fuse了, 重新设置启动顺序
如果用的是AR8035, 那么只需要确定地址, 还有为啥要用两个MDIO, MDC, 用一个应该也可以, 不过这倒是无关紧要
不懂就问, RX0D1....RX0D4, 这些管脚为什么上拉, 又下拉?
还可以选择按照分区烧写, 只写SPL, 如果重新上电能打印信息, 说明能烧写FLASH
串口能通讯(发, 收都能), 可以用upgcmd.exe编一段读取SPI状态的程序试试
D213的串口是缺省用48M的频率, 所以最高波特率是: 3M (48/16), 如果要用其他更高的波特率, 需要修改串口输入时钟
问题已解决, 原因是icache问题, 在调用call()之前, 需要执行一条icache.iall, 让指令缓冲失效
想了一天, 还是没有什么头绪
D213执行下面的程序, 如果程序偏移量大于某个值(>2048, 更精确的值没有测试), 将进入异常处理
/*
此段程序的汇编为: (此段程序与位置无关)
li a0, 111
ret
*/
//该程序的地址为: 0x400012C0
u64 get_val(void)
{
return 111;
}
typedef u64 (*PROC)(void);
//该程序的地址为: 0x400012D0
void test_call(u64 addr)
{
PROC call = (PROC)addr;
memcpy((char )addr, (char )get_val, 16); //假定函数最长16字节
printf("val=%d\n", call());
}
测试样例:
test_call(0x42000000);
进入异常的信息:
CPU Exception: NO.2
x1(ra) : 00000000400013c4 x2(sp) : 000000004000d9ac
x3(gp) : 000000004000aa68 x4(tp) : 0022802011008002
x5(t0) : 000000004000b960 x6(t1) : 0000000000000000
x7(t2) : 000000000000000f x8(s0/fp): 0000000000000010
x9(s1) : 0000000040010010 x10(a0) : 000000000000000a
x11(a1) : 000000000000000a x12(a2) : 0000000040006e25
x13(a3) : 0000000018710000 x14(a4) : 00000000000f40e6
x15(a5) : 0000000000000020 x16(a7) : 000000004000d676
x17(a7) : 0000000000000010 x18(s2) : 0000000040006e20
x19(s3) : 0000000000000001 x20(s4) : 0000000000000010
x21(s5) : 0000000000000010 x22(s6) : 0000000040010000
x23(s7) : 00000000400012d0 x24(s8) : 0000000000000006
x25(s9) : 0000000000000100 x26(s10) : 0000000040011c48
x27(s11) : 8040408900812002 x28(t3) : 0000000040006ffc
x29(t4) : 0000000000000200 x30(t5) : 0000000000000000
x31(t6) : 0000000000000001
mcause : 0000000000000002 mtval : 0000000000000000
mepc : 0000000040010000 mstatus : 0000000a00001800
其实现在这样就挺好, 把一些复杂的设置打包起来, 只要再配上使用说明, 就可以让芯片更容易上手
谢谢回复, 倒是不需要源码开放, 只是需要一个使用说明, 用什么参数, 怎么调用之类的说明
D213启动的时候, 会打印一些字符, 内容如下:
Pre-Boot Program ... (24-01-23 14:12 e863544)
SD
DDR3 128MB
Going to init DDR3. freq: 672MHz
Open Spread Spectrum
DDR3 initialized
PBP return
请问这些字符串是否能屏蔽? 换种说法就是: PBP文件的使用方法(调用参数, 初始化了哪些设备等等), 能否开放?
已买的, 还送吗? D213, D133, 昆仑, 都买了 (昆仑还未发货)
请问D213ECV, 千兆网络带宽最高多少? 如果双网口都收发数据, 能多高带宽?
没有用过AGM的MCU, 不过有个信息可以参考一下, AGM176的FPGA, 内部SDRAM标称是166M的, 实际这个FPGA只能稳定运行在125M左右
@rick lou
留个联系方式要一份
正在做MT7621
页次: 1