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

【心得】用传统方法开发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发表:
6 k7 w2 I9 l4 J8 h7 [仔细研究了固件库,发现使用的代价,性能损失还是相当的大。6 w3 a6 H5 l" \0 H* w, k
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。+ C4 }, n2 K  b/ m( E4 ]( ^
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。% ^) c. n& T6 M6 Y
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。6 ~8 P( [0 u  a) r0 ?! ?( g
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
/ ^3 ^* D8 r$ }- e在此留个贴,慢慢记录无固件库的尝试过程。
( B1 f9 s" z0 R/ ]" H2 D. q; a+ w" U2 f0 h6 l$ H6 T( C7 K
IAR编译器传统的INC目录中包含有两个STM32的头文件
6 b1 `8 M" k" B# d; F" L分别是& h" i+ x: X0 L7 T
iostm32f10xxB.h
* w, L+ `' {% q& p0 `iostm32f10xxE.h" }% V0 u1 j4 B4 }
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
( v, P3 f2 l3 z8 y9 [
+ a: |) |1 O' P3 |1 l也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。4 Z  K. C2 b1 P1 C6 l5 ?  z8 d8 C
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。- D  M7 ?1 W  p) ?9 n/ Q- ?

. x% D0 |1 r/ ^% V- F仔细研究了启动代码部分1 i5 Q6 `+ V3 j, P' F
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)$ X2 \5 L& k: P9 Z
5 i. N2 i* v3 D9 }% h, D4 X
为了方便进行中断处理,将) C1 K8 G4 a4 g& r$ g  [
stm32f10x_vector.c
: I6 t; F. K3 v  J2 H- L1 Cstm32f10x_it.c
5 M4 \; [$ U8 w5 k0 }$ W/ e" L+ Dstm32f10x_it.h
6 ]) u3 C" K* g- o; l三个文件进行脱离固件库的修改。然后Include进main文件。
# y' _4 N+ q* \0 x7 u( `4 g8 h0 i; B% t4 t8 W
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。1 F* L, |# b+ }8 h/ u2 ]/ L
  c+ c, j+ Y. J, H5 ~9 J* u  J
main.c头部' O4 S$ j, [: ?( q8 Q3 g% z
#include "iostm32f10xxB.h"
& ~1 k6 |% m/ H#include "stm32f10x_it.c"
( F6 F0 J) E9 Y9 Z4 ]( f#include "stm32f10x_vector.c"" P. K2 l" h8 o4 I/ @& U
以下附件为开源代码。
2 J: ~! O9 ?$ D0 t" \+ C' _
4 F+ x8 d& t% E. }1 V- t7 j' [% Z% R& _
 
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发表:! K$ e* |" K7 z- X: Y4 S) c
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。0 c% X4 L3 A/ K# E/ w; N: p0 H* G
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。$ _, ]* t& h  U; h# [7 ]) Y. d
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
, s" P# T$ W0 t  ~' S+ ]很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。( B' D0 g+ z. M4 x9 _  ~+ V  i; y* G
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。/ J) I8 i1 K( f0 a) c8 o8 M
在此留个贴,慢慢记录无固件库的尝试过程。: a: s# R3 N: S

4 B8 L+ |$ Z9 N: v$ G& d6 ZIAR编译器传统的INC目录中包含有两个STM32的头文件
0 R  b9 y2 J+ F9 y! H2 h9 j分别是  |+ Z* D  s6 P6 H
iostm32f10xxB.h
5 ^9 P' X! c, B, Y  Y/ Wiostm32f10xxE.h1 [5 b0 c- A3 a
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
  T$ b. D5 r6 v) H4 |
; L* A% ?8 d, T) E$ ^9 g也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。! w, S! l6 ?: {) R$ H
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
: E& @8 A$ L* e3 R" \* W: a" t; o5 K1 K
仔细研究了启动代码部分- b, v+ M' C, A! @/ k8 r) k% R, `
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)4 T2 p% B& t" }7 N0 E

2 N, }+ A6 e3 `. s为了方便进行中断处理,将
8 L# w* H4 W% Q3 [8 p4 Tstm32f10x_vector.c
2 x8 m3 s- A, m7 x) n% mstm32f10x_it.c
* A: L% I2 ~* N$ U  b5 s& ?% ?- s4 Gstm32f10x_it.h
6 s+ Z: [& d$ P; N, k/ k三个文件进行脱离固件库的修改。然后Include进main文件。
7 H2 q6 U( O- \
% x: M0 Q' k+ Z% [8 i好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。4 Z) n9 C* R1 p

( @7 C4 X' c) B1 G: F: H+ Amain.c头部
- [0 G: n& |" B) q4 z#include "iostm32f10xxB.h"% y2 A3 ~3 |& _/ R% t0 _
#include "stm32f10x_it.c"! |4 Y9 f; v5 @3 q- V/ [. K0 V
#include "stm32f10x_vector.c", t! Y. m( e! g" Q3 ~4 ?
以下附件为开源代码。
* F# l; q4 S6 w+ O7 H+ H! d
依然是代码 : {6 ^* F$ Y& V
. G/ w& e$ b& j* s% U6 c
研究学习
hopehappy-18352 回答时间:2011-3-28 16:10:50

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:; @1 W% z' h- m
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。- G% l4 C& K% p; |9 U. @3 @2 A
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
* @" H( I, K2 G# u, j由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。9 ^; U& u* o* H
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。5 r! _% k8 G7 N; z
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。; z9 |. ^$ M: y$ _8 h- c  F
在此留个贴,慢慢记录无固件库的尝试过程。
8 I0 N. \/ z- I8 g- x- R" @# S* |, T" V0 z; [- P' A. H* f) B' l# u
IAR编译器传统的INC目录中包含有两个STM32的头文件
& d$ ?3 f% Q' X, ]( P分别是8 W9 x! \) J8 e6 @* K) b: T, g
iostm32f10xxB.h
$ K5 ]+ b. X" n2 }iostm32f10xxE.h
; N4 v3 c# N# R7 Q经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。; r" _# O& H1 P, Q! R

, _, T) e( }8 N2 i5 ]! Z& e/ v# J也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。# a8 h, I9 N: n4 [( I
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。. d  Q! ?# Y4 ?# b1 j
6 C; X# i( w4 T) S
仔细研究了启动代码部分/ X) m7 S2 A3 B, d
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)3 i, I# s$ o4 Z/ A

+ H! `/ K% ^) z- Q& o& |为了方便进行中断处理,将
8 T% @$ |- w4 \5 @$ ustm32f10x_vector.c- t8 l1 y7 v$ i; ]  `" ^
stm32f10x_it.c 8 F5 s) ]5 h" O4 E+ P% Z
stm32f10x_it.h
" @, M1 P/ P* X0 q三个文件进行脱离固件库的修改。然后Include进main文件。; M  @& k7 M. p

" u/ }: V4 w9 M* Z好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。% [- S' e7 O3 ~5 C; t/ I, C

2 |* e; r. y5 r3 E/ A, Hmain.c头部0 p" _* |; C5 V% p/ j. ]' [
#include "iostm32f10xxB.h"
8 p* \3 x$ T( X% S#include "stm32f10x_it.c"1 S8 M4 D2 a) C
#include "stm32f10x_vector.c"5 V# H. [2 [# N9 m) g0 _7 n
以下附件为开源代码。9 w7 ]! g3 s% R- L

' V" T: d5 @7 Q! S$ i- V2 A9 d  m
 
/ F; }2 o. b! a6 @4 y好,支持!!!
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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版