|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
编写驱动前,理所当然的,我们应事先将环境搭建好,废话不多说,直奔主题。 s2 ]2 h. f% e$ w% V1 f7 T* M0 \3 I
6 i- p" @7 v, H6 H2 P: |9 @/ n
环境的搭建:3 h, {' w: t9 {' A" Z4 M
A, m/ [: C q3 n! }
一、开发板使用TQ24403 S1 Y3 G, L6 ^0 t/ C) d2 i
7 V, T6 E: B8 g; h
这个没什么好说,去购买一块开发板即可。5 ?7 E$ S' t/ }% b" {
0 M: e% @! \# I# ~0 H+ M
二、linux的版本为linux2.6.30.4(以后再使用linux.3.4或更高)( I: f f8 R) J) j) u1 N
, n6 G. F5 g" S: M4 r
linux直接使用天嵌公司提供的zImage_Q43_2.6.30.4_20100531.bin- ^. f4 C6 y3 F1 N
8 { f, O& G5 v; R/ p1 x: @) W
三、搭建uboot环境参数
' {) F, }' }( g5 p4 Z! E' f& H- k2 o2 H" G, R4 L
烧写uboot、linux镜像就不多说了,参考天嵌使用手册即可。这里要说一下uboot的环境参数,因为我们在开发驱动肯定要使用NFS文件系统。要想使用NFS文件系统,需要设置以下几个东西:1 `5 e+ H5 f2 a7 t+ V o/ S9 n
5 V; N* \" p: }2 x* ?6 e ~ H, @/ ]1.前提已经将uboot、zImage烧写到NAND FLASH0 u( L* X" U2 O
5 i. r% r2 z: n
2.在NOR FLASH启动方式下(当然NOR FLASH要烧写有uboot),在uboot的菜单栏下,选择0设置uboot环境参数,具体如何设置,请看图解:
: Y: U' y3 U/ k5 t. m0 _/ h9 ~9 g/ b* u5 M2 n9 Q+ ^" ~! d' {" g; n
a. 在NOR FLASH启动方式下,在uboot的菜单栏中选择0设置uboot环境参数
, d. U* W3 n3 W' d3 v4 b/ Q+ `8 o& ~2 Q u
$ ~9 ]' p0 R8 J7 w# ~, L1 w
8 H' v' E4 ]9 _# A5 u% e* }3 D. M( m$ M9 }/ o5 Y+ v2 R, \
b.选择1,设置为NFS启动方式,具体参考如下图所示
! G/ }, f7 d6 l+ G* o* e7 @8 ]: I! f' o% W# c7 R" N% m9 F
7 @! c/ b) w5 x; u
/ I: T+ [0 A6 R9 ?0 p& T" W. x2 V0 y3 t8 \' ?
c.设置完成后,切忌要输入 s ,将环境参数保存到NAND FLASH中,否则功亏一篑。
! C( V* v# I- y5 @! ~$ [, {8 X4 \- {# p4 I5 r% M
! d. X* B% S) w0 b& A/ N
, Q4 n- k* _2 V- S# j: b t ^: V
9 S; V, v+ u L8 c- h" Ad.设置完成后,回到uboot的菜单栏后,两次输入q后进入uboot命令行,查看一下uboot的启动参数
* ~2 }7 y5 x4 V ~; v. K% U( s2 Y% J* S- r2 a
4 Q7 ^4 S. _/ K2 h6 x9 C w. r/ q" @$ _8 L
5 L3 F- `' r! U3 ?2 P* |发现启动参数为:, F7 J2 Q' U- @1 p1 R
/ L. Y4 o d& f9 b3 q5 T; F3 Qbootargs: console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.123:/usr/src/root_2.6.30.4 ip=192.168.1.110:192.168.1.123:192.168.1.110:255.255.255.0:SKY2440.embedsky.net:eth0 ff
. j0 Q* u% p* U
8 Z# I" A7 H2 z; |* M* H1 M+ [并测试开发板能够与linux服务器进行网络通信。& _- M4 Z' D8 g+ [- n1 P
! i# K# s+ ~1 Z; O& S
) [6 e! w: `9 r" N2 C% R L0 T
ping测试注意事项:
) z: w. i6 {+ U) B! @, q( B
; _ y5 D- {. s! J2 _1.确保linux服务器能与windows之间互ping通
d; {* M/ J, F2 U3 L* A+ n( ?) S, R4 q. O# G3 O7 t; T+ `
2.windows使用wifi无线网络时,开发板不能只用交叉网线与电脑相连接,这样开发板最终不能与linux服务器之间互ping通,必须将网线一端连至开发板,另一端连至路由器或者交换机。
# ~2 N& G/ J4 [. |7 `3 v3 E) q
% ^5 O1 z9 N! w) M" V- g. m E$ V! E- q7 [8 c# ]
IP地址设置的注意事项:
; I$ @: _* K2 l2 _2 z" Z0 j' b* \" G1 e5 A" O2 {6 N" h8 Y% a+ E" g
如发现在uboot菜单栏中设置ip地址无效,即在uboot的命令行下发现ip并没有真正得到设置,那么需要手工进行设置,如何手工进行设置?
- z6 a# r# h& e2 `7 t9 b' w# O
9 L. @2 G/ h2 V8 z9 D& |) Q9 `EmbedSky> set ipaddr 192.168.1.110
/ N* y- \ \ L* |4 gEmbedSky> set serverip 192.168.1.123* {% u; N! k- ^
EmbedSky> save
# H7 U! H9 U6 c; U/ ]- y" b2 A9 M8 r7 p+ ]0 q
/ @7 ]9 x) K% R+ R: p" l( `# `( G' v四、linux服务器的环境搭建
& z6 f4 p+ `; i5 P' d/ M$ F, Q/ e P: _* l' y$ O+ H
1.设置NFS文件系统共享目录& \- F D2 l4 x4 C0 x' Q! o
- V6 n o$ R0 P3 R% v" o% |: s
在/etc/exports文件里添加如下内如: T: z, `% b( h8 T
) B) Z2 `$ V6 p0 n C7 u4 Y. K/usr/src/root_2.6.30.4 *(rw,sync,no_root_squash)
9 }3 s+ V% m' j- Q4 a/ @4 L2 N# `
* P7 ~6 q5 ~( `# o$ U2.开启NFS服务器
+ z$ m9 S' E; x* I5 _5 O/ @0 m7 y( F+ m
/etc/init.d/nfs restart
, g/ f. K8 _/ O& U p, \' L6 a: z0 K
正常的启动界面如下:& ?: f8 V/ q2 L- `: b$ w# t( p0 k
9 T' a6 B' a S, P! Y# `
J) V8 n- {+ b' x0 [7 m4 r) ~: ?* `
' B% k8 y% p i- w五、解决error$ c1 \1 N% F& }. f/ V
/ r% z$ Z5 |+ s: k: Q6 ]# q2 G4 W- ^) b, m9 j, s
BUG1:' ~6 D- J) _- e! T
5 j6 I. v% ~0 D% K
( g( g# {4 A# U. @# q9 a
! s) S+ c& f! A
( ^: A- D0 L5 k1 ZIP-Config: Complete:
5 h% K+ e! l4 n4 T# x' B" K device=eth0, addr=192.168.1.110, mask=255.255.255.0, gw=192.168.1.110,
/ ]) O) ^4 P, U- B& B7 t8 j host=SKY2440, domain=, nis-domain=embedsky.net,
9 Z6 ?& Y% _. S' O$ E L0 G( F bootserver=192.168.1.123, rootserver=192.168.1.123, rootpath=
: s1 F1 O, E" ?" @' E' }Looking up port of RPC 100003/2 on 192.168.1.123
$ \# j# O0 f- L8 G- C& Z6 I3 i
1 ^$ s- z, k4 e0 I+ L3 F* R5 Y6 j* w
如果开发板启动卡在了如上界面所示,那么表示无法挂接NFS文件系统,可能的原因:9 W$ ?: R8 `; b% c# M
& V( U8 \( r: C7 a3 d p' P
1.开发板的网络有问题,开发板不能与linux服务器互ping通( D2 U) T6 x$ G- L4 p: I
! u8 ^% f3 H7 h) h! m2.linux服务器没有开启NFS服务器- \; U, v- w+ q, Q
" X5 Y c1 s. A; y0 M$ w* W3.NFS文件系统的共享路径有误
3 r# n' i; J* A. e: c
- n' s: a v) S# C4.防火墙没有关闭# W5 X0 l! @: {$ ~
7 \4 X, t# ?3 M3 t; Y* F
1 F8 v+ [: H# i) n
BUG2:
7 W' }1 g' N9 [; j0 k
9 r4 q$ W3 N/ T. o1 h能够启动文件系统,但是30s后,linux又自动重启?
' g8 g$ a2 X+ v2 o1 U/ V2 v, V$ e! q4 _6 J
原因(很明显是看门狗的原因):
3 O1 j# m: `7 }+ H' c
9 e& k [" F' G; N2 k) Y: K因为天嵌制作的zImage内核里, 没有进行喂狗,而使用的文件系统大部分是我自己制作的,里面并没有喂狗程序,所以我们要拷贝天嵌的EmbedSky_wdg到自制文件系统的sbin目录,并修改etc/init.d s/rcS
+ y* k8 a$ C/ G {
, p0 ?6 R4 W# D0 I在etc/init.d s/rcS中添加一句:) \0 r0 L7 J5 v6 f. D: ?
: L$ D" U1 w; j/ _EmbedSky_wdg &( u( j& N }! h7 i+ s+ W- p; d
: M9 p# K" L4 J8 C
表示启动看门狗,自动喂狗,这样linux就不会自动重启了。) J( e, X8 q3 P4 @( Q, f; t
; Z+ f( u0 \% k/ f1 a4 w
# `' R8 Z6 N* P' H( x! v |
|