搜档网
当前位置:搜档网 › 海思开发板常规开发步骤解析-郑HC整理

海思开发板常规开发步骤解析-郑HC整理

海思开发板常规开发步骤解析-郑HC整理
海思开发板常规开发步骤解析-郑HC整理

一、通过smb方式在Windows下登录linux虚拟主机

目的:在Windows和linux虚拟主机间进行文件传送

1、启动linux后,选择最后一项,“usbserious”,默认以用户名:root,密码:yuhong登录。

2、启动SMB服务,方便文件共享:service smb start。如下图所示:

3、在windows的“运行”中,输入:“\\192.168.1.192”登录Linux。出现如下界面:

用户名:user 密码:abc。登录后,可看到Linux的文件目录,如下图所示:

注意:如果没法连接上smb服务,注意要在PC机的网上邻居把ip地址手动设置为以下:

Ip address :192.168.1.178

子网掩码:255.255.255.0

网关:192.168.1.255

二、通过终端登录到海思ARM9主板

目的:在Windows下操作ARM9主板进行编译文件的运行和驱动模块的加载等。

1、硬件连接。用3PIN线,连接PC跟目标板的串口(蜂鸣器旁边的3PIN插针。将网线接上目标板的以太网网口。

2、启动终端。设置参数为“115200,8位数据位,无奇偶检验,无硬件控制”。

3、启动Uboot控制终端。给目标板上电。如已安装内核,会出现如下图所示的界面。

以下为经过下载内核——>下载文件系统后进入系统的操作界面:

三、下载linux内核和文件系统到海思ARM9板

3.1编译和下载Kernel

我们也没有系统内核源代码。只有海思原厂的内核源代码(\Hi3515_SDK_V1.0.4.0.c2\source\os\linux-2.6.24)。因此,我们也无法编译系统内核。但我们有编译好的内核镜像文件(\程序源代码\linux内核\hikernel)。

3.1.1编译Kernel

3.1.2下载Kernel

有“网口”和“串口”两种方式下载内核。下面演示如何使用“网口”内核。

步骤1 硬件连接。用3PIN线,连接PC跟目标板的串口(蜂鸣器旁边的3PIN插针。将网线接上目标板的以太网网口。

步骤2 启动终端。设置参数为“115200,8位数据位,无奇偶检验,无硬件控制”。

步骤3 启动Uboot控制终端。给目标板上电。如已安装内核,会出现如下图所示的界面。

再次上电,在终端界面上,迅速按下“Ctrl+C”,取消自动加载内核,进入Uboot的控制界面。如下图所示:

步骤4 设置tpft服务IP。默认宿主Linux的IP为192.168.1.192。输入命令:setenv serverip 192.168.1.192

步骤5 擦除内核存储区。输入命令:erase 0x80640000 +0x1c0000

步骤6 下载内核文件。将内核文件(\程序源代码\linux内核\hikernel)拷贝到宿主Linux的tftp服务目录下(\tftpboot),输入命令:tftp 0x80640000 hikernel

如下图所示::

步骤7启动内核:bootm 0x80640000

3.2 编译和下载文件系统

目标板使用的存储器为NOR FLASH。默认使用的文件系统为cramfs。已经编译好的文件系统映像文件为“\程序源代码\linux内核\cramfs.img”.另外文件系统源文件在目录“\程序源代码\嵌入式程序\four_file_system__\four_file_system”中。使用busybox编译生成文件系统映像文件。

3.2.1 编译文件系统

进入文件系统源码所在的目录。执行命令:./ mkjffs2.sh。原始脚本会把生成的镜像文件移动到tfpt服务的根目录。(当然,自己可修改该文件,定制自己的服务。另外,原始文件系统源码中已经包含了3G视频服务器的全部模块)

脚本文件mkjffs2.sh 的原始内容如下:

#! /bin/sh

mkfs.jffs2 -d ./rootfs-FULL_REL -l -e 0x20000 -o rootfs.img

mkfs.jffs2 -d ./paramtest -l -e 0x20000 -o para.img

mkfs.cramfs ./rootfs-FULL_REL cramfs.img

cp cramfs.img -f /tftpboot

mv rootfs.img /tftpboot

3.2.2下载文件系统

下载文件系统的步骤基本跟下载内核相同。

步骤1 参考3.5.2下载Kernel步骤1~4

步骤2 擦除文件系统存储区。输入命令:erase 0x800a0000 +0x560000

步骤3下载文件系统。将文件系统映像文件cramfs.img拷贝到宿主Linux的tftp服务目录下(\tftpboot),输入命令:tftp 0x800a0000 cramfs.img、

如下图所示::

四、编译应用程序(以HisiProject-4工程为例)

1、安装安装Hi3515 SDK

步骤1 拷贝。将文件“\Hi3515-SDK\Hi3515_SDK_V1.0.4.0.c2.tgz”拷贝到Linux下面。假如发现无法拷贝,可通过命令“chmod 777 –R ”来更改文件夹操作权限。

步骤2 解压。使用命令tar –zxf Hi3515_SDK_V1.0.4.0.c2.tgz解压文件。如果过程没有提示信息,请等待命令执行完毕。

步骤3 安装交叉编译器。进入tools/toolchains,运行chmod +x cross.install,然后运行./cross.install 即可(注意,需要有sudo权限或者root权限)执行source /etc/profile,安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。

2、把HisiProject-4文件夹拷贝到目录“\Hi3515_SDK_V1.0.4.0.c2\mpp\sample”下,进入目录“\Hi3515_SDK_V1.0.4.0.c2\mpp\sample”,输入命令:make,即可。

然后在HisiProject-4文件夹内会生成netserver4可执行文件,如图所示:

若想进一步了解编译原理,请参阅Makefile的相关资料和sample目录下的Makefile文件。

3、若要编译独立的一个应用程序,也可以通过arm-hismall-linux-gcc 命令进行编译。

五、在ARM9主板终端通过FTFP方式从linux虚拟主机上下载文件

目的:把在linux下编译好的可执行文件或驱动模块下载到ARM9主板上运行

1、在linux主机下,编译好的可执行文件需要放在tftp服务根目录/tftpboot下

根据上述步骤,我们编译好的可执行文件放在\Hi3515_SDK_V1.0.4.0.c2\mpp\sample\ HisiProject-4目录下,利用一下指令可以把netserver4可执行文件拷贝到/tftpboot目录下

cp netserver4 /tftpboot

2、在ARM9主板终端下的tmp/目录下,从linux主机的/tftpboot目录下载netserver4可执行文件,指令如下:

tftp –gr netserver4 192.168.1.192

可通过ls指令显示是否下载成功:

3、改变权限,执行netserver4文件(此文件为HisiProject-4示例工程的执行文件)

chmod 777 netserver4

./ netserver4

执行netserver4文件结果如下:

六、解决应用程序在ARM目标板上运行断电丢失问题

一、通过固化进文件系统运行程序

步骤1 拷贝程序。将程序拷贝到文件系统的usr/sbin文件夹下面。

步骤2 设置启动脚本。启动脚本文件位于etc/init.d/rcS下面。添加命令:

cd /user/sbin 和./xxx即可。

步骤3 编译并烧写文件系统。

二、编译和下载文件系统

目标板使用的存储器为NOR FLASH。默认使用的文件系统为cramfs。已经编译好的文件系统映像文件为“\程序源代码\linux内核\cramfs.img”.另外文件系统源文件在目录“\程序源代码\嵌入式程序\four_file_system__\four_file_system”中。使用busybox编译生成文件系统映像文件。

编译文件系统

进入文件系统源码所在的目录。执行命令:./ mkjffs2.sh。原始脚本会把生成的镜像文件移动到tfpt服务的根目录。(当然,自己可修改该文件,定制自己的服务。另外,原始文件系统源码中已经包含了3G视频服务器的全部模块)

脚本文件mkjffs2.sh 的原始内容如下:

#! /bin/sh

mkfs.jffs2 -d ./rootfs-FULL_REL -l -e 0x20000 -o rootfs.img

mkfs.jffs2 -d ./paramtest -l -e 0x20000 -o para.img

mkfs.cramfs ./rootfs-FULL_REL cramfs.img

cp cramfs.img -f /tftpboot

mv rootfs.img /tftpboot

三、下载文件系统

下载文件系统的步骤基本跟下载内核相同。

步骤1 参考3.5.2下载Kernel步骤1~4

步骤2 擦除文件系统存储区。输入命令:erase 0x800a0000 +0x560000

步骤3下载文件系统。将文件系统映像文件cramfs.img拷贝到宿主Linux的tftp服务目录下(\tftpboot),输入命令:tftp 0x800a0000 cramfs.img、

如下图所示::

相关主题