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

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

 
  t, O  ~1 K" F( V! k, R' j( s谢谢提醒,学习学习。
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发表:- j$ _- ^0 c, S
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
: a- x( ?) O5 {2 ^! [3 u% ~! u) ?( c9 C0 Q激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
$ x5 W# X  Z7 a. a由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
4 d1 i4 Q# A4 K) ~, M1 l, s, e0 K很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。7 _2 E: u6 m$ U1 N( e
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。* K4 j1 H+ w" c$ A
在此留个贴,慢慢记录无固件库的尝试过程。
/ ^: M; D/ S) A' V9 s) `- i) C; Q$ n, V0 {# @% _
IAR编译器传统的INC目录中包含有两个STM32的头文件
  C! Z0 p( S* E  ?1 w分别是4 S% C2 m/ ?! u
iostm32f10xxB.h
" U, [7 j; V1 A) siostm32f10xxE.h
5 Y# w6 R5 U/ @/ d5 O! e9 D& |经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。" t6 L/ \1 W) x0 L+ H' M! p8 |

9 t& O' [" x5 }9 f" P也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
1 m9 c5 V! X& O/ u  G$ X2 N6 I- s  w而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
8 h# z0 F* b" y, E+ l
" D& e4 @  v, _5 e仔细研究了启动代码部分  j+ ]  O: u; @& s1 p4 e" O
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)% x, r& F. |7 u/ s
0 I, S) T6 p9 {1 Q. u
为了方便进行中断处理,将
* p8 s  i* N, i$ fstm32f10x_vector.c
! t7 i  R; g) astm32f10x_it.c
' I8 i0 H0 {, o* k9 D; f0 k+ }, Estm32f10x_it.h
: t7 T! W: W; o+ [+ U8 z* K- V三个文件进行脱离固件库的修改。然后Include进main文件。
. }7 e* {0 c! `" I& f" [. h/ N6 D4 W5 x( d* l
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
* f( k" g- y. J* z6 L( X% Y
, V. A, {, D2 _/ o$ @main.c头部8 g, i$ r0 u+ k, _2 k4 U% I
#include "iostm32f10xxB.h"
" _( ~9 l( U- N9 O& n- z/ w#include "stm32f10x_it.c"; I" s, z/ a# w. t1 p
#include "stm32f10x_vector.c"
; i. D) O/ N6 g% w2 i# u以下附件为开源代码。. g( C) w: H8 O% |6 H: d' p3 ~
6 i- e. X: ?4 ^+ @9 d) j( n- J9 w
1 j% t7 M! Q- O  E9 h# ]
 
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发表:
" A" R: t: o( n仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
1 v& f5 w& T9 ^% _- `激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。4 Y4 Z4 |  c& ?0 ^
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
2 B/ K8 t0 s7 E很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
, [4 L4 Q. x6 q8 g  c  U0 ~我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。% o& l4 O) P( i8 h3 Q
在此留个贴,慢慢记录无固件库的尝试过程。& H2 e) N9 g* Z- Y9 c& N
/ ?% @% Y/ s4 R6 R
IAR编译器传统的INC目录中包含有两个STM32的头文件
* [- M) R( W$ H  g分别是' G( U, W$ X) X2 P2 p8 Z0 d
iostm32f10xxB.h2 Y8 O3 ]9 Y. a! p1 g) C
iostm32f10xxE.h
" x" H6 P1 U# E) b3 v/ ?3 X经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。  X7 r% A( M# M9 E8 V3 `
; C- t$ t/ o7 ]5 f% X8 O
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。1 X" p4 J- ?# d  q% [, o
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
/ i  r  |5 G) P8 V2 L3 \2 {$ ]& y* a5 b' a4 W
仔细研究了启动代码部分
& c) Z; {% i1 jcortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
* \/ h, [% e  E# q  I' a- ^$ Y
: @1 b; o) S* l, I# Q为了方便进行中断处理,将
: w; R1 {& a$ m* }' dstm32f10x_vector.c7 P+ l* ?3 j. W  Q5 c8 i8 u- ?- `
stm32f10x_it.c
+ q9 _0 [3 S: X+ _stm32f10x_it.h7 g: O  n& L( f( Y# P' [5 J# [
三个文件进行脱离固件库的修改。然后Include进main文件。1 Z! y6 O; Z7 O# c' Z4 ^
* J* Q" n6 z" t- Y+ Y: O
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。* k' L" j: Q/ l

! I4 g5 E! z5 \* E8 H4 u1 W3 xmain.c头部
: L+ P( N' x9 G4 C7 N#include "iostm32f10xxB.h"; D# o7 E/ O; C! }: ?/ S
#include "stm32f10x_it.c"4 T8 n( ?% m! k3 k( |
#include "stm32f10x_vector.c"6 S2 t/ y6 \* n3 H3 D
以下附件为开源代码。
. P; `2 E/ A, N$ P
* H1 f7 |. I" w
4 B8 t- e4 K8 c" p, 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发表:
0 r; U( @( F5 m# O- w学习学习 
9 O3 j9 h8 ]/ C3 t0 r/ e
1 G5 S; k& v; {0 r终于找到了,谢谢!
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 手机版