你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。关注该话题即可发布文章!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
搞清楚后,扔掉固件更爽。
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
我想说的是:有时候为了保证程序有更长的生命周期,必须考虑代码的可维护性,必要时,应该牺牲一定的效率来换取它.. T$ V2 D( V/ c, c
我发现许多在嵌入式方面的程序员,在特定系统上将代码写得非常精致,不多一字节,也不少一字节.这往往会给后面维护者带来很大的麻烦,很可能维护人员经过一翻努力之后,决定放弃这段代码,重写.
当然一些特殊的场合,在实时性要求非常高的情况下,必须牺牲可维护性,而先确保系统能用.
这是本人的愚见,难迎拍砖.
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
回复:【心得】用传统方法开发STM32,放弃固件库的使用!
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。6 f' `; o& G( N! |7 g9 {9 G
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。
在此留个贴,慢慢记录无固件库的尝试过程。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
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。
$ D' {: |. q! V( W
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。3 L0 ^/ I! e+ B6 a
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
+ 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
为了方便进行中断处理,将
stm32f10x_vector.c
stm32f10x_it.c
stm32f10x_it.h* P% f( K6 [9 m" y- u& x
三个文件进行脱离固件库的修改。然后Include进main文件。 o0 }, O) S, L8 ]$ ~
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。9 X; {/ C$ f+ c- h& F) x
6 \8 ^% x& g5 A
main.c头部
#include "iostm32f10xxB.h"
#include "stm32f10x_it.c"/ J: {) ?. f$ R
#include "stm32f10x_vector.c"
以下附件为开源代码。' j X4 n/ N/ V/ j
0 }/ E1 |* z( M' Y ?5 @# e- j3 b
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
回复:【心得】用传统方法开发STM32,放弃固件库的使用!
可参考资料* R7 V U, L+ i, {8 d( X
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
回复:【心得】用传统方法开发STM32,放弃固件库的使用!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!
学习学习!
RE:【心得】用传统方法开发STM32,放弃固件库的使用!