moxaUC8410学习笔记.docx

上传人:b****5 文档编号:7221472 上传时间:2023-01-22 格式:DOCX 页数:7 大小:18.78KB
下载 相关 举报
moxaUC8410学习笔记.docx_第1页
第1页 / 共7页
moxaUC8410学习笔记.docx_第2页
第2页 / 共7页
moxaUC8410学习笔记.docx_第3页
第3页 / 共7页
moxaUC8410学习笔记.docx_第4页
第4页 / 共7页
moxaUC8410学习笔记.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

moxaUC8410学习笔记.docx

《moxaUC8410学习笔记.docx》由会员分享,可在线阅读,更多相关《moxaUC8410学习笔记.docx(7页珍藏版)》请在冰豆网上搜索。

moxaUC8410学习笔记.docx

moxaUC8410学习笔记

MOXAUC8410学习笔记

1.交叉调试环境构建

构建UC8410交叉调试环境中碰到很多波折,以此文为记录。

整体步骤:

1.在windows上安装Ubuntu虚拟机。

2.安装vmwaretools。

3.Ubuntu下访问windows共享目录。

4.Ubuntu可通过无线网络上网,一些必要的程序需要安装。

5.在Ubuntu上安装nfs服务器,并验证,然后可在uc8410上挂接Ubuntu下的目录。

6.在Ubuntu上安装工具链,并编译程序,然后下载到uc8410执行。

7.在uc8410上安装gdbserver。

8.交叉调试。

IP地址约定:

Windows主机:

有线ip地址:

192.168.3.5,无线ip地址:

192.168.0.102(DNS方式获取)

Ubuntu主机:

有线ip地址:

192.168.3.8,无线ip地址:

192.168.0.103(DNS方式获取)

Uc8410网口1ip地址:

192.168.3.127

1.1安装Ubuntu虚拟机

该步骤相对比较简单,网上提供了很多图解教程,默认安装后磁盘结构如下:

其中dev/shm,var/run都为内存目录,

Var/run目录中存放的是自系统启动以来描述系统信息的文件。

1.2安装vmwaretools

安装完Ubuntu后,需要安装vmwaretools,可以方便在两个系统之间拷贝文件,共享

目录等。

在Ubuntu10.10上安装vmwaretools,我这里主要遇到的问题都出现在以下这步中,

WhatisthelocationofthedirectoryofCheaderfilesthatmatchyourrunningkernel?

[/usr/src/linux/include]

如果直接回车,会显示Thepath"/usr/src/linux/include"isnotanexistingdirectory.

因此,首先要更改该路径。

这里很简单,首先用uname-r命令找到当前的linux内核版

本,我这里的版本为2.6.35-25-generic,因此更改后的路径如下:

“/usr/src/linux-headers-2.6.35-25-generic/include

改后再回车,又出现如下问题:

Thedirectoryofkernelheaders(version@@VMWARE@@UTS_RELEASE)doesnot

matchyourrunningkernel(version2.6.35-22-generic).Evenifthemoduleweretocompile

successfully,itwouldnotloadintotherunningkernel.

这是不是不匹配,而是因为Kernel中有一个变量UTS_RELEASE位置改变了。

以前

这个定义放在/usr/src/linux-headers-2.6.35-25-generic/include/linux/version.h,而现在已经移

到了/usr/src/linux-headers-2.6.35-25-generic/include/generated/utsrelease.h。

所以vmwaretools

找不到这个变量的定义,修改的办法有两种:

1.在version.h中添加#defineUTS_RELEASE"2.6.35-25-generic"

2.直接将utsrelease.h拷贝回来,cp-pgenerated/utsrelease.hlinux/utsrelease.h

修改后再回车,仍然存在问题:

Thepath"/usr/src/linux-headers-2.6.35-22-generic/include"isakernelheaderfile

directory,butitdoesnotcontainthefile"linux/autoconf.h"asexpected.Thiscanhappenifthe

kernelhasneverbeenbuilt,orifyouhaveinvokedthe"makemrproper"commandinyour

kerneldirectory.Inanycase,youmaywanttorebuildyourkernel.

根据提示可以知道,是因为找不到linux/autoconf.h文件,这个文件在新的linux内核

中被挪到了generated文件夹中,因此修改的办法也很简单,直接将这个文件拷贝过来即可

cp-pgenerated/autoconf.hlinux/autoconf.h

这样修改完成后,应该就可以顺利安装了。

但安装完毕后,文件拷贝等功能好用,但共享文件不好用,可能是vmware版本太低的

原因造成,需要进一步验证。

1.3共享windows下目录

第一步:

设置有线网络

第二步:

设置ip地址:

第三步:

输入sudo/etc/init.d/networkingrestart以重启网络服务;

第四步:

windows下文件共享

第五步:

在Ubuntu下查看windows下目录:

smbclient-L//192.168.3.5

第六步:

ubuntu挂接windows共享目录:

mount-tcifs//192.168.3.5/ubuntu-share/mnt-ousername=”用户名”,password=”密码”

