共1条
1/1 1 跳转至页
串口问题!(老站转)
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 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
| 【分享开发笔记,赚取电动螺丝刀】树莓派5串口UART0配置被打赏¥25元 | |
| 【STM32F103ZET6】17:分享在Rtos项目中断管理的使用经验被打赏¥23元 | |
| 【STM32F103ZET6】16:分享在中断中恢复串口任务,遇到的问题被打赏¥31元 | |
| 在FireBeetle2ESP32-C5上实现温度大气压检测及显示被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】SAME51双串口收发配置被打赏¥27元 | |
| Chaos-nano操作系统在手持式VOC检测设备上的应用被打赏¥37元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于在导入第三方库lib时,wchart类型冲突的原因及解决方案被打赏¥30元 | |
| 在FireBeetle2ESP32-C5上实现温湿度检测和显示被打赏¥20元 | |
| 在FireBeetle2ESP32-C5上实现光照强度检测及显示被打赏¥21元 | |
我要赚赏金
