×
单片机 > 单片机程序设计 > 详情

Exynos4412裸机程序之DDR工作原理与时序(二)

发布时间:2020-06-18 发布时间:
|

Tiny4412和PC互传文件方法:

将编译好的可执行文件下载到目标板目前主要4种方式:

第一种:通过ftp传送文件到开发板(推荐使用)

第二种:复制到介质(如优盘)

第三种:通过串口传送文件到开发板

第四种:用nfs文件系统作为根文件系统启动

下面分别进行介绍:


1、使用ftp传送文件(推荐使用):

说明:使用ftp登录目标板,把编译好的程序上传;然后修改上传后目标板上的程序的可执行属性,并执行。

首先,在PC端执行,如下所示:

ftp 192.168.48.151

用户名:plg

密  码:plg

设置文件传送格式:bin

传送hello文件      :put hello

退出登录               :by

然后,在目标板一端执行,如下所示:

到接收目录下  :cd /home/plg/

ls

增加可执行权限:chmod +x hello

运行测试          :./hello

2、先把编译好的可执行程序复制到优盘,再把优盘插到目标板上并挂载它,然后把程序拷贝到目标板的可执行目录/bin:

①. 复制程序到优盘

把优盘插到PC的USB接口,执行以下命令把程序复制到优盘

#mount /dev/sda1 /mnt ;挂接优盘

#cp hello /mnt ;复制刚才编译好的程序到优盘

#umount /mnt ;卸载优盘

②. 把程序从优盘拷贝到目标板并执行

把优盘插入到开发板的USB Host接口,优盘会自动挂载到/udisk目录,执行以下命令就可以运行hello程序了。

#cd /udisk

#./hello ;执行hello程序

注意:如果此时强制拔出优盘,需要退回到根目录,再执行umount /udisk方可为下一次做好自动挂载的准备。

3、通过串口传送文件到开发板:

通过5.3.5章节我们学会了如何通过串口传送文件到开发板,你也可以通过相同的方法传送hello可执行程序,具体步骤在此不再详细描述,记得传送完毕把文件的属性改为可执行才能正常运行。

#chmod +x hello

说明:有些用户使用USB转串口线,因为有些转接器性能是不太好的,所以有时会出现“传输超时”或者根本无法传输到开发板的现象,因此我们建议使用ftp传送到开发板。

4、用nfs文件系统作为根文件系统启动:

①.参考博文“Tiny4412友善之臂ARM开发板静态IP设置(重启有效)”把开发板的ip设置为静态的;

  参考博文“Ubuntu下如何安装NFS服务及其配置”启动ubuntu的nfs服务

②.Ubuntu安装nfs服务:

      sudo apt-get install nfs-kernel-server

  Ubuntu nfs重启服务

      sudo /etc/init.d/portmap restart

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

  在Ubuntu上查看nfs服务器:  

      sudo /etc/init.d/nfs-kernel-server start  //查看nfs是否启动

③.增加权限:

sudo vi /etc/exports

添加:

/home/book/workspace/tiny4412_project/rootfs_qtopia_qt4 *(insecure,rw,async,no_root_squash)

/home/book/workspace/tiny4412_project/new_fs_tiny4412 *(insecure,rw,sync,no_subtree_check,no_root_squash)

sudo chown book:book /home/book/workspace/tiny4412_project/rootfs_qtopia_qt4/ -R

sudo chown book:book /home/book/workspace/tiny4412_project/new_fs_tiny4412/ -R

chmod 777 /home/book/workspace/tiny4412_project/rootfs_qtopia_qt4

chmod 777 /home/book/workspace/tiny4412_project/new_fs_tiny4412

④.Ubuntu上尝试自己挂在自己:

  //挂载厂家提供文件系统

  sudo mount -t nfs -o nolock,vers=2 192.168.48.104:/home/book/workspace/tiny4412_project/rootfs_qtopia_qt4 /mnt 

  //挂载自己做的文件系统

  sudo mount -t nfs -o nolock,vers=2 192.168.48.104:/home/book/workspace/tiny4412_project/new_fs_tiny4412 /mnt   

  sudo umount /mnt

⑤.tiny4412开发板手动挂载nfs:

  //挂载厂家提供文件系统

  mount -t nfs -o nolock,vers=2 192.168.48.104:/home/book/workspace/tiny4412_project/rootfs_qtopia_qt4 /mnt   

  //挂载自己做的文件系统

  mount -t nfs -o nolock,vers=2 192.168.48.104:/home/book/workspace/tiny4412_project/new_fs_tiny4412 /mnt     

⑥.tiny4412开发板nfs作为根文件系统启动(自己做的文件系统):

参考:"SD卡启动u-boot烧写裸板、系统"和"fastboot工具下载tiny4412的uboot、linux、文件系统"编译烧写uboot、linux、filesystem后采用eMMC启动开发板,并设置开发板linux启动时的ip地址,再设置uboot的参数bootargs采用nfs启动根文件系统:

修改命令行:

默认:

set bootargs root=/dev/mmcblk0p2 init=/linuxrc console=ttySAC0,115200 lcd=S70 ctp=2

改为:

seten bootargs noinitrd root=/dev/nfs nfsroot=192.168.48.104:/home/book/workspace/tiny4412_project/new_fs_tiny4412  ip=192.168.48.100:192.168.48.104:192.168.48.255:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200 lcd=S70 ctp=2

注意:tiny4412使用的是usb接口的网卡,目前的uboot根本就不支持这个网卡,所以uboot以nfs作为根文件系统启动无法实现,可以参考下文“驱动测试搭建开发环境”中在linux启动后设置自动挂载nfs文件系统。

DTB Device Tree 视频教程:以瑞萨Cortex-A15为例:

http://www.hexiongjun.com/?s=Device+Tree

Tiny4412裸机程序汇总地址:

http://www.100ask.org/bbs/forum.php?mod=viewthread&tid=11778&highlight=tiny4412

iTOP-4412实现NFS网络文件系统启动(包括安装Ubuntu NFS服务、编译配置内核)

http://www.oschina.net/question/2371345_2158782

==================================================================

驱动测试搭建开发环境:


由于采用nfs作为文件系统启动失败,所以在内核启动后在把服务器的/home/book/workspace/tiny4412_project/driver/mountfile目录挂载到开发板的mnt目录下:

在开发板上修改文件:vi /etc/init.d/rcS

在修改开发板启动ip地址的下面增加:

mount -t nfs -o nolock,vers=2 192.168.48.104:/home/book/workspace/tiny4412_project/driver/mountfile /mnt

注意:在Ubuntu中给mountfile目录增加权限后要重启虚拟机,重启开发板就会在开发板/mnt目录下自动挂载Ubuntu的mountfile目录


关键字:Exynos4412  裸机程序  DDR

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法