你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32移植LWIP

[复制链接]
aimejia 发布时间:2018-5-25 10:51
本帖最后由 aimejia 于 2018-5-25 10:56 编辑 / [- W# _) ~- B) W
, L3 h+ n" e, R( q& l4 j
本文使用的是STM32F207VCT6平台,MII接口的RTL8201EL网络芯片,LWIP版本是1.4.1! p/ {* ?; e+ E  L5 k

) _- j' }4 c* B+ C0 y基础工程是:已经实现了10ms定时,led灯1s闪烁,还有串口打印
( A- N+ p1 t' V/ L$ f2 t/ A$ M! H* m: _/ ^
本文使用的IDE是IAR7.2,考虑到很多很使用Keil,本文末尾也有keil版本的说明
7 ]% j* l' `- |8 I. T+ C
5 f5 P! }+ a3 o( n1 w) Y; @添加以太网驱动库$ `  `7 T/ d! p
6 u  }: A4 P3 I/ G$ [
1.png / I( ~! K; ]! I) m
8 m5 n& R& l7 x: L5 Q7 z
2.png
/ I! U) _3 V" n$ l! v- e# O
' z$ `* n/ @  ]; l( Y& N% d( }添加进工程,增加新库的头文件路径
; t& [3 s$ g0 T/ ]/ n. a4 \* ?( _( r& N$ `2 j, C
3.png * E: s& ^8 d& R2 ]# @% m
( |6 e& \' B+ u  ?3 J: I
将LWIP源码放入目录中: {1 D; e- g' g: p

. u3 @& O# p: ? 4.png - m( X1 I( I" u/ p+ c" P/ i& r5 b
0 i* i6 A0 y0 s2 @, ~
我们把stm32f2x7_eth_conf_template.h文件剪切到文件夹中,并重命名为stm32f2x7_eth_conf.h
, D6 G6 C. L$ G4 S7 {5 h6 A8 f/ o  u* T
5.png
( \  g% D: m2 @7 S7 ]* K$ C3 W2 \* k& M& A( Y
6.png
+ b8 K9 |, r3 l" ^) R
1 ]4 U& U- ]' {$ ~- T3 K当然新加的头文件,要添加新的头文件路径8 H' _8 m  I  V3 p8 G( X. \

  l2 E" [( z+ d# s' o7 C# M4 H 7.png 6 {+ p4 D9 }0 \" d, i
* b' b% a* l5 Q* w5 N3 p
注意:这个文件是只读文件,要把对勾去掉5 C& h; e9 Q: }2 H

/ U1 c  `/ n0 y" s* R$ D. c 8.png
2 c2 Y8 p' x1 O+ [- {! a7 d2 l& S! [* p1 l. x
添加以太网RTL8201EL的驱动程序
0 D3 }3 d, B$ F( Z% t1 A5 I4 A" I+ p' z  ?2 X8 ^
我们首先拷贝官方历程驱动(PS:修改过的)
* X' Z4 k/ c( Z) @
  s) D+ F) m. Z9 v 9.png
) o9 q) o0 M3 N6 v9 a/ W# N
( _' t. K1 N( F2 ^$ L- W/ E 10.png 1 d4 Y0 R/ o3 L) x; w
# G- s2 p0 u( L3 E; N
然后把驱动添加进入工程, i/ z* H* E% ?3 A" w! ?# [

' L: W  U' x* v6 ?. }9 | 11.png 6 G2 t7 D, l: G# ?
) `( m2 {& M0 J6 S% F9 B6 Q
添加lwip源代码: s9 X8 T8 l  p  j& i, W4 y0 ~
6 {( I' \/ `4 ]& u% l5 y. u; V6 X/ K4 E
12.png 13.png 2 B: ]: p! F8 Q, J; z6 h! C
5 G9 E5 p9 C( P: h: I
14.png 15.png
2 @3 i. f$ _: |4 ?$ X5 t
( w. `6 m& }& r0 H当然,还要添加头文件路径: K- Y7 f8 @  Z
0 Q5 f1 ~! J# x2 ^/ V: N
16.png , U  z9 c$ ?# }; g  |" k

* f  I) v, Y. I8 `2 L% _6 ]添加中间文件# U; y$ ~+ W1 @4 M5 X5 _
) T9 _0 c; g! C: e, ]1 ^
17.png
. R6 D0 @( }* F2 ~; ?
' N- V, O, N1 u$ G5 w添加lwipopts.h- O9 z  ~3 j, I6 [/ }% m

+ y# d% L' H: i, ] 18.png 3 _. p0 M2 \" O" c

9 c* C$ f" i( x# ]0 m编译出错
# ~0 ]2 _% [7 r7 |% n8 `! U' g* U- T4 [$ R
19.png   T+ J0 \- W8 q- o; c

# w$ f) D$ R( j* J把他们屏蔽掉0 K8 c; |9 M# ^3 w
0 K$ {+ f) b+ x3 W* V1 S
20.png 3 C1 e  m( T$ N

/ ^- A- i, e# i再编译,出新的错误,再次屏蔽- j' q1 W( a0 l: L# ?& m) m
) H" {) ^- h$ o( w8 i2 ~4 j
21.png 8 m" X" V7 U6 E& v0 R/ K% X/ r
' h. P6 ^7 y0 e* X: K4 Y% [
修改之后,没有问题
0 X% M, v3 ?. l% p+ @2 F
- b* \+ I6 ]% n+ _ 22.png
% }- K9 b6 e( S; M1 q$ j+ X5 n1 k  P& L& N1 y, U) D5 D/ R% h7 U- r
复制驱动,直接使用官方demo, g4 }6 D7 @8 |6 Q

