
( l8 l0 U y U H/ E
" ]) D! U& z) B- _; P( L# M% R- \+ X. R6 p6 d
写在前面:
1 b. P/ u# a: a/ V8 L0.好久不发帖子,排版略渣
# J$ s8 P" Q0 P2 Z8 z1.编译是可以成功的,但不保证不同环境及设置所造成差异
( V* |' n) r5 \/ D' [2.只是编译通过,库本身是否有bug属于未知问题.
: U8 T- m3 G/ ]. i
) b; ~* w. ], G0 H/ F
( w. G* ?, x$ ^2 M/ D& L# ~8 H仓库简介:3 Y: I# z9 a! C7 w, U4 I# K) w
STMicroelectronics STlinkv2 programmer library and tools+ e& Y) l& R4 t" u
(具体可到web页面上自己看 http://github.com/xor-gate/stlink2)' K. c; K6 J5 R: }+ A T
这个就不多说的,代码不是我写的.
3 a3 n. }4 b5 j A/ t" ~5 f( Y7 C$ R! Y) s
6 a- K# L9 ?* G- L( {/ y
windows环境编译心得及步骤:! H0 s' L; ^7 j0 T) t7 R1 b9 A
1.搭建msys2环境。* ` w) Q4 M6 K" ]8 X2 [) R' l
[仅mingw可能就够用了,不过考虑到源码用到cmake,有个shell命令行开发环境,是相当有必要的]
0 O9 j' N1 v( @/ n下载 msys2安装包(我用的是msys2-x86_64-20161025.exe) 3 J* @& P8 n5 r( F1 C
ref:
% X; Y% r/ n8 j5 F+ xhttp://sourceforge.net/projects/msys2/files/Base/i686/ % ], f0 H$ a" f( z
http://www.msys2.org/$ y& _0 J7 i" \$ N/ g* ?
印象中这个是要windows 64位操作系统才支持的。
* L$ i- J# L1 Q& S+ u- b% Z! \3 W安装步骤略...,就是一路点下去,设个安装路径.; e: r: U. [! B2 ^5 H
启动过后用pacman安装必要的工具,这个不是本贴重点,暂略...
) j/ n9 |- C' t m8 _4 ?具体可以百度google,网络不行pacman的源也可以修改,baidu吧. 6 v1 E9 p- K. E1 {
: x/ g! o5 w! O% f% M2.编译libusb
: f6 R( g6 L, o+ }) P) ?下载libusb-1.0源码8 y$ v* F2 T# k4 X5 F
[参:http://sourceforge.net/projects/libusb/files/libusb-1.0/]1 k: G4 E& J3 e$ t6 G
子版本号应该不是重点
7 M! O1 l8 n- R- G g这个编译很简单,编译步骤:
9 }9 A+ X" p j' \ R# _0 N- 解压
- msys2进入相应目录下
- ./configure
- make6 ^ X1 p: L$ U" k% b# C& H) N. x
' ^$ |: W+ K2 ~: K3 E) }" X如果成功,在libusb/.libs目录下生成libusb的静态库和动态库.这是我们需要的。
) e7 J. O1 t/ v4 {libusb/下的头文件也用的到.
% s( n3 m1 I/ I0 `4 y9 n# ]2 r/ r% Z5 ^
- a5 ?" d) j# y0 R+ K几点说明:
( ?$ o) @& t( j$ {[注1:可以make install,但并非必要]9 z7 V! C) ~- v
[注2:可以指定安装路径,也非必要 ./configure --help 查看帮助]# D( v6 ^. P( M. Z
' I; u, o" Y ^8 I3 k, z3.编译stlink2
# E$ ~7 |4 i- S, A下载源码:" [9 u! y* A& n6 A7 [- ^
git clone http://github.com/xor-gate/stlink2/ x% ]6 y. ^ Z6 O8 \4 X/ N
如果msys2不想安装git,web页面下载压缩包,然后解压过去,效果是一样的。
. {$ q- d2 S6 y8 |9 X3 X进入stlink目录,打开README.md...先看一看...
& X; u b$ u: M9 P这是个好习惯1 n/ ^! K1 b: I, ~& K9 ?/ s
所有设置都正确,执行make debug即可开始编译。
$ c, r) R* g/ l p) I. F由于现在什么也没做,不出意外,是编不过的。9 z0 P' ^3 D# D9 F
make release应该差不多,先不考虑。1 U2 Y- g! n" Y4 Y
根据出错提示进行修改,修改过后,执行:
% I( H6 I8 P& O! B, zmake clean
5 C$ Z B! I( a1 Z8 Omake debug
% y( D! C& n0 v* [9 t修改方法:1 x/ c9 \6 k$ p
1.提示缺少工具
2 \. h: T; y, Z E比如没装gcc,没装cmake,没装make。。。那么安装一个..,反正少啥就装啥...3 V: [" x B. `" y& r# ~* s- s
, [" n7 [1 i! p! \& F2 B2.提示:
! m; T6 z2 f9 FSystem is unknown to cmake, create:0 z5 F9 a0 D# I8 w$ g
Platform/MINGW32_NT-6.1 to use this system, please send your config file to cmake@www.cmake.org so
9 e5 h) C i- Q: ^. z* S5 |3 M5 z& q! l修改顶层MakeFile[line 49 - 51] (贴出来tab键咋没了 )
9 m, C/ `. v# a* F: ]5 f- build/Debug:. A; A7 u1 I0 _* i+ n7 a; q
- @mkdir -p $@
! X: o- u. H# }/ o$ g2 f$ z - @cd $@ && cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Generic ../../
复制代码 release先不考虑...3 l) }0 V4 N6 p+ o. `3 I
; P6 x. G2 A# D9 I% }9 M7 U3.提示LIBUSB_INCLUDE_DIR LIBUSB_LIBRARY 出错, v- z' ?* f$ b; C
这是因为cmake找不到libusb库,可以手动设置下:
G8 U- M6 a2 i: i1 p修改cmake/Find7Zip.cmake
4 x7 q5 y2 a; H$ j1 _set (LIBUSB_INCLUDE_DIR [这儿填路径,中括号删掉])! ^! L( ]: i; M8 J" ?$ |+ R8 F
set (LIBUSB_LIBRARY [这儿填路径,中括号删掉])
+ q7 ?$ o3 Q" u2 R! bLIBUSB_LIBRARY 指向 你的libusb-1.0.a的路径8 j6 V- N0 P3 F7 _& t2 w
LIBUSB_INCLUDE_DIR 应该也可以随便设,自己把libusb的.h copy过来
+ C9 \; {8 f/ c- G$ h4 ^7 a0 T2 ?0 C5 _" k3 K. Z, u
4.缺少头文件
: {6 ]3 J/ o) r; s3 V8 A反正都能找的到...注意下 include <>与“”的差别
/ t9 E$ @! |* L# C. L) R) T
9 K% J* w; @! b& x附上编译成功的输出信息:' F+ M7 B& E9 V1 E) ]9 C- K
- admin@admin-PC MINGW32 ~/workspace/STLINKALL/stlink2* p: ]% Z4 ]: d$ ]
- $ make debug
0 ]7 z3 F( {! u) ]3 w- v# G3 O2 z - -- The C compiler identification is GNU 5.3.0
6 B4 y0 B' o: F% E - -- Check for working C compiler: /usr/bin/cc.exe
; y b0 C6 f1 r - -- Check for working C compiler: /usr/bin/cc.exe -- works
) Y1 C# E8 K9 F0 H$ t0 F e8 h2 P - -- Detecting C compiler ABI info" v# h9 m, x- P6 ^1 U, K" H
- -- Detecting C compiler ABI info - done4 ]8 v2 T0 S6 Y" G, a1 [
- -- Detecting C compile features" L) u2 q" F- a6 I4 i
- -- Detecting C compile features - done
% _' H8 K8 e; v1 V6 x- k - -- stlink2 version: 0.1.0-dev/ A( c# a4 m& Q1 G5 q O; d
- -- Major 0 Minor 1 Patch 0$ m( A0 e/ x9 ?. m7 z2 s
- -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
; F0 f7 Y- E; m" y+ ] - CMake Warning (dev) at cmake/Doxygen.txt:27 (message):
; M% h* W& W6 R R- I! p& L$ @ - Doxygen is needed to build the documentation.) n% Q+ K& k P. |3 d% m* E/ R6 t
- Call Stack (most recent call first):7 U6 Z3 `$ `) R3 V u2 i
- CMakeLists.txt:19 (include)5 w4 |" @( l0 M; U, e
- This warning is for project developers. Use -Wno-dev to suppress it.
. I- p+ t9 t9 ~3 Y1 O" s - - y/ }2 z3 \9 z( A( \
- -- Performing Test C_SUPPORTS_STD_C99
5 v* M, R' f5 t5 N5 z - -- Performing Test C_SUPPORTS_STD_C99 - Success! a4 q& S# v; o/ o* E; K0 |
- -- Performing Test C_SUPPORTS_WEXTRA
3 R8 J% {, h! E7 j7 @, M8 ^ - -- Performing Test C_SUPPORTS_WEXTRA - Success" d) f n) `. Y# L c p, i. K
- -- Performing Test C_SUPPORTS_WSHADOW# u& Z% F) f+ v8 F+ m2 @& i
- -- Performing Test C_SUPPORTS_WSHADOW - Success$ P+ |- k' O. f6 _* X5 e
- -- Performing Test C_SUPPORTS_D_FORTIFY_SOURCE_2
6 ~, d4 T/ I9 g' J; p; X - -- Performing Test C_SUPPORTS_D_FORTIFY_SOURCE_2 - Success' {' k& a" }. L+ ]$ H" n& M
- -- Performing Test C_SUPPORTS_FSTRICT_ALIASING
4 @+ ^5 j0 c! n9 ?9 r - -- Performing Test C_SUPPORTS_FSTRICT_ALIASING - Success" ?$ {9 Q# A4 [3 w' K8 I, E
- -- Performing Test C_SUPPORTS_WFORMAT( A2 K9 D- q, m3 t8 _) M. y
- -- Performing Test C_SUPPORTS_WFORMAT - Success
6 b1 [+ L; ^: ]" Y - -- Performing Test C_SUPPORTS_WFORMAT_SECURITY3 R# ?, H' {- z8 ?' N# D, [) a% N
- -- Performing Test C_SUPPORTS_WFORMAT_SECURITY - Success
/ E. W5 @+ \: A( t% o - -- Performing Test C_SUPPORTS_WMAYBE_UNINITIALIZED) G6 P$ B) l7 R( h5 r( _
- -- Performing Test C_SUPPORTS_WMAYBE_UNINITIALIZED - Success
/ u; T: g6 k) R1 |8 R% |. g4 r - -- Performing Test C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS1 R3 B4 Q% f, g$ ~* ], V; @) o
- -- Performing Test C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS - Failed) ? y9 o. Q, G0 ~
- -- Performing Test C_SUPPORTS_WSHORTEN_64_TO_32
; B5 W3 ?, [/ n6 c - -- Performing Test C_SUPPORTS_WSHORTEN_64_TO_32 - Failed! W! A1 u3 V, L- M" @" ^
- -- Performing Test C_SUPPORTS_WIMPLICIT_FUNCTION_DECLARATION
4 g8 i7 z- U5 c - -- Performing Test C_SUPPORTS_WIMPLICIT_FUNCTION_DECLARATION - Success
$ @ Q% E6 O9 m! V$ e) l& I# U5 j - -- Performing Test C_SUPPORTS_WREDUNDANT_DECLS
) Z& g: H2 C Q% ?2 E+ H - -- Performing Test C_SUPPORTS_WREDUNDANT_DECLS - Success
5 Y1 w5 b5 u5 n* J - -- Performing Test C_SUPPORTS_WUNDEF
" `& O6 o# m# X" ^+ @: C9 f - -- Performing Test C_SUPPORTS_WUNDEF - Success1 |8 o( l* T1 D: f
- -- Performing Test C_SUPPORTS_WSWITCH; z' b5 [9 G& I- A
- -- Performing Test C_SUPPORTS_WSWITCH - Success
0 M8 ~8 O, U; m. R& V - -- Performing Test C_SUPPORTS_WFLOAT_EQUAL
& h! v8 w" X' Q; B( y - -- Performing Test C_SUPPORTS_WFLOAT_EQUAL - Success
% f' O; z% r3 K - -- Check if the system is big endian3 j' P) ^3 O* P3 p9 ~0 Q
- -- Searching 16 bit integer
6 A9 D; d% V6 E8 ] T - -- Looking for sys/types.h
& f( X! k: \1 w) J$ q) q) \ - -- Looking for sys/types.h - found
7 q6 h; l* ]# u8 X1 y* h - -- Looking for stdint.h7 V7 q0 _2 t3 s; D/ h" {' l0 `. t
- -- Looking for stdint.h - found
* J6 p. b4 }) |9 s; ?) P - -- Looking for stddef.h5 `2 s, H5 i2 s2 M" W
- -- Looking for stddef.h - found
1 p4 H( c" y+ g6 o$ V' X - -- Check size of unsigned short
5 n$ b2 v0 {# g/ h& s' ~9 m! m - -- Check size of unsigned short - done# [* V& S! Z5 v: Y: Z4 {
- -- Using unsigned short% A+ `' W, P- l! v
- -- Check if the system is big endian - little endian ?, G6 r5 y) k
- -- LITTLE_ENDIAN
: M' ~0 {2 u, [7 N9 v( W) a2 e - -- Looking for nanosleep
: a. ]& V6 W1 \6 v/ I; v - -- Looking for nanosleep - found
) U* l/ M% h- G$ V/ I' y - -- Performing Test C_SUPPORTS_WALL5 X4 t+ V E/ w$ J* d
- -- Performing Test C_SUPPORTS_WALL - Success# z$ k8 L& w# s0 S9 z% I. M
- -- Performing Test C_SUPPORTS_O0: L- R* ~/ @" a# u" T, [3 u
- -- Performing Test C_SUPPORTS_O0 - Success9 v) T. Z: C# ?' u8 e" Z9 k% q
- -- Performing Test C_SUPPORTS_GGDB
3 f3 l ]: w. J8 g Z! k/ I0 }1 K) N - -- Performing Test C_SUPPORTS_GGDB - Success
9 r+ `# b1 Q E' S - -- Performing Test C_SUPPORTS_FPROFILE_ARCS" Y2 E" T! _# X# o2 V. v
- -- Performing Test C_SUPPORTS_FPROFILE_ARCS - Failed
2 @! [% a7 N! m" h - -- Performing Test C_SUPPORTS_FTEST_COVERAGE# U' E2 o8 @- U! L$ `' [3 z
- -- Performing Test C_SUPPORTS_FTEST_COVERAGE - Success
, R* w6 e& L: g0 j* k- w3 f - -- Performing Test C_SUPPORTS_FNO_OMIT_FRAME_POINTER- J. x4 A n4 T3 n
- -- Performing Test C_SUPPORTS_FNO_OMIT_FRAME_POINTER - Success
/ Y: @/ U/ @! H3 k - -- LIBUSB_INCLUDE_DIR: ~/workspace/STLINKALL/stlink2/3thparty/libusb-1.0.21/libusb-1.0.21/libusb/3thparty/libusb-1.0.21/libusb-1.0.21/libusb/
9 O' K1 \2 }# J - -- Found Libusb: ~/workspace/STLINKALL/stlink2/3thparty/libusb-1.0.21/libusb-1.0.21/libusb/.libs/libusb-1.0.a% a Y8 Z% T. |$ Q+ S
- CMake Warning (dev) at src/CMakeLists.txt:39 (add_library):! q9 g, H: i0 W, ^
- ADD_LIBRARY called with SHARED option but the target platform does not
" r U0 Q7 [9 R6 ? - support dynamic linking. Building a STATIC library instead. This may lead
: N) {$ J4 [. V ^ - to problems.. r4 L q- N5 |
- This warning is for project developers. Use -Wno-dev to suppress it.
; o w+ a" S( l7 i) p% h# T
- Q7 q( r- |8 A" o( ~ }3 z7 E- -- Found Perl: /usr/bin/perl.exe (found version "5.22.1")0 r' f1 v: c7 R: X
- -- tests enabled7 u$ e" l# _% R- g& ?5 `4 \+ A
- -- Configuring done; a4 k( c. S2 b& t. O9 d6 e
- -- Generating done. R; i g4 i4 {/ S' ?
- -- Build files have been written to: /aaaa/workspace/STLINKALL/stlink2/build/Debug
3 ]; h8 f' k, A* ^* Z+ @$ y - [DEBUG]
y6 d# l3 k* d+ Y! L7 A7 r. @ - Scanning dependencies of target stlink2-shared K3 e# s* I$ W0 m8 O
- [ 2%] Building C object src/CMakeFiles/stlink2-shared.dir/stlink2.c.obj
/ @2 b7 T5 I t3 l. C - [ 5%] Building C object src/CMakeFiles/stlink2-shared.dir/cortexm.c.obj
3 `" h" ~+ a5 z2 S1 c& j) Y - [ 8%] Building C object src/CMakeFiles/stlink2-shared.dir/flash.c.obj( X6 M1 q& V! Z" e) |! `
- [ 11%] Building C object src/CMakeFiles/stlink2-shared.dir/log.c.obj& a9 r; Q- K- g; Q
- [ 14%] Building C object src/CMakeFiles/stlink2-shared.dir/usb.c.obj: k' E9 o9 D& S- I4 N! M4 H
- [ 17%] Building C object src/CMakeFiles/stlink2-shared.dir/stm32.c.obj
5 m% a* U0 x5 z1 V4 k' O0 m" q2 C" v - [ 20%] Building C object src/CMakeFiles/stlink2-shared.dir/semihosting.c.obj
# ]: ?4 s0 ?; A: P0 ]+ I j v - [ 23%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/hexstr.c.obj
3 D3 q8 a$ f0 o - [ 26%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/msleep.c.obj+ K; ^# U5 x3 e! a ~3 T
- [ 29%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/ihex.c.obj
! X6 y; U- @- u# [+ Z7 U - [ 32%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/flag.c.obj
. Y5 g; F! N; H2 P6 ?& p8 r P - [ 35%] Linking C static library stlink2.a3 b" h w# W/ {1 H0 @6 V; `: n4 u8 v
- [ 35%] Built target stlink2-shared
% W( e( {6 G$ p$ g1 x/ A - Scanning dependencies of target stlink2-static1 B5 X8 g; [% b6 {4 q
- [ 38%] Building C object src/CMakeFiles/stlink2-static.dir/stlink2.c.obj
! w( W9 i8 F2 z# ~5 c - [ 41%] Building C object src/CMakeFiles/stlink2-static.dir/cortexm.c.obj; J/ x7 d$ [! q. a( d( i$ G
- [ 44%] Building C object src/CMakeFiles/stlink2-static.dir/flash.c.obj
2 G; a) m# Q5 _1 C! L$ z' o2 _ - [ 47%] Building C object src/CMakeFiles/stlink2-static.dir/log.c.obj
3 i; I/ q: V( N" K2 @7 d6 H - [ 50%] Building C object src/CMakeFiles/stlink2-static.dir/usb.c.obj P( Y0 E" f+ P
- [ 52%] Building C object src/CMakeFiles/stlink2-static.dir/stm32.c.obj
. r* {( E2 F0 E3 s2 ?2 [4 R; E - [ 55%] Building C object src/CMakeFiles/stlink2-static.dir/semihosting.c.obj
/ ~& W: C& N1 C9 @' L: v1 t% ^ - [ 58%] Building C object src/CMakeFiles/stlink2-static.dir/utils/hexstr.c.obj
/ B! T6 Q# j4 T$ T; F - [ 61%] Building C object src/CMakeFiles/stlink2-static.dir/utils/msleep.c.obj: N" Y9 m/ M+ Q/ U @- j
- [ 64%] Building C object src/CMakeFiles/stlink2-static.dir/utils/ihex.c.obj3 Y1 E! N. K; ]+ Q8 j
- [ 67%] Building C object src/CMakeFiles/stlink2-static.dir/utils/flag.c.obj
/ t) R6 u$ s4 d* p8 S0 H: _. { - [ 70%] Linking C static library stlink2.a
" V- _/ c+ c& G% O - [ 70%] Built target stlink2-static
9 x' d; Q8 S( q2 V+ W! ` - Scanning dependencies of target stlink2
c4 \- C) S& J& K1 M - [ 73%] Building C object src/cmd/stlink2/CMakeFiles/stlink2.dir/main.c.obj
8 S1 n" E9 z4 p; b' B - [ 76%] Linking C executable stlink2
/ C, i0 l- C4 d - [ 76%] Built target stlink2
- p% n0 G& u( C$ C# _ - Scanning dependencies of target probe0 |2 x6 G, k% J; O' r3 ^( j; C
- [ 79%] Building C object tests/CMakeFiles/probe.dir/probe.c.obj3 c, }% g- h9 E& \/ N
- [ 82%] Linking C executable probe
5 b( \# U2 Y. r# E# a - [ 82%] Built target probe
5 Q* H. T+ ^9 N: x: V- d2 h - Scanning dependencies of target open_close" z: L+ a. B3 k! Y# k. ~
- [ 85%] Building C object tests/CMakeFiles/open_close.dir/open_close.c.obj
$ [' |/ [) b1 c0 L% Z! ` - [ 88%] Linking C executable open_close
9 m$ M; d- N; r. A/ ]! R" |* X) p - [ 88%] Built target open_close
) j" {) o' ]4 T7 U - Scanning dependencies of target ihex' R# `9 V( F* E$ q* h& s% z
- [ 91%] Building C object tests/CMakeFiles/ihex.dir/ihex.c.obj3 S( }0 x6 G! N# p6 l0 C& o
- [ 94%] Linking C executable ihex7 t9 D" i; C+ W. N3 T- U. D; l
- [ 94%] Built target ihex9 w! B, p9 l# D0 y6 z$ r
- Scanning dependencies of target log
; e) x& T' t( N( C" ?1 t - [ 97%] Building C object tests/CMakeFiles/log.dir/log.c.obj" F7 m0 ^' G" @
- [100%] Linking C executable log
5 A* d! \# d/ x1 o$ x+ O# | - [100%] Built target log
: f$ s. b0 `, {4 d0 B- n - 6 y C$ c3 F- L1 d
- admin@admin-PC MINGW32 ~/workspace/STLINKALL/stlink2$ q7 a8 e3 o! k
复制代码 测试工具在 build\Debug\tests6 |7 b) R( \% o% i
编好的静态库 build\Debug\src\stlink2.a
. s- p. G8 d/ e
/ m0 q2 m: _3 g4 }. ~- C& i8 Q' L: }0 n/ d6 t

1 @2 I8 B, n9 [- \. g$ F- ~) L
: j- n0 |. |; b c' ]2 e
msys2命令行下可直接运行.& Z0 ?9 i: m# z- v" Z; P
window cmd下运行可能会提示缺少msys-2.0.dll,msys2\usr\bin下可以找的9 n0 M0 e+ k! C9 V. B3 `
$ W" q" A7 |( B7 B! D$ g测试一下:
% O; k% j/ ^* _8 ]& U l4 e& c6 W, T2 v3 R5 D; J& W
open_close
: f5 |# d. R; I. p) P- M3 D% r% p' I$ G% q' T# d$ }; N

: O* H) i) r" Z9 ~4 ZENJOY YOURSELF 
- ~" v v0 m- g6 |
6 B1 A$ F' n1 v; y' O: p3 U7 o5 }8 Z. r
% l( v3 ?. R% l) S, U% R& ^3 c
" @2 Q* J( A: O; t0 e" }% M
' E9 I6 l# A: @8 l S
; j: a# ^0 [' R. g# L |
7 J- i( ?& C1 Q/ x
修改下open_close.c:
标记备用
我截图用的NUCLEO-F303RE..' P7 ^* v0 ]# ]
最近也在搞这个。
* C! s( c# M8 v1 V) x3 V
我用的是TDM-GCC,cmake已经构建成功,make有问题,先赞一下楼主,再回过头看。
现在已经编译成功,生成了三个文件,sg.exe flash.exe usb.exe 问一下楼主,接下来应该怎么用啊???# V, F* N' f2 l0 Y7 `
你用的应该是http://github.com/texane/stlink吧。2 J$ U" E, X; b+ W5 S
和我一楼说的不是一个东西。这个要比我1楼说的功能强很多.. ~$ t/ ?& Y& d/ f2 F5 c8 c
这个github上有编译好的win64版本
官方stlink utility 就有这功能的.(没用过
http://www.st.com/content/ccc/re ... s/en.CD00262073.pdf
2.2.6节 3.9节 等( W9 v# L. h4 _- v2 d/ b m
0 `# F! Z _( N8 p2 q& o- I
软件我是用过的,现在是想用STlink通过读写寄存器配置STM32的SPI,将数据写入DR寄存器。然后再外置的SPI FLASH读取DR寄存器。来直接对外置SPI FLASH进行读写操作。
有一个*.a的库。
ihex log open_close相当于是例子.功能比较少...
那意思是,这个不是一个完整的工具?而只是一个开发库?
是啊.
另外,找了半天只找到memread,没找到memwrite
功能不是很全,编译一下,纯当练练手了.