moxa UC8410学习笔记.docx
- 文档编号:27283364
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:12
- 大小:372.79KB
moxa UC8410学习笔记.docx
《moxa UC8410学习笔记.docx》由会员分享,可在线阅读,更多相关《moxa UC8410学习笔记.docx(12页珍藏版)》请在冰豆网上搜索。
moxaUC8410学习笔记
MOXAUC8410学习笔记
1.交叉调试环境构建
构建UC8410交叉调试环境中碰到很多波折,以此文为记录。
整体步骤:
1.在windows上安装Ubuntu虚拟机。
2.安装vmwaretools。
3.Ubuntu下访问windows共享目录。
4.Ubuntu可通过无线网络上网,一些必要的程序需要安装。
5.在Ubuntu上安装nfs服务器,并验证,然后可在uc8410上挂接Ubuntu下的目录。
6.&
7.在Ubuntu上安装工具链,并编译程序,然后下载到uc8410执行。
8.在uc8410上安装gdbserver。
9.交叉调试。
IP地址约定:
Windows主机:
有线ip地址:
,无线ip地址:
(DNS方式获取)
Ubuntu主机:
有线ip地址:
,无线ip地址:
(DNS方式获取)
Uc8410网口1ip地址:
1.1安装Ubuntu虚拟机
】
该步骤相对比较简单,网上提供了很多图解教程,默认安装后磁盘结构如下:
其中dev/shm,var/run都为内存目录,
Var/run目录中存放的是自系统启动以来描述系统信息的文件。
1.2安装vmwaretools
安装完Ubuntu后,需要安装vmwaretools,可以方便在两个系统之间拷贝文件,共享目录等。
在Ubuntu上安装vmwaretools,我这里主要遇到的问题都出现在以下这步中,
WhatisthelocationofthedirectoryofCheaderfilesthatmatchyourrunningkernel[/usr/src/linux/include]
~
如果直接回车,会显示Thepath"/usr/src/linux/include"isnotanexistingdirectory.
因此,首先要更改该路径。
这里很简单,首先用uname-r命令找到当前的linux内核版本,我这里的版本为,因此更改后的路径如下:
“/usr/src/改后再回车,又出现如下问题:
Thedirectoryofkernelheaders(version@@VMWARE@@UTS_RELEASE)doesnotmatchyourrunningkernel(version.35-22-generic).Evenifthemoduleweretocompilesuccessfully,itwouldnotloadintotherunningkernel.
这是不是不匹配,而是因为Kernel中有一个变量UTS_RELEASE位置改变了。
以前这个定义放在/usr/src/,而现在已经移到了/usr/src/。
所以vmwaretools找不到这个变量的定义,修改的办法有两种:
\
1.在中添加#defineUTS_RELEASE""
2.直接将拷贝回来,cp-pgenerated/linux/
修改后再回车,仍然存在问题:
Thepath"/usr/src/"isakernelheaderfiledirectory,butitdoesnotcontainthefile"linux/"asexpected.Thiscanhappenifthekernelhasneverbeenbuilt,orifyouhaveinvokedthe"makemrproper"commandinyourkerneldirectory.Inanycase,youmaywanttorebuildyourkernel.
根据提示可以知道,是因为找不到linux/文件,这个文件在新的linux内核中被挪到了generated文件夹中,因此修改的办法也很简单,直接将这个文件拷贝过来即可
^
cp-pgenerated/autoconf.hlinux/autoconf.h
这样修改完成后,应该就可以顺利安装了。
但安装完毕后,文件拷贝等功能好用,但共享文件不好用,可能是vmware版本太低的原因造成,需要进一步验证。
1.3共享windows下目录
第一步:
设置有线网络
第二步:
设置ip地址:
~
第三步:
输入sudo/etc/networkingrestart以重启网络服务;
第四步:
windows下文件共享
第五步:
在Ubuntu下查看windows下目录:
smbclient-L
)
第四步:
输入sudo/etc/networkingrestart以重启网络服务;
1.4Ubuntu上安装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/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–tnfs:
/home/zhangmalong/moxa8410/home/nfs/public
1.5Ubuntu上安装moxa工具链
第一步:
光盘拷贝并在ubuntu上安装工具链:
—
工具链安装的工具包括:
第二步:
路径设置
第三步:
编译文件:
第五步:
将文件拷贝到uc8410
*
1.6Uc8410上安装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./Installinggdbservertoroot...
Configuringgdbserver
Successfullyterminated.
<
root@Moxa:
/dev/shm#umount/
注意mount-oremount,rw/是必须的,重新以可读写方式挂接根目录,否则提示安装失败。
第三步:
gdb调试
1.带调试信息编译程序。
2.目标板上进入编译后程序目录,执行如下命令
#gdbserver:
2000hello-debug
其中,为Ubuntu的IP地址,2000是等待端口号,提示如下:
Processhello-debugcreated;pid=170
3.在Ubuntu主机上,进入编译后程序目录(不进入调试时会找不到符号表),执行如下命令
—
$arm-linux-gdbhello-debug
theGDBcommandpromptinDDD,enterthefollowingcommand:
$targetremote:
2000
Thiscommandcausesanotherlineofoutputonthetargetconsolesimilartothefollowing:
Remotedebuggingfromhost
listthesourcecode:
$list
setabreakpointatline22:
$b22
continuetheexecution:
$cont
quittheexecution:
$quit
Youcanseetheresultonthetargetconsoleasthispicture.
第四步:
卸载
root@Moxa:
/dev/shm#mount-oremount,rw/
ipkg-clremovegdbserver
root@Moxa:
/dev/shm#umount/;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- moxa UC8410学习笔记 UC8410 学习 笔记