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

【心得】用传统方法开发STM32,放弃固件库的使用!

[复制链接]
ST老少女 发布时间:2008-12-2 14:40
阅读主题, 点击返回1楼
赞 收藏 评论1459 发布时间:2008-12-2 14:40
1459个回答
hsjack 回答时间:2010-8-31 20:15:50

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

附件:回復後可見!
xinlinhack 回答时间:2010-8-31 22:05:55

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

学习下,谢谢.............
yerenfeng-17602 回答时间:2010-9-1 15:52:08

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

kkkkkkkkkkkk
cellsplinter 回答时间:2010-9-3 10:46:37

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

学习学习 体会体会!!!!
yuxuefeilong 回答时间:2010-9-3 14:34:30

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

看一看
yongjun 回答时间:2010-9-4 17:54:41

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

大虾,好东西啊!
jantw996 回答时间:2010-9-5 08:42:12

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

我也正朝这方向努力,便于自己的开发,否则总觉得有什么地方不明白的样子
ding_zl 回答时间:2010-9-6 11:20:48

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

好,学习下,非常感谢!
uhpdpl 回答时间:2010-9-6 12:44:48

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

同意。固件库太占资源,只能做参考自己做driver
ksws0061595 回答时间:2010-9-7 10:29:51

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

学学试试,谢谢楼主
liuruifly 回答时间:2010-9-8 08:37:51

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
) a: h' t& P# w仔细研究了固件库,发现使用的代价,性能损失还是相当的大。6 k" }( q$ P9 b* e  q7 g
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。% [% \) B- G" Z: D0 B# A
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
+ W  L3 [+ a6 b- e6 |很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
; F; {& z$ g: n. [4 e% g我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。0 I& U5 k& ^  @6 g6 @+ d, ]' X1 s
在此留个贴,慢慢记录无固件库的尝试过程。  g! y/ ^3 r0 N$ e
6 M: \; \1 Y' A6 e
IAR编译器传统的INC目录中包含有两个STM32的头文件
9 I. r7 H! g9 r" @. P$ O6 X: ~- I分别是
' l9 P- W! _/ ~/ r. s* ziostm32f10xxB.h' x7 ~. h) u5 Y
iostm32f10xxE.h
$ W4 }  b) y5 z. W( G0 `/ v0 A经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
6 x* W( ^- \9 i# I, y- B# W. E2 G' P: V$ J/ T- S2 F  S; R; n$ f
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
1 M2 t8 D6 X: G1 D- d4 I而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。. g3 o2 o3 Q( |* v- n" J% m( \

1 {( b! R9 m! p# u1 @仔细研究了启动代码部分
/ t& G7 ?5 M8 c$ w8 `cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)% G! U. P- }1 X% ~/ K8 h: D

