页次: 1
示波器看的是信号之间的偏移, 比如: rx_clk和rxd之间的偏移是否为中心对齐, tx_clk和txd之间的偏移等;
ping检查的数据包的完整性, 数据包有校验值, 可以对收到的数据校验; 同时ping可以持续大量的发送或接收, 并且能够进行统计
所以两者的目的不一样
D213接千兆, PHY芯片采用YT8531, 有原理图吗?
参照芯片手册的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