rt-thread启动网络协议栈后无法在uboot命令行中启动
硬件平台zynq7020,目前使用xilinx fsbl直接启动rt-thread内核正常,网卡正常
uboot 命令行启动rt-thread,正常启动后,协议栈发送arp请求时访问地址异常
信息如下:
msh >XEmacPs detect_phy: PHY detected at address 1.
status:0x796d
Start PHY autonegotiation
Waiting for PHY to complete autonegotiation.
etharp_timer
etharp_timer
etharp_timer
autonegotiation complete
link speed for phy address 1: 1000
etharp_request: sending ARP request.
etharp_raw: sending raw ARP packet.
data abort:Execption:
r00:0x00000100 r01:0x0000000a r02:0x00556f01 r03:0x00555588
r04:0xdeadbeef r05:0xdeadbeef r06:0xdeadbeef r07:0xdeadbeef
r08:0xdeadbeef r09:0xdeadbeef r10:0xdeadbeef
fp :0x0030360c ip :0x00225080
sp :0x003035e0 lr :0x0023d360 pc :0x0023d3d8
cpsr:0x20000013
thread pri status sp stack size max used left tick error
------ --- ------- ---------- ---------- ------ ---------- ---
tshell 20 suspend 0x000000c8 0x00001000 05% 0x0000000a 000
phy 30 ready 0x000000dc 0x00000400 26% 0x0000000f 000
tcpip 10 suspend 0x000000ec 0x00001000 08% 0x00000014 000
etx 12 suspend 0x000000a8 0x00001000 04% 0x00000640 000
erx 12 ready 0x000000b0 0x00001000 14% 0x00000640 000
tidle0 31 ready 0x0000005c 0x00000100 59% 0x00000004 000
shutdown...
(0) assertion failed at function:rt_hw_cpu_shutdown, line number:38
根据pc与lr地址反汇编后,发现发送arp包时某个指针异常,但是函数调用过程中这个指针一直是正常的,突然间这个地址就无法被访问造成了data abort
由于不经过uboot使用真整个程序都正常,只有在uboot下会出现问题,网络协议栈是lwip
求问整个问题查找的思路,已经被折磨疯了