其中cifs为类型,192.168.3.5为windows主机ip地址,用户名和密码必须,双引号引起来。

注意:

使用有线网络时,需要将网口插在交换机或其他设备上,同时关闭无线网络,否则

ping失败。

同时使用无线网络时,也需要关闭有线网络。

1.4Ubuntu无线上网

第一步:

需要设置无线网络

第二步:

设置桥接模式

第三步:

设置ip地址,注意一定要在interfaces中设置,gui界面可以忽略了.

第四步:

输入sudo/etc/init.d/networkingrestart以重启网络服务;

1.5Ubuntu上安装nfs服务器

1、安装Ubuntunfs

Ubuntu上默认是没有安装Ubuntunfs服务器的,因此我们首先安装Ubuntunfs服务器端:

$sudoapt-getinstallnfs-kernel-server

在一些文档中,提出还需要使用apt-get来手动安装nfs的客户端nfs-common,以及端口映

射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动为我们

把它们安装好。

2、配置/etc/exports

Ubuntunfs允许挂载的目录及权限在文件/etc/exports中进行了定义。

例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加

如下一行:

/rootfs*(rw,sync,no_root_squash)

其中:

/rootfs是要共享的目录,*代表允许所有的网络段访问,rw是可读写权限,sync是资料

同步写入内存和硬盘,no_root_squash是Ubuntunfs客户端分享目录使用者的权限,如果客

户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。

其它Ubuntunfs常用的参数有:

ro只读访问

rw读写访问sync所有数据在请求时写入共享

asyncnfs在写入数据前可以响应请求

securenfs通过1024以下的安全TCP/IP端口发送

insecurenfs通过1024以上的端口发送

wdelay如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。

hide在nfs共享目录中不共享其子目录

no_hide共享nfs目录的子目录

subtree_check如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check和上面相对,不检查父目录权限

all_squash共享文件的UID和GID映射匿名用户anonymous,适合公用目录。

no_all_squash保留共享文件的UID和GID(默认)

root_squashroot用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squasroot用户具有根目录的完全管理访问权限

anonuid=xxx指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx指定nfs服务器/etc/passwd文件中匿名用户的GID

3、Ubuntunfs重启服务

$sudo/etc/init.d/nfs-kernel-serverrestart

4、测试Ubuntunfs

此时可以运行以下命令来显示一下共享出来的目录:

$showmount-elocalhost

或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:

$sudomount-tnfslocalhost:

/rootfs/mnt

可以运行df命令查看是否挂载成功。

查看后可以使用以下命令卸载:

$sudoumount/mnt

注意:

有时在nfs挂接的时候,会提示accessdeniedbyserver错误,/etc/exports中的ip地址

修改为*即可,原因不明。

Moxa的uc8410已支持了nfs客户端,可以支持将Ubuntu下的目录挂接到uc8410上,挂接

示例如下:

Mount–tnfs192.168.3.8:

/home/zhangmalong/moxa8410/home/nfs/public

1.6Ubuntu上安装moxa工具链

第一步:

光盘拷贝并在ubuntu上安装工具链:

工具链安装的工具包括:

第二步:

路径设置

第三步:

编译文件:

第五步:

将文件拷贝到uc8410

1.7Uc8410上安装gdbserver,交叉调试

第一步:

将gdbserver拷贝到uc8410上

Gdbserver位于光盘UC8410\utility_tools\UC-8400-LX\gdbserver目录下,可通过ftp或nfs拷

贝到uc8410目录下。

第二步:

安装

root@Moxa:

/dev/shm#mount-oremount,rw/

root@Moxa:

/dev/shm#ipkg-clinstall./gdbserver_6.8_xscale.ipk

Installinggdbserver(6.8)toroot...

Configuringgdbserver

Successfullyterminated.

root@Moxa:

/dev/shm#umount/

注意mount-oremount,rw/是必须的,重新以可读写方式挂接根目录,否则提示安装失败。

第三步:

gdb调试

1.带调试信息编译程序。

2.目标板上进入编译后程序目录,执行如下命令

#gdbserver192.168.3.8:

2000hello-debug

其中,192.168.3.8为Ubuntu的IP地址,2000是等待端口号,提示如下:

Processhello-debugcreated;pid=170

3.在Ubuntu主机上,进入编译后程序目录(不进入调试时会找不到符号表),执行如下

命令

$arm-linux-gdbhello-debug

4.AttheGDBcommandpromptinDDD,enterthefollowingcommand:

$targetremote192.168.3.127:

2000

Thiscommandcausesanotherlineofoutputonthetargetconsolesimilartothefollowing:

Remotedebuggingfromhost192.168.3.8

listthesourcecode:

$list

setabreakpointatline22:

$b22

continuetheexecution:

$cont

quittheexecution:

$quit

Youcanseetheresultonthetargetconsoleasthispicture.

第四步:

卸载

root@Moxa:

/dev/shm#mount-oremount,rw/

ipkg-clremovegdbserver

root@Moxa:

/dev/shm#umount/

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

当前位置:首页 > PPT模板 > 动物植物

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

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