" f' c# o, H# l( \$ u" t1 K 23.png
' |3 M, t7 R; F% ], v# U
0 E. f; i6 c) W5 {1 y 24.png
- C7 s# S2 `6 Z' F4 B" u* ]4 [5 S4 X1 {9 c' b, y9 B
25.png
" L/ P: T! G* x0 B$ N1 @
0 ^1 o. m, N& h% j9 E( O把原来的文件删除掉
7 K7 ^7 M  {) B% D+ q' [2 c2 S+ K, f& F, Y8 q! ]
26.png
9 a6 q! U( ]  H4 ^- {1 D- G) W1 _8 v
重新添加我们新添加的文件(解除只读属性)# K4 e. O/ `) B7 G
+ s; h. k4 G8 F# ^* A; t$ t' v/ `3 `4 l
修改文件+ h6 y. T9 p5 r
$ d- h) {4 X5 u; |; `$ A7 o
27.png
" y' y6 s; y/ O: r9 _. @, v0 v" [
9 {( l+ \2 \9 z: c新建lwip_app.c和lwip_app.h文件+ M8 b" @5 v# q1 r
7 C0 I$ Y) A/ c6 T5 ]/ d1 k
28.png + i; y9 Q9 f5 ?& `5 V& a
" p! l/ M! @2 C& P
29.png
: C$ H) c" ]% F' t7 R7 ~( C
  C$ h4 y1 `) c; D( C 30.png
2 `* L1 u) R! [& l8 g2 I定义一下宏# D# P  X9 t, o, y
7 I# \! _0 U9 d
31.png ; M. H8 N2 M- i6 d

7 j: l# i; y9 t4 x8 U" e7 G* t包头文件包含一下7 ]+ c& ^5 l  Q, h3 e5 c; e
( C- o% b0 Z0 H/ R6 O9 C
32.png
! d/ {* A* p! w
  O: K; z! f) S7 I, h* a修改函数
2 j% E! I# F! I0 j/ u9 Z5 w3 [3 F+ H3 U6 h/ r7 B$ K
33.png
0 `8 C% |- p  z6 T' E9 M
/ i3 P" S" l7 x1 Y2 I( m修改主函数# o3 a3 o# e, V9 m7 A) T- X
) X( `& C2 l" Y3 m; J* z
34.png 3 k" h: u# o; M+ }# }
# a' M. C- i. c0 X* q2 v8 N3 f
实验
6 T5 l( b% F* O7 E( h! V, q
" ?! Z+ q. f3 ^8 k 35.png
. o8 o, M  x7 ^" v3 Y+ ?3 `
6 c2 {$ X& g  [5 ^# r1 C3 u移植成功3 g- f; r  }  g( E1 i7 n, _

' |( V8 ^+ p# E  K4 r( n0 l2 S修改Keil工程
% I8 M, A% O9 h. `8 L8 y" a
: Q5 F/ D% P& X/ ]% U添加文件
+ A0 O: C# {* I& [' k
0 B) B/ I& @$ B7 _, O, N; F 36.png
1 i2 f% |+ l- a) @  |4 u添加头文件路径$ q% _; W" U5 g& ^5 U7 M

" r; U/ c+ j) ?3 ]+ k 37.png ' h  U/ Y- z0 }1 p* j8 g

7 G" [7 Y9 j- a9 d2 V# O  F8 ?有1个错误* [4 J5 E8 ]- t% q9 d/ |% g, t3 q

& C& v$ j9 x7 F+ @ 38.png
; \$ ]  }0 S8 [
  1. [cpp] view plain copy
    7 I( o( R1 e, i+ j- _
  2. 9 @( p, U3 _5 J% X
  3. #if defined   (__CC_ARM) /*!< ARM Compiler */  
    , `0 T* ?$ I$ V/ N
  4. / N. W' [0 B0 c
  5. u32_t sys_now(void){}  
    3 z0 T' \/ w6 Z2 f/ W

  6. # v, g+ L7 B7 p1 D0 `) \% h4 i; S4 K
  7. #endif  
复制代码

8 }' @, p( z9 `- z编译下载,发现ping会死机6 z$ y: T/ |0 Y/ T8 T5 J; c
6 @, G  k2 J3 D2 O' B* D
修改代码优化等级就好了
' [9 Y3 E) o( `  s4 I- f* G 39.png , U! N) e# C( z/ `0 B

7 j, J, U8 U' J1 F3 E测试成功$ w) @2 f! I: o
4 f: H" k0 |$ d" M! d/ ]5 @! @
40.png % r. ]5 e% ~2 G

% Q5 g5 B) Q7 Q) f* G
0 L% q$ t6 z8 E' m0 i: F9 K6 d转载自Firefly-cjd
' v: ]+ T: p8 j% {* D& @+ k( o
1 M! ?( h+ x, q/ i
赞 收藏 评论1 发布时间:2018-5-25 10:51

举报

1个回答
MrJiu 回答时间:2018-5-25 10:59:18
支持!!!
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版