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

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

[复制链接]
ST老少女 发布时间:2008-12-2 14:40
阅读主题, 点击返回1楼
收藏 评论1459 发布时间:2008-12-2 14:40
1459个回答
gdtsz 回答时间:2011-2-15 00:44:51

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

呵呵,应该是这样
mengdewei 回答时间:2011-3-1 15:11:57

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

学习一下
k10k10k10-19309 回答时间:2011-3-1 15:38:18

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

用库来上手还是不错的!
北极星-38637 回答时间:2011-3-1 21:11:39

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
4 {$ O& U9 {! z7 f3 A+ L' @# l0 M5 k 
4 D& G: |9 H2 }- }新手学习一下,
8 |4 L4 K7 @" ]4 N# r5 M7 g仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
+ C/ y. O& n$ [2 p- D. k& Y激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
/ \: }! r# }+ l) w* e' ^由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
* K6 T; j: a8 G, D( L1 Z* w很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。8 K& [- T/ L7 z7 B8 p9 P
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。; n- X% f0 _, |9 q) ~
在此留个贴,慢慢记录无固件库的尝试过程。
3 b" {! f" o. P; T2 b" M2 _' D8 h& ~8 l' ?- J# U
IAR编译器传统的INC目录中包含有两个STM32的头文件
' I, S1 w& V+ k- q4 x+ N分别是
' A( @/ n# r: u- X3 t. {# xiostm32f10xxB.h; ~5 _! m. d. U4 ~" k, C
iostm32f10xxE.h
% k% z) e: b8 B8 F9 u! {/ ?  j1 A: u经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
' i4 r' `+ u* c, u% P% m7 K0 m5 \% j( [  A
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
9 ]- P' p% Y. D/ w; A8 T6 ~而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
2 l) _& `' B3 P7 ~7 ]2 r( L7 i
8 o) Y6 p# v3 Q; A仔细研究了启动代码部分
- n3 ~) V; m7 O0 n' m: Ecortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
5 l1 c3 O# Z: c6 U) {7 A! @: r" t$ I7 q, Z( h: R
为了方便进行中断处理,将
7 h8 q: p, F5 y  I9 t* }stm32f10x_vector.c
: V" A* ^4 B, L- L6 n! ~stm32f10x_it.c
8 Y# W: T+ y% J/ y1 }4 M  A& ?, |stm32f10x_it.h
! B- C5 Q/ m$ I& }1 E三个文件进行脱离固件库的修改。然后Include进main文件。
8 r2 \, p# _8 S" r: m' q4 Y( s/ j; f. l- ?3 h
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
3 v1 `! J8 J% O& |+ B  @, `* D$ B/ b5 o; X) X9 H* J# k
main.c头部
) B" |4 D9 K1 H3 Z8 E#include "iostm32f10xxB.h"0 t' p  l7 V: E1 b6 `! ]8 E
#include "stm32f10x_it.c") Y1 U* w( G+ X; o$ s+ `
#include "stm32f10x_vector.c"9 b+ l9 {- p6 G; f/ S
以下附件为开源代码。- O% i. P! g7 D8 K- |' |

' S0 c# X/ D% ]5 j8 @" u% R
3 E- h4 `; K6 c7 s, n8 T 
北极星-38637 回答时间:2011-3-1 21:13:46

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:0 f" d* S4 P6 T2 ~
 2 y8 m! g& E9 O% X  z! I
新手学习一下,
( \1 s% V. O; t, v, l仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
! ]& M3 I4 K! a3 P) n$ _$ ?6 n激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
9 r; ~+ S: r+ ]" i" j7 \1 P由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
5 J7 [# _& m# R. Y很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
! g' c( {  s1 V# M: R我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。3 I9 e# X4 I, }5 @+ E
在此留个贴,慢慢记录无固件库的尝试过程。
% l$ Y! V/ n3 a2 W1 r" Y0 M6 h8 z5 L0 E* P4 e) Q1 d- @
IAR编译器传统的INC目录中包含有两个STM32的头文件
. Q) i5 b; o+ e+ T( N分别是
( t/ q7 \/ ~: L1 G% K0 Ciostm32f10xxB.h9 H/ D2 z: R0 v  m
iostm32f10xxE.h2 O0 {% p) w' T
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
$ x' c$ E- N) S/ V9 r* r2 Y1 U
7 w. \7 u/ M; y3 Q2 D; V' _: s也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。0 e- L* t$ l7 x: e1 h
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
. W' _! w7 }! i- Z- z/ e1 ]7 K3 o  C* w2 H4 Z
仔细研究了启动代码部分) ^# g$ }3 h1 w
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)5 x  t8 X. g9 m/ `

