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

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

[复制链接]
ST老少女 发布时间:2008-12-2 14:40
阅读主题, 点击返回1楼
赞 收藏 评论1459 发布时间:2008-12-2 14:40
1459个回答
sixsword 回答时间:2010-9-13 14:08:28

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

如果赶工期,新CPU或者硬件不甚了解,还是固件实用。
* v+ t" ?& q4 f) W( C/ l4 G; m搞清楚后,扔掉固件更爽。
hjj6626 回答时间:2010-9-13 20:06:10

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

传统的方法非常使用 而且灵活
auguestine 回答时间:2010-9-13 22:51:26

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

一个系统对特定环境的适应性越好,那么这个系统对新环境的适应性就越差.
/ I* r* l) ]% X7 x/ d8 W) I我想说的是:有时候为了保证程序有更长的生命周期,必须考虑代码的可维护性,必要时,应该牺牲一定的效率来换取它.. T$ V2 D( V/ c, c
   我发现许多在嵌入式方面的程序员,在特定系统上将代码写得非常精致,不多一字节,也不少一字节.这往往会给后面维护者带来很大的麻烦,很可能维护人员经过一翻努力之后,决定放弃这段代码,重写.
4 n1 h+ Y% V- @$ h: ^, X" t# Y6 h  当然一些特殊的场合,在实时性要求非常高的情况下,必须牺牲可维护性,而先确保系统能用.
7 E4 }4 R1 ?3 r3 e% n9 |  这是本人的愚见,难迎拍砖.
tanlks 回答时间:2010-9-16 13:56:44

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

kankan,什么意思
thanato 回答时间:2010-9-21 11:01:28

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

让我研究下吧
aagreen 回答时间:2010-9-21 14:48:22

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

了解一下 呵呵
uouo113-153901 回答时间:2010-9-21 15:29:42

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

xue xi xue xi
lisasa-167136 回答时间:2010-9-21 22:59:02

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

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:
# t  C; k, ]$ b6 m1 i仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
, m2 q4 X9 i3 Q7 a' D激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
9 k' s- L8 |8 B0 N, m0 F4 z0 M7 o由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。6 f' `; o& G( N! |7 g9 {9 G
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
9 Q/ y. I* i+ \1 M: y我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
( H8 Y+ ?0 N/ F+ y& ~, F3 g在此留个贴,慢慢记录无固件库的尝试过程。2 Y1 \( g4 W  C
, x* @' T& x& z$ t, h; G1 q( Y7 F
IAR编译器传统的INC目录中包含有两个STM32的头文件- P! N' Y5 n$ g# p; i* L
分别是. S  v% S, i/ C5 D3 {7 N  o3 A. H
iostm32f10xxB.h
* b/ j# [% c' n0 P9 ?iostm32f10xxE.h$ `! d& @" a+ z% b) [: _+ X$ \8 h
经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。
/ n( t/ W6 b* F: ^; R( A4 E, m$ D' {: |. q! V( W
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。3 L0 ^/ I! e+ B6 a
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
# c- m- x3 ?/ s/ g( {9 L% @( u9 E4 `+ m, G' s1 Q2 T; L6 r2 Y
仔细研究了启动代码部分4 [8 Q, P3 U1 P% h9 D7 T
cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)! U% `* T' _/ Y% H+ ~" i8 ^
+ B9 P* z- x' `0 @& p1 |- S
为了方便进行中断处理,将
& s/ R( h0 k/ a% s2 y# r7 pstm32f10x_vector.c
6 t* j: j0 Y4 a; T' B$ @8 W9 X0 ?stm32f10x_it.c
& x* I  Z/ v% ?7 ^. B2 I- s3 b' Astm32f10x_it.h* P% f( K6 [9 m" y- u& x
三个文件进行脱离固件库的修改。然后Include进main文件。  o0 }, O) S, L8 ]$ ~

) N4 B" J7 s8 F. V好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。9 X; {/ C$ f+ c- h& F) x
6 \8 ^% x& g5 A
main.c头部
* z; `1 n3 |( [! @* ~8 z7 O6 m; X( B: i#include "iostm32f10xxB.h"
0 d8 E0 T& Y! k& T) L4 S#include "stm32f10x_it.c"/ J: {) ?. f$ R
#include "stm32f10x_vector.c"
. X4 G( n& C0 o2 L* `以下附件为开源代码。' j  X4 n/ N/ V/ j
0 }/ E1 |* z( M' Y  ?5 @# e- j3 b

* Y( ^8 w$ m* C% o/ R$ T 
wgijfhvk20 回答时间:2010-9-22 10:42:37

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

刚学。。。还打算用固件库。。看来不用花时间去看了、
ljk_qh 回答时间:2010-9-23 10:40:42

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

   @9 [/ Z- x: V% _5 f
  _- M4 _) Z; D3 Q
可参考资料* R7 V  U, L+ i, {8 d( X
 
longcai1988 回答时间:2010-9-26 20:04:58

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

是一种思路,一种方法,值得探索
tanlks 回答时间:2010-10-2 00:13:42

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

kankan
lingchuangwei 回答时间:2010-10-11 13:08:33

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

楼主厉害 顶一个
sunzxin2004 回答时间:2010-10-15 10:13:56

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

学习学习!
% B( V: V9 U( t- ~+ o; s7 m学习学习!
suting-228528 回答时间:2010-10-16 10:49:15

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

有道理~~~~但是初学者还是要熟悉一下比较好

所属标签

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