
![]() 写在前面: 0.好久不发帖子,排版略渣 ![]() 1.编译是可以成功的,但不保证不同环境及设置所造成差异 2.只是编译通过,库本身是否有bug属于未知问题. 仓库简介: STMicroelectronics STlinkv2 programmer library and tools (具体可到web页面上自己看 http://github.com/xor-gate/stlink2) 这个就不多说的,代码不是我写的. windows环境编译心得及步骤: 1.搭建msys2环境。 [仅mingw可能就够用了,不过考虑到源码用到cmake,有个shell命令行开发环境,是相当有必要的] 下载 msys2安装包(我用的是msys2-x86_64-20161025.exe) ref: http://sourceforge.net/projects/msys2/files/Base/i686/ http://www.msys2.org/ 印象中这个是要windows 64位操作系统才支持的。 安装步骤略...,就是一路点下去,设个安装路径. 启动过后用pacman安装必要的工具,这个不是本贴重点,暂略... 具体可以百度google,网络不行pacman的源也可以修改,baidu吧. ![]() 2.编译libusb 下载libusb-1.0源码 [参:http://sourceforge.net/projects/libusb/files/libusb-1.0/] 子版本号应该不是重点 这个编译很简单,编译步骤:
如果成功,在libusb/.libs目录下生成libusb的静态库和动态库.这是我们需要的。 libusb/下的头文件也用的到. 几点说明: [注1:可以make install,但并非必要] [注2:可以指定安装路径,也非必要 ./configure --help 查看帮助] 3.编译stlink2 下载源码: git clone http://github.com/xor-gate/stlink2 如果msys2不想安装git,web页面下载压缩包,然后解压过去,效果是一样的。 进入stlink目录,打开README.md...先看一看... ![]() 这是个好习惯 所有设置都正确,执行make debug即可开始编译。 由于现在什么也没做,不出意外,是编不过的。 make release应该差不多,先不考虑。 根据出错提示进行修改,修改过后,执行: make clean make debug 修改方法: 1.提示缺少工具 比如没装gcc,没装cmake,没装make。。。那么安装一个..,反正少啥就装啥... 2.提示: System is unknown to cmake, create: Platform/MINGW32_NT-6.1 to use this system, please send your config file to cmake@www.cmake.org so 修改顶层MakeFile[line 49 - 51] (贴出来tab键咋没了 ![]() ![]()
3.提示LIBUSB_INCLUDE_DIR LIBUSB_LIBRARY 出错 这是因为cmake找不到libusb库,可以手动设置下: 修改cmake/Find7Zip.cmake set (LIBUSB_INCLUDE_DIR [这儿填路径,中括号删掉]) set (LIBUSB_LIBRARY [这儿填路径,中括号删掉]) LIBUSB_LIBRARY 指向 你的libusb-1.0.a的路径 LIBUSB_INCLUDE_DIR 应该也可以随便设,自己把libusb的.h copy过来 4.缺少头文件 反正都能找的到...注意下 include <>与“”的差别 附上编译成功的输出信息:
编好的静态库 build\Debug\src\stlink2.a ![]() msys2命令行下可直接运行. window cmd下运行可能会提示缺少msys-2.0.dll,msys2\usr\bin下可以找的 测试一下: open_close ![]() ![]() ENJOY YOURSELF ![]() ![]() |
修改下open_close.c:
标记备用
我截图用的NUCLEO-F303RE..
最近也在搞这个。
我用的是TDM-GCC,cmake已经构建成功,make有问题,先赞一下楼主,再回过头看。
现在已经编译成功,生成了三个文件,sg.exe flash.exe usb.exe 问一下楼主,接下来应该怎么用啊???
你用的应该是http://github.com/texane/stlink吧。
和我一楼说的不是一个东西。这个要比我1楼说的功能强很多.
这个github上有编译好的win64版本
官方stlink utility 就有这功能的.(没用过
http://www.st.com/content/ccc/re ... s/en.CD00262073.pdf
2.2.6节 3.9节 等
软件我是用过的,现在是想用STlink通过读写寄存器配置STM32的SPI,将数据写入DR寄存器。然后再外置的SPI FLASH读取DR寄存器。来直接对外置SPI FLASH进行读写操作。
有一个*.a的库。
ihex log open_close相当于是例子.功能比较少...
那意思是,这个不是一个完整的工具?而只是一个开发库?
是啊.
另外,找了半天只找到memread,没找到memwrite
功能不是很全,编译一下,纯当练练手了.