收藏 分享(赏)

嵌入式系统设计课程实验之.doc

上传人:cjc2202537 文档编号:1546069 上传时间:2018-08-01 格式:DOC 页数:4 大小:44.50KB
下载 相关 举报
嵌入式系统设计课程实验之.doc_第1页
第1页 / 共4页
嵌入式系统设计课程实验之.doc_第2页
第2页 / 共4页
嵌入式系统设计课程实验之.doc_第3页
第3页 / 共4页
嵌入式系统设计课程实验之.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、嵌入式系统设计课程实验之串口/AD 转换实验常见问题解答1.nfs 挂载的时候显示参数错误、网络连接不上等错误怎么办?答:首先,建议大家把虚拟机的网络连接设置成桥接(bridge) 。设置方法:在 vmware 菜单栏中 VM 选项下找到设置(setting)项,打开后可以看到虚拟机的网络设置,在那里进行相关设置;然后,检查网线是否连接好(网线接口的灯是否亮起) ,如果灯不亮,说明网线或者网线接口有问题;接下来:查看开发板的 ip(在 minicom 中)和虚拟机的 ip(在红帽系统的终端中)是否是你希望设置的 ip,如果不是,则建议使用命令进行设置(图形界面容易导致设置无效) 。功能 命令查

2、看 eth0 的 ip ifconfig设置 ip ifconfig eth0 192.168.0.121启动网卡 ifconfig eth0 up关闭网卡 ifconfig eth0 down重启网卡 关闭网卡,再启动网卡:)注:如果使用 ifconfig 查看 ip 地址时,没有看到 eth0,说明网卡没有启动,需启动网卡后重新设置 ip 地址。另外:检查防火墙是否关掉,nfs 服务器配置是否正确。最后:设置完以后,执行这条命令:exportfs -arv2.连接 minicom 显示 lock 获取失败。答:这种错误基本上是由于有一个进程在占用着锁,比如你上一次运行的 minicom 不

3、是正常退出的,而是你关掉终端时强制退出的,这时候可能还没有释放串口锁,还有一种可能是你的主机(xp)开着超级终端,它占用着串口!解决办法:1) 直接使用主机上的超级终端,这时候要断开虚拟机的串口连接(在 vmware 的右下角有一个“IO ”字样的图标,单击它可以断开和连接串口;(注意,我们这个实验中在minicom 中执行的命令全部可以放到 xp 上的超级终端执行,完全等效。这是因为无论是超级终端还是 minicom(minicom 是 linux 里面的超级终端) ,我们现在都是用来控制开发板(给开发板的 cpu 发送命令,让它执行) 。比如,我们的 mount 192.168.0.121

4、:/arm2410s /host 这条指令,就是从超级终端/minicom 发送给开发板,在开发板上的 cpu 会执行这条指令,从而将宿主机(虚拟机中的红帽系统,ip 地址为 192.168.0.121)中的 /arm2410s 文件夹挂载到本地(开发板,ip 地址为192.168.0.x)的/host 目录下。既然超级终端(或者 minicom)只是扮演了一个“发号施令”的角色,真正“干事儿”的是开发板,那么,谁来“发号施令”不就一样了吗?对吧?理解这点对于你理解嵌入式开发很有帮助!2) 在超级终端关闭的情况下,把虚拟机的串口连接断开,然后再连接。方法是点击在vmware 的右下角的“IO”

5、字样的图标,将其断开,然后再连接。或者在 vmware 菜单中的”VM”下的 setting(设置)中关闭- 保存-开启。3) 如果以上两种方法都不行,用 vi 打开红帽系统中/var/lock/目录下的 tty 相关的文件,将文件中的数字删除,注意,只能删除数字!4) 当然,再一种方法就是把虚拟机重启,如果还报这个错,就把 xp 重启。5) 如果以上方法均未解决这个问题,请移步其他电脑,呵呵3. 串口实验在没有修改代码的情况下正确的实验现象是怎么样的?答:实验现象根据你执行./term 时是否带参数来定1) 如果执行命令为./term这是一种不带参数的运行 term 的情形。这样的话,可以在

