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

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

[复制链接]
ST老少女 发布时间:2008-12-2 14:40
阅读主题, 点击返回1楼
收藏 评论1459 发布时间:2008-12-2 14:40
1459个回答
异度魁牛 回答时间:2010-11-24 19:48:21

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

支持~~~~~~~~
glq2002 回答时间:2010-11-28 16:44:53

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

有弊有利,各有千秋,关键是看开发者的水平。
qianjincheng 回答时间:2010-11-29 21:00:12

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

下载看看。。学习。。。
pttangpt 回答时间:2010-11-30 16:31:14

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

 $ K1 k6 O* y' p2 F5 T
谢谢提醒,学习学习。
njviking 回答时间:2010-12-2 11:42:38

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

这是不是要把积存器的功能吃透才行啊!
xiaocai_36 回答时间:2010-12-3 14:35:13

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

支持,好贴得顶a
xiaocai_36 回答时间:2010-12-3 14:35:37

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

好贴要顶,下下来看一下
renxuzi-2048 回答时间:2010-12-3 16:36:40

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:' E! [8 O, B# L( W
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。0 A% V) X7 _5 N7 W
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
! S/ [7 ~5 g! w由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
; o( [' O& x5 J, p5 ]! k很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
+ b3 T4 e* f. f/ Q我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。9 @, f: h  B+ O0 _, K+ U
在此留个贴,慢慢记录无固件库的尝试过程。1 a% A7 T" R+ E* S" I7 e

, e9 B( y& U( q! z0 }" dIAR编译器传统的INC目录中包含有两个STM32的头文件
3 G7 Y# i3 o# y5 l分别是
: d$ L0 U6 R! @" a: |' q. Miostm32f10xxB.h; }$ q  B7 j  a0 A2 M# E
iostm32f10xxE.h
2 R; Q1 `% e( m" R* _! h" b经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
; f+ X% Z' `& L+ t% p# [1 O4 b8 g" Q& D& j/ J7 s9 W0 A
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。$ Q& ]* ?; Z% U1 |2 _
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
: g4 i8 y' u1 g: i. o
# t4 L# z, Q- u1 q0 a0 W/ m4 e' l仔细研究了启动代码部分7 i/ `$ Z6 w% z6 c9 d
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)! F4 H, e' ~5 }% d( A
+ [& V' e6 t9 T! m4 L7 E" d
为了方便进行中断处理,将% K1 c% M' b2 z+ ?
stm32f10x_vector.c
3 A/ ], {2 h; }" L4 kstm32f10x_it.c
2 Y% y0 C: f& ?' i' b# \stm32f10x_it.h
; r# C+ H" p% T( m; m! V三个文件进行脱离固件库的修改。然后Include进main文件。% q% ]9 t- z6 n$ ?
9 X  ^. [# V( G; O8 m( R! F
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。8 F8 h, E, ~4 X+ Z6 G, P4 N' B
" L% d4 |) ^8 `8 B3 Q! Q! ^- t8 [# J
main.c头部
# e- w8 U* Y* J7 u& c: B#include "iostm32f10xxB.h"
' S% }0 n  _! _4 y1 ]; i; A#include "stm32f10x_it.c"9 d% D1 O( d  o5 j0 t, |9 Y
#include "stm32f10x_vector.c"( f: j+ l. S! Z. D+ R: u9 o
以下附件为开源代码。* I' h+ F8 @; `9 ^
" ^& T! Y" B3 g& J8 |/ H) G" W
: R3 v# |' c8 b7 B1 f' y
 
liarlaker 回答时间:2010-12-3 21:42:37

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

学习
zhouyun128-2540 回答时间:2010-12-15 22:07:04

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:4 c2 X' ~2 C( b5 x# E, v8 |7 o8 p0 N
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
2 c. C/ m  u2 e! L" a: S. k- o9 Q激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
# z6 o5 Y6 }8 a2 o& A8 m) Q: n由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
5 c9 d7 G) ^  B$ L* U很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
' {( f0 I+ b$ g3 [我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。* n( u1 t$ L: E+ A1 |
在此留个贴,慢慢记录无固件库的尝试过程。
# N" ^' |8 z7 D4 l- D; v9 ~! c% n% g( u& J7 t
IAR编译器传统的INC目录中包含有两个STM32的头文件
  d* n& P; W/ q" k- i2 |分别是4 ~" A4 J% F4 k+ S% B
iostm32f10xxB.h4 q3 ^' u" r" {
iostm32f10xxE.h& [( _# l, |( t& n4 u; ^0 P
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。  v( w+ O! K2 W( l, ?! I9 y
) N2 c- Q; N" o3 Q' L
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
$ A* }4 B- u1 `) e: q而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。" H. I% ?8 {. ~8 r5 |6 e( w6 _

. C1 C1 @0 m. O8 V1 |仔细研究了启动代码部分
+ N$ f# Y. L6 M/ tcortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)% ~6 z+ A6 x* q7 K( k
. O! G/ ~6 l) X5 J
为了方便进行中断处理,将! B7 U' E6 ?8 A1 i+ L$ ~5 m
stm32f10x_vector.c
; r' q1 |5 R$ Q  [" g2 ~) c, ]stm32f10x_it.c
5 }# d- \( ?0 c2 tstm32f10x_it.h
1 m2 v5 H7 @7 l9 D) ?# u三个文件进行脱离固件库的修改。然后Include进main文件。3 A5 S) Y1 q5 P# ~  z% N$ O, o
! c! O0 x7 \8 h6 G* H& y. L
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
0 O3 l# |4 Y# a! s/ A) j* Q$ d/ E8 {
main.c头部
% c2 Q' r$ Z' d! V4 C0 K#include "iostm32f10xxB.h"* k+ r8 w0 W% s. G3 s9 s! m0 T" v
#include "stm32f10x_it.c"
+ J0 v/ Z# q4 t7 |#include "stm32f10x_vector.c"8 W1 H, w) y5 g% M& b, e( X
以下附件为开源代码。" ?1 h3 I' Y( j7 F
/ T; G  o0 e3 u
. n4 t2 ^1 @5 k* J+ a
 
TEMP2010CN 回答时间:2010-12-16 23:12:51

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

晚来了点,不过还来得及哈
S12X 回答时间:2010-12-17 12:58:28

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

第一次发言,过来看看
yongjundai-1706 回答时间:2010-12-17 20:08:45

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

回复第 25 楼 zsh233于2008-12-18 12:36:37发表:
+ t- ~, i$ w5 M, P" S* {学习学习 
3 i* U. ?0 a7 S$ x; M3 W& V1 _
+ n3 [! R* ]3 N. B终于找到了,谢谢!
leipeng19890315 回答时间:2010-12-17 22:50:42

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

初学用固件库上手快啊
DotNet 回答时间:2010-12-18 22:35:13

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

谢谢!我需要!!太好!!

所属标签

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