搜索
bottom↓
回复: 28

JLINK的一个很神奇的问题,大家注意了。废了我两个小时

[复制链接]

出0入0汤圆

发表于 2020-4-22 12:17:45 | 显示全部楼层 |阅读模式
淘宝山寨 的 JLINK V9,MDK 5.21,点击DEBUG的瞬间,蜂鸣器短暂的叫了0.2秒。程序如下
经多次测试,认为问题是:在开始下载程序之前,JLINK对芯片读写使RAM出现乱码,并使b函数意外执行了。
问题重现的概率接近100%。
避免方法:判断条件 a是否等于某个具体的值来避免。

#include "stm32f0xx.h"

char a = 0;
void b(void){
        if( a != 0 ){
                GPIOA->BRR = 1<<0;//蜂鸣器有0.2秒的鸣叫
                while(1);
        }
}

int main(void){
        RCC->AHBENR |= RCC_AHBENR_GPIOAEN;

        GPIOA->BSRR = (1<<0);
        GPIOA->OTYPER |= (1<<0);
        GPIOA->MODER |= (0x01<<(0*2));
       
        while(1){
                b();
        }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2020-4-22 12:37:23 | 显示全部楼层
可能是硬件在复位时管脚是输入状态出现的问题。

出0入8汤圆

发表于 2020-4-22 12:41:10 | 显示全部楼层
楼主的头像不能旋转一下么。 :->

出0入0汤圆

 楼主| 发表于 2020-4-22 12:45:50 | 显示全部楼层
可以肯定不是初始化时管脚毛刺导致,我最初发现问题,是因为写FLASH函数总是莫名其妙的被执行。

出0入4汤圆

发表于 2020-4-22 12:46:55 | 显示全部楼层
楼主的头像不能旋转一下么。 :->

出0入0汤圆

 楼主| 发表于 2020-4-22 12:49:37 | 显示全部楼层
不要讨论头像问题

出0入4汤圆

发表于 2020-4-22 13:02:12 | 显示全部楼层
jlink和stlink比有什么优点?

出0入0汤圆

 楼主| 发表于 2020-4-22 13:03:33 | 显示全部楼层
例子工程如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出5入0汤圆

发表于 2020-4-22 13:03:59 | 显示全部楼层
lihui_mc 发表于 2020-4-22 12:49
不要讨论头像问题

头像治好了颈椎病系列

出5入0汤圆

发表于 2020-4-22 13:05:36 | 显示全部楼层
既然重现概率接近100%,那问题可能相对容易定位,我比较倾向于是复位瞬间的暂态,这个怀疑可以通过烧写后直接运行迅速判断。换个板子试过了?

出0入0汤圆

发表于 2020-4-22 13:09:19 | 显示全部楼层
下载时候可以一直置于RST下的。

出0入0汤圆

 楼主| 发表于 2020-4-22 13:27:08 来自手机 | 显示全部楼层
LinuxTux.China 发表于 2020-4-22 13:05
既然重现概率接近100%,那问题可能相对容易定位,我比较倾向于是复位瞬间的暂态,这个怀疑可以通过烧写后直 ...

不好定位原因在于,那个瞬间还没进入下载阶段,也就是此时程序还是上一次下载进去的。那个瞬间很短,且可能涉及jlink的工作细节。

出0入20汤圆

发表于 2020-4-22 13:32:30 | 显示全部楼层
早就发现点击DEBUG的瞬间,MCU会短暂的运行了,如果要写FLASH,最好把下面的勾去掉

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2020-4-22 13:40:16 | 显示全部楼层
JIANGJIAYU 发表于 2020-4-22 13:32
早就发现点击DEBUG的瞬间,MCU会短暂的运行了,如果要写FLASH,最好把下面的勾去掉
...

你这个勾的意思是下载完毕后运行。

而我出问题那个瞬间,是还没开始下载。
根据观察是这样的:
1,点击DEBUG。
2,MCU被停止
3,JLINK执行了一些操作,篡改了RAM。
4,MCU又继续运行。
5,JLINK开始下载二进制代码。

出0入20汤圆

发表于 2020-4-22 13:43:52 | 显示全部楼层
lihui_mc 发表于 2020-4-22 13:40
你这个勾的意思是下载完毕后运行。

而我出问题那个瞬间,是还没开始下载。

MCU的下载过程是这样的:
1.先下载一段编程算法代码到RAM中
2.启动MCU运行RAM中的代码
3.然后执行编程FLASH的过程

出0入0汤圆

 楼主| 发表于 2020-4-22 13:50:32 | 显示全部楼层
是的,照你说的,应执行的是RAM程序,但实际却执行了FLASH程序。

出0入4汤圆

发表于 2020-4-22 13:57:11 | 显示全部楼层
lzg1987 发表于 2020-4-22 13:02
jlink和stlink比有什么优点?

自带全家桶软件比STlink方便。好多人同时在用多个品牌的单片机,一个jlink全部搞定。下载速度也快不少。

出590入992汤圆

发表于 2020-4-22 13:59:09 | 显示全部楼层
lzg1987 发表于 2020-4-22 13:02
jlink和stlink比有什么优点?

如果不用STM8,必须用Jlink。JLink自带的软件功能多,高端Jlink更是速度快。而且Jlink支持非ST的芯片。

出255入0汤圆

发表于 2020-4-22 15:35:28 | 显示全部楼层
下载程序时,单片机已经复位。程序已经没有执了

出0入0汤圆

发表于 2020-4-22 16:27:09 | 显示全部楼层
Jlink是会写烧录算法到RAM,你的变量a跳过了C的__main初始化代码吗?

出0入0汤圆

 楼主| 发表于 2020-4-22 16:56:12 | 显示全部楼层
styleno1 发表于 2020-4-22 16:27
Jlink是会写烧录算法到RAM,你的变量a跳过了C的__main初始化代码吗?

变量a就是一般变量,进入main之前由C库初始化了。

出问题过程应该是:
1,进入main正常运行
2,JLINK暂停了MCU,
3,JLINK写烧录算法到RAM同时串改了变量a,
4,继续从FLASH运行了0.2秒。
5,JLINK运行RAM烧录算法烧写新的代码到FLASH。

出140入158汤圆

发表于 2020-4-22 18:27:00 | 显示全部楼层
Jlink灌程序到Flash,是会先在RAM灌入代码,然后让MCU跑这段代码的,这样可以加快烧录Flash速度,所以出现您这种情况,并不奇怪。

出0入0汤圆

发表于 2020-4-22 22:08:29 | 显示全部楼层
楼主的头像不能旋转一下么。 :->

出0入0汤圆

发表于 2020-4-23 00:26:03 | 显示全部楼层
楼主的头像不能旋转一下么。 :->

出10入46汤圆

发表于 2020-4-23 14:55:42 | 显示全部楼层
买个教..育...版吧!
之前的几个盗..|.. 版(不同硬件)调试时,调试时总是异常断开。

正..|..版,没一次异常。

出0入8汤圆

发表于 2020-4-23 16:28:22 | 显示全部楼层
lzg1987 发表于 2020-4-22 13:02
jlink和stlink比有什么优点?

Jlink能仿真的芯片更广泛
STLink只能用于ST系列的芯片
但是实际上大家使用了五花八门的芯片
一个Jlink就能通吃所有芯片
哈哈哈哈

出0入0汤圆

发表于 2020-4-23 17:52:02 | 显示全部楼层
估计是硬件问题,把蜂鸣器去掉看下

出0入0汤圆

发表于 2020-4-23 22:32:03 | 显示全部楼层
用的SWIO还是JTAG?用的什么复位形式?

出0入0汤圆

发表于 2020-4-25 15:11:53 | 显示全部楼层
没有遇到这种情况,一直用SWG
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 03:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表