This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/TMDSEVM6678:无法使用以太网进行通信、并获取错误:ti.sysbios.family.c64p.exception

Guru**** 2562120 points
Other Parts Discussed in Thread: TMS320C6678, SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/614550/rtos-tmdsevm6678-can-not-communicate-use-ethernet-and-get-error-ti-sysbios-family-c64p-exception

器件型号:TMDSEVM6678
Thread 中讨论的其他器件: TMS320C6678SYSBIOS

工具/软件:TI-RTOS

大家好:

最近我想使用 TMDSEVM6678通过以太网与计算机通信,我尝试使用示例:mcsdk_2_01_02_05\examples\NDK\HelloWorld\evmc6678。

(CCS5.2.1  、编译器版本 TIV7.4.0、NDK 版本2.21.1.38 、SYS/BIOS 版本6.33.6.50、MCSDK PDK TMS320C6678版本1.1.2.5)

我将示例更改为:

静态空 NetworkOpen()

//创建我们的本地服务器
//hHello = DemonNew (SOCK_DGRAM、0、7、dtask_udp_hello、
// OS_TASKPRINORM,OS_TASKSTKNORM,0,1);
hHello = DemonNew (sock_stream、0、7、dtask_tcp_hello、
OS_TASKPRINORM、OS_TASKSTKNORM、0、1); //使用 TCP ,而不是 UDP

// dtask_tcp_hellp

并更改 按如下方式归档:

int dtask_tcp_hello (socket s,uint32未使用)

结构时间 val 至;

int i=0,count=1024*4;//2017.06
char *pBuf=&bufqgp[0],rec=65;
int *pBuf_int =&bufqgp_int[0];

(无效)未使用;

TO.tv_sec = 5;
TO.tV_usec = 0;
setsockopt( s, SOL_socket , SO_SNDTIME,&TO, sizeof( to ));
setsockopt( s、SOL_socket、SO_RCVTIMEO、&to、sizeof( to ));

for (;count!= 0;count -= i)

i =(int) recv (s、(void *)&pBuf、count、0);

if (i >0)

send( s,&rec,1,0);

pBuf+=I;


其他
中断;

对于(i=0;i<1024;i++)

memcpy (&pBuf_int[i]、&pBuf[i*4]、4);

退货(1);

并已在  中添加:extern char bufqgp[1024*4];extern int bufqgp_int[1024];   文件

已添加  

extern int dtask_tcp_hello();  
字符 bufqgp[1024*4];//2017.07
int bufqgp_int[1024];   into the HelloWorld.c;

当我运行程序时(我没有从 PC 收到任何消息),我收到错误消息:

