找回密码
 注册
关于网站域名变更的通知
查看: 418|回复: 1
打印 上一主题 下一主题

MY-IMX28 Linux-3.14.54 编译手册(3)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-2 10:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
【接上一章节:MY-IMX28 Linux-3.14.54 编译手册(2)7 ]/ x( H( C. O
7  应用程序编译7.1  Linux应用程序编译7.1.1  编写应用程序, h8 c4 k; `5 D' V  I
进入工作目录
, H  g& r8 J) M( J& c( z$ cd ~/my-imx28/01_application/
+ Y& \( c- Z  d5 [$ Q
  U! a1 m; |8 n! h3 N, N! ^ : E% _* f* p9 d$ z3 ~
编写源代码
, P2 P. n. ]1 Q" f& H$ vim hello.c
: q/ }# a; C5 P6 r8 s- D写入以下代码并保存# |$ @, l% k0 y0 v

" G1 v9 Y( h1 z+ d1 q8 oinclude <stdio.h>- p9 s1 h& x# r* N3 |- b
int main(int argc, char **argv)
& _2 z2 o7 \; o4 ~; a* X- N7 ]{ ! r) q' S/ Y; Y: ~
  printf("Hello, MYZR!\n"); $ v9 b, l- ]8 H3 R: q# x
  return; * ?* w8 b) _& z6 V' b8 E/ i
}
9 `. G' [. c& n- f" x' t/ f# S; q- B* t* N& i
查看代码
  ]. `* E1 ~3 A4 z4 Q& w. g0 j# v5 C) B' t
$ cat hello.c
. V3 R# d5 w: _6 |
, c0 m. @4 x. ~5 b: P9 b2 V
6 j* ~# R; D) q7 ~; P1 H7.1.2  编译应用程序
0 b8 w& {4 X0 b% t2 p: E. c配置环境变量  J5 }' X2 s- s6 `7 L
$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env
5 r4 z1 e2 O% l; |/ I3 N$ K8 R
# c$ \. o, n5 o6 P
: i) |' p  h- n$ Z+ C$ R" S6 K' J编译) R( o9 B; x6 A; j& X6 K% k
$ ${CROSS_COMPILE}gcc hello.c -o hello.out $ ~2 |: b3 v" ?  O
& ~- |( `" B4 B
  2 |' ~" B- }% A( `/ f
注意:上面的命令有包含“$”号,即“${CROSS_COMPILE}gcc”,是引用我们source时产生的环境变量。0 q1 z& o, w3 T4 g% C  r
目标文件' ^, F( A7 T& w: a
$ file hello.out 9 G$ Y) S# d$ ~) h3 v

" i1 Q. H3 f* L4 ]. [  1 x6 `6 V0 v! _
可以看到目标文件 hello.out 的属性。' m) s. c4 t3 [0 E  B  j

& }- ?; X( P7 c9 D0 s: [3 Q5 ]( c+ A8  文件系统
: n8 r- I: N3 [! _0 t9 F8.1  文件系统rootfs.tar.bz2
7 H# S1 M1 _# l1 D9 a" p$ o3 D: c用以下的方式增加自己的应用:(把MY-IMX28_Born_Tool\Profiles\MX28 Linux Update\OS Firmware\files\image-linux-31454/rootfs.tar.bz2复制到“~/my-imx28/04_image/”目录下)。
3 o* f% Y) W& ?6 T( r4 U
. K! N' Z5 Y' Y2 ]
4 X. {5 l4 T1 [8.2  文件系统filesystem.ubifs
/ p: m% O2 r8 G& }
复制mkfs.ubifs,ubinize到电脑的“/usr/bin”目录下(如果电脑有这两个应用就不需要复制了);复制build_rootfs和ubinize.cfg到“~/my-imx28/04_image/”目录。% b& ?& N  m' J

( y: J9 y; ?: N6 D5 p
, H6 ]' G% S3 d  {7 D# _) h3 I9  烧写方式
& L! O' \4 v; z3 o7 q* ?至此,我们在“~/my-imx28/02_source/”得到了除文件系统以外的一套烧录文件。包括“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2”。
" K7 x; W" `( o7 @* R' [  M/ g: i) t
9.1  使用MFGTOOL烧写

: C' W' j- L/ v: k  _7 U把文件“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按键,如下所示:" a! L  y6 X  b! _4 n% H
9 P; {, n( P& G( x9 ?
  
2 x: W( }# W  Z( k. F点击菜单的“Options”,然后在选项“Profiles”选择“MY-IMX28-3.14.54 NAND with uboot”,接着点击“确定”,最后点击“开始”。$ t$ c0 a2 @) V1 h" v

2 n4 P  O# V" x+ I  5 u2 _7 K5 D! m( D8 \
烧写成功后,点击“停止”就OK了。5 h' d; f( K5 d9 N. ?
注意:如果你用的文件系统是rootfs-qt.tar.bz2,请选择“QT-MY-IMX28-3.14.54 NAND with uboot”烧写镜像。
; Z" j2 M% M, ?# ]/ g1 ]0 \- H' W& |$ w$ J; A, s1 V
9.2  使用网络烧写' s, I; U) F  B% ^' ^: H
9.2.1  搭建TFTP (ubuntu系统)7 T  d; T5 `% ^+ e/ ?4 ~
(1) Setup tftp server files (下载并安装tftp)
7 l' Z5 h0 M& F! ?8 ?2 n- I. u  $ sudo apt-get install tftpd tftp openbsd-inetd
9 W! \9 n- l8 G! ^(2) make a tftp directory (新建tftp目录和改变其属性)
; j5 a! k* f* _& y' P+ B: V2 oHere we make /home/myzr/tftpt be a tftp directory.
; H5 j7 f" d5 i2 n$ N: s9 r  Z* T4 u  $ mkdir /home/myzr/tftp; k% G% {* u, x+ D# ^
  $ chmod 777 /home/myzr/tftp1 p# a" A2 e5 z
(3) Open /etc/inetd.conf and edit it (修改配置文件的tftp目录)
; `' i, ~4 j. L3 {1 e. S3 I* q  $ sudo gedit /etc/inetd.conf- {. K, y2 c( \3 S
Coment this line :
8 _9 k# P) R4 z" o5 ?# ktftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
& Z, W3 c5 ~/ Z% a9 `% w$ y% GAdd new line:$ }+ Z: K4 s7 l( H3 Y' O+ H
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/myzr/tftp) b* l% w& _+ J
(4)Restarting tftp service (重启tftp)3 i+ v! P" @% t  p
  $ sudo /etc/init.d/openbsd-inetd restart
2 |5 |/ M! p0 X: x& K
0 o6 r6 \6 ?. }; }9.2.2  搭建NFS (网络烧写不需要用到nfs)2 a" N. Q( n2 s! }! ~+ \, {
(1) Install NFS server package (下载并安装nfs)2 N% ]* @/ k/ t+ Q* \. Q  L/ p
  $ sudo apt-get install nfs-kernel-server
