【接上一章節明遠智睿MY-IMX28 Linux-3.14.54 編譯手冊(2)】
7 應用程序編譯
7.1 Linux應用程序編譯
7.1.1 編寫應用程序進入工作目錄 $ cd ~/my-imx28/01_application/
MY-IMX28 Linux-3.14.54 編譯手冊7.1.1.1.png (5.46 KB, 下載次數: 47)
下載附件
2019-3-11 16:52 上傳
編寫源代碼 $ vim hello.c
寫入以下代碼并保存 include <stdio.h> int main(int argc, char **argv)
{
printf("Hello, MYZR!\n");
return;
} 查看代碼 $ cat hello.c
MY-IMX28 Linux-3.14.54 編譯手冊7.1.1.2.png (7.14 KB, 下載次數: 54)
下載附件
2019-3-11 16:52 上傳
7.1.2 編譯應用程序配置環境變量 $ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env
MY-IMX28 Linux-3.14.54 編譯手冊7.1.2.1.png (2.98 KB, 下載次數: 51)
下載附件
2019-3-11 16:52 上傳
編譯 $ ${CROSS_COMPILE}gcc hello.c -o hello.out
MY-IMX28 Linux-3.14.54 編譯手冊7.1.2.2.png (6.14 KB, 下載次數: 52)
下載附件
2019-3-11 16:52 上傳
注意:上面的命令有包含“$”號,即“${CROSS_COMPILE}gcc”,是引用我們source時產生的環境變量。 目標文件 $ file hello.out
MY-IMX28 Linux-3.14.54 編譯手冊7.1.2.3.png (7.87 KB, 下載次數: 42)
下載附件
2019-3-11 16:53 上傳
可以看到目標文件 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/”目錄下)。
MY-IMX28 Linux-3.14.54 編譯手冊8.1.0.1.png (18.43 KB, 下載次數: 42)
下載附件
2019-3-11 16:53 上傳
8.2 文件系統filesystem.ubifs復制mkfs.ubifs,ubinize到電腦的“/usr/bin”目錄下(如果電腦有這兩個應用就不需要復制了);復制build_rootfs和ubinize.cfg到“~/my-imx28/04_image/”目錄。
MY-IMX28 Linux-3.14.54 編譯手冊8.2.0.1.png (19.36 KB, 下載次數: 45)
下載附件
2019-3-11 16:53 上傳
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按鍵,如下所示:
MY-IMX28 Linux-3.14.54 編譯手冊9.1.0.1.png (41.32 KB, 下載次數: 60)
下載附件
2019-3-11 16:53 上傳
點擊菜單的“Options”,然后在選項“Profiles”選擇“MY-IMX28-3.14.54 NAND with uboot”,接著點擊“確定”,最后點擊“開始”。
MY-IMX28 Linux-3.14.54 編譯手冊9.1.0.2.png (63.19 KB, 下載次數: 38)
下載附件
2019-3-11 16:53 上傳
燒寫成功后,點擊“停止”就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)
MY-IMX28 Linux-3.14.54 編譯手冊9.2.3.1.png (17.59 KB, 下載次數: 36)
下載附件
2019-3-11 16:54 上傳
$ run update_nand_fdt (燒寫fdt)
MY-IMX28 Linux-3.14.54 編譯手冊9.2.3.2.png (15.43 KB, 下載次數: 39)
下載附件
2019-3-11 16:54 上傳
$ run update_nand_filesystem (燒寫文件系統)
MY-IMX28 Linux-3.14.54 編譯手冊9.2.3.3.png (18.33 KB, 下載次數: 49)
下載附件
2019-3-11 16:54 上傳
10 登錄方式
10.1 串口登錄插上USB轉串口線和電源,開機后,差不多10秒后,在終端上敲回車鍵可以進入系統。
MY-IMX28 Linux-3.14.54 編譯手冊10.1.0.1.png (22.97 KB, 下載次數: 37)
下載附件
2019-3-11 16:54 上傳
【下章節為明遠智睿MY-IMX28 Linux-3.14.54 編譯手冊(4)】
|