set_if6()函数再次使用的时候出错时怎么回事

发布于 2019-08-15 15:32:37    浏览:641
是这样的,我用set_if6()函数给网卡设置ipv6地址的时候是完全可以用的
再次使用这个函数的时候就出现错误
psr: 0x61000000
r00: 0x01c4eb01
r01: 0x0000003a
r02: 0x10008148
r03: 0xffffffff
r04: 0x01c4eb01
r05: 0xdeadbeef
r06: 0xdeadbeef
r07: 0xdeadbeef
r08: 0xdeadbeef
r09: 0xdeadbeef
r10: 0xdeadbeef
r11: 0xdeadbeef
r12: 0x00000000
lr: 0x00010873
pc: 0x00037ff0
hard fault on thread: etx

thread pri status sp stack size max used left tick error
------ --- ------- ---------- ---------- ------ ---------- ---
tshell 20 suspend 0x00000080 0x00001000 03% 0x00000009 000
tcprec 16 suspend 0x00000120 0x00000400 71% 0x00000003 000
tcplis 16 suspend 0x00000160 0x00000400 43% 0x00000004 000
tcprec 16 suspend 0x00000088 0x00000400 13% 0x00000005 000
tcplis 16 suspend 0x00000178 0x00000400 45% 0x00000005 000
adc_de 12 suspend 0x00000090 0x00000400 35% 0x00000004 000
switch 11 suspend 0x00000070 0x00000200 21% 0x00000005 000
key 13 suspend 0x00000070 0x00000200 21% 0x00000005 000
lcdsho 13 suspend 0x00000170 0x00000400 39% 0x00000005 000
led 17 suspend 0x00000070 0x00000800 08% 0x00000001 000
onekey 6 suspend 0x000000a0 0x00000100 62% 0x00000002 000
phy 30 suspend 0x00000070 0x00000200 21% 0x00000002 000
tcpip 12 suspend 0x000001d8 0x00001000 17% 0x0000000a 000
etx 14 running 0x00000094 0x00000200 28% 0x00000010 000
erx 14 suspend 0x00000090 0x00000200 42% 0x0000000c 000
tidle0 31 ready 0x00000044 0x00000100 35% 0x0000001f 000
led 11 suspend 0x00000074 0x00000400 11% 0x00000005 000
bus fault:
SCB_CFSR_BFSR:0x82 PRECISERR SCB->BFAR:01C4EB65


提示如上,有什么解决办法没有?


查看更多

2 个回答
kuailedeluojie
kuailedeluojie 2019-08-15
This guy hasn't written anything yet
void set_if6(char* netif_name, char* ip6_addr)
{

ip6_addr_t ip6addr;
struct netif* netif = netif_list;

if(strlen(netif_name) > sizeof(netif->name))
{
rt_kprintf("network interface name too long!\r\n");
return;
}

while(netif != RT_NULL)
{
if(strncmp(netif_name, netif->name, sizeof(netif->name)) == 0)
break;

netif = netif->next;
if( netif == RT_NULL)
{
rt_kprintf("network interface: %s not found!\r\n", netif_name);
return;
}
}

if((ip6_addr != RT_NULL) && ip6addr_aton(ip6_addr, &ip6addr))
{

inet_pton(AF_INET6,ip6_addr,netif->ip6_addr);
// ip6_addr_copy(netif->ip6_addr[1], ip6addr);
netif_ip6_addr_set_state(netif, 1, IP6_ADDR_TENTATIVE);
rt_kprintf("set_if6 %s %s\n",netif_name,ip6_addr);
}
}



这是我写的set_if6函数
aozima
aozima 2019-08-15
拒绝白嫖,拒绝键盘侠!
1. 遇到问题先调试分析,并贴出有价值的日志,和自己的分析。
2. 同样问题请不要重复发贴!
3. 问题解决请结贴。

撰写答案

请登录后再发布答案,点击登录
关注者
0
被浏览
641

发布
问题

分享
好友

手机
浏览

扫码手机浏览