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

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

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

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

收下备用,以后再调整
fanjie-205326 回答时间:2010-11-15 10:57:47

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

回复:【心得】用传统方法开发STM32,放弃固件库的使用!
6 \  p- m7 N  A) U  X3 A  / [5 i& I9 y% B3 O  g( t
学习学习
LeekingWeng 回答时间:2010-11-16 10:20:47

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

看看传统方法开发STM32
wdooy 回答时间:2010-11-17 17:38:08

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

我也感觉到了 感觉他的很乱很不合理,但由于时间的原因为了学的快我现在还用的是他们的,我也想改变下,就是没有时间,谢谢楼主花去时间整理的东西,
chufh 回答时间:2010-11-18 19:42:55

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

你的方法很独特,能够挖掘处理器的能力。就是不知道开发效率如何。
. C0 n7 \4 M0 d7 s6 H& ]1 ?2 M. I3 T, Z% q. A6 n

6 ?( I: N1 q% G0 Z  j$ ~ 
yc21-218549 回答时间:2010-11-18 21:38:26

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

看看,谢谢楼主
wusixuan 回答时间:2010-11-19 10:17:10

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

谢谢楼主,我的思路也是这样的
lbfree-247118 回答时间:2010-11-19 10:26:33

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

学习学习学习学习
chinaslr-27105 回答时间:2010-11-20 21:01:21

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

学习学习 学习学习学习 学习
xingying88 回答时间:2010-11-20 21:41:45

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
9 t5 }4 }- O; Z# l6 G1 E仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
3 W9 u& g+ Q6 h& Y- q$ A0 L+ }激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
, F* A& T* N1 ?6 r4 O. F0 i) c由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
, I  r1 d% @3 h+ \很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。, ]1 t" Z) A3 `% b9 `2 C  w
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
% ?6 L7 \; _5 K' p( k在此留个贴,慢慢记录无固件库的尝试过程。2 Y7 D1 s4 P" o( u8 m9 f

% }  F* ~3 Y2 b* p( H' e) aIAR编译器传统的INC目录中包含有两个STM32的头文件+ ^( _1 T4 K, _2 }  Y1 M
分别是( R2 _6 h5 @$ _( `
iostm32f10xxB.h8 y, ~+ h0 e/ E% l, b: ?
iostm32f10xxE.h' s1 K2 W6 x' j$ i  K' E$ x
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。; P) K  m$ R. m2 b9 U7 O
2 t' F: v3 Y- x
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。% [6 r1 g2 F! w+ ~# k
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。$ {/ B+ _; ]1 b' a* F

: o0 N0 }: h7 v' U# G% N: {仔细研究了启动代码部分$ E  h% ~, o: M$ M( R
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
% m' t# f) W5 G  {5 R* c/ m" f5 m9 ~8 o$ W# L5 R
为了方便进行中断处理,将% B% g: J8 o5 V2 S" b& b
stm32f10x_vector.c
* f8 s% ~8 s( ostm32f10x_it.c " \9 ?  I" `/ d* X) k1 p1 ~  t2 Y
stm32f10x_it.h
) ~) N: s5 E8 K5 Y% U& O' A三个文件进行脱离固件库的修改。然后Include进main文件。
5 a% t0 v6 R! p' a& f
3 }3 j6 [5 c, l! j5 E+ B+ S5 e好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
  ]3 R1 A5 X; W1 A9 y: R( L% r- M7 Y! _! u, i
main.c头部/ z) Y# d0 [/ V( D
#include "iostm32f10xxB.h"
9 N$ P1 r) R% I" w  @. {4 V# @#include "stm32f10x_it.c"8 R- |/ S# H# ~5 f1 P. ~
#include "stm32f10x_vector.c"
4 o8 K* A; h& z, S) E# u  Y  `以下附件为开源代码。2 P4 _6 w: Q& @0 {
( o! m* z0 t' U
- b# V3 d) y( @$ p5 {/ z. ]1 k4 d
 
zx2591 回答时间:2010-11-21 17:02:34

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

学一下
wawayaya1 回答时间:2010-11-21 18:48:35

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

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
dl1688 回答时间:2010-11-21 21:06:20

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

学习一下。。。。
jimabcd1126 回答时间:2010-11-21 21:21:44

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

咋看不到附件呢
cz1129 回答时间:2010-11-22 15:01:17

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
" X' R! j. v9 N$ F4 n仔细研究了固件库,发现使用的代价,性能损失还是相当的大。+ e. Z7 o& {: h- F
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。/ B0 p. T, N, r8 m5 b
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。! s* W2 [5 ], O) W0 S
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
. y; A6 {7 B0 ], ]3 P我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
" D0 A# S7 f& b' P; F在此留个贴,慢慢记录无固件库的尝试过程。
% v9 B3 X& Q' b# C$ L+ d
/ H5 ?* X6 r& ?" C  [! _! WIAR编译器传统的INC目录中包含有两个STM32的头文件4 t  L' V- D: }( [$ f9 L
分别是
8 \* k  S4 S3 `" Piostm32f10xxB.h9 D% x; A& B% R
iostm32f10xxE.h
* k0 ?/ J  B5 K2 u经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。  L. e7 u/ g( f
9 _9 j1 z: [: j! r. W
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
5 B( c% q( |; z  K7 Q) W+ n而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
1 b" p$ R/ }) O6 H8 Y8 f
* ?5 f) N) `# z9 H) f2 ^4 D仔细研究了启动代码部分# H# r. E4 T) n( v1 L, y
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
- Z* y1 X( a# h
8 o+ W) _) o$ p/ f为了方便进行中断处理,将, ~) j! ~$ Q2 o) x3 t1 n/ I: h; U
stm32f10x_vector.c
2 R$ D+ T: F& h* e* Y$ R) sstm32f10x_it.c
' ^4 P1 F/ f  d$ ^# Astm32f10x_it.h
  O! K0 H2 A4 B三个文件进行脱离固件库的修改。然后Include进main文件。
# d5 k  ]* I2 O, i% H
( h" j7 s0 J! n) h5 a好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。8 E& m' I1 U  f4 B% X
! m" D, S+ ~$ k& z! j. g1 s
main.c头部
0 ?1 Q  b# m5 U  v- k) i#include "iostm32f10xxB.h"6 i9 m. N" d) e& J- T
#include "stm32f10x_it.c"
' `. h3 N; a5 _" S% S#include "stm32f10x_vector.c"  N3 z/ K' ]3 m- }4 I
以下附件为开源代码。% F* ~7 i, A% k
: O5 S$ Y: A* M

2 }8 v  P8 z( B( ? 
; e  o8 S. u8 E2 H( O  ^& f3 I& \/ Y3 T4 u, x2 g6 F6 C
STM 固件库虽然好用,但效率确实有待提高。

所属标签

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