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

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

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

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

用传统方法开发STM32,放弃固件库的使用!
sdnuyue-184632 回答时间:2011-4-14 15:18:34

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

还要回复,事事真多
kosuap 回答时间:2011-4-14 18:14:50

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

学习学习.....
LJYARM 回答时间:2011-4-14 23:44:09

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

学习看看学习看看学习看看
williamkmcn 回答时间:2011-4-15 00:49:45

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

thanks man
toney2012 回答时间:2011-4-19 22:56:34

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

学习一下,很及时。。。谢谢
yiluxia 回答时间:2011-4-22 20:59:28

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

谢谢!这么好的资料
yiluxia 回答时间:2011-4-22 21:01:12

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

谢谢!这么好的资料
cby0001 回答时间:2011-4-23 01:11:55

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

下来看看!
ustbyf 回答时间:2011-4-24 00:13:03

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
* L9 C" h- r* T. [仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
; z2 V3 ~* `2 f$ _- v9 l( z+ t激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。) n8 k1 M; Y5 [; {  {1 X* Y
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。$ B! W8 A. a8 Y* R4 F
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。9 Z+ Z) `8 H0 P  o. y2 d! o
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。9 a% h9 Q! X% N( Y: C" p
在此留个贴,慢慢记录无固件库的尝试过程。! a) I9 R7 U; a3 x

7 X) z$ p7 H9 }2 fIAR编译器传统的INC目录中包含有两个STM32的头文件
! c+ l. g# z6 H6 p  r分别是( e% C* v. X8 K( q
iostm32f10xxB.h
6 ~5 m2 E& J5 b) I2 S8 J4 ?iostm32f10xxE.h
3 Z' g" g+ M  G" A4 X5 w; ]经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。4 z, ?, {) h8 k
1 N" \" o1 s$ ^' ~% a7 V/ {7 Z
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。* z1 b9 F# \2 w, Y) V
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。) k: U* w% E" S- C- g# D( b' g

8 A! W/ g7 ~  N  H$ O' B" ]仔细研究了启动代码部分
# B, n( `( [! L  Scortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含). R1 e, g; {* e
- y/ v7 O7 o- i
为了方便进行中断处理,将
$ G8 v  Z/ Q: o7 w* Ustm32f10x_vector.c6 t/ c4 k9 [; i) T4 M
stm32f10x_it.c
& r* o0 A4 }. R( b/ T( Zstm32f10x_it.h  V- I- D: O8 s) t) S- Z3 n
三个文件进行脱离固件库的修改。然后Include进main文件。
" `* N/ S* U$ a6 u- E6 b* h5 F7 b- d- y6 I( ]
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
+ I4 L  \9 U7 c" |, f$ B. Z( R$ [
main.c头部
# x: N" v/ ^& [% _" v# o0 V- Z# w#include "iostm32f10xxB.h"
" k8 M3 X& a! m) n6 Y$ G$ a- x: m#include "stm32f10x_it.c"1 i$ G' A( u4 {9 d* I* S7 g" Y
#include "stm32f10x_vector.c"
) y/ U9 Q5 U8 l' o) m/ ^( h以下附件为开源代码。
9 X9 N& g4 x# I. ^5 i
4 @2 s$ ?) C9 E  E
/ [3 L- |0 M3 O+ i1 E5 q) U 2 R3 S# a) k9 ^3 U! f3 y2 w

! Q6 j/ A, A/ @( T( Z8 A很好很强大
ljx3331721 回答时间:2011-4-24 21:49:17

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

学习学习
zhouzhi-79414 回答时间:2011-4-25 00:55:07

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:# d6 ^- Y4 W& e  L1 m# ^0 r
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
1 m! y! g- G- C( D激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
: e) X5 G3 Z, u/ z由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。* G. \0 y$ ~# ^; q/ X; k
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。: Y! ^. K7 |( ^3 i# \, p
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
* ^/ D7 a$ t9 g) b+ D: s6 l+ q3 Q在此留个贴,慢慢记录无固件库的尝试过程。" }2 ^9 ~, S: e5 R% Q6 e$ h# y

& W7 e& D- e" I! N2 D/ t* R% kIAR编译器传统的INC目录中包含有两个STM32的头文件, h# U7 |* f% c% }6 O
分别是
) [" j( F8 b  q5 B6 w8 r3 N- |1 Niostm32f10xxB.h1 B5 \0 l. i4 O. ]
iostm32f10xxE.h/ @3 h" v* G( r# g# }5 W3 P6 O6 S
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
& D6 E' `+ B5 w. y2 F$ S+ \3 L- p8 c- u  h
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。' \. D# F& C) a% X) H1 Y# t- Y: d
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。0 |; T! [$ v2 `  p4 k* D1 a
; Y- \6 S, f1 L; O$ c8 e2 p2 n
仔细研究了启动代码部分  U9 ^2 c3 T3 {
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
3 d: i; @" E1 r/ H, h( ?& z: m/ S. }+ c) b6 f; K8 l( T1 C
为了方便进行中断处理,将3 w6 n' @3 Z7 w  K' U1 R, \8 C
stm32f10x_vector.c/ V! L8 Z0 }9 y8 u0 M9 z$ }% Q4 q
stm32f10x_it.c
+ S* @& w0 k% U1 G. B; b8 U6 W3 s% ]stm32f10x_it.h
$ T* L) M1 Y: U! @* b' p4 `三个文件进行脱离固件库的修改。然后Include进main文件。" ]8 h4 L4 \1 y& C8 ]' {7 Q

5 Z( E, `1 H% n好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
& x$ k& B# T9 L& e) B7 E
4 }7 ]; Z% y+ x1 n2 }main.c头部5 |) y. C, B- p4 Q- g
#include "iostm32f10xxB.h"# ?- y) X' g1 B# y
#include "stm32f10x_it.c"
6 |$ T+ l/ W4 q( H0 Y#include "stm32f10x_vector.c"
- T( ^% V% d$ U: O以下附件为开源代码。# S! e5 Q$ S% X
# A3 i* D% X: Q0 {

, V% e" [. g6 ~8 Y9 G' a 
pirse 回答时间:2011-4-25 15:52:29

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

学习先,学习了!
heiye05 回答时间:2011-4-30 10:53:31

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

想试一下7 [. K3 b4 r* v) J
用固件库有点被牵着走的感觉
leavylee-146875 回答时间:2011-5-1 17:48:43

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

,bucuo

所属标签

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