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

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

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

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

我也是这么认为,不过还是要逐步向这个方向走
qwe7277 回答时间:2011-3-16 14:43:08

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

来晚咯
吉祥如瑞 回答时间:2011-3-16 21:03:51

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

我觉的用库确实很难理解,赞同!
qiaoam-270069 回答时间:2011-3-21 09:03:27

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:3 d% b4 d* E, d% M6 ?
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。. {+ {' m+ e. C
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。. H  q2 p2 o# w  Y
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。  u6 l. j- Y; C2 u
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。& k4 ~+ t7 }0 ]  w1 J! y  {9 \. J5 Z+ m: ^
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
1 B$ h/ \$ Y. S( y在此留个贴,慢慢记录无固件库的尝试过程。
  r7 b, O" ~0 o2 o
" d8 W# ?& r1 {$ _, e, sIAR编译器传统的INC目录中包含有两个STM32的头文件
: J1 V% [: ~+ T7 T( R3 F( M1 J; _! \分别是1 N: E1 m% H: c; l
iostm32f10xxB.h' T8 `8 b/ }( m
iostm32f10xxE.h
) i* H2 ~8 g! z& q2 O经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。6 i( R# N% g- Z& I

' t9 b' p+ o5 J也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
2 i. }9 c( a' }& }7 K3 o而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
% l; \0 r& j5 H$ [; J
7 h+ _0 i$ g$ r' n9 A: @  J! O仔细研究了启动代码部分3 R/ ^4 d2 L  Q- H) S# X
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)5 v# S" q# n* q$ R/ H9 {. Z8 z

+ h/ h% O) B( \; h为了方便进行中断处理,将8 M8 A3 w$ }, p5 M: w" L2 c1 A3 W# w
stm32f10x_vector.c
9 m6 e; }) w* i7 Ostm32f10x_it.c
4 \' D  ^  h3 W7 x0 U3 u2 U8 ]stm32f10x_it.h+ w. q/ N2 {. I
三个文件进行脱离固件库的修改。然后Include进main文件。; y  k  F# G0 k$ J

$ g2 V7 q4 v# d2 U- z1 h3 ?好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。5 y- [3 t% T0 r$ z( A/ o
+ r; S: s$ M% W
main.c头部# a  f7 {" d5 P
#include "iostm32f10xxB.h"* I& f( c6 \9 t5 }4 D. v; m
#include "stm32f10x_it.c"& b, C3 F! j+ C; ?3 o* e. Z
#include "stm32f10x_vector.c"
" j$ l. k# l$ q4 P' R; n! Z" |+ K以下附件为开源代码。
/ j! |1 p7 a9 n- t9 b
/ S3 {7 _: B* J2 b5 l0 k: o% i! p9 ]0 N
 
sam168-130272 回答时间:2011-3-21 15:57:48

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

回复看看,正在用库和不用库之间权衡
zhouke58 回答时间:2011-3-25 12:43:34

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

我现在也是用库的,看看不用库有什么区别
song964 回答时间:2011-3-28 13:25:05

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

我支持你的想法,我也正在尝试少用固件,请发给我参考程序,谢
nxgallen-198929 回答时间:2011-3-28 14:37:29

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

不错,正找这方面的资料,不过太少了
xuxhua 回答时间:2011-3-28 15:09:14

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

回复第 2 楼 ST老少女于2008-12-02 06:41:45发表:
原帖由ST老少女于2008-12-02 14:40发表:
" e3 B+ n8 B' M' ?+ O# k+ _仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
7 m: c. q; p  t2 d) @8 a- Y! \激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
3 j3 f6 y) G! }3 O! T由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。2 T: w7 l9 K/ B; v( l0 N; i; |
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
1 j) k' p5 ^' b* c, q我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
2 Z  D0 c  c# F7 X, ^3 S' j在此留个贴,慢慢记录无固件库的尝试过程。
" k6 K" Y- U) k& c; j
* N$ o* O! K  ]+ [0 EIAR编译器传统的INC目录中包含有两个STM32的头文件$ j: l+ J! d( h% z5 y. ]
分别是
# C- r( I. L, F$ \4 E4 Z$ I  G2 a+ u' niostm32f10xxB.h
7 b4 I% p. Q+ s1 I. i3 Jiostm32f10xxE.h8 `' L$ ^7 O8 f9 S$ j9 p
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。9 \2 F5 O! f; X( p
1 [! e2 T, z# ~  B% Q
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。$ x& Z1 y5 G" |, T+ T- M" ?) r1 h
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
  e% T: V# K. E, Y3 O& P+ v/ j& ]- |; T* O0 Q( Z
仔细研究了启动代码部分
# k4 P0 y$ ~1 g- ?  [cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
8 B8 W" O* v! z' q7 C$ ^; |6 \" l( @2 }+ X  Y2 X* r. w& r
为了方便进行中断处理,将& c; B/ P! D6 }! {. E- \& o
stm32f10x_vector.c
# R; l# Q& B4 J: `7 ?, r3 y4 `stm32f10x_it.c 0 ~. w  C0 b* J9 E
stm32f10x_it.h1 a0 i7 a. c8 L: S. U/ q% E2 o
三个文件进行脱离固件库的修改。然后Include进main文件。
; U( y, \0 L% _( O  \+ E
# e0 x" Y, a6 v( {" m; }好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。' n; P8 f; v2 J3 H

" }5 E+ E1 O" M# v3 Ymain.c头部
: F! X$ a9 Y9 J2 x, H* c: _#include "iostm32f10xxB.h"
, I# @7 n" o7 Y+ _0 T4 u# {% X" b#include "stm32f10x_it.c"
# l* l# L! s/ b- q: H! A#include "stm32f10x_vector.c"+ Q& d0 e. {" }" A8 D- y; w
以下附件为开源代码。

( K1 ~: J# j7 O依然是代码 
& A+ S) e1 y+ L" z# ?- c4 s2 r* o2 S5 t' k) I8 D
研究学习
hopehappy-18352 回答时间:2011-3-28 16:10:50

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
3 p- v2 L1 A' M+ S/ n1 |9 X5 f仔细研究了固件库,发现使用的代价,性能损失还是相当的大。' d8 T/ ]! ?* D, O" }' c6 ?! N
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。. |% C5 z0 ~7 T! G- g# I
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。7 ?) g+ f9 t# A, h/ ~7 q5 ^1 m8 m; ?
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
, R; C7 A5 v7 @9 q) t我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
- s/ {: M# }3 f, |在此留个贴,慢慢记录无固件库的尝试过程。
5 v: n( V3 f6 T9 M( M3 q- {
" {$ S& m, J  lIAR编译器传统的INC目录中包含有两个STM32的头文件
1 E* _! Q" r( h% K分别是
7 f( N9 V2 [* B8 \iostm32f10xxB.h
1 z% T9 h& c7 @; W  T. ~- Biostm32f10xxE.h# F1 q+ L. E( Y+ v! k
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
$ Z+ D6 h! i! h* d0 Q2 G. p- v& s8 l: U5 {0 c( y( T& N
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
0 ]8 V- J& f7 G' p. Y而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
: `0 V# X- _# t1 `% F! N9 v
! E; p+ T3 W5 Z& \仔细研究了启动代码部分
  A  K7 @# p: F( i9 Z/ Ncortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)8 p- H0 C+ x+ G8 j: `/ g: E) l' O
8 _9 o& {& N  Y0 z  j
为了方便进行中断处理,将* H: y9 }6 G0 O$ S! z
stm32f10x_vector.c
( r% H- k* y( Z. I, q4 R! mstm32f10x_it.c 6 u9 H: L3 U4 n4 g( W
stm32f10x_it.h1 P: u1 S2 T" W0 y9 @$ ^
三个文件进行脱离固件库的修改。然后Include进main文件。
( e0 @0 H. e! c2 j# A
; m% f5 ]3 |' r* d* v好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
: ]8 J0 M7 M$ {0 \8 r3 ^0 K* A6 \* l0 O2 C
main.c头部
) z2 l6 I# t. n' \- H( S' N, M+ t#include "iostm32f10xxB.h"
# B  y0 Z) X1 |9 a' H) Z& ]#include "stm32f10x_it.c"  t% U: }' k. S$ O  A+ S
#include "stm32f10x_vector.c"8 u6 |1 N, f  }# Y% E
以下附件为开源代码。
& E/ O2 n6 I) {! Z
: H" g) R4 ?, S. _" A2 @" f$ h6 G) x2 {- `4 I. [0 M
 + I& p  H5 q( D9 }, Z
好,支持!!!
baita10 回答时间:2011-3-28 17:54:55

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

dddddddddddddddd
oil_kettle 回答时间:2011-3-29 09:29:52

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

???
wqchifi 回答时间:2011-3-29 09:47:58

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

我也不想用库,学习一下
cddyy-149615 回答时间:2011-3-29 19:28:59

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

顶一下楼主,看看后面的东西
zttyler-56924 回答时间:2011-3-30 01:19:09

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

谢谢楼主,我的思路也是这样的

所属标签

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