打印
[ARM入门]

明远智睿MY-IMX28 Linux-3.14.54 编译手册(3)

[复制链接]
825|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Anxyuuu|  楼主 | 2019-3-11 16:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Anxyuuu 于 2019-3-11 16:33 编辑

【接上一章节明远智睿MY-IMX28 Linux-3.14.54 编译手册2)】

7  应用程序编译

7.1  Linux应用程序编译
7.1.1  编写应用程序
进入工作目录
$ cd ~/my-imx28/01_application/
编写源代码
$ vim hello.c
写入以下代码并保存
include <stdio.h>
int main(int argc, char **argv)
{
  printf("Hello, MYZR!\n");
  return;
}
查看代码
$ cat hello.c



7.1.2  
编译应用程序
配置环境变量
$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env
编译
$ ${CROSS_COMPILE}gcc hello.c -o hello.out

注意:上面的命令有包含“$”号,即“${CROSS_COMPILE}gcc”,是引用我们source时产生的环境变量。
目标文件
$ file hello.out

可以看到目标文件 hello.out 的属性。



8  
文件系统

8.1  文件系统rootfs.tar.bz2
用以下的方式增加自己的应用:(把MY-IMX28_Born_Tool\Profiles\MX28 Linux Update\OS Firmware\files\image-linux-31454/rootfs.tar.bz2复制到“~/my-imx28/04_image/”目录下)。



8.2  
文件系统filesystem.ubifs
复制mkfs.ubifs,ubinize到电脑的“/usr/bin”目录下(如果电脑有这两个应用就不需要复制了);复制build_rootfs和ubinize.cfg到“~/my-imx28/04_image/”目录。



9  
烧写方式
至此,我们在“~/my-imx28/02_source/”得到了除文件系统以外的一套烧录文件。包括“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2”。

9.1  使用MFGTOOL烧写
把文件“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2复制到“MY-IMX28_Born_Tool\Profiles\MX28 Linux Update\OS Firmware\files\image-linux-31454”目录下。按住REC按键,插上MINI USB线和电源线,接着打开MfgTool.exe,点击“扫描设备”,检测到HID设备时,松开REC按键,如下所示:


点击菜单的“Options”,然后在选项“Profiles”选择“MY-IMX28-3.14.54 NAND with uboot”,接着点击“确定”,最后点击“开始”。

烧写成功后,点击“停止”就OK了。
注意:如果你用的文件系统是rootfs-qt.tar.bz2,请选择“QT-MY-IMX28-3.14.54 NAND with uboot”烧写镜像。



9.2  
使用网络烧写

9.2.1  搭建TFTP (ubuntu系统)
(1) Setup tftp server files (下载并安装tftp)
  $ sudo apt-get install tftpd tftp openbsd-inetd
(2) make a tftp directory (新建tftp目录和改变其属性)
Here we make /home/myzr/tftpt be a tftp directory.
  $ mkdir /home/myzr/tftp
  $ chmod 777 /home/myzr/tftp
(3) Open /etc/inetd.conf and edit it (修改配置文件的tftp目录)
  $ sudo gedit /etc/inetd.conf
Coment this line :
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
Add new line:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/myzr/tftp
(4)Restarting tftp service (重启tftp)
  $ sudo /etc/init.d/openbsd-inetd restart



9.2.2  
搭建NFS (网络烧写不需要用到nfs)
(1) Install NFS server package (下载并安装nfs)
  $ sudo apt-get install nfs-kernel-server
(2) Create NFS directory:/home/myzr/nfsroot (新建nfs目录)
  $ mkdir /home/myzr/nfsroot
(3) Configure mounted directory and authority (修改配置文件的nfs目录)
  $ sudo gedit /etc/exports
Add the following line at the end of the file:
/home/myzr/nfsroot *(rw,sync,no_root_squash)
(4) Restart the NFS service (重启nfs)
  $ sudo /etc/init.d/portmap restart
  $ sudo /etc/init.d/nfs-kernel-server restart



9.2.3  
tftp下载
(1) 把“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“filesystem.ubifs”复制到“/home/myzr/tftp”目录下。
(2) 设置环境变量(板子和电脑网线直连)
$ setenv ipaddr 192.168.3.104 (板子IP)
$ setenv serverip 192.168.3.110 (电脑IP)
(3) 烧写
$ run update_nand_kernel (烧写zImage)
$ run update_nand_fdt (烧写fdt)

$ run update_nand_filesystem (烧写文件系统)



10  
登录方式

10.1  串口登录
插上USB转串口线和电源,开机后,差不多10秒后,在终端上敲回车键可以进入系统。

【下章节为明远智睿MY-IMX28 Linux-3.14.54 编译手册4)】



相关帖子

沙发
零三翟邢止胃| | 2019-3-12 09:58 | 只看该作者
感谢分享啊!!!!!

使用特权

评论回复
评论
Anxyuuu 2019-3-12 10:54 回复TA
不用谢~ 
板凳
vcvfvgvb| | 2019-3-12 16:32 | 只看该作者
感谢分享!学习了

使用特权

评论回复
地板
mcufz| | 2019-3-15 18:15 | 只看该作者
多谢分享啊! 感谢啊!

使用特权

评论回复
5
Anxyuuu|  楼主 | 2019-3-18 09:12 | 只看该作者
vcvfvgvb 发表于 2019-3-12 16:32
感谢分享!学习了

不用谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

162

主题

188

帖子

0

粉丝