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

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

[复制链接]
ST老少女 发布时间:2008-12-2 14:40
阅读主题, 点击返回1楼
收藏 评论1459 发布时间:2008-12-2 14:40
1459个回答
bobo2121 回答时间:2011-5-3 18:29:01

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

xiangkankan 好的话 收藏
ifding 回答时间:2011-5-3 21:10:02

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

下来学习, 谢谢版主
shaa11aa 回答时间:2011-5-3 21:30:24

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

对于初学者来说固件还是有帮助的,使用固件库有利于快速开发和维护嘛。
gmwhran 回答时间:2011-5-3 21:50:47

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

高手,学习中!!!
松涛笛声远 回答时间:2011-5-4 09:37:36

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

我正在学STM32,刚开始觉得使用固件库的确比较方便,直接调用函数就行,但看到你的文章,猛然回头。
fycom200 回答时间:2011-5-4 15:22:07

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

下来看看了                 补偿?
stone21cn 回答时间:2011-5-4 17:21:17

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

闻道有先后,术业有专攻,哎...
lfq123abc-28887 回答时间:2011-5-8 09:09:05

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

这么好的东西要顶
xivisi 回答时间:2011-5-8 17:32:16

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

学习学习
meancom 回答时间:2011-5-9 11:53:13

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

还是这样直观一点。固件库阅读代码好麻烦。
cdw0105 回答时间:2011-5-9 17:11:11

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:( G" I5 \: U1 H' v/ m/ t
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。0 N+ f/ q7 [* N& x* U; |
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
/ a( }8 O5 X/ a& _% }5 o由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。0 O' C4 ~  p) N, S
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
7 l8 @0 Q5 L  q" C) c- t! q我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
0 e/ P5 U+ \2 F/ ]4 f* n" x在此留个贴,慢慢记录无固件库的尝试过程。8 Q9 N8 [/ u+ w& c7 K

/ D  O1 B; e; |& i9 V* n* \IAR编译器传统的INC目录中包含有两个STM32的头文件- X; `4 ]2 A) U/ {* P* J0 c; N3 e* T
分别是( \) x# p1 s# W' r- S% k
iostm32f10xxB.h
) O$ n5 d( s+ d" ]7 {8 b( Piostm32f10xxE.h
9 Y4 T* ?' F8 A. ]' A经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
  @8 S/ x+ }) o* {6 K4 h
/ G5 v( C5 {/ l' s: ]- K( ^) d6 W也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
( v* J1 C, T) o, O+ {/ r  |5 y' d$ p( ~而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
/ u1 W  r# i3 D9 c* C& {5 s. i. y; c' ~" Z7 F$ p8 |+ \9 S
仔细研究了启动代码部分
  [/ r3 h/ s" A$ o1 Acortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)7 X: V6 J' }6 h6 w6 R9 F$ a
% J% e' `7 K7 [0 x- |- i' t. h
为了方便进行中断处理,将
& J! }' G) a+ ^9 R3 `stm32f10x_vector.c! g1 \2 c8 L8 A! `, p
stm32f10x_it.c - Z8 K/ f* F* o- B1 s8 f
stm32f10x_it.h
1 z; g( T* U2 z三个文件进行脱离固件库的修改。然后Include进main文件。, z# w5 w7 n; p$ m5 ]3 H
& b3 H, |; f' U
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。6 \2 q0 l, y/ m! i
) D8 l8 D& w1 m( x
main.c头部
- k$ s* t  Q# T. N' C+ O7 i9 F#include "iostm32f10xxB.h"$ M& F* m$ I' E9 W* X* m8 f1 {6 N( R8 G% @+ F
#include "stm32f10x_it.c") ~0 D/ |& Z6 r6 h0 Z: @4 J- j
#include "stm32f10x_vector.c"
9 W! v% _# d9 T: |$ B! m以下附件为开源代码。
5 h6 e0 k3 p; O
, F/ f8 ^8 @+ G+ U
# j' e2 e( i. t, r  Z 6 B4 x5 i2 F. v+ v$ F# [
4 z# C1 v' \0 l( ]
不错啊
cdw0105 回答时间:2011-5-9 17:14:04

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
) E/ t7 j. v3 g# |仔细研究了固件库,发现使用的代价,性能损失还是相当的大。9 M  Y2 M9 a  L% o
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
/ J* p5 _0 h' ~- K' @. O0 }, A由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
2 k2 ^4 P5 S5 A2 g5 _很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
3 g" v- e5 r& v; @+ {我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
. s: v* o) t; t  O0 f% t在此留个贴,慢慢记录无固件库的尝试过程。
- c) i7 C# a0 T* w  q  G1 J9 S$ t
7 c! Z$ K, \) s( g& r" pIAR编译器传统的INC目录中包含有两个STM32的头文件/ a% f& U6 q0 G+ p" U3 _' ?
分别是0 l- z7 l( n$ ~, [% @' u
iostm32f10xxB.h
1 k9 |7 Z% D$ _3 V% v3 Kiostm32f10xxE.h
- [% B. ^3 _+ b2 I% c经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。* K2 K& v# ~; Z/ N8 W1 \6 W; @

+ E7 n3 Z% H# ?6 I- m$ z, g也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
# C; s# {# b1 P, W# L而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。6 B3 a; k7 p3 V8 A! J+ d4 \8 X0 n
- T' n2 d' ?1 K$ j$ f- n: C2 C7 S, ], j2 G
仔细研究了启动代码部分: \8 U* C3 e6 B7 W6 e' |
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
+ U5 z7 d" [0 ~6 V& A( c1 ~; X+ Y. W3 K& n
为了方便进行中断处理,将
- P- p. }& M3 e/ Hstm32f10x_vector.c/ i3 C! S; y8 C1 }4 M
stm32f10x_it.c 2 b0 _" X, d, S- v& f6 g
stm32f10x_it.h
% v) x: P2 J3 Z3 u- p1 t三个文件进行脱离固件库的修改。然后Include进main文件。$ }: P( f) W& X$ \+ U+ E) r
8 r6 {$ F$ p9 R: R+ `8 x9 J
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
& {$ V6 m5 N9 ?+ @' M
# C8 y( a: G% l  P/ T1 _' ?( Zmain.c头部5 z6 A3 t* |8 _, G! v
#include "iostm32f10xxB.h"( G+ J( b5 Y: C4 O/ O
#include "stm32f10x_it.c". J; {* ?9 k6 w
#include "stm32f10x_vector.c"
& L0 j; \: L8 `: d4 N以下附件为开源代码。
% K5 t6 `1 |2 E  s/ l( [. F2 W2 z# D9 r4 \9 n/ \

! v/ Y9 q' x5 S0 G. y% n1 E * {- k. H5 y' K& U0 Z  \) u
  Q5 i- e- f: F7 T( I& ^
不错啊
robell 回答时间:2011-5-10 22:14:11

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
. {' `- Y7 m% c- |仔细研究了固件库,发现使用的代价,性能损失还是相当的大。1 X4 L! ?/ t" N* s
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
* m  u- I5 L5 L5 b5 K1 R0 v由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
) _9 a0 R8 Q  I很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。) W1 x- B* {: d6 ]
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
  R3 Q1 j8 T4 l/ L  C7 z在此留个贴,慢慢记录无固件库的尝试过程。