. P1 M% H# W% ~/ M为了方便进行中断处理,将) u$ w2 `% D1 O/ j: R
stm32f10x_vector.c
! z; W2 `. y' N! Cstm32f10x_it.c   |0 f' Q% z7 z' T0 w5 M
stm32f10x_it.h
' N1 k2 Z, l+ l. @2 ^" k% _三个文件进行脱离固件库的修改。然后Include进main文件。! d$ y" ]% _9 J  P$ j* N+ z* Y

" D; m+ w( w! s0 R& w好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
* Z, }' y: i" g" q6 \) {  }- }+ W" d  R
main.c头部
+ o' ?, G* i$ a6 y#include "iostm32f10xxB.h"9 |6 q. Y7 A& ]  H) T  ^) t+ g
#include "stm32f10x_it.c"
7 q' @7 ^) ^8 I$ j#include "stm32f10x_vector.c"
, b- ~3 P+ A- k8 X以下附件为开源代码。
4 z2 H0 Z1 @2 Y0 p8 P, ]) A; B% f/ t! w# X( w# E  }, `' P8 I- _

: x, g6 H3 Z: S( @, P; W2 Y 
qishi0211 回答时间:2011-3-7 14:34:07

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:0 B, m+ u! C9 y1 x. `$ p
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。( V( \* ~% P& n% e# ~: Q% W- e
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。7 F% U: Z% g+ @  Y
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。' f$ ?# a7 u  X) I% u
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
  E% [9 F. f4 i2 J& U( c: B我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。# w: l2 ]% {5 [& r$ p2 b
在此留个贴,慢慢记录无固件库的尝试过程。
8 k. b% e7 y& y8 {+ ~& m3 B  e! }: m- l% V* }- E. k/ Q) ^2 E
IAR编译器传统的INC目录中包含有两个STM32的头文件
% ^6 U$ i' }* f分别是
7 Y- i+ L% c- O! f' ]& K1 ]iostm32f10xxB.h6 Y; I1 T% S) t7 [8 G
iostm32f10xxE.h
! R) Z* ]2 m7 ~( r经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
/ B% O+ ^8 M" D( ~/ M' [$ ~+ u1 a8 Z) @4 B1 g
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。5 |7 Y! \$ t8 |
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
" l8 V! }: g5 T8 W5 ^
; X$ m/ D% F7 H* r' Q仔细研究了启动代码部分! G' R6 T6 X) Z0 F$ H) j! g6 z
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
. D% d1 |4 `3 F: E6 B7 J5 V
, v# J# \' m+ ~为了方便进行中断处理,将+ X3 n" N6 g2 {+ q: R
stm32f10x_vector.c
3 U; U. K2 m# Dstm32f10x_it.c
& [: [, r5 P$ T& K! rstm32f10x_it.h/ |6 E4 X- f3 Q. y" h% Z
三个文件进行脱离固件库的修改。然后Include进main文件。1 P" O( r( k* E/ r: h3 g# v- ]
2 r; Q  k. W$ U3 O
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。0 `/ {9 L! g3 s1 |$ M4 ^. F& h
6 G' E1 a" P; ^! a3 _/ ~) {* U
main.c头部
) g" r( ]" m$ b#include "iostm32f10xxB.h"
% W2 D( p3 o. x6 X#include "stm32f10x_it.c"2 p) Z0 h, W0 u0 A+ K; Z. d
#include "stm32f10x_vector.c"
. l6 y3 O- M6 P3 Y9 Y  w5 g以下附件为开源代码。/ U) p* M7 `. m8 w. o
+ b$ Z- Q/ K9 x9 H' `$ n" E- V/ `
# H, T- ]' S! N* j1 N5 o( {  I
 
tairuibao 回答时间:2011-3-8 16:08:00

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

菜鸟学习中
sds1999 回答时间:2011-3-8 21:00:46

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

我还玩不到那种程度。还是用固件库的稳当。
tian880828 回答时间:2011-3-9 08:55:56

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

aa
whb565938 回答时间:2011-3-9 12:37:52

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

经过我个人学习STM32觉得,用库还是比较好的。
nihaozdp-87266 回答时间:2011-3-9 15:39:01

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

这个得研究研究!
langerlp1 回答时间:2011-3-10 12:34:04

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

老帖不沉,值得看下
Sunshine40 回答时间:2011-3-10 17:55:04

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

用库方便,可针对性的程序永远是效率最高的,我的看法是要看代码运行频率
hopestarzz 回答时间:2011-3-11 12:34:01

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

我也不想用库所以来学学
wanghz12 回答时间:2011-3-11 14:58:35

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

好,效率第一,支持!

所属标签

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