8 y  M$ D: O# C2 Z4 z  K为了方便进行中断处理,将0 _9 ]- @0 @7 N1 m4 m
stm32f10x_vector.c
2 ~/ o5 @* h- ustm32f10x_it.c
/ u/ r( i" l  _! Hstm32f10x_it.h
4 d  C2 C, A1 B  K9 T7 l0 \' v- e三个文件进行脱离固件库的修改。然后Include进main文件。
( R6 j+ ~. S3 P4 k, q+ e0 [  k9 y. B  `
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
+ V& y9 l; c: n, ~; C. a: I4 E0 A5 N3 }8 M1 ~: r* K  V
main.c头部
1 M' M1 Z$ B, x#include "iostm32f10xxB.h"& ^5 }% t/ b$ T; J
#include "stm32f10x_it.c"! O- X  Z) Y% D+ E( z
#include "stm32f10x_vector.c"7 ~5 _0 }, G  m; w
以下附件为开源代码。
, b3 U' x+ V! |, A  ]
( H" t4 N* |  W
, `4 b5 Y0 Y  b8 i 
: k# l; `' n, l* [; z
! S5 Z" S$ _& D2 }( [9 G好
boat_x 回答时间:2010-9-8 08:54:39

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

同意楼主
mhykj9 回答时间:2010-9-8 19:20:30

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
* z3 e! }8 T& P6 b4 V. x5 D仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
% Q4 t* n- C; z. j5 [激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
' V1 |! |$ R) z由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。: a" D8 @4 m) D2 M/ \) I
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
% E/ H; E% g' T5 [* v* H1 U我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。, g9 [' ~7 k+ E5 ]+ Z. f
在此留个贴,慢慢记录无固件库的尝试过程。% u9 P: j3 f+ J/ P0 ?
9 O  w! C# V$ w. N
IAR编译器传统的INC目录中包含有两个STM32的头文件
% S% d  T" j: T* T分别是: I3 K, |! s4 F/ i! |0 N$ \
iostm32f10xxB.h; w8 q4 f  Z; t" l! h* W2 R# _
iostm32f10xxE.h$ ^( p, d0 [0 D) ~. w6 T. c/ p
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。* U: O7 j7 i: a+ g& q

6 q/ X0 N! u$ v( e7 S也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
" F; t- m4 x+ _' [  ~& l而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
$ T; I/ |1 i- T: V7 `# c0 }
7 r: S% b1 [7 I% w+ k* o# A/ B仔细研究了启动代码部分5 _$ b2 Z) }+ X# s; n& X
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)% l. Z# {+ z9 C
8 U. o- u  o$ @8 e
为了方便进行中断处理,将  C" j9 K: V0 C# @  D
stm32f10x_vector.c
8 D4 Q( _4 A) h; V' Nstm32f10x_it.c ! o8 w- D  A6 z# ?8 K' ?4 K+ [
stm32f10x_it.h
" T* A( }% Y1 M. E三个文件进行脱离固件库的修改。然后Include进main文件。
- e5 d4 c) q3 t1 r. P- c
/ X/ Q$ i6 q& W" F: s好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。  N$ _, `$ [7 q8 B* y, Q  D' D

4 I& h) j; h! O, `main.c头部" {3 ~, [- e; B1 Q9 s
#include "iostm32f10xxB.h"
6 U  E. J" z4 P9 P( H% ?4 R( |#include "stm32f10x_it.c"/ u, A- g0 X. Z" C6 Q
#include "stm32f10x_vector.c"
4 k$ q- |' W0 N+ g! `以下附件为开源代码。' P6 ~: r4 S- O" A. O# P! v' U9 h
+ @8 A) ?6 Y5 P/ v- m* U  e# W

0 Q8 X6 j+ f8 a7 y6 I 
! ]# V  C2 \, P, s+ U& t) C& T" P9 W5 w* E! V3 i  ~
正有此想法
hongfeng668 回答时间:2010-9-10 16:20:45

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
4 o( @" F" j0 r& i0 W仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
. O- w; n1 \8 F! w1 \激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
- N) H9 m: m( B% {. G  n& [) N由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
3 {9 e9 C5 d0 f1 y很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
  \  b  q+ |4 M: D1 `我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。% Z7 c6 }: ~$ }
在此留个贴,慢慢记录无固件库的尝试过程。
. o! y2 {- g( L" ^$ Y6 x' l$ h4 \6 U( z4 g3 o# \- x
IAR编译器传统的INC目录中包含有两个STM32的头文件& B, r1 r9 n8 y( _6 @: s
分别是
) P9 P5 t% ^0 [" r) N9 Y; ]4 Eiostm32f10xxB.h
. s: ^* V0 A$ q" J. ^iostm32f10xxE.h
' E; R7 N9 ~. A, m2 E. D# s经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
; _, o  ~0 B0 I* b' T+ T
9 y/ S0 T. Y+ X( j1 Z+ c1 w也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
7 Y$ P- v+ \2 {  `而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。9 G* H2 }" W/ |% K
9 V1 S1 |2 _/ x' m7 ]
仔细研究了启动代码部分% q0 [& q7 r* r! I
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
2 C  }  C8 B2 r/ @' ]$ Z4 r+ @  A3 O# X6 z; }) G- |
为了方便进行中断处理,将1 D* T" y/ I( E0 R- \  Y3 E5 O: u
stm32f10x_vector.c7 F: u9 X3 Q2 T5 f8 x
stm32f10x_it.c
( H9 T1 J5 E/ E; F. n& Hstm32f10x_it.h& ]1 U  g$ b, g2 h: _7 X
三个文件进行脱离固件库的修改。然后Include进main文件。
- \+ [4 q& I2 I( {; }3 v2 @' a/ w; a  S2 c5 e" ^
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。/ v+ ]- _/ D5 m# c
4 A9 b! v) {, g$ u  R' v8 ]: Y
main.c头部/ B9 e: D5 m: I6 l2 u/ o
#include "iostm32f10xxB.h"' n! }6 O, n! R' f- Y( m
#include "stm32f10x_it.c"3 a" L" k5 |5 \* q6 ~8 a' i
#include "stm32f10x_vector.c"
9 M" x! z# I$ n% s以下附件为开源代码。
4 s: x3 d- u  [7 A$ T  e2 j9 ~
/ V! e: M2 o8 |3 l: U
 + b" b) J. ^( I6 k0 e& m
 学习了,呵呵
wmgang 回答时间:2010-9-13 02:13:12

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

最近再用stm32进行开发  老感觉它的速度慢  获取个spi 还不能再进行别的操作 估计与库有关系  拖慢了速度

所属标签

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