! D+ |# _6 E! r+ Z; O* y' G' k1 y0 l
% o6 e& P: E# o- |) c9 N
/ y6 ]6 i0 e7 V/ ?% B, P
写在前面:
7 ]2 F ~( |1 ]& G# f7 @0.好久不发帖子,排版略渣
8 M: T+ w7 A+ U1 q+ l1.编译是可以成功的,但不保证不同环境及设置所造成差异; N% @% s/ {: Z0 V1 S
2.只是编译通过,库本身是否有bug属于未知问题.- W9 L8 h9 u! \7 O; [# P0 m
, i) ?; z3 {2 g& {* v4 N: l2 I! B
1 w2 A1 i% B/ Z% ^& ?仓库简介:/ E9 A# V" |" Z8 \1 O3 `
STMicroelectronics STlinkv2 programmer library and tools
/ K3 C) @- z4 ~; S* S(具体可到web页面上自己看 http://github.com/xor-gate/stlink2)
6 n. l0 p; H9 k. @ Z5 y- P这个就不多说的,代码不是我写的.5 \9 X8 _0 i( D9 U# F8 T1 ?
, v5 w# y$ o1 J: A
. M* m) m# Z6 A) b: E8 k! E m" C
windows环境编译心得及步骤:7 q0 \; M* r6 x% @9 D( k! s
1.搭建msys2环境。
8 [. U' H" q- r4 j5 R5 K[仅mingw可能就够用了,不过考虑到源码用到cmake,有个shell命令行开发环境,是相当有必要的]" R3 R' i- c1 @; n$ e
下载 msys2安装包(我用的是msys2-x86_64-20161025.exe)
% H0 u* t: R: X2 e9 m9 d8 f0 aref:1 y8 h1 p, b0 J, F$ |- S$ a
http://sourceforge.net/projects/msys2/files/Base/i686/ 7 T5 k$ B* r3 @, t0 L
http://www.msys2.org/
* F5 W3 A) {8 X5 L5 T3 k! T" g印象中这个是要windows 64位操作系统才支持的。
0 a# r) Z( X" h: M( ~安装步骤略...,就是一路点下去,设个安装路径.$ ~4 h6 a7 l7 ]% |- d- p# ^
启动过后用pacman安装必要的工具,这个不是本贴重点,暂略...0 g2 E1 W9 a, c- k* a. s% H- k1 y
具体可以百度google,网络不行pacman的源也可以修改,baidu吧.
; z! J! J7 i/ g+ Y/ r6 T; L
6 M- m. k; G6 W5 N$ X2.编译libusb# @/ m0 N" ^' X) y" a
下载libusb-1.0源码
4 c1 s3 u1 f& S* p/ J[参:http://sourceforge.net/projects/libusb/files/libusb-1.0/]
i2 X# a7 K: [子版本号应该不是重点 ^1 o7 q+ M5 w! h" t3 L z
这个编译很简单,编译步骤:
* }/ y! I( D* i0 u5 Q- 解压
- msys2进入相应目录下
- ./configure
- make
( s3 J5 g ^. x& a7 t4 G$ g* j- D ' B" G2 h& ?& R& J! t( y
如果成功,在libusb/.libs目录下生成libusb的静态库和动态库.这是我们需要的。
) l L2 s) h6 P8 y% Ulibusb/下的头文件也用的到.& t7 ]# \# q7 L! b
' |6 k+ M l6 G5 t4 x; R1 M. X; B; F
几点说明:
, }8 v% S. v# ^[注1:可以make install,但并非必要]
3 I5 e% x0 L. c, L' _[注2:可以指定安装路径,也非必要 ./configure --help 查看帮助]
[9 Z6 S' D; l, n s3 `( Z6 z; V2 w4 j0 e
3.编译stlink2- e0 v: E5 ]% Z' g( u, {8 D' j6 S/ V
下载源码:( d1 S) X I, X7 l9 Y: z' |
git clone http://github.com/xor-gate/stlink2
* W, N' w# o, G9 z( c; T如果msys2不想安装git,web页面下载压缩包,然后解压过去,效果是一样的。
& Z j5 z9 u: f# q$ } I进入stlink目录,打开README.md...先看一看...
, d) O: y, G1 ?* }, {' ^这是个好习惯
% w5 i4 s' W2 j. F. Q; L# _' u所有设置都正确,执行make debug即可开始编译。0 g# c* [ [2 X! U9 o1 I8 l* W
由于现在什么也没做,不出意外,是编不过的。2 n5 m! i% ~6 Q7 i8 m* a5 B
make release应该差不多,先不考虑。7 _% ]8 f% W; W3 K. k: P7 }7 \
根据出错提示进行修改,修改过后,执行:7 T. H G& f0 H, w
make clean. |: {3 [3 q# }
make debug) Q6 R v# Q5 O9 F1 t* [3 B
修改方法:! x. o4 B& E3 j5 M( \/ m' ^
1.提示缺少工具/ t1 _ U9 v' A5 i" V$ Q. M9 C
比如没装gcc,没装cmake,没装make。。。那么安装一个..,反正少啥就装啥...
+ T! N, ^1 K) R) F, n* n* e7 ]$ B
_3 |# X, V" P2 a( z9 }: O2.提示:
2 Y7 N, O( C: @$ F- Y" \9 k2 m7 aSystem is unknown to cmake, create:
' R2 y; d/ W. `1 N! W$ @4 y. aPlatform/MINGW32_NT-6.1 to use this system, please send your config file to cmake@www.cmake.org so0 U- _, P8 X" e9 a3 H
修改顶层MakeFile[line 49 - 51] (贴出来tab键咋没了 )
9 D; r0 ?& }. h- build/Debug:- I5 E$ V& C6 X$ V
- @mkdir -p $@
4 e4 a/ g& [8 W1 I( A/ O3 `4 J/ K - @cd $@ && cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Generic ../../
复制代码 release先不考虑...- a" k g( f6 D. V% k* O
" |" O2 a; {2 j# w3.提示LIBUSB_INCLUDE_DIR LIBUSB_LIBRARY 出错2 y. a! v5 P) L
这是因为cmake找不到libusb库,可以手动设置下:/ ?' t1 F/ i' @: ?/ G9 n$ Z5 c3 U
修改cmake/Find7Zip.cmake
! V) I9 H: Z% L" fset (LIBUSB_INCLUDE_DIR [这儿填路径,中括号删掉])9 V1 g$ }' i6 h% d" m/ y. Q
set (LIBUSB_LIBRARY [这儿填路径,中括号删掉])
6 n8 B6 B' [) u1 k9 V! ]# ^( BLIBUSB_LIBRARY 指向 你的libusb-1.0.a的路径1 W- C5 X, M0 H# R3 w
LIBUSB_INCLUDE_DIR 应该也可以随便设,自己把libusb的.h copy过来/ F5 V# E* V8 G2 ^$ B/ [
' }% N; P6 B) o% R3 |1 S B3 x4.缺少头文件
( }" y, L0 f; ]0 C/ r/ `# H反正都能找的到...注意下 include <>与“”的差别
# z0 c2 s4 O6 }! x0 e" `7 a
; d+ O0 F0 f$ B6 n# R附上编译成功的输出信息:
, u) J$ w- |( a2 F k2 B2 z, d& ^- admin@admin-PC MINGW32 ~/workspace/STLINKALL/stlink23 R2 w5 r. P$ [$ j! ]* b g/ X$ d
- $ make debug/ W4 m3 p0 y0 f* a
- -- The C compiler identification is GNU 5.3.0
( X$ p* Q- N$ w4 f% y/ q - -- Check for working C compiler: /usr/bin/cc.exe. n3 @' S9 W/ R. I# k3 M! j& \
- -- Check for working C compiler: /usr/bin/cc.exe -- works
3 w8 K3 \$ m9 {3 Q9 b - -- Detecting C compiler ABI info
o+ R e5 e3 w - -- Detecting C compiler ABI info - done' |! a& p" o1 B7 M6 ?# Q
- -- Detecting C compile features
6 h; d u! T' ` - -- Detecting C compile features - done0 L, u8 O j) T. t6 X# ] t
- -- stlink2 version: 0.1.0-dev
) K( Y$ P- B G, R! i+ A - -- Major 0 Minor 1 Patch 0
( E, [7 b# V/ K0 E7 f - -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
% i4 ?2 C- J3 E3 F - CMake Warning (dev) at cmake/Doxygen.txt:27 (message):, K, i: E& M2 ?& ^) z L9 T" ?
- Doxygen is needed to build the documentation.
% [, {6 Y8 G1 \- }, ?% O3 W - Call Stack (most recent call first):+ B# N" N& b# T/ e: [" I. T
- CMakeLists.txt:19 (include)6 W5 ^7 J I4 J8 b
- This warning is for project developers. Use -Wno-dev to suppress it.6 Z6 j! | Z4 \1 x; E; _$ }
j3 R' }; g" \% R) \! z1 u$ [/ Q- -- Performing Test C_SUPPORTS_STD_C99
+ [" l: c9 f: y$ y* ]' y3 h - -- Performing Test C_SUPPORTS_STD_C99 - Success
9 A1 V4 X9 e1 R6 q - -- Performing Test C_SUPPORTS_WEXTRA) m8 B5 U& F5 z, b' N4 i
- -- Performing Test C_SUPPORTS_WEXTRA - Success S/ c/ b1 U6 J: T
- -- Performing Test C_SUPPORTS_WSHADOW
! R; u; O' ^4 j/ w; W3 \ - -- Performing Test C_SUPPORTS_WSHADOW - Success( L# S3 s3 w" L2 N7 O9 ~5 y% ^: ]* @% S
- -- Performing Test C_SUPPORTS_D_FORTIFY_SOURCE_21 X; O* _4 I1 h2 N. s
- -- Performing Test C_SUPPORTS_D_FORTIFY_SOURCE_2 - Success# N" z7 k. a, z
- -- Performing Test C_SUPPORTS_FSTRICT_ALIASING
% K3 g6 [0 W) D8 m - -- Performing Test C_SUPPORTS_FSTRICT_ALIASING - Success
6 g+ D- v/ n* U( U' V! x4 r6 q$ D - -- Performing Test C_SUPPORTS_WFORMAT
# {. I& I$ C" j5 {" k. } - -- Performing Test C_SUPPORTS_WFORMAT - Success) w/ R& Z+ H9 P3 ~
- -- Performing Test C_SUPPORTS_WFORMAT_SECURITY' Z! j* p k7 i0 d3 ]
- -- Performing Test C_SUPPORTS_WFORMAT_SECURITY - Success
9 J: @) E! t J T+ | - -- Performing Test C_SUPPORTS_WMAYBE_UNINITIALIZED8 F( h _$ x1 m
- -- Performing Test C_SUPPORTS_WMAYBE_UNINITIALIZED - Success, r% O2 [% d& Y" d' M) l
- -- Performing Test C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS
. ~7 K: M) g7 J3 A - -- Performing Test C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS - Failed' N3 L/ h5 F1 ^' c8 W# a q9 |
- -- Performing Test C_SUPPORTS_WSHORTEN_64_TO_32* M( r% a" h1 b
- -- Performing Test C_SUPPORTS_WSHORTEN_64_TO_32 - Failed2 A' ] i# n, w
- -- Performing Test C_SUPPORTS_WIMPLICIT_FUNCTION_DECLARATION
% _4 O) u! _+ h5 U7 K. Y - -- Performing Test C_SUPPORTS_WIMPLICIT_FUNCTION_DECLARATION - Success. M2 w% f' ^0 a Y$ q K$ d
- -- Performing Test C_SUPPORTS_WREDUNDANT_DECLS
/ G2 h0 u5 S }& j0 v, L/ l9 [ - -- Performing Test C_SUPPORTS_WREDUNDANT_DECLS - Success
0 s0 |- b0 G0 X4 K) k - -- Performing Test C_SUPPORTS_WUNDEF: g- q" z( a+ v' o. Q4 h6 c
- -- Performing Test C_SUPPORTS_WUNDEF - Success
% _/ T/ I3 \3 Q - -- Performing Test C_SUPPORTS_WSWITCH
3 @$ Y( X/ q5 K/ @3 I1 k - -- Performing Test C_SUPPORTS_WSWITCH - Success
6 a' n' D) v* L - -- Performing Test C_SUPPORTS_WFLOAT_EQUAL" F7 G' u7 ?( e, T `6 Y1 l
- -- Performing Test C_SUPPORTS_WFLOAT_EQUAL - Success- R8 n: H }; \ s, W% F4 W3 c4 T
- -- Check if the system is big endian
) x( r( o0 r" x+ x j$ f - -- Searching 16 bit integer
$ i5 _5 u+ c1 z& |, u) ^/ T - -- Looking for sys/types.h% z& U3 Y ]+ c/ [
- -- Looking for sys/types.h - found
4 ^% e% V: r0 z: o$ e) Y - -- Looking for stdint.h7 i8 g; Z+ c( L3 a8 \
- -- Looking for stdint.h - found Y0 @+ ]& U4 X; P A5 K
- -- Looking for stddef.h
z% I; W/ S$ E6 I9 r - -- Looking for stddef.h - found5 M3 \+ [# O7 ^3 Q% w
- -- Check size of unsigned short5 ^: U. `, V( K y* w/ Y
- -- Check size of unsigned short - done* U) R4 _. J# z1 ?% H
- -- Using unsigned short7 f& ^1 Z; ]. {' b8 A; d
- -- Check if the system is big endian - little endian. W9 N M. E$ ?
- -- LITTLE_ENDIAN
" n) V' Q. H6 ]: x+ q - -- Looking for nanosleep
5 d# X! A) Z2 p+ q: _ N1 M E& R - -- Looking for nanosleep - found
5 M; w( h- r) V1 p' z: R; ~ - -- Performing Test C_SUPPORTS_WALL- h9 B6 A9 x, e/ i2 V, W* O
- -- Performing Test C_SUPPORTS_WALL - Success
' N! m3 @ D7 j+ Y' C' C* J( w& } - -- Performing Test C_SUPPORTS_O0 s9 u. F0 e' `$ c1 E6 c
- -- Performing Test C_SUPPORTS_O0 - Success! }2 b0 z( E- ~, _, x7 M
- -- Performing Test C_SUPPORTS_GGDB
( H8 r- [) O0 e- o- t9 U7 r7 x - -- Performing Test C_SUPPORTS_GGDB - Success, z; H5 N: d/ m5 q( X0 B0 E2 X! x' D
- -- Performing Test C_SUPPORTS_FPROFILE_ARCS
+ Z* X1 u2 R5 a' S- ?( ] - -- Performing Test C_SUPPORTS_FPROFILE_ARCS - Failed
9 \( ^6 |+ T8 U3 Z& g3 S |6 h - -- Performing Test C_SUPPORTS_FTEST_COVERAGE
: G3 \* F( y! x$ N, K) E# K& T - -- Performing Test C_SUPPORTS_FTEST_COVERAGE - Success7 D7 d5 D! ^8 f) u1 W
- -- Performing Test C_SUPPORTS_FNO_OMIT_FRAME_POINTER
8 \ D' \- Q; k - -- Performing Test C_SUPPORTS_FNO_OMIT_FRAME_POINTER - Success
8 _9 x- E" \9 O* }- X - -- 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/* e* J* B4 d$ I; G0 d% M% \. N
- -- Found Libusb: ~/workspace/STLINKALL/stlink2/3thparty/libusb-1.0.21/libusb-1.0.21/libusb/.libs/libusb-1.0.a
. `( Y6 M3 J. W7 E - CMake Warning (dev) at src/CMakeLists.txt:39 (add_library):
) k, C2 }& X1 u; x% w" u - ADD_LIBRARY called with SHARED option but the target platform does not, j) E" e; `5 n' K
- support dynamic linking. Building a STATIC library instead. This may lead
. E) G1 [- [% D - to problems.
/ c& N% Q! s4 S7 n) L+ r - This warning is for project developers. Use -Wno-dev to suppress it.% c+ f4 X; q: U! R" G3 z0 Y
- + j) e- C/ S9 I( n
- -- Found Perl: /usr/bin/perl.exe (found version "5.22.1")
7 |6 K7 J8 K5 X4 N. b( t - -- tests enabled2 A& P" Q; ]8 z. H0 z" `0 J( R' o
- -- Configuring done
0 W$ ~( y3 I' K - -- Generating done% f: X; C4 z" ]' w
- -- Build files have been written to: /aaaa/workspace/STLINKALL/stlink2/build/Debug
, P* u2 D& } b- K - [DEBUG]
$ W0 p& x9 `5 \$ U' E9 i& O2 o, Q - Scanning dependencies of target stlink2-shared
- Y0 m" Z9 t% y( D6 ]2 h/ ^8 E - [ 2%] Building C object src/CMakeFiles/stlink2-shared.dir/stlink2.c.obj
7 S' T# N9 o! q; x% ^0 R1 ~ - [ 5%] Building C object src/CMakeFiles/stlink2-shared.dir/cortexm.c.obj; ~$ u& Z% c7 n0 w2 ]
- [ 8%] Building C object src/CMakeFiles/stlink2-shared.dir/flash.c.obj
$ I' O6 `& G) p, g& Y- r - [ 11%] Building C object src/CMakeFiles/stlink2-shared.dir/log.c.obj* p: t' ~% m- P7 r7 j2 u
- [ 14%] Building C object src/CMakeFiles/stlink2-shared.dir/usb.c.obj
; j/ P% B- ^8 l3 R: x/ z. E - [ 17%] Building C object src/CMakeFiles/stlink2-shared.dir/stm32.c.obj
0 g% i7 A, L8 f/ F+ |7 d - [ 20%] Building C object src/CMakeFiles/stlink2-shared.dir/semihosting.c.obj) d) C$ ^% o( x, i
- [ 23%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/hexstr.c.obj9 |% P2 K5 K# W) t; A0 v
- [ 26%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/msleep.c.obj& I% Y* P$ |0 X, h; \1 p; p
- [ 29%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/ihex.c.obj: C/ w( f0 I) N
- [ 32%] Building C object src/CMakeFiles/stlink2-shared.dir/utils/flag.c.obj
1 D7 W4 q; m* ~' I7 y9 { - [ 35%] Linking C static library stlink2.a
8 d c$ x' c; H - [ 35%] Built target stlink2-shared
1 Y2 q/ ?$ Y% M- U0 v - Scanning dependencies of target stlink2-static
3 v9 T8 C3 M3 X# ]0 H - [ 38%] Building C object src/CMakeFiles/stlink2-static.dir/stlink2.c.obj$ E( u- E) z' V6 Z, u
- [ 41%] Building C object src/CMakeFiles/stlink2-static.dir/cortexm.c.obj
+ T K( |! c8 t3 f - [ 44%] Building C object src/CMakeFiles/stlink2-static.dir/flash.c.obj
2 B& B. L( {4 T - [ 47%] Building C object src/CMakeFiles/stlink2-static.dir/log.c.obj# N2 N9 M i, j3 W
- [ 50%] Building C object src/CMakeFiles/stlink2-static.dir/usb.c.obj4 s# F7 J5 L! Q+ h, W' O( p6 C) @
- [ 52%] Building C object src/CMakeFiles/stlink2-static.dir/stm32.c.obj
" R; I8 `5 ?* N8 q - [ 55%] Building C object src/CMakeFiles/stlink2-static.dir/semihosting.c.obj
E3 S; {4 _4 Y( w# \1 Z - [ 58%] Building C object src/CMakeFiles/stlink2-static.dir/utils/hexstr.c.obj7 r; g4 o4 U9 C b: ~5 u1 D/ Y
- [ 61%] Building C object src/CMakeFiles/stlink2-static.dir/utils/msleep.c.obj
+ U' A4 U+ ] y$ K; N' | - [ 64%] Building C object src/CMakeFiles/stlink2-static.dir/utils/ihex.c.obj* [7 f% i) O$ N, @. i* a
- [ 67%] Building C object src/CMakeFiles/stlink2-static.dir/utils/flag.c.obj
4 N$ a% O# A" y - [ 70%] Linking C static library stlink2.a
& z! L' @* g$ P) H - [ 70%] Built target stlink2-static% G9 S& V+ w$ H; S( U
- Scanning dependencies of target stlink27 C/ O% i1 D! n
- [ 73%] Building C object src/cmd/stlink2/CMakeFiles/stlink2.dir/main.c.obj$ C* o' u; d6 a9 ] h
- [ 76%] Linking C executable stlink2
! X0 x c7 d+ f- r4 |, f+ Q - [ 76%] Built target stlink2, V \/ j6 Q" ?0 F! ^) w o) e$ W; L
- Scanning dependencies of target probe$ H0 H* H2 c! n# L/ W* @9 Q
- [ 79%] Building C object tests/CMakeFiles/probe.dir/probe.c.obj* {; |7 i; g- l4 O
- [ 82%] Linking C executable probe
3 F) i! |8 f' E" Y2 V8 K - [ 82%] Built target probe
( [6 ~0 e% H" l {& V. K& v - Scanning dependencies of target open_close
" _5 j1 p: q' j4 Y+ P3 ` - [ 85%] Building C object tests/CMakeFiles/open_close.dir/open_close.c.obj
' ]' M+ w0 T4 E7 _ - [ 88%] Linking C executable open_close; @3 [- k: K6 @+ q% x9 t# W
- [ 88%] Built target open_close5 r% G! Q: \( Y0 P0 Q n4 [
- Scanning dependencies of target ihex
$ O l* y' ]# b+ ?: D" N - [ 91%] Building C object tests/CMakeFiles/ihex.dir/ihex.c.obj3 C0 Y0 v! E. n
- [ 94%] Linking C executable ihex
; [3 u6 O7 V( j" L+ u - [ 94%] Built target ihex
6 ]; Q ~, P: B$ g' T8 z7 Q$ y2 A - Scanning dependencies of target log# b! ~$ i# B0 r$ o1 K
- [ 97%] Building C object tests/CMakeFiles/log.dir/log.c.obj. Y3 v" o5 H$ H9 q8 A4 M
- [100%] Linking C executable log
: C! L( Q6 U* m7 S; d& M - [100%] Built target log
& h2 a4 p9 ?" l
: l# `2 }$ c4 S6 S; g. m$ @/ H/ s y- admin@admin-PC MINGW32 ~/workspace/STLINKALL/stlink2% G! d: x% U/ } q% y/ N
复制代码 测试工具在 build\Debug\tests) R4 i f7 q" d8 D5 g( L4 }
编好的静态库 build\Debug\src\stlink2.a
' d0 ^0 @' r5 J" w; m* [" ~: e1 p. N) T
, E+ ^+ A% `. i8 s$ {3 q # S. M" q9 c. U6 m
: r' X Q( W {: s6 d5 h
9 F S, h+ a5 i) p; `2 zmsys2命令行下可直接运行.
* x& X' a0 B0 Mwindow cmd下运行可能会提示缺少msys-2.0.dll,msys2\usr\bin下可以找的
4 V0 g; J7 y+ }* t) B& F# q
5 T. U7 T& ]8 f2 B$ G/ A) p测试一下:
2 N% }9 Z# G; F, J1 L6 Q1 L! |+ [# h
% o! [% @4 a8 R. \" c9 v
open_close
9 o0 s& d" _5 _6 e5 W; s D' y
( J9 l \0 d1 }5 \; W) ^% m, B! p ' L# d4 H2 u& T' Y) S4 A6 i
ENJOY YOURSELF 
0 L( Y8 F6 Q0 S+ z3 x0 M
: R2 c$ D# `9 h3 H
5 h3 M5 W1 {' T) d0 K' u) a3 d+ S
: ?7 i0 P$ w! X+ V+ A. D5 Y7 @$ |; a' M0 E& T
4 c# c8 s. h- b, J& H
! _. Z" ?9 G, U
2 Q+ z8 v4 }/ k$ n1 l \ |
修改下open_close.c:1 N" i1 j' ?$ u+ V6 L$ F) E
标记备用
我截图用的NUCLEO-F303RE../ Y& t; q: Q3 V
最近也在搞这个。
6 t' _" f4 L/ L( q& J* N( r% Z) ]
我用的是TDM-GCC,cmake已经构建成功,make有问题,先赞一下楼主,再回过头看。$ n+ z0 J1 h( I& Y1 N4 h2 h
现在已经编译成功,生成了三个文件,sg.exe flash.exe usb.exe 问一下楼主,接下来应该怎么用啊???
你用的应该是http://github.com/texane/stlink吧。& H( E3 _0 c# q1 v
和我一楼说的不是一个东西。这个要比我1楼说的功能强很多.
这个github上有编译好的win64版本
官方stlink utility 就有这功能的.(没用过
http://www.st.com/content/ccc/re ... s/en.CD00262073.pdf
2.2.6节 3.9节 等6 w* T8 i P* J$ O8 n* j7 u5 w' [
/ H( a, C9 c g
软件我是用过的,现在是想用STlink通过读写寄存器配置STM32的SPI,将数据写入DR寄存器。然后再外置的SPI FLASH读取DR寄存器。来直接对外置SPI FLASH进行读写操作。
有一个*.a的库。# c" R& M. W: W
ihex log open_close相当于是例子.功能比较少...
那意思是,这个不是一个完整的工具?而只是一个开发库?
是啊.& Y" l& J: [, M" q5 @+ ^8 U/ |
另外,找了半天只找到memread,没找到memwrite
功能不是很全,编译一下,纯当练练手了.! A0 G3 r, Q4 |. h& E