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

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

 
0 z* M/ x6 n  |# ^8 \6 I  U& a6 i谢谢提醒,学习学习。
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发表:
% B8 @$ M. a% s仔细研究了固件库,发现使用的代价,性能损失还是相当的大。% k( g1 Z+ ?$ L: r
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。1 G" W6 s- F3 Y7 o  w
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。% {/ t' b0 Z7 F' K. w
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
  x' n2 ?' w7 s, X8 Y3 z+ H$ l- m( O我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。( Z9 M' d, j- M7 n+ D! [; |* {
在此留个贴,慢慢记录无固件库的尝试过程。# j: Q  K& z& d$ k# a1 @4 ?
$ v" i  ^5 A8 W
IAR编译器传统的INC目录中包含有两个STM32的头文件1 c' V$ N) v7 N2 K( i2 E" ]. v( U
分别是/ D" G% o6 l6 q/ ?8 B
iostm32f10xxB.h$ c8 N0 i% w4 i7 t! t* Y! C
iostm32f10xxE.h6 K$ m4 h  \2 F, p
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。% M/ m6 s& n5 \, c" Z3 e) V

1 e. e6 T* S  d7 H也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。5 f4 T, R7 k( q7 |+ n1 A5 m
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。( c$ m) z* u2 b9 p$ k% w( R
: `9 s9 @. W$ m) p7 g1 E. T" Z6 _
仔细研究了启动代码部分
. ^- G6 E3 }! U3 ^cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
2 c' Q1 k; N/ x* d, {/ M; u: a4 z1 e" T% W/ f1 c( }
为了方便进行中断处理,将
# T# L9 V% C3 M) wstm32f10x_vector.c
( m2 B+ W/ C0 d0 X" ]/ M" [. Jstm32f10x_it.c 8 t# W) c' q: O- j; S/ V
stm32f10x_it.h% D& k# w3 P* R9 N# o8 Y
三个文件进行脱离固件库的修改。然后Include进main文件。' A" \" \$ r9 m5 J! ?) A7 E6 S

. U; N; P3 H. S% v! C好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。; f7 a# q2 n$ w' ~& M% M, X

8 M+ K+ f4 Z4 \3 u: {; omain.c头部$ E8 r( S" ?9 U) v1 X
#include "iostm32f10xxB.h"
! H" Z+ E% W" i#include "stm32f10x_it.c"7 V, B) m- R6 J( Y# b& s; C
#include "stm32f10x_vector.c"
1 L2 }# P# N1 ?& o+ \- J以下附件为开源代码。0 @6 R; n. |9 p' r% j! W9 b* B( Q0 S

: L+ a- z6 s1 Q8 k' h$ H5 H
+ n* v2 M( ^# A4 l* P' @ 
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发表:2 a: h9 W; k& g3 h# i
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。# _2 Y: z+ f9 J8 Q+ w
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
1 y! z" i, V% f; N6 N; m由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
( O, Q) p5 `3 e* ~& q! ^5 i6 Q8 v5 B很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
2 I( E: K  S. s# E我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。. S, M# j; S( e) ]5 ^/ _9 y
在此留个贴,慢慢记录无固件库的尝试过程。
$ ~( X2 A" t; x/ i" A. S8 Q" }( E8 M
IAR编译器传统的INC目录中包含有两个STM32的头文件  ^# o. }+ A5 Z. O* G
分别是
8 ]/ d( A5 n( v" s$ D5 R6 x* fiostm32f10xxB.h
+ P( m% J% P/ E2 k4 h( x4 J% piostm32f10xxE.h# n' j! e5 ], P0 t4 L' ~
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
) c$ B3 y( P, g
; ?$ A3 o8 }; X2 w. b2 d5 X也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
% s( m7 {, c" ]8 K而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
- l1 d" S  K. ^; W4 \
5 c! ]) M: c7 y0 {仔细研究了启动代码部分
- ~. V9 W6 s3 Q. j" Tcortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)
) W7 m; w, w6 }# d  ^' p  k. |, T6 b' u  Y7 G" ~$ V- a
为了方便进行中断处理,将
6 t7 G/ ?& ~* R! T1 X0 mstm32f10x_vector.c5 q5 m" q$ Y( ~2 X7 c5 x( |2 j
stm32f10x_it.c ! x+ D8 b% \* \% r' j; x1 [
stm32f10x_it.h2 N% G. {) n) r& d  V2 q- ?, R
三个文件进行脱离固件库的修改。然后Include进main文件。
& W2 m! k& V7 b4 T2 p# S! U# C& r; D$ p: h) w
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。3 k! X0 T9 E' d/ [2 n. n
* A! Q& T$ T$ j& u
main.c头部
/ G! y" D! v0 ~; T+ G: L#include "iostm32f10xxB.h"
( u2 U1 A3 B9 w' [2 Q5 e3 Y; R#include "stm32f10x_it.c"8 O$ b& Y2 \9 X  F. U+ [! X% g
#include "stm32f10x_vector.c"
# B- u. X$ o+ q以下附件为开源代码。
# O7 T( e7 }/ ], ]. B* @6 U& @
4 u* e+ j; u. [2 R" W. G7 a& i* \
( ?* p* G$ p2 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发表:
# \2 e+ K& ~4 v, p# x8 ~0 p; {; L学习学习 
7 H* k2 @/ u+ ]5 [0 R( x2 e! y- @; u2 e# `) ^- h2 N
终于找到了,谢谢!
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 手机版