STM32F103C8T6在aduino IDE编程使用 jtag模式 下载

2024-02-09 09:59

本文主要是介绍STM32F103C8T6在aduino IDE编程使用 jtag模式 下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、准备好相关硬件

2、arduino环境搭建参考前文
https://blog.csdn.net/qq_38288618/article/details/90553252

3、接线参考看前文
https://blog.csdn.net/qq_38288618/article/details/98640223

4、arduino ide相关设置,如图
 

 

5、找个示例编译成功,下载出现如下错误

Arduino:1.8.9 (Windows 10), 开发板:"Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), JLink, 72Mhz (Normal), Smallest (default)"项目使用了 16564 字节,占用了 (25%) 程序存储空间。最大为 65536 字节。
全局变量使用了11552字节,(56%)的动态内存,余留8928字节局部变量。最大为20480字节。D:\Program Files\arduino-1.8.9>rem: @echo off D:\Program Files\arduino-1.8.9>rem: Note D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win\ get path of this batch file D:\Program Files\arduino-1.8.9>rem: Need to change drive if My Documents is on a drive other than C: D:\Program Files\arduino-1.8.9>set driverLetter=D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win\ D:\Program Files\arduino-1.8.9>set driverLetter=D: D:\Program Files\arduino-1.8.9>D:D:\Program Files\arduino-1.8.9>cd D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win\ D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win>rem: the two line below are needed to fix path issues with incorrect slashes before the bin file name D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win>set tmpBinFilePath=C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_204733/rtos_blink.ino.bin D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win>set tmpBinFilePath=C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_204733\rtos_blink.ino.bin D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win>rem: create commander script file with the tmp bin that the Arduino IDE creates D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win>JLink.exe -device STM32F103C8 -if SWD -speed auto -CommanderScript C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_204733\rtos_blink.ino.bin.jlink 
'JLink.exe' �����ڲ����ⲿ���Ҳ���ǿ����еij���
���������ļ���
上传项目出错

这里的乱码应该是
'JLink.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

 

分析了一下,
arduino上传(下载)时调用了一个bat,安装目录如D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win\jlink_upload.bat
bat文件内容如下

rem: @echo off
rem: Note %~dp0 get path of this batch file
rem: Need to change drive if My Documents is on a drive other than C:
set driverLetter=%~dp0
set driverLetter=%driverLetter:~0,2%
%driverLetter%
cd %~dp0
rem: the two line below are needed to fix path issues with incorrect slashes before the bin file name
set tmpBinFilePath=%1
set tmpBinFilePath=%tmpBinFilePath:/=\%rem: create commander script file with the tmp bin that the Arduino IDE creates@echo erase > %tmpbinfilepath%.jlink
@echo loadbin %tmpbinfilepath% , 0x8000000 >> %tmpbinfilepath%.jlink
@echo r >> %tmpbinfilepath%.jlink
@echo q >> %tmpbinfilepath%.jlinkJLink.exe -device STM32F103C8 -if SWD -speed auto -CommanderScript %tmpBinFilePath%.jlink

可见其最后调用了JLink.exe

可是文件夹里并没有这个文件

因为在keil下Jtag模式是正常的,能不能借用keil的下的文件呢?
于是找到安装目录的
D:\Keil_v5\ARM\Segger

 JL2CM3.dll
 JLink.exe
 JLinkARM.dll
 JLTAgdi.dll
将相关的文件拷贝到D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win,
再执行下载就ok了
我觉得配置一个Path的环境变量也是可以的,让命令找到 JLink.exe的位置

执行结果如下

D:\Program Files\arduino-1.8.9\hardware\Arduino_STM32-master\tools\win>JLink.exe -device STM32F103C8 -if SWD -speed auto -CommanderScript C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_204733\rtos_blink.ino.bin.jlink
SEGGER J-Link Commander V6.00d (Compiled Jul 29 2016 19:08:27)
DLL version V6.16c, compiled Jun 16 2017 18:14:49Script file read successfully.
Processing script file...J-Link connection not established yet but required for command.
Connecting to J-Link via USB...O.K.
Firmware: J-Link V9 compiled Jun 16 2017 16:15:10
Hardware version: V9.30
S/N: 59300616
License(s): RDI, FlashBP, FlashDL, JFlash, GDB
VTref = 3.369V
Target connection not established yet but required for command.
Device "STM32F103C8" selected.
TotalIRLen = 9, IRPrint = 0x0011
JTAG chain detection found 2 devices:#0 Id: 0x3BA00477, IRLen: 04, CoreSight JTAG-DP#1 Id: 0x16410041, IRLen: 05, STM32 Boundary Scan
TotalIRLen = 9, IRPrint = 0x0011
JTAG chain detection found 2 devices:#0 Id: 0x3BA00477, IRLen: 04, CoreSight JTAG-DP#1 Id: 0x16410041, IRLen: 05, STM32 Boundary Scan
Scanning APs, stopping at first AHB-AP found.
AP[0] IDR: 0x14770011 (AHB-AP)
AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)
CPUID reg.: 0x411FC231. Implementer code: 0x41 (ARM)
Found Cortex-M3 r1p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 001BB000 SCS
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 001BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 001BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 001BB923 TPIU-LiteFound SW-DP with ID 0x1BA01477
Found SW-DP with ID 0x1BA01477
Using pre-configured AP[0] as AHB-AP to communicate with core
AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)
CPUID reg: 0x411FC231. Implementer code: 0x41 (ARM)
Found Cortex-M3 r1p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 001BB000 SCS
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 001BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 001BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 001BB923 TPIU-Lite
Cortex-M3 identified.
Erasing device (STM32F103C8)...
J-Link: Flash download: Total time needed: 1.699s (Prepare: 0.249s, Compare: 0.000s, Erase: 1.416s, Program: 0.000s, Verify: 0.000s, Restore: 0.033s)
Erasing done.Downloading file [C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_204733\rtos_blink.ino.bin]...
J-Link: Flash download: Flash programming performed for 1 range (17408 bytes)
J-Link: Flash download: Total time needed: 2.133s (Prepare: 0.481s, Compare: 0.137s, Erase: 0.074s, Program: 1.150s, Verify: 0.004s, Restore: 0.285s)
O.K.Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
Setting AIRCR.SYSRESETREQScript processing completed.

 

这篇关于STM32F103C8T6在aduino IDE编程使用 jtag模式 下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693902

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma