查看: 6264|回复: 20

[求助] 求助一个锁的问题

[复制链接]

该用户从未签到

3

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
443
最后登录
2020-10-29
发表于 2014-12-11 16:59:38 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 bsdpgsql 于 2014-12-11 18:21 编辑

显现是这样的。
用的frdm-k64f,环境是kds,编译器是自带的gcc,自己改写的pe生成的link脚本,中间查了很多遍0x400那里的配置和原来的一摸一样。可是我自己的代码每次通过jlink烧进去仿真器直接运行的时候代码表现是正常的,可是断电再上电的时候仿真器就说锁了,只有解锁然后烧进去代码运行又是正常的,断电又被锁了。排查问题的时候用kds新生成一个工程烧进去也没事,初始化部分是拿的keil的systeminit代码,keil自己的工程代码烧进去也没事。
另外我自己的程序运行起来之后断点时查看0x400也是正常的没有写错或者烧错。
百思不得其解,求指点。
对了补充一句,frdm-k64f我刷成了jlink仿真器的。
我知道答案 目前已有20人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-12-11 23:26:18 | 显示全部楼层
看看你JLINK的调试器与目标芯片的线是不是太长了呢。
另外,你说的锁上,是只有用你自己的代码才会锁,还是不管用官方代码还是自己代码都会锁呢?
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
443
最后登录
2020-10-29
 楼主| 发表于 2014-12-12 00:30:09 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-12-11 23:26
看看你JLINK的调试器与目标芯片的线是不是太长了呢。
另外,你说的锁上,是只有用你自己的代码才会锁,还是 ...

用的是frdm-k64f自己的仿真器(固件刷成的jlink),USB线用的手机带屏蔽环的线质量挺好也不长。
是我自己的代码会锁,同样的线和板子用KDS自己生成的工程就没问题。令我不解的是我核对过生成的连接文件和我自己的连接文件,也比较过自己的和KDS的bin,至少在0x400-0x410这16个bytes是一致的,我自己的烧进去运行暂停的时候看这段地址也是正确的,而且我自己的程序运行都是正常的该中断的中断,UART,IO,SPI这些功能都是正常的,就是断电再上电,就报锁了。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-12-12 11:15:00 | 显示全部楼层
bsdpgsql 发表于 2014-12-12 00:30
用的是frdm-k64f自己的仿真器(固件刷成的jlink),USB线用的手机带屏蔽环的线质量挺好也不长。
是我自己 ...

板子是自己的吧?
有没有reset按键复位呢?
试下下载程序后,如果不断电,直接reset后,看看是不是会锁?
另外,你程序中有没有对flash操作的代码?
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
443
最后登录
2020-10-29
 楼主| 发表于 2014-12-12 13:55:42 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-12-12 11:15
板子是自己的吧?
有没有reset按键复位呢?
试下下载程序后,如果不断电,直接reset后,看看是不是会锁? ...

是自己的,专门为做小功能买的这板。
不断电直接reset也是锁,我把所有代码全部删掉,只保留最基本的系统初始化SystemInit和一个简单for的main,结果还是被锁,范围缩小到链接文件和系统初始化,仔细检查了链接文件和程序里flash config那部分,和kds生成的是差不多一样的,系统初始化也是用的keil的,里面我有少量修改但是没涉及flash相关的配置。如果频率和flash没有配置正确,为何只是上锁但不影响程序运行(uart,spi等频率测量出来也都是正确的)?
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-12-12 14:49:39 | 显示全部楼层
bsdpgsql 发表于 2014-12-12 13:55
是自己的,专门为做小功能买的这板。
不断电直接reset也是锁,我把所有代码全部删掉,只保留最基本的系统 ...

有没有把你最精简但是在你板子上也会锁的程序,烧到FRDM-K64板子中试,看官方板子K64是不是也锁?
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
443
最后登录
2020-10-29
 楼主| 发表于 2014-12-12 16:00:15 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-12-12 14:49
有没有把你最精简但是在你板子上也会锁的程序,烧到FRDM-K64板子中试,看官方板子K64是不是也锁? ...

啊,您误会啦,“自己的”是说这板子是我自己买,不是说自己lay的板子,没说清楚让造成误解了不好意思。
以上说的问题和我尝试的解决方法都是基于一个板子,就是原厂发布的那个frdm-k64f,我的程序和kds生成的都是在这个小板子上烧的,出题也是出在这个小板子上的。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-12-12 16:02:14 | 显示全部楼层
bsdpgsql 发表于 2014-12-12 16:00
啊,您误会啦,“自己的”是说这板子是我自己买,不是说自己lay的板子,没说清楚让造成误解了不好意思。
...

把你自己最精简的代码,但是还有问题的上传,我这边调下。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
443
最后登录
2020-10-29
 楼主| 发表于 2014-12-12 16:40:36 | 显示全部楼层
本帖最后由 bsdpgsql 于 2014-12-12 16:46 编辑
FSL_TICS_ZJJ 发表于 2014-12-12 16:02
把你自己最精简的代码,但是还有问题的上传,我这边调下。

麻烦您了!
link脚本我改过.text段下面,我不知道会不会有影响。SystemInit直接拷贝的keil的,只是我和其他东西放在一个文件里面了。
kds版本的工程,我没用kds自己带的编译器(其实kds自带的我也试了,还是要锁,所以感觉不是编译器的原因,所以就给删了),编译器没加库要求,是在arm官方推荐的地方下的
现象是烧进去之后,从reset_handler开始都可以单步到main里面,停了仿真器,把掉USB,在上电的时候,frdm自带的仿真器绿灯和红灯同时亮,这时候再用kds的调试,它提示锁定,然后确定自动解锁,然后有能抓在reset_handler上面单步下去。
kds生成的好的工程重复上述过程不出问题

test.rar

119.27 KB, 下载次数: 1, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
443
最后登录
2020-10-29
 楼主| 发表于 2014-12-15 16:13:00 | 显示全部楼层
自己顶一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 13:28 , Processed in 0.110658 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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