4 d) ^6 N+ K: L0 g(2) Create NFS directory:/home/myzr/nfsroot (新建nfs目录)" I' A# b7 R4 p+ h
  $ mkdir /home/myzr/nfsroot
' \6 u- `. f+ u(3) Configure mounted directory and authority (修改配置文件的nfs目录)
4 y5 [( n( q* r2 }  $ sudo gedit /etc/exports
" G. [# m2 l+ O/ VAdd the following line at the end of the file:) o, Z5 _" @9 J% ]4 R/ G
/home/myzr/nfsroot *(rw,sync,no_root_squash). i* _  q# b1 S2 f
(4) Restart the NFS service (重启nfs)
: ~: ?, I9 y6 H7 w5 E% O4 O8 h9 {$ S  $ sudo /etc/init.d/portmap restart% L1 S6 q$ p0 O( |
  $ sudo /etc/init.d/nfs-kernel-server restart
/ n! n( H7 h( ~  X) p2 v3 P
! Z8 ^$ K0 G! I# a* N$ f1 R9.2.3  tftp下载
4 l6 a" d6 q3 k. W7 g6 T(1) 把“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“filesystem.ubifs”复制到“/home/myzr/tftp”目录下。
3 N- O( D( j8 h9 B0 b* w8 i(2) 设置环境变量(板子和电脑网线直连)& R9 X7 A9 h) z" n, W: D6 D
$ setenv ipaddr 192.168.3.104 (板子IP)
% m( I: M8 q" O# l, y. n$ setenv serverip 192.168.3.110 (电脑IP)
0 a7 a( U2 a3 _& e6 v- d(3) 烧写. }/ I0 O3 V6 S9 [, N# e3 c
$ run update_nand_kernel (烧写zImage)8 h! m" X; J7 ^% \+ ?

/ R; P( B7 k, J: G* Z
. b4 H. P5 |$ B5 \$ run update_nand_fdt (烧写fdt)
8 Y* y3 ^( C+ |/ v   C/ E* e5 n! c2 ~8 K$ }; R
  3 G% J9 @1 c6 O1 L
$ run update_nand_filesystem (烧写文件系统)1 P9 R6 i) M/ I2 R6 \
3 n" A7 c/ W1 i" D* C
# M7 W4 |, H! O/ o
. F! B( \9 }: x! @
10  登录方式10.1  串口登录
' [. g* r. A0 p7 z, J% K插上USB转串口线和电源,开机后,差不多10秒后,在终端上敲回车键可以进入系统。
( K: T& L" D' I 8 t* A! G7 R7 Z0 X" e

' R. x3 x- ^' S* D【下章节为MY-IMX28 Linux-3.14.54 编译手册(4)】! Z7 E* B! R) Y; |/ u, X

该用户从未签到

2#
发表于 2019-8-2 15:46 | 只看该作者
好东东,谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 23:50 , Processed in 0.187500 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表