四轴飞行器DIY活动征集报名中!更有现金奉送哦~→ 立即报名 ←
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 串口问题!(老站转)

共1条 1/1 1 跳转至

串口问题!(老站转)

菜鸟
2002-07-29 01:25:00    评分
beginner 工程师 来自: 发表总数:15   查看   短消息   电子邮件   引用   回复   -------------------------------------------------------------------------------- 我的程序为: STATUS comTest(void) { int fd; int nBytes = 0; char* RecvBuf; if ((fd = open("/tyCo/1", O_RDWR, 0)) == ERROR) { perror("open"); return ERROR; } ioctl(fd, FIOSETOPTIONS, OPT_RAW); ioctl(fd, FIOBAUDRATE, 9600); FOREVER { while (nBytes==0) { (void)ioctl(fd,FIONREAD,(int)&nBytes); } read(fd,RecvBuf,10); write(fd, RecvBuf, strlen(RecvBuf)); } close(fd); return OK; } 我在“DEBUG”菜单下RUN “COMTEST”,单步跟踪,到read(fd,RecvBuf,10);时 ,程序进入异常. SHELL 显示下面的信息,这个时间程序已经跑到了“..\target\src\config\usrWdb.c”中.请各位大侠分析原因,急!急!急!急!急!急!急!急! Break at 0x0004e9b4: ioctl Task: 0x7a0ea0 (tDbgTask) Break at 0x00114b8c: comTest(void) + 0x6c Task: 0x7a0ea0 (tDbgTask) Break at 0x0004e9b4: ioctl Task: 0x7a0ea0 (tDbgTask) Break at 0x00114b9c: comTest(void) + 0x7c Task: 0x7a0ea0 (tDbgTask) Break at 0x00114bac: comTest(void) + 0x8c Task: 0x7a0ea0 (tDbgTask) Break at 0x0004e9b4: ioctl Task: 0x7a0ea0 (tDbgTask) Break at 0x00114bc0: comTest(void) + 0xa0 Task: 0x7a0ea0 (tDbgTask) Break at 0x00114b9c: comTest(void) + 0x7c Task: 0x7a0ea0 (tDbgTask) Break at 0x00114bc4: comTest(void) + 0xa4 Task: 0x7a0ea0 (tDbgTask) Break at 0x0004e974: read Task: 0x7a0ea0 (tDbgTask) Exception number 512: Task: 0x7a0ea0 (tDbgTask) machine check program counter: 0x134a0 machine status: 0x9000 6dcf4 vxTaskEntry +5c : comTest__Fv ([]) 114bd4 comTest__Fv +b4 : read ([]) 4e984 read +10 : iosRead ([]) 4fe10 iosRead +cc : tyRead ([]) 5720c tyRead +144: rngBufGet ([]) 5d168 rngBufGet +108: bcopy ([]) Exception number 512: Task: 0x7a0ea0 (tDbgTask) machine check program counter: 0x134a0 machine status: 0x1400 6dcf4 vxTaskEntry +5c : comTest__Fv ([]) 114bd4 comTest__Fv +b4 : read ([]) 4e984 read +10 : iosRead ([]) 4fe10 iosRead +cc : tyRead ([]) 5720c tyRead +144: rngBufGet ([]) 7fa610 _dtors +6e59c0: ???? ([]) 200 : ???? ([]) 218 : 14750 ([]) 13b1c excExcHandle +140: 12944 ([]) 129d8 wdbSp +488: 62524 ([]) 625ec wdbExcLibInit +168: wdbEventPost ([]) 5f71c wdbEventPost +98 : wdbNotifyHost ([]) 5dba4 wdbNotifyHost +3c : 620a0 ([]) 620d0 wdbUdpSockIfInit+348: netJobAdd (&write) 448ac netJobAdd +78 : semGive ([]) 67118 semGive +13c: semBGive ([]) Break at 0x00066590: semBGive + 0x138 Task: 0x7a0ea0 (tDbgTask) Break at 0x00066594: semBGive + 0x13c Task: 0x7a0ea0 (tDbgTask) Break at 0x00066598: semBGive + 0x140 Task: 0x7a0ea0 (tDbgTask) Break at 0x0006659c: semBGive + 0x144 Task: 0x7a0ea0 (tDbgTask) Break at 0x000665a0: semBGive + 0x148 Task: 0x7a0ea0 (tDbgTask) Break at 0x000665a4: semBGive + 0x14c Task: 0x7a0ea0 (tDbgTask) Break at 0x00067118: semGive + 0x13c Task: 0x7a0ea0 (tDbgTask) Break at 0x00067124: semGive + 0x148 Task: 0x7a0ea0 (tDbgTask) Break at 0x00067128: semGive + 0x14c Task: 0x7a0ea0 (tDbgTask) Break at 0x0006712c: semGive + 0x150 Task: 0x7a0ea0 (tDbgTask) Break at 0x00067130: semGive + 0x154 Task: 0x7a0ea0 (tDbgTask) Break at 0x00067134: semGive + 0x158 Task: 0x7a0ea0 (tDbgTask) Break at 0x000448ac: netJobAdd + 0x78 Task: 0x7a0ea0 (tDbgTask) Break at 0x000448b0: netJobAdd + 0x7c Task: 0x7a0ea0 (tDbgTask) Break at 0x000448c4: netJobAdd + 0x90 Task: 0x7a0ea0 (tDbgTask) Break at 0x000448c8: netJobAdd + 0x94 Task: 0x7a0ea0 (tDbgTask) Break at 0x000448cc: netJobAdd + 0x98 Task: 0x7a0ea0 (tDbgTask) Break at 0x000448d0: netJobAdd + 0x9c Task: 0x7a0ea0 (tDbgTask) Break at 0x000620d0: wdbUdpSockIfInit + 0x348 Task: 0x7a0ea0 (tDbgTask) Break at 0x0005dba4: wdbNotifyHost + 0x3c Task: 0x7a0ea0 (tDbgTask) Break at 0x0005f71c: wdbEventPost + 0x98 Task: 0x7a0ea0 (tDbgTask) Break at 0x0005f720: wdbEventPost + 0x9c Task: 0x7a0ea0 (tDbgTask) Break at 0x000625ec: wdbExcLibInit + 0x168 Task: 0x7a0ea0 (tDbgTask) Break at 0x000129d8: wdbSp + 0x488 Task: 0x7a0ea0 (tDbgTask) Break at 0x00012a50: wdbSp + 0x500 Task: 0x7a0ea0 (tDbgTask) seasoblue 工程师 来自: 发表总数:30 查看   短消息   电子邮件   引用   回复     -------------------------------------------------------------------------------- 对你的遭遇我深表同情(就象对着一个空谷大喊救命),我也刚开始学VXWORKS,看能不能帮上忙。   既然你的程序是在read时出错,我想你应该多检查一下它。另外我发现你的RecvBuf是一个空指针(没有赋值),是不是这儿出错啦?仅供参考! -------------------------------- 263收费了, 我的邮箱又搬家了。。。 zhangsifu 工程师 来自: 发表总数:39 查看   短消息   电子邮件   引用   回复     -------------------------------------------------------------------------------- 你没有为RecvBuf分配空间,我对vxworks不熟悉,但是应该有malloc语句。 你在使用之前用malloc为他分配空间试试。 -------------------------------- EMBEDDED gyz 工程师 来自: 发表总数:60 查看   短消息   电子邮件   个人主页   OICQ   引用   回复     -------------------------------------------------------------------------------- 在应用RecvBuf之前,现对其赋初值,RecvBuf=NULL就可以了。因为指针在用之前必须赋初值,否则它会指向一个不定的地方。 -------------------------------- 一起聊聊,携手共进 hongwind 高级工程师 来自: 发表总数:101 查看   短消息   电子邮件   引用   回复     -------------------------------------------------------------------------------- recbuf = (char*)calloc(number,sizeof(char))



关键词: 串口     问题     老站转     comTest     Break     0    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]