ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:906.42KB ,
资源ID:12512389      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12512389.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(BeagleBoardQNX1.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

BeagleBoardQNX1.docx

1、BeagleBoardQNX1实验1在VMWare QNX虚拟机上面运行简单的互斥量例子1.1实验环境:IDE:QNX Momentics 6.5目标机:VMware虚拟机软件+x86平台QNX虚拟机1.2目标板环境建立由于我们使用qnx公司提供的虚拟机设备进行实验,所以过程非常简单,只需要把虚拟机使用VMware打开就可以了。A. 路径:虚拟机的目录在“实验beagleboard_qnxNeutrino650Target”下面B. 打开:您可以使用VMware直接打开C. 启动:默认启动就可以。默认的的是带Photon的桌面环境。D. 登录:用户名为root。没有设置密码。当然可以使用pas

2、swd命令给用户添加密码。如图所示,登陆界面如图所示Photon 环境:1.3 IDE安装Momentics 6.5它是基于Eclipse开发的为QNX项目提供帮助的IDE。上面集成了像C plugin等一些列支持QNX开发的插件。特点:使用非常地方便,无论是在编辑、编译还是在调试的时候。安装Windows下面的安装过程是很简单。A.安装程序路径: “实验beagleboard_qnxqnxsdp-6.5.0-201007091524-win32.exe”B.运行:双击运行。(注意事项:因为是基于Eclipse的,那么,需要在主机上运行有相应的Java环境。)C.安装过程:“下一步”就可以解决

3、问题。一般会把安装好的默认路径设C:QNX650D.激活:激活码如下图所示,这是个人申请的非商用激活码,仅供实验使用。如果需要开发商业软件,请到QNX官网:申请。1.4 建立工程完成安装方面的工作,我们在IDE中开发相应的x86程序。A. 新建:点击“File-New-QNX C Project”选择QNX C工程,然后“下一步”。B. 工程名:输入相应的工程名称,点击“下一步”。C. 体系结构:在Build Variants当中选择x86体系。QNX 相应的工具链已经在IDE中。点击“Finish”。1.5 编辑/编译A.编辑:在编辑区域中,修改代码(本节末附)B.编译:右击你的工程目录,选

4、择“Build Make Target”,直接编译运行。1.6 主机和虚拟机连接A打开目标板的连接:在x86虚拟机上面输入命令qconnB. 查看目标板的IP:输入命令ifconfig查看,实例是192.168.23.147C. 建立连接工程:点击“File-Other-QNX Target System Project”,然后“下一步”。D. 在“Hostname or IP”中填入目标机的IP地址。点击“Finish”完成。E. 主机和目标机连接:将主机网卡激活(一般方式将插上网线,指示灯亮)。将主机IP设置成和目标板IP在一个网段。这里介绍Windows 7下的设置方式。在桌面点击“Wi

5、ndows 图标控制面板-网络和共享中心”,找到“本地连接”,点击打开。进入“本地连接”后,选择“属性-Internet 协议版本”将IP地址改为如图所示,这里IP要和目标板在同一个网段,因此设置成“192.168.23.xxx”(xxx代表可选)。子网掩码一般都是“255.255.255.0”。默认网关是“192.168.23.1”(最后一位是1)。点击“确定”返回。F. 在主机运行”cmd”打开终端。运行“ipconfig”查看当前主机的IP,检查是否分配到IP。使用“ping 目标板IP”命令查看两台机器是否相连。G. 如果没有“ping”成功修改QNX虚拟机设置。网络连接方式改为“Br

6、idge”(桥接)。1.7 调试A. 返回到IDE,在视图中选择目标板系统,图中最右边的那一个B. 这时候在左下角的地方可以看见一个列表。这个列表列出了现在目标板上面运行的进程。可以双击查看。C. 回到“C/C+ perspective”这个视图中选中同步互斥量工程,点击“debug”的小虫子下拉菜单,选中“Debug Configuration”。D. 选择“C/C+ QNX Qconn(IP)”,点击“New”。E. 右边出现你现在的工程。在“C/C+ Application”中点击“Search Project”找到你需要调试的程序。一般选择_g的因为在编译的时候使用了-g命令,有相关的

7、调试信息在其中。F. 选择好目标板G. 点击“Apply”应用,然后点击“Debug”。自动进入到“Debug”视图。点击运行的绿色箭头可以运行程序。在下方的控制台可以查看打印信息。H. 调试技巧:调试包括设置断点、单步跟踪等等,也有相应的快捷键。这里不再赘述。1.8 附录(互斥量示例程序)#include #include #include #include #include void bushchanger_nomutex();void kerrychanger_nomutex();void bushchanger_mutex();void kerrychanger_mutex();cha

8、r *firstname;char *lastname;pthread_mutex_t presidentmutex;int main(int argc, char *argv) int i; pthread_t t1,t2; firstname=malloc(32); lastname=malloc(32); printf(The president mixern); printf(Demonstrating the usage of mutexesn); printf(nStarting threads WITHOUT mutex usage!n); pthread_create(&t1,

9、 NULL,(void*) &bushchanger_nomutex, NULL); pthread_create(&t2, NULL,(void*) &kerrychanger_nomutex, NULL); for (i=0; i40; i+) delay(500); printf(%s %s for president!n,firstname,lastname); pthread_detach(t1); / dont care about return pthread_detach(t2); / values of threads 1 & 2 pthread_abort(t1); / k

10、ill thread 1 pthread_abort(t2); / kill thread 2 printf(nNow invoking functions WITH mutex usage!n); pthread_mutex_init(&presidentmutex, NULL); pthread_create(&t1, NULL,(void*) &bushchanger_mutex, NULL); pthread_create(&t2, NULL,(void*) &kerrychanger_mutex, NULL); for (i=0; i40; i+) delay(500); pthre

11、ad_mutex_lock(&presidentmutex); printf(%s %s for president!n,firstname,lastname); pthread_mutex_unlock(&presidentmutex); return EXIT_SUCCESS;void bushchanger_nomutex() while (1) strcpy(firstname, George); delay(55); strcpy(lastname, Bush); delay(55); void kerrychanger_nomutex() while (1) strcpy(firs

12、tname, John); delay(77); strcpy(lastname, Kerry); delay(77); void bushchanger_mutex() while (1) pthread_mutex_lock(&presidentmutex); strcpy(firstname, George); delay(55); / delay to make the problem more visible strcpy(lastname, Bush); pthread_mutex_unlock(&presidentmutex); delay(55); void kerrychanger_mutex() while (1) pthread_mutex_lock(&presidentmutex); strcpy(firstname, John); delay(77); / delay to make the problem more visible strcpy(lastname, Kerry); pthread_mutex_unlock(&presidentmutex); delay(77);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1