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

【心得】用传统方法开发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,放弃固件库的使用!

 4 n: s" c  c$ g
谢谢提醒,学习学习。
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发表:
7 Q* E! \$ K3 K  t/ d$ C仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
! }9 _* c. F& T5 ^" f激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。2 A# b" @/ q( P  l9 q& o
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。+ u; N( |. N& \8 n/ Z% s& P* f, c
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。/ P( I, r2 n$ r# q( I/ y6 W" T
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。, v+ W# J2 }) C6 i3 n) z
在此留个贴,慢慢记录无固件库的尝试过程。1 ~6 `# g! J# n1 L3 Q
# `7 ^0 H5 I2 s6 @
IAR编译器传统的INC目录中包含有两个STM32的头文件
3 r0 g$ n6 t/ |  U0 b: W+ ]. K分别是" {8 ~; ]. x  r9 R+ R' D
iostm32f10xxB.h
' A! ~* l$ G( g- h: ~9 S4 jiostm32f10xxE.h
% }+ q* l* J% S3 q经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。! R* t; i& I* F+ e3 O, R

+ w! l3 D, R0 `. _  Y也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。) t! [0 {1 w( n. i. C  b- T
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
7 d/ P& A4 C) e5 W! T) S, M; }% D* m  {1 S% i* B
仔细研究了启动代码部分  g! A$ x9 M) |/ `% r  S
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)+ N7 ^3 k$ A% S- v" H3 Y
* m6 r4 E8 _9 ~4 S, O$ U
为了方便进行中断处理,将
) _+ M1 x/ N$ r8 `1 Kstm32f10x_vector.c; F& i$ v) B! h* M) k9 Y4 h
stm32f10x_it.c
6 p' u2 H& ~7 ?& E& }2 W. K+ ~stm32f10x_it.h6 K2 U% I  W9 f; J
三个文件进行脱离固件库的修改。然后Include进main文件。
' M# k* O3 W" X* ?) d5 X* p  n; U% b1 m6 g! v# K+ y* ^
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
4 X' D- B; ~9 y
. F2 y% d; B7 i& pmain.c头部" l" A; q: ~  b
#include "iostm32f10xxB.h"& w5 L( r0 w4 n$ }
#include "stm32f10x_it.c"
! ?) c7 f* C, f  [. H" I1 K& I#include "stm32f10x_vector.c"2 s% Z( P4 v9 t1 x
以下附件为开源代码。
+ ~0 o3 C* {: }- M, z5 C$ f) a8 \
6 r' \  M: r+ ]& L
6 w9 ~7 Q& I/ V" @ 
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发表:5 g- D) Z/ _5 s8 {$ Z1 F% V
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。, ?8 s. T0 l2 _7 e
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
5 y* O0 z3 Q. a$ K9 V由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。0 h& |& T9 T+ g
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
- t* G. V1 ?3 M/ E7 k我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。. S+ I! f/ ?$ m3 h
在此留个贴,慢慢记录无固件库的尝试过程。
, P8 j2 y: p. O4 t; }# J# p  N1 }) N1 H  z' Y( z. l6 G: Q
IAR编译器传统的INC目录中包含有两个STM32的头文件
. D3 Z! c; ]+ l分别是
. v5 ?3 V& e% e% I; Fiostm32f10xxB.h$ P& M+ N) f! i) c8 O7 M1 Y7 M. z
iostm32f10xxE.h$ I) {% p# y& H  ]" B
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
5 U( R' t% |3 j5 I& x6 `) U5 J9 G! |' s' X3 o
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。" s" n% {  }# N
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
" D! W( {# C* K$ ]* _. _- x5 w, O! R, d# C' D0 N
仔细研究了启动代码部分
; Z. r8 l* C% O0 W. z1 Xcortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
, Y7 V: _- X) x! X) H: ]4 L5 \% H! u0 E  G  ]* d
为了方便进行中断处理,将
; I0 l2 E3 h8 G, F2 K$ q5 Istm32f10x_vector.c
% V  D0 o' O. c  a" P6 P; ?  [stm32f10x_it.c " i% \6 r% R5 g+ r, o+ I1 Z( ?
stm32f10x_it.h
5 L/ S8 Z  j8 r( W5 L3 ^: V! O( J三个文件进行脱离固件库的修改。然后Include进main文件。
0 V& m! S: \+ o$ z3 _' m* x7 t% Q" q: D
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。+ ?7 U2 c: X9 W6 d8 _& p+ S
; b% D5 [  k; J$ R  e+ [0 ?9 C
main.c头部  T( S* {6 c/ ^1 v( \" h5 v
#include "iostm32f10xxB.h"
5 g% ^. Y2 `; `* r" u6 \#include "stm32f10x_it.c"6 F" P6 |( B, H/ H0 W3 X  `) }& W
#include "stm32f10x_vector.c", ?, U8 c/ l: F7 b/ }, J+ Q
以下附件为开源代码。" p% K2 P1 W# t+ d

6 b1 `! b5 p, t, U8 Y/ O/ F6 c/ a7 |/ 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发表:4 |- H0 t$ P; f, }9 |+ B
学习学习 ) G2 I0 Z; p( r% D
+ T. X' [. r& D- N9 ?
终于找到了,谢谢!
leipeng19890315 回答时间:2010-12-17 22:50:42

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

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

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

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

所属标签

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