【rtt问题】RT-Thread studio新建项目编译成功,j-link下载失败

文章描述了一个在使用RT-Threadstudio开发环境中,遇到的新建项目编译无误但使用J-Link下载固件到STM32F103C8芯片时失败的问题。日志显示J-Link无法连接到目标CPU。问题解决方法是检查硬件连接,确认工程设置,以及可能需要使用J-Flash擦除后再下载。重启设备后,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


==================================
参考链接:
https://club.rt-thread.org/ask/question/2f057e8dadf6b157.html

==================================

1、问题描述:

用RT-Thread studio软件新构建一个项目,编译正常0error、0warning,但是用jlink下载固件,显示执行完毕,但是实际上是没有烧录到板子上面的情况:
如下为jlink下载时候的日志:


开始下载程序:2023-02-07 11:34:43
Download Start Address: 0x08000000 
D:\RT-ThreadStudio>"D:/RT-ThreadStudio/repo/Extract/Debugger_Support_Packages/SEGGER/J-Link/v7.50a\JLink.exe" -device STM32F103C8 -ExitOnError -CommanderScript D:\RT-ThreadStudio\workspace2/.metadata/Temp/rtthread_download_init.jlink 
SEGGER J-Link Commander V7.50a (Compiled Jul  8 2021 18:22:32)
DLL version V7.50a, compiled Jul  8 2021 18:21:11
J-Link Commander will now exit on Error
J-Link Command 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 ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware version: V7.00
S/N: 20090929
License(s): RDI,FlashDL,FlashBP,JFlash,GDBFull
VTref=3.300V
Selecting SWD as current target interface.
Device "STM32F103C8" selected.
Selecting 1000 kHz as target interface speed
Target connection not established yet but required for command.
Device "STM32F103C8" selected.
Connecting to target via SWD
InitTarget() start
InitTarget() end
Found SW-DP with ID 0x1BA01477
Failed to power up DAP
InitTarget() start
Can not attach to CPU. Trying connect under reset.
Connecting to CPU via connect under reset failed.
InitTarget() end
InitTarget() start
Can not attach to CPU. Trying connect under reset.
Connecting to CPU via connect under reset failed.
InitTarget() end
InitTarget() start
Can not attach to CPU. Trying connect under reset.
Connecting to CPU via connect under reset failed.
InitTarget() end
Cannot connect to target.
Script processing completed.
执行完毕, 耗时:17091ms.

2、问题解决:

网上有类似的情况,使用j-flash擦除,然后重新下载就可以了,我好像是重新断电重启之后,jlink就可以正常下载了,后续要是出问题再用j-flash擦除试试;
在这里插入图片描述
如下正常jlink下载会弹出这个窗口:

在这里插入图片描述
总结:思路就是先排查

  • 硬件连接是否正确,重启试下
  • 项目工程用RT-Thread studio创建是否正确选择了jlink模式,刚创建的工程可以重新创建下
  • 然后是就是jlink下载问题,用j-flash擦除下重新下载
<think>好的,我现在需要分析用户提供的这段JavaScript代码,并解释它的功能。首先,我会通读代码,理解每个部分的作用。 这段代码定义了一个名为getQ的函数。函数一开始获取了user_nickname输入框的值,存储在userid变量中。如果userid是null或undefined,函数返回false。否则,发起一个AJAX POST请求到../services/Qxgl.ashx,传递action和id参数。请求头里有一个Authorization令牌,看起来像是某种认证信息。 成功回调函数处理返回的msg数据,遍历msg.ds数组,对每个item,通过typeid设置对应的复选框为选中状态。然后收集所有选中的复选框的值,用逗号拼接后去掉最后一个逗号,将结果填入typename输入框。 接下来,我需要确认各个部分的细节是否正确。例如,检查jQuery选择器是否正确,AJAX调用的参数是否合理,以及数据处理是否有潜在错误。比如,$.each遍历msg.ds是否正确,假设msg.ds是一个数组。另外,拼接结果时使用substring去除末尾逗号是否可靠,是否有更稳妥的方法。 还要注意可能的安全问题,比如硬编码的Authorization头,这可能存在安全风险,但用户可能已经处理了。此外,用户权限验证是否在服务端进行,这里只是前端控制,需提醒用户不能仅依赖前端验证。 最后,将这些分析整理成结构清晰的解释,分步骤说明代码的功能和潜在注意事项,确保用户能够理解每个部分的作用及可能的改进点。</think>这是一个典型的基于jQuery的AJAX请求实现,主要用于获取并设置用户权限信息。让我们分步骤解析这个函数的功能: 1. **函数定义与用户ID获取** ```javascript var getQ = function () { var userid = $('#user_nickname').val(); // 获取用户输入框的值 ``` 2. **空值校验** ```javascript if (userid == null || userid == undefined) { // 验证用户ID有效性 return false; } ``` 3. **AJAX请求配置** ```javascript $.ajax({ type: "POST", // 使用POST方法 url: "../services/Qxgl.ashx", // 后端接口地址 headers: { // 请求头认证信息 "Authorization": "0772A4AA051DDEBB393DC164B19A32E57C4FEEAB27A77820" }, ``` 4. **请求参数传递** ```javascript data: { action: "getQ", // 执行动作类型 id: userid // 传递用户ID参数 }, ``` 5. **成功回调处理** ```javascript success: function (msg) { // 遍历返回数据集 $.each(msg.ds, function (index, item) { // 根据typeid勾选对应复选框 $('#a' + item.typeid).attr("checked", true); }) // 拼接选中值 var result = ""; $("input[name='select_checkbox']:checked").each(function () { result += $(this).val() + ','; }); // 去除末尾逗号 if (result != "") { result = result.substring(0, result.lastIndexOf(',')); } // 填充到显示框 $("#typename").val(result); } ``` **功能总结**: - 这是一个用户权限查询功能 - 通过用户输入的用户名查询关联的权限配置 - 将查询结果转换为复选框勾选状态 - 汇总选中权限显示在文本框中 **潜在注意事项**: 1. 硬编码的`Authorization`头存在安全风险,建议动态生成 2. 缺少错误处理逻辑(error回调) 3. 使用字符串拼接处理结果可以考虑改用`Array.join()` 4. 权限控制不能仅依赖前端验证,必须配套后端验证 5. 对`msg.ds`的数据结构有强依赖,建议增加数据校验 6. 建议使用`.prop()`代替`.attr()`操作复选框状态
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值