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

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

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

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

转帖请注明出处!违则罚款0元~~
nuligongzhou 回答时间:2010-6-9 07:00:56

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

用传统方法开发STM32,放弃固件库的使用!
ltpgt 回答时间:2010-6-9 08:22:01

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

很不错,正在学习stm32,谢谢!
loves123 回答时间:2010-6-9 23:05:06

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

谢谢楼主
wenshiguang 回答时间:2010-6-10 19:16:39

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

额~ 偶是初学者,看看
steven_sd 回答时间:2010-6-10 23:08:03

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

我也是这样做的.........
zhongxueliang 回答时间:2010-6-12 09:48:04

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:0 N1 c0 m. X9 J2 {% o# S( W
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。9 c7 R# q8 ]3 k
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
% Y3 Q4 x4 i6 O由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
, L4 O% _9 A% ]) `3 a很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。  g9 b" u% }  A0 F1 z  U
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
7 Z2 O2 O1 i0 p在此留个贴,慢慢记录无固件库的尝试过程。
3 \# j, Z  R( x
; }9 D. Y4 N# d" LIAR编译器传统的INC目录中包含有两个STM32的头文件
4 U& o+ g. ~  g( B' \' ~/ s分别是
) o# L2 \7 V  I% c6 fiostm32f10xxB.h+ k1 r: P$ ^: ^7 V, |" l- _7 S
iostm32f10xxE.h
6 A9 j7 P/ ~! {. S  \5 L$ N6 X* ^经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。! D4 H& D1 c) [
% s: a+ }( e4 h$ d# n& R/ Y
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。, E& o5 p' y: e- s  P8 l0 h
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。: R9 o: m1 e5 A2 }3 N9 G  Q& z$ p  g

5 U2 w4 p2 [. |/ l( Q仔细研究了启动代码部分
5 ^. h7 q' G: Q4 z  scortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
! r& [* o4 L# o4 J' W( x) C* p- u9 X. a) C5 e8 M/ t, Y  J7 i
为了方便进行中断处理,将9 D# K+ z$ m3 C5 ?6 _; }
stm32f10x_vector.c
! W6 o: r9 l' o& [. w2 g' z/ lstm32f10x_it.c ( P9 K1 z$ J! @' X; [+ H
stm32f10x_it.h' F6 Y- N, b3 c3 O
三个文件进行脱离固件库的修改。然后Include进main文件。
/ J# V  ~, f9 m  j* W$ v" n; w$ K* ^; f7 w/ V9 @: N
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
- |0 g% B& a0 }9 H& P# n3 W+ x5 S) O
main.c头部) @) j  {( `' N. X% p, Y3 \
#include "iostm32f10xxB.h"/ G' {6 K+ V6 |! k
#include "stm32f10x_it.c"
: ]1 k; w# y- g$ ~#include "stm32f10x_vector.c"
! W1 t% `4 `: k1 `! p以下附件为开源代码。) l) S8 f( T1 d- h5 l

9 I% ^2 F. z0 H2 W9 T! D, g. p) P& T8 u: C
 
- d7 U/ P& Y1 X: _; H) d. j0 ^8 `5 O
这种 方法好啊,就是不会用,学习学习
qw1234-195167 回答时间:2010-6-23 23:31:05

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

哈哈,我参考一下。
csercser 回答时间:2010-6-24 23:41:45

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

回复:【心得】用传统方法开发STM32,放弃固件库的使用! & Q1 a' z2 m  Q" h: [3 d
  
, ]& d; L2 d  v  j9 t学习学习
fanhoufa 回答时间:2010-6-28 19:44:00

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

看看有没有作用,看看有没有帮助
fanhoufa 回答时间:2010-6-28 19:45:02

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

回复第 2 楼 ST老少女于2008-12-02 06:41:45发表:
原帖由ST老少女于2008-12-02 14:40发表:! x3 W" H7 h2 P9 Z( X# g$ P0 T
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。5 G' J% M; _4 O  B
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。/ E$ ~- V* U0 J+ n) R
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
* i0 A# f9 q- q/ Z5 y1 J& i很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。( \3 A+ ~. I  ^/ g7 w5 s
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。7 A" Q5 ]( w2 i# X0 c( e
在此留个贴,慢慢记录无固件库的尝试过程。2 b& F5 }4 a0 I5 r( V. ^
8 N( t) x" ?1 F8 j5 r
IAR编译器传统的INC目录中包含有两个STM32的头文件8 c/ a% ~0 \* [3 X
分别是
; c- {: O+ Q3 e1 e8 N8 [iostm32f10xxB.h1 N) Y6 O% i+ j/ v% T
iostm32f10xxE.h
' B/ B# p2 r+ t! \; w经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
5 q, m; A( a) k6 `, I1 V% F8 F" ?1 z4 l6 G- ]! W; k0 v% F
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
, {4 a. P, H% X8 d4 Q9 J而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
# @1 b& U# Q* _8 Z3 P; R! _4 n6 m8 J  }
仔细研究了启动代码部分2 m# p' m" u# r! n; U6 |$ ^
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)7 H6 z; M" B! P$ @

% k  p2 L' J& \1 g为了方便进行中断处理,将& F9 \! J, ?9 w' ]: J, y
stm32f10x_vector.c! G5 d# T% n, ^5 Y. w6 v  d
stm32f10x_it.c
  c+ g, r5 _9 R0 i% U" h/ D8 vstm32f10x_it.h1 D. ~7 K- k: H$ o; J! J2 z
三个文件进行脱离固件库的修改。然后Include进main文件。
% a+ z+ J( Z3 y
$ v, Z# z4 k) O& s$ Z2 y# F( E好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。# d  X& u3 m4 J- T9 o7 o/ \& v
3 V7 T$ n, _" W  |" @' u8 u' F6 ~$ F
main.c头部: @" y+ v0 A7 n) {: M2 G* X
#include "iostm32f10xxB.h"( t3 b' `, Y7 c+ e
#include "stm32f10x_it.c"
2 w! s3 c* z0 h9 ]( a6 ~) B#include "stm32f10x_vector.c"
- e9 f6 u6 H  H  ^  W' s以下附件为开源代码。

" E" Y! a, }2 b; d) s9 D8 F% c# }6 Q( Q依然是代码 * Q7 z1 U8 {8 @/ D3 U  Y' [
) ]! ]( h% q7 Q! B" i& j
看看看看看看看看年看看看
masmin 回答时间:2010-6-29 09:31:19

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

同意,我也想试试
xyy211502 回答时间:2010-6-29 15:00:23

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

呵呵,不错!DDDDDDDDDDDDDD
guozq980 回答时间:2010-6-29 16:37:09

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

谢谢楼主,我的思路也是这样的
deepmetal 回答时间:2010-7-9 09:29:00

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

学习一下,

所属标签

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