基于Hi3516E的IPC开发环境搭建

开发主要使用windows、linux及相关软件,宿主机linux一般使用虚拟机,以下为大致步骤,具体操作和资源可上网查找,并参照海思提供的文档。开发调试时,使宿主机linux,目标机linux,windows处在同一网段下。

在windows下安装VMware14.0,source insight4.0,破解。

用 VMware安装虚拟机:ubuntu 12.04.2 i386版,安装时选择桥接网络模式,使虚拟机在局域网里有自己的主机IP。(宿主机linux无特别要求,主流发行版本均可,但实测发现AMD64版本,有无法配置hisi交叉编译工具链的环境变量的bug)。

为虚拟机linux安装vmwaretools,以在虚拟机和物理机之间直接复制文件和文本。注意,许多操作都必须使用root权限,所以建议每次开启虚拟机都先sudo su,输入当前用户密码,以进入root权限模式,方便操作。

将海思的交叉编译工具链uclibc安装到宿主机linux,并配置环境变量,示例:

tar -zxf /home/arm-hisiv500-linux.tgz

cd /home/arm-hisiv500-linux

chmod +x arm-hisiv500-linux.install

./arm-hisiv500-linux.install

source /etc/profile

为方便开发调试,宿主机linux和windows需要共享一些文件,为此,需要给linux安装samba服务等等。以下为示例:

apt-get install samba

apt-get install smbclient

mkdir /home/smbshare

chmod 777 /home/smbshare

cp /etc/samba/smb.conf /etc/samba/backup _smb.conf

gedit /etc/samba/smb.conf

在文件的最后面加入以下内容,创建共享服务:

[smbshare]

path = /home/smbshare

available = yes

browseable = yes

public = yes

writable = yes

然后添加密码并重启服务:

touch /etc/samba/smbpasswd

smbpasswd -a wjl

/etc/init.d/smbd restart

配置完成之后,在windows文件夹处输入\\xxx.xxx.xxx.xxx会看见一个share目录,这个目录就是samba共享的目录(xxx.xxx.xxx.xxx表示虚拟机的ip)。

用法一:代码保存在linux机器中,windows获取共享,在windows里,将samba共享的目录映射为网络驱动器,将代码工程复制到共享目录,用source insight等读写。若宿主机IP发生变更,重映射到同一驱动器号即可(例如,Z:\\)。

用法二:代码保存在windows机器中,linux获取共享,以下为示例:windows下建立目录,共享给everyone,允许读写,启用网络发现,启用文件夹和打印机共享,开启密码保护共享。在宿主机linux里挂载该目录。以下为示例:

mkdir /home/winshare

chmod 777 /home/winshare

mount -t cifs //192.168.1.108/ipc /home/winshare -o username='wjl',password='123'

cifs也基于samba服务,如缺失则输入:apt-get install cifs-utils

如果共享目录里的工程,在linux下编译时,报错Cannot allocate memory,可修改windows注册表的以下键值,然后重启server服务,解决这个问题:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\Memory Management\LargeSystemCache ,修改为1。

若该键不存在,则手动创建,类型为DWORD。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size,修改为3。

然后cmd输入services.msc,找到server服务重启即可,也可以重启机器。

为宿主机的linux安装open-sshserver,在windows安装secureCRT或者其他类似软件,方便开发和操作。

apt-get install openssh-server openssh-client

/etc/init.d/ssh restart

建立secureCRT连接,协议ssh2,默认端口22,主机名为宿主机linux的ip,填写宿主机的linux用户名,密码

将板子用串口模块接上电脑,secureCRT建立串口连接,波特率115200,8位数据,1位停止,无奇偶校验。在串口登录板子的linux,默认用户是root,密码是直接按回车键,看到welcome to hilinux即为登陆成功。

为方便操作,可先关闭所有进程,修改网络配置:(可能需要按 i 进入编辑模式)

vi /opt/app/config/wpa_supplicant.conf

修改WiFi的名称和密码之后,按ESC,退出编辑模式,输入:wq,保存退出。

复位电路板,用ifconfig查看板子的IP地址(注意不是ipconfig),用secureCRT建立telnet连接,默认端口23,登录板子的linux。若telnet未开启,可在串口开启:telnetd。

如需修改root密码,可使用passwd root。

为宿主机安装nfs服务,使目标机可以直接从宿主机获取文件,方便调试,注意关闭宿主机防火墙,使得能够互相ping通。常用命令:ufw status;ufw enable;ufw disable

以下为示例:

apt-get install nfs-kernel-server

mkdir /home/nfs

chmod 777 /home/nfs

gedit /etc/exports

在文件末尾添加:

/home/nfs *(rw,sync,no_root_squash)

重启服务:

/etc/init.d/nfs-kernel-server restart

再输入:

showmount -e

如果出现:

/home/nfs *

则NFS共享设置成功,该目录现在可以被其他IP挂载。

然后在开发板的终端输入:

mount -t nfs 192.168.1.114:/home/nfs /home -o nolock

此处nolock的作用:

Disable NFS locking. Do not start lockd. This has to be used with some old NFS servers that don't support locking.

发布了3 篇原创文章 · 获赞 0 · 访问量 268

猜你喜欢

转载自blog.csdn.net/wangjianlin1996/article/details/104572418
今日推荐