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

【经验分享】Segger Embedded Studio 创建以STM32F3为平台的工程

[复制链接]
STMCU小助手 发布时间:2021-12-6 01:22
准备工作
4 y# B/ `3 i+ V3 H/ ~4 T
$ L+ Y" ?" t! b9 P! [  在st官网下载 stm32f3的HAL库文件 en.stm32cubef3.zip8 v2 H  w- a9 a  F, ]$ \

2 |4 {6 H& N+ N+ k/ Z  ]6 p  安装最新版SES,通过Tool->Package Manager 安装STM32F3的package
* I: Y$ W! g, `( b+ |  J. G' M2 u8 v% {( J6 V) W
  在tool->option中可更改package的存放路径 和 新建工程的默认路径
8 Y. R1 O2 \6 f3 W$ L6 z
  g- a$ `' \7 j
20190305104005921.jpg
9 K  w- _# I2 \# P
' e' ~0 S* c- g5 U& I5 o
更改字体、显示行号$ h  {* C( R4 G5 }7 A

9 _9 S0 z2 [3 Y" O1 }' `
20190305104006549.jpg

% }7 g9 e, K, Y  u' S4 m8 S3 Y- X5 C. `: O: x! `* j$ r& G4 \
在Project Explore窗口不显示code 和 data的大小, k7 a" H* E4 E9 U4 V8 S( B
1 M! f# i& a+ F, l5 X# R% [+ I
2019030510400667.png

' Z$ L- U4 L* w* V7 r! H( S1 N3 e! z" G* A+ o: m5 @5 w
$ i  |: w/ g3 ^$ U6 \
开始建立工程:7 [) q; d' O/ V& `! |
8 r3 c/ M! W1 ?" P- i) m; D( L8 e
第一步 file-> new project 创建工程名称并选择路径(建议新建文件夹)
6 S7 r* Q: q' J6 M8 D4 c& X  N" g: k  I8 t* U5 V
20190305104006122.png
: L$ `/ \! D- j, X& p& m

, Z2 ]+ M$ F) ]' B/ y! ?更改芯片型号( Z4 T" }& g* r' ~
+ B6 n8 n4 N! Q, T7 _  F& M, ^" Q- X( _
20190305104006155.png
! c! |) K. a/ \9 p: j. K+ E1 S

1 u- ?  G/ e, i9 F选择需要添加的软件组件: W1 A8 W6 e8 F* }/ p8 s" ~* ~

3 q' [, l: {: a0 N. Y) W+ ]
20190305104006274.png
$ G7 N0 t; [; t3 m

' r7 y( q" I, G8 ^$ {4 L, J6 L$(DeviceHeaderfile) 包含所选芯片的头文件stm32f3xx.h (STM32F303RC   HAL库)
( S% d6 H/ X; u8 D) M1 [, f! C! v, Z/ C! x- b) l! |' Z5 s7 c6 {
$(DeviceSystemfile) 包含所选芯片的系统配置文件(时钟 flash之类的在复位中执行) system_stm32f3xx.c (STM32F303RC   HAL库)
1 b0 p) Z2 h" R6 y
* p. `: r$ R& H# m, ]$ _$(DeviceVectorfile) 包含中断向量表 STM32F30x_Vectors.s
6 H& p$ y* Y0 \$ S
% Y' U/ w; u1 o# b; f* l2 r. PSTM32F3xx_Startup.s 系统启动文件,在复位处理中,进行一些初始化处理,执行完之后跳转到C语言的main函数7 d- i/ Z7 S. n. _  j6 A5 _
7 E0 I, X' c  E6 o. R3 Y) b
STM32F3xx_Target.js 仿真时使用
, S* S- {# _- i- g" i. H8 |
1 `) n% N* n9 s0 b5 wthumb_crt0.s 启动码代码,被STM32F3xx_Startup.s中调用+ x+ v) w, I! s  C/ Q/ [# v2 E

4 H$ t5 w1 w8 W7 D- f3 wRTT相关的文件是使用RTT功能,方便代码调试,取代传统的串口打印功能5 H# c% V4 X+ D; Q

# f$ W, {  B! q, x* I0 f$ h
" {& M+ t1 P$ R" {4 [$ t注意1:% T) J/ H* c! T6 }6 L
4 A# h# \; [' M, {, ?; g5 o
根据需要选择所需文件,startup vector thumb_crt0.s文件建议选择,st官方的HAL中gcc编译器对应的启动代码无法编译通过* W* B2 n! V  c5 A
6 ]6 V8 X6 S) y2 s8 C5 H' Y
(也可以不选择后期手动添加这些文件,start 和vector 文件在对应的package目录的source下,thumb_crt0.s在SES的安装目录下). G; ^8 P: B) c7 ~" T: G! e
  V' ?. O9 w7 x, C) W
注意2:
/ A) `( O( P  ~4 F/ N# |) h( S5 y' k: h7 G8 k6 K7 h. c
左下角的Import all files and package files 选项的功能是将选择的文件拷贝到工程目录下,优点是不与其他功能共享启动代码,如果不需要更改启动代码,可以使用标准的启动代码,不拷贝到工程目录下。  a/ `% O2 c" z8 ~  W' y

# o' t& M$ U7 p& n9 U8 J
20190305104006215.png

0 W6 X3 K1 z5 t  D
6 J$ {% X$ L, _' T) U* i- ]( z7 Q  T2 `
我这里只选择thumb_crt0.s,next next finish  F  c6 A9 W6 J6 z+ i1 o7 \
8 `5 h" p% L' J/ q
此时工程目录为& L/ |! U( U8 Y

2 j# C3 i" g; `1 @
20190305104006245.png

; v& _, w9 |5 A0 w# b' U9 N, R6 \6 T0 l) ~2 A
20190305104006338.png

7 {# Q# w: Y; p7 S
5 ~! X! S1 L8 }* W' R: ?! H
2 y; U8 J, ^3 C/ Y2 q. K) y第二步 添加文件
. G8 a5 N! Q4 f+ e8 \
5 Y- p1 B6 a. U3 x% A
" _3 I, K* A. I1 Z添加start 和 vector文件9 k# s, L( p. }  ?& d
7 M4 g; W# k* g( e
建立User文件夹,添加文件(其必须的文件可在库文件的例程中拷贝)2 P# E9 H0 e' T* b+ U# M5 y& |
( u4 y9 U; G, e% `5 |! P1 t
建立STM32Cube_FW_F3文件夹,添加外设库文件/ b/ [) C4 j& f5 D8 |0 D+ R
# g% l3 G. L# |% P. x$ N& F
20190305104006317.png

; ]3 v6 F1 H+ X3 L4 i5 N' A6 I  R" W
20190305104006313.png
% N5 m& _; j3 G: e& s% p

, P/ z8 }$ z" f1 k" q6 [7 A$ e$ O# H5 Q5 A" L& q# ~
20190305104006334.png

0 R6 @7 A$ N& w3 m. x0 D: o& E2 G0 l% U
2 Q: l' S5 n) Q' l' }5 u% u
第三步 添加头文件路径
0 A5 Y. P# V2 G* a/ o0 \9 o" I5 Z

4 W& [7 ~  Z5 {; v9 N- Y1 f7 @: ~3 h9 ?
20190305104006354.png

* J7 @; ~; t# t4 d1 x6 N& `, A0 d2 q1 ?& M
20190305104006385.png
& ?2 M; L+ x" _' c) i, a0 h

1 |: }$ b# W' v- L/ j/ p; \9 F& ~' I5 Z4 {2 z% J
现在编译就可以通过了
, j. ^% u2 H8 u, z" Z. ^) F& L" u7 |$ V0 M& }$ R
20190305104006646.png
7 }/ \' J8 p; j6 k$ f% M

0 s. W0 z# z# k# ^- J% q
0 s+ \( y$ r! R' E" g' T第4步,连接硬件(目前好像只支持Jlink)
% |" u- w; X8 e
' f* n7 v, E8 u: o
20190305104006448.png

( y' P3 y* q' C9 r8 b0 m0 f3 h3 M. b
2 N( G3 Y" F8 m  j( m& N" c! h4 L2 W8 I
* I. r( L9 f$ @: V
$ Q3 r% E# z7 f" P8 F5 I1 I  `
注意:: c' G' }% c8 E- z  d$ _/ R/ j
! n4 v- y  z' Z/ K8 Z
需要选择STM32F3_Target.js文件,可将package的文件复制到工程目录3 g! L. n7 n( u8 s

6 I7 I4 [: a: X- [$ o9 A
20190305104006505.png

6 y& p( f! P' p% Z/ T% M
& T0 e# d2 b# L& H; e: w9 b, K) U: d4 u) n) b/ g% m
至此,工程建立成功) {8 ]1 b8 R2 z7 F/ n0 e! u
% x, K, }% V# C" H2 S7 r$ `0 d

+ l* Q8 r: q$ t' d  Y
20190305104006510.png
赞 收藏 评论0 发布时间:2021-12-6 01:22

举报

0个回答

所属标签

相似技术帖

官网相关资源

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