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

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

[复制链接]
ST老少女 发布时间:2008-12-2 14:40
阅读主题, 点击返回1楼
赞 收藏 评论1459 发布时间:2008-12-2 14:40
1459个回答
zmh169 回答时间:2012-12-19 08:51:29

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

各有优劣吧,不然ST还花大力气开发这个库
century99 回答时间:2012-12-21 12:35:30

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

不用固件库开发STM32,应该要看看的。
wang-406188 回答时间:2012-12-22 10:58:50

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

很好
liu1bin 回答时间:2012-12-22 14:00:25

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

好东西,多谢。。。。
liu1bin 回答时间:2012-12-22 14:00:36

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

好东西,多谢。。。。
a1394c 回答时间:2012-12-22 17:12:24

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

都是一种方法,看面向什么对象
a1394c 回答时间:2012-12-22 17:13:16

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

都是一种方法,看面向什么对象
可心动了 回答时间:2012-12-22 18:56:12

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

 is this ok
widibi 回答时间:2012-12-24 22:39:59

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

回复第 2 楼 于2008-12-02 14:41:45发表:
原帖由ST老少女于2008-12-02 14:40发表:
5 W1 G# j! y) c6 r9 T. E* d仔细研究了固件库,发现使用的代价,性能损失还是相当的大。/ u. L. E8 s& f7 g  g2 |
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。  i9 H8 W  H  E5 a- m! s. X* ]$ |
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。/ W3 z$ P: |0 V5 V! h, s
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
2 B. y# }  R% N$ }5 {我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
. G. `% o4 t6 Y' z( |/ m* ]+ E在此留个贴,慢慢记录无固件库的尝试过程。. q3 |0 g: Q8 w0 M

2 w# I7 Q8 @$ yIAR编译器传统的INC目录中包含有两个STM32的头文件; j: a7 [) u* [! g# I
分别是
9 D* T- D8 K- m* m  kiostm32f10xxB.h7 }& v% h/ w% u3 N) H7 l
iostm32f10xxE.h! M; ~$ j: ^8 [" s- Y( m
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
& f* I( [' l/ m: w$ N; a. `- W  k+ D. n
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
: l; K! o+ o, F3 w, i9 g5 c而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。+ H1 T! t1 M* n0 W) n

% f6 x3 n0 J, l/ m! @) w0 R  E4 l仔细研究了启动代码部分
1 b' ^% Y" d4 t6 I7 T. Kcortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
/ m3 c9 H! ]1 m, m$ D1 @
2 Q& M& u& O! E+ B& f$ C( U为了方便进行中断处理,将/ c# m" l, T5 C: w8 ~
stm32f10x_vector.c
2 M+ o+ R* U6 R- s4 b% B* y6 Zstm32f10x_it.c
, ^) H" d; Z6 t: m7 E; z4 L: sstm32f10x_it.h% K7 l! V* L% r7 j$ Y% \' q
三个文件进行脱离固件库的修改。然后Include进main文件。7 e$ ^+ c1 `, `* @- R) Q
# L7 L; }* X5 M- c$ t
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。0 Q8 Y4 I; |6 c5 v" e
2 |% }' c) p5 u' G9 L0 i
main.c头部, `1 t0 k8 s4 b1 J$ v9 }# K
#include "iostm32f10xxB.h"
: j* Y2 W0 h. T. q#include "stm32f10x_it.c"* ]! H; d# x5 d( W
#include "stm32f10x_vector.c"
+ Z2 U! U+ K+ q, k4 i5 y1 r  y5 N0 X以下附件为开源代码。

5 i5 X' x! Q9 ?4 H. o+ S依然是代码 
zhangyy706203 回答时间:2012-12-25 13:34:03

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

回复第 2 楼 于2008-12-02 14:41:45发表:
原帖由ST老少女于2008-12-02 14:40发表:
4 ?* x% G2 m: Q" ]仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
0 l6 K$ s! v/ ]8 Z9 ]+ B激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
# c+ \) ~* W. I! l由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
  Q! r$ z! ]# N4 T: R* w* |很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。3 {. W5 `1 B1 R% |
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
! ]& ]5 v: ]9 N: n! W" I2 e$ }& t1 J7 D在此留个贴,慢慢记录无固件库的尝试过程。0 P% D6 j0 J* N

; l9 n, e4 z4 s4 [" ?IAR编译器传统的INC目录中包含有两个STM32的头文件. E  `0 v" C1 P" V. S$ g
分别是+ J& F7 |' n, i- e
iostm32f10xxB.h
" [) `2 ~8 l/ K$ ^( `5 aiostm32f10xxE.h" B2 }8 J  @- U! I3 \& k
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。5 E+ S4 p' o/ ~& W! h) h% K

# x$ U" y9 U3 w) W  u) j- X; c也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
/ u! T0 C0 E( \% \1 ]  y9 A4 g而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。/ C% X& T$ `) K+ ?
7 [7 \. }' T* m2 f( M' G
仔细研究了启动代码部分
9 w* ~% }) ?: I4 n) ~9 r9 f8 s) l1 `$ Jcortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
; o$ u, v0 F3 d" V9 ^" B, C$ e3 P; }% G' E& N: L4 c
为了方便进行中断处理,将
9 V* ]1 B2 c4 @- p: {stm32f10x_vector.c
9 l& V( @7 H' r( t9 Q0 [1 I: m" e9 ?stm32f10x_it.c 9 y) e- m: ?' t, c$ l
stm32f10x_it.h/ @- F# s! M: m9 {
三个文件进行脱离固件库的修改。然后Include进main文件。
" A* {  _/ F( ~4 v3 G( L, A0 b! _' O0 B2 N
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。! i6 _) {3 O0 K, A2 ^

0 {5 [! u) Z4 ?3 C) f3 S+ d4 s( imain.c头部: f5 {1 g0 G( T+ z8 n
#include "iostm32f10xxB.h") o+ e' s  X6 r( z% q. m* B/ Q
#include "stm32f10x_it.c"' c* \! V- v2 U) K
#include "stm32f10x_vector.c"- [2 Q9 d- {) d
以下附件为开源代码。
0 j' j2 T  v  N8 m
依然是代码 
lq-409025 回答时间:2012-12-27 08:17:44

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

谢谢啦0 k& ]- i. g' h; C9 I
非常有用
loveice135 回答时间:2012-12-29 00:21:28

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

库的开发,速度和维护更方便.
kuang_gg 回答时间:2013-1-2 12:05:10

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

路过,学习啦,谢楼主啦!!!
帅的像头牛 回答时间:2013-1-2 13:09:13

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

新手上路,学习一下
tang9572 回答时间:2013-1-3 00:25:34

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

用MDK的纯寄存器声明文件哪里有?

所属标签

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