: R4 U% n* C; i; V1 p( q: {! d3 n, _, v' M  B' f
IAR编译器传统的INC目录中包含有两个STM32的头文件4 m  U3 r0 s& B
分别是$ U8 X  d6 [' z3 P9 \2 V
iostm32f10xxB.h
8 [( e6 C  W- `( Wiostm32f10xxE.h
8 F4 b# G3 n1 e- g3 K) v9 _经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
/ n& m. ^9 d6 P# _
! ]) w; @: Y7 F0 A# `也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。* F" q4 f& x* o6 R
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。4 Y, }. a; R3 ~8 C
. W3 T2 T2 k2 ^! O7 ]/ W0 k
仔细研究了启动代码部分
1 i5 i4 ^1 g3 e/ {6 G1 O" n0 I7 Qcortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)6 S6 q$ X" b. r: o4 |3 j& q
! H9 D% z5 t$ A' _
为了方便进行中断处理,将: W+ y1 M/ X' G+ _+ M
stm32f10x_vector.c
8 w& G) Y3 K( G' G6 astm32f10x_it.c $ r6 h* I: I6 ^* Z5 R
stm32f10x_it.h
, L9 n; I8 t. j3 N6 C三个文件进行脱离固件库的修改。然后Include进main文件。' w4 l+ r1 {+ E

; D: F" g( _: Y7 M+ h1 J好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。- N" S& r* h$ N1 d+ Q9 H! G+ h

- i) G" ?7 ~5 P2 Qmain.c头部' \- a3 ^4 q; {  e4 @% B
#include "iostm32f10xxB.h"6 o3 F2 c! N# n: P& c
#include "stm32f10x_it.c"
' F$ n% O* V% x) c6 M/ I#include "stm32f10x_vector.c"( a& W1 e. z1 S
以下附件为开源代码。+ X0 b! ~$ @# ]1 j
& r6 ]/ m5 X! H0 n, X6 i) i

8 ?1 }7 t2 [; o, J1 | 
$ `& V# q) U# F( G5 t( i2 l! p) f' v6 o  M
原文出自哪里?
sduwzb 回答时间:2011-5-11 00:17:11

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

kankan!thanks!
zz_z_z 回答时间:2011-5-12 21:46:13

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

sdfsdfsfsf

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版