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

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

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

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

各有优劣吧,不然ST还花大力气开发这个库
century99 回答时间:2012-12-21 12:35:30

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

不用固件库开发STM32,应该要看看的。
wang-406188 回答时间:2012-12-22 10:58:50

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

很好
liu1bin 回答时间:2012-12-22 14:00:25

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

好东西,多谢。。。。
liu1bin 回答时间:2012-12-22 14:00:36

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

好东西,多谢。。。。
a1394c 回答时间:2012-12-22 17:12:24

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

都是一种方法,看面向什么对象
a1394c 回答时间:2012-12-22 17:13:16

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

都是一种方法,看面向什么对象
可心动了 回答时间:2012-12-22 18:56:12

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

 is this ok
widibi 回答时间:2012-12-24 22:39:59

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

回复第 2 楼 于2008-12-02 14:41:45发表:
原帖由ST老少女于2008-12-02 14:40发表:7 F7 E* i( g5 J# F. l
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。6 G4 _! y, G: @  V6 c
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。$ t: `* B$ e& d( m0 y# j3 d: @
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。) `, S, m# g0 ^( ?9 z( I- K5 n
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
+ f" Q, t4 v: J$ s; S我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。# w! k1 I- \$ h. E6 {
在此留个贴,慢慢记录无固件库的尝试过程。
0 U. T$ t$ W  k9 E2 S# \) A% \1 e# w6 V" }9 Y  @* q
IAR编译器传统的INC目录中包含有两个STM32的头文件
! q, i- u8 w: _. h. P& T0 X分别是
- l0 h2 a, I9 \7 _0 Z9 R7 Z  A6 giostm32f10xxB.h# v* c. Y% n# D9 R6 o
iostm32f10xxE.h- Z3 `2 X1 z+ Y
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。  p5 x7 ~2 A8 {! z3 a* [

0 p  k8 ]5 r" n1 d5 o7 E5 ^( S也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
! M# p( K/ Q' s( g$ [而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
5 C: ]7 z4 `; Z+ m4 ]4 u/ t8 E( U4 k5 v  I0 T: S% m" x* D
仔细研究了启动代码部分; e0 o4 t, T  w6 a3 C$ s# o
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
" E0 r3 v+ g+ g( n: c: M/ R
# @( N' _% p; P0 {2 ~% [! f5 O& U为了方便进行中断处理,将( J( T* p8 R& T  Y: z0 d
stm32f10x_vector.c6 l* q% j7 s+ v3 F6 ~# L+ T
stm32f10x_it.c
7 Q* I: ]& O4 c4 t# E/ e  a# \stm32f10x_it.h) I  u+ G" A/ i: h1 ~& x# Y
三个文件进行脱离固件库的修改。然后Include进main文件。
. S0 i1 }2 ~) x/ M) c( z* _3 B
  d. s, s6 V/ D1 u: t好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
# A- N9 f5 A$ @# t8 ~1 ^! O" N; @2 M8 h
main.c头部
8 N: ^0 y: S9 n; ^8 }4 C7 r' |#include "iostm32f10xxB.h"
7 C& G5 B2 T& e  ]+ k* ?# N#include "stm32f10x_it.c"
) [" K! g! Y: Y& {+ c5 a5 Z#include "stm32f10x_vector.c"$ f  C7 {; {7 }7 u! }
以下附件为开源代码。

' l% ]& D- Y) w: `1 R依然是代码 
zhangyy706203 回答时间:2012-12-25 13:34:03

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

回复第 2 楼 于2008-12-02 14:41:45发表:
原帖由ST老少女于2008-12-02 14:40发表:
) K# e# |7 q! Z& e  X/ k, v仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
1 c) G" Q0 L/ m4 d! i7 `5 z激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
. o6 L) T' d. z* T0 i5 e0 G8 G5 ~! \5 J由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
! R1 _' `# X0 U7 K9 ~$ w5 h很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
! r  x; O$ H3 o$ t5 q) S我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。; P- j) ^2 w. C: L  D. R
在此留个贴,慢慢记录无固件库的尝试过程。. L+ B$ H, r; J0 F
; o, _* L: V- B) ?
IAR编译器传统的INC目录中包含有两个STM32的头文件* p9 d4 {* P* B7 l; A
分别是; D9 ?4 q/ J& O4 j7 C/ `* `6 }
iostm32f10xxB.h
& x9 t: v' o- R- D- biostm32f10xxE.h
6 i% R; R. S" K/ d经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。' l2 N% Z* ^; ^6 q# v1 b' O

( d% I* ?4 N; T% w也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
5 k1 s/ b( `5 z$ m& B而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。" X& c" U7 ^- z7 W
# T# H! D  ~, B+ U
仔细研究了启动代码部分
6 D5 ^6 _) A: [% Ucortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
" \& J% c' R( R+ z) V. W
; k2 H" v2 ^2 \0 j. n, C9 i为了方便进行中断处理,将
0 A7 m, b. J. X" i1 [% wstm32f10x_vector.c2 r* F% [/ k# J: b  z! u
stm32f10x_it.c 4 [( V/ x$ i3 u1 G+ `5 G, j
stm32f10x_it.h
. j. u$ p# M" d% t/ C% V) v) ?+ ?5 g5 p三个文件进行脱离固件库的修改。然后Include进main文件。" H" O+ \# |7 H. C! b9 K# \
/ S" W! n. H/ X' `* \9 _' i  L- A
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。8 t, b! b! l0 ^0 O# ]

& f+ r- M, V+ [: L3 tmain.c头部% o) @! Y+ |# ~) d; H4 P# d+ g
#include "iostm32f10xxB.h"
. e. e3 o* n# M" N, |2 `#include "stm32f10x_it.c"/ }+ m" J" N* \9 ^2 s# N
#include "stm32f10x_vector.c"1 W% Z' A- M) v* ]5 h4 s
以下附件为开源代码。

  E. C, v- `2 p/ P* Z依然是代码 
lq-409025 回答时间:2012-12-27 08:17:44

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

谢谢啦
3 S+ B. U0 a0 A. k; D/ z非常有用
loveice135 回答时间:2012-12-29 00:21:28

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

库的开发,速度和维护更方便.
kuang_gg 回答时间:2013-1-2 12:05:10

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

路过,学习啦,谢楼主啦!!!
帅的像头牛 回答时间:2013-1-2 13:09:13

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

新手上路,学习一下
tang9572 回答时间:2013-1-3 00:25:34

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

用MDK的纯寄存器声明文件哪里有?

所属标签

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