QMSS 已成功初始化
[C66xx_0] CPPI 已成功初始化
[C66xx_0] PA 已成功初始化
[C66xx_0]
[C66xx_0] TCP/IP 堆栈'Hello World!' 应用
[C66xx_0]
[C66xx_0]
[C66xx_0] TCP/IP 堆栈'Hello World!' 应用
[C66xx_0]
[C66xx_0]传递已成功初始化
[C66xx_0]以太网子系统已成功初始化
[C66xx_0]以太网事件 ID:48和 vectId (中断):7.
[C66xx_0] EMAC 注册成功、正在等待链接。
[C66xx_0]网络已添加:IF-1:192.168.2.100
[C66xx_0] A0=0x0 A1=0x0
[C66xx_0] A2=0x1 A3=0x803767dc
[C66xx_0] A4=0x1 A5=0x80376fc8
[C66xx_0] A6=0x80376fa0 A7=0x803767f4
[C66xx_0] A8=0x803767ec A9=0x803766f4
[C66xx_0] A10=0x80369810 A11=0xffffffff
[C66xx_0] A12=0x0 A13=0x0
[C66xx_0] A14=0x0 A15=0x0
[C66xx_0] A16=0x8002b740 A17=0x0
[C66xx_0] A18=0x8002b720 A19=0x20
[C66xx_0] A20=0x0 A21=0x0
[C66xx_0] A22=0x0 A23=0x0
[C66xx_0] A24=0x0 A25=0x0
[C66xx_0] A26=0x0 A27=0x2005000
[C66xx_0] A28=0x0 A29=0x43
[C66xx_0] A30=0x42 A31=0x1
[C66xx_0] B0=0x0 B1=0x0
[C66xx_0] B2=0x0 B3=0x4
[C66xx_0] B4=0x400 B5=0x400
[C66xx_0] B6=0x3ff B7=0x2
[C66xx_0] B8=0x80376fe8 B9=0x0
[C66xx_0] B10=0x8035c014 B11=0x80332840
[C66xx_0] B12=0x0 B13=0x0
[C66xx_0] B14=0x80379280 B15=0x80030870
[C66xx_0] B16=0x8002b760 B17=0x0
[C66xx_0] B18=0x3 B19=0x0
[C66xx_0] B20=0x0 B21=0x2e2
[C66xx_0] B22=0xF B23=0x0
[C66xx_0] B24=0x0 B25=0x3000
[C66xx_0] B26=0x3000 B27=0x0
[C66xx_0] B28=0x0 B29=0x3
[C66xx_0] B30=bbc B31=0x803767f0
[C66xx_0] NTSR=0x1020f
[C66xx_0] ITSR=0xF
[C66xx_0] IRP=0x80354bb8
[C66xx_0] SSR = 0x0
[C66xx_0] AMR=0x0
[C66xx_0] RILC = 0x0
[C66xx_0] ILC = 0x0
[C66xx_0]在0x4时发生异常
[C66xx_0] EFR=0x2 NRP=0x4
[C66xx_0]内部异常:IERR=0x1
[C66xx_0]指令提取异常
[C66xx_0] ti.sysbios.family.c64p.exception:line 248:e_exceptionMin:PC = 0x00000004、sp = 0x80030870。
[C66xx_0]要查看更多异常详细信息、请使用 ROV 或设置"ti.sysbios.family.c64p.exception.enablePrint = true;"
[C66xx_0] xdc.runtime.Error.raise:终止执行

在 e2e 中找不到关于"Internal exception: IERR=0x1"消息的任何信息,现在我不知道如何使它正常工作。  

我使引导模式:不引导,并且 PC IP 信息:

192.168.2.101

255.255.255.0

192.168.2.1

有人可以告诉我什么是错误的?

下面是 VS2012项目和 CCS5.2项目:

(我尝试通过 以太网以 int 形式发送数据)

e2e.ti.com/.../V6to6678_5F00_by_5F00_ethernet_5F00_communication.zip

e2e.ti.com/.../CCS5_5F00_2_5F00_helloWorld.zip

 

 

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的用户:3314868、

    我已将此事转发给以太网专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Cvetolin:
    感谢您的重播。 我认为这可能是 SYS/BIOS 的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    MCSDK 2.1.2.5是中间版本、如果您必须使用 MCSDK、请使用 MCSDK 2.1.2.6。 这是淘汰之前的最后一个 MCSDK。 此外、请为该 MCSDK 使用准确的 NDK、SYSBIOS、XDC 和 CCS 版本。 工具集的一些混合使用可能会导致问题。

    为了最好地调试该问题、请在 C6678上使用最新的 Processor SDK RTOS。 首先确保原始 UDP 服务器正常工作、然后介绍 TCP 服务器的代码更改。

    崩溃是 SYSBIOS 问题。 IERR=0x1是取指令错误。 B3是函数返回指针、您的情况 B3=0x4无效。 您需要调试代码。 请参阅:

    e2e.ti.com/.../347019
    e2e.ti.com/.../149427

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Eric:

    感谢您的回复,我会按照您的建议尝试,如果它能正常工作,我会告诉您。再次感谢。