6、 minicom 中看到连续不断地输出字符 1234.后面还会有乱码2) 如果执行命令为./term xxx (xxx 可以为任意字符串)这是一种带参数运行 term 的情形。这种情况下,应该将开发板的下面那个串口(ttyS1)连接到另外一台电脑上,然后在那台电脑上打开超级终端。这时,在这个超级终端中可以看到不断得输出字符 1234,同样,会输出乱码。这个输出是一个死循环。这时候,在新开的那台电脑的键盘上敲字符,这些字符可以在你自己的电脑的 minicom 中显示。注意,这条命令运行的时候会报错,请看下文!4. 我已经执行了 ln 那条命令,在执行./term xxx 的时候为什么还是提示找不

7、到/dev/ttyS0?答:这个报错不准确,你可以去看看源代码。实际是找不到/dev/ttyS1 。需要执行以下命令(可以在任意目录下执行):ln -sf /dev/tts/1 /dev/ttyS1这条命令的意思是创建一个符号链接,这样,打开/dev/ttyS1 的时候,就相当于打开/dev/tts/1 这个文件。/dev/tts/1 这个文件实际上就是指向了下面那个串口 COM2,对它进行读写就相当于对串口 2 进行数据收发。5. 我应该怎样实现“回显”效果?答:1) 修改源代码,最简单的方法是这样:在 receive 函数中,将 write(1, 改为 write(fd,在 main 函数

8、中,注释掉如下两条语句:pthread_create(pthread_join(th_c, 具体如下图所示:(建议有兴趣的同学使用多线程实现。将 receive 线程接收到的数据放入一个共享存储区,send 线程从这个共享存储区中去数据发送。这里用到锁的概念。可以参考多线程编程实验的方法!)2) 重新编译修改后的程序,在 minicom 中执行 term(需要带参数): ./term xxx3) 将开发板上的第二个串口(下面)连接到另外一台 pc 机上,打开 pc 机的超级终端(配置要正确) ;4) 在新打开的那台 pc 机上输入字符,如果在该 pc 机的超级终端上能显示你输入的字符,说明实验

9、正确!6. 我想只用一台 pc 就能够观察到实验效果,我应该怎么做?答:这样是可以实现的!只所以前面没和大家讲,是因为这个会增加大家理解实验的负担。做实验的时候,在 minicom 中执行 ./term xxx 后,将插在试验箱第一个串口中的串口线拔下,连接到下面那个串口中。现象:如果源代码没有改动,那么在现在的 minicom 中应该可以显示 123等字符,如果看不到,则输入一个回车试试!如果在实现“回显”功能,那么这时候在你自己的 pc 的 minicom 上输入字符,应该在minicom 中可以看到你输入的字符,这就表明实验是正确的!注意:要终止程序,必须将串口线插回到上面那个串口,然后

10、输入 ESC 或者 Ctrl+C 终止程序。7. AD 转换的实验中,为什么需要执行 insmod 这条指令?答:A/D 转换的实验中,在运行 ./ad 后,会出现错误,错误提示说找不到/dev/adc/0raw。这是因为 AD 转换控制器(ADC)的驱动没有安装到 linux 内核里。这个驱动已经编译好了,放在/mnt/yaffs/ad 目录下,我们需要安装这个驱动程序。安装方法如下:cd /mnt/yaffs/adinsmod s3c2410.o安装完了以后再去运行 ad:mount cd /host/exp/basic/04_ad/./ad这样就可以看到运行结果了!8. 我的电脑上找不到

11、 s3c2410.o 这个文件怎么办?答:有些同学的电脑里可能由于 yaffs 烧写不完整,导致电脑里没有 s3c2410.o 这个文件。我们给同学们编译了这个驱动,并且将它制作成了 ISO 镜像,放在了课程主页供同学们下载。链接为:“第二次实验资源” 。使用方法为将该.iso 文件挂载到虚拟机中,然后把s3c2410.o 文件拷贝到宿主机的 /arm2410s 文件夹下(你设置为 nfs 共享的文件夹) 。可以用复制粘贴,也可以用 cp 命令。复制完了以后,在 minicom 中就可以看到 /host 下面有这个文件了,然后执行下面命令:cd /hostinsmod s3c2410.o安装完了以后就可以运行 ad 了!参考上一个解答!To be continue.(如果你实验过程中发现了什么问题,或者我的解答中有什么错误或不周的地方,希望你发邮件告诉我,以便大家共享!我在此代表从中获益的同学感谢你!)刘腾福、卢坤 2012.10.20

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报