news 2026/8/10 12:29:40

J-Flash下载问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
J-Flash下载问题

本文最值得关注的内容就是系统函数调用,导致系统进入低功耗模式,进而引起JLink下载失败。之后也就是介绍相关细节了,没有兴趣的可以直接掠过。

我在开发中遇到奇怪的下载问题,Keil5下载程序正常,JLink下载失败,但Jlink可以读芯片存储内容,可以擦除,但写入过程总是报错“Timeout while Programming sector,core does not stop... Program failed. Failed auto program target”。

硬件问题

一开始怀疑是硬件问题,怀疑电路缺少元器件(关键部分未焊接)致使电源不稳定,影响程序下载。后续,只焊接芯片最小系统,采用JTAG供电,进行调试。硬件最大的问题就是PCB板下载接口标识不清晰,下载接口需要一根一根对着原理图反复接线,引起接线错误(影响使用者心情)。这个问题没有什么好关注的,只希望大家拿到的电路板都标识清晰,有专用的接线工具。

在使用领慧公司样板的时候,同事下载失败,第二天一起看了下,样板设计了防反接的JTAG下载接口,但JLink监测不到芯片。看了领慧公司的使用说明文档,才发现整个开发板没有连接任何跳线帽,用万用表测量引脚电压才发现,MCU供电失败,按照使用说明安装跳线帽后,就可以正常工作了。

软件问题

在介绍软件问题前,本文先对JLink进行简单介绍。JLink软件默认安装位置为C:\Program Files\SEGGER\JLink\Devices。常用、外国大厂JLink默认集成它们公司的软件支持包。其它公司芯片需要手动安装设备支持包,eg:Arm Keil | FMSH FM33LE0XX_DFP。否则只能选择芯片内核进行操作,例如:Cortex-M0,Cortex-M3,RISCV等。

安装设备支持包后,就可以选中对应的芯片型号,以下图为例,安装支持包后,用户就可以直接选择 FM33LE02x(复旦微电子公司的MCU)。

芯片型号选择错误,可能也可以连接上芯片,可以擦除,但是Flash、RAM区域配置不一样,也会导致下载失败,希望开发者不要犯这种低级错误。后面的才是重头戏,主要说两种,分别是没有开启JTAG下载引脚复用,另一个就是芯片进入低功耗模式。

void pmu_init(void) { FL_PMU_SetLowPowerMode(PMU, FL_PMU_POWER_MODE_ACTIVE_OR_LPACTIVE);//active or lpactive mode FL_PMU_SetLDOLowPowerMode(PMU, FL_PMU_LDO_LPM_ENABLE);//DISABLE);//ENABLE); //lp active mode }

FL_PMU_SetLowPowerMode(PMU, FL_PMU_POWER_MODE_ACTIVE_OR_LPACTIVE):将芯片电源模式设置为“活动或低功耗活动模式”。FL_PMU_SetLDOLowPowerMode(..., FL_PMU_LDO_LPM_ENABLE):使能 LDO 低功耗模式。这两个配置同时生效时,芯片会进入 LP Active(低功耗活动)模式。在此模式下,JTAG(SWD)SWCLK 、SWIO 被配置为数字功能加上拉或外部上拉。JTAG功能引脚被取消复用,自然也就无法下载程序。最神奇的时Keil5居然可以下载,要不是使用JLink试了下,直接把带有低功耗配置的hex发给客户,就丢人丢到公司外面了。也正是因为这个函数,没有以代码形式、显式配置引脚,取消引脚复用,所以我一开始没注意到这点,只能通过控制变量,一点一点注释功能代码,花了些时间才发现这个问题。以前用STM32CubeIDE的时候忘记配置JTAG引脚复用,导致下载失败,大家要引以为戒哦。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/10 12:28:04

SpringBoot+Vue构建智能在线考试系统:防作弊与实时监控实战

1. 项目背景与核心需求 在线考试系统已成为企业培训、教育机构、资格认证等领域不可或缺的工具。然而,随着应用的普及,传统在线考试系统在防作弊、智能化组卷、实时监控等方面的短板日益凸显。考生通过切换浏览器标签、使用通讯软件、查阅本地资料等方式…

作者头像 李华
网站建设 2026/8/10 12:24:52

Java开发者如何实现Vibe Coding:热部署与实时反馈工作流实战

1. 先搞清楚 Vibe Coding 到底是什么,以及它和传统开发的区别如果你看到“Vibe Coding”这个词,第一反应是某种新的编程语言或者框架,那可能就理解偏了。它不是一个具体的技术栈,而是一种开发理念和工作流。简单来说,它…

作者头像 李华
网站建设 2026/8/10 12:23:35

终极WindowResizer指南:如何强制调整Windows窗口大小解决三大痛点

终极WindowResizer指南:如何强制调整Windows窗口大小解决三大痛点 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的Windows应用程序窗口而烦恼吗&#…

作者头像 李华
网站建设 2026/8/10 12:18:52

python的工业过程控制场景模拟第一百一十一篇:实现动态前馈算法,实时采集干扰信号,提前输出补偿量抵消扰动影响。

动态前馈控制算法仿真 —— 基于干扰观测的超前补偿实践 “那年蒸汽总管压力波动,PID 总是慢半拍,换热出口温度像过山车。后来加了动态前馈,压力变送器一动,调节阀提前补偿,温度曲线立马平得像尺子画的。那一刻我才明白…

作者头像 李华
网站建设 2026/8/10 12:18:37

NRF9151模组:低功耗物联网无线解决方案详解

1. NRF9151模组概述:北欧半导体新一代无线解决方案 NRF9151是北欧半导体(Nordic Semiconductor)最新推出的系统级封装(SiP)模组,专为低功耗广域物联网(LPWAN)应用设计。作为nRF91系列…

作者头像 李华