野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9935|回复: 6

跟例程一样的代码,为什么我的就调试卡住了呢?

[复制链接]
发表于 2015-12-24 09:52:53 | 显示全部楼层 |阅读模式
本帖最后由 qduwg 于 2015-12-24 10:13 编辑

我今天调试SDIO的时候,发现打印不出后面的调用擦除函数的结果。我就想跟踪一下。结果一下发现问题了。这个        SD_EraseTest();函数进不去啊。好奇怪了。但是我打开例程进行调试,就可以通过的。不知道是哪里问题?配置问题?我的卡是16G的那种。前面都好。



SDIO调试卡住.jpg
跟踪发现卡住在这个读函数上了。
SDIO调试卡住3.jpg
再次进行比较发现,野火例程反汇编的代码跟我参考例程后写的代码反汇编后的结果不一样的。真是奇怪了。相同函数的反汇编不同。不知道是哪里故障了?下面是野火版本,上面是我的版本。明显不同的汇编指令
SDIO调试卡住4.jpg


SDIO调试卡住2.jpg


回复

使用道具 举报

发表于 2015-12-24 11:03:32 | 显示全部楼层
跟外部器件有关的仿真,是不能确保正常的
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-12-24 11:18:20 | 显示全部楼层
仔细比较了各项文件,然后通过一系列的文件替换后,发现突然正常了呢?好奇怪了。我用野火的例程里面的各个库文件进行了替换。一开始不行。后来发现问题还是在USER文件夹里面的用户文件上。经过反复尝试后,突然看到竟然可以正常测试了啊。哈哈。好奇怪的问题。


感谢版主的指点!


SDIO调试卡住5.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-24 11:19:13 | 显示全部楼层
flyleaf 发表于 2015-12-24 11:03
跟外部器件有关的仿真,是不能确保正常的

那我一开始为什么不能正常的擦除测试呢?很奇怪的问题啊。
回复 支持 反对

使用道具 举报

发表于 2015-12-24 11:22:02 | 显示全部楼层
用什么程序的文件来替换的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-24 11:23:51 | 显示全部楼层
本帖最后由 qduwg 于 2015-12-24 11:26 编辑
flyleaf 发表于 2015-12-24 11:22
用什么程序的文件来替换的?

我就是把那些库文件重新替换到我的工程文件夹内。然后逐个排除法。最后发现问题是在user文件夹内的文件的问题。我又逐个的删掉改名。特别是对MAIN.C的替换。反复测试了后。原来的野火的就好用。我的main就不好用。在野火的测试正常后,再替换成我的main.c文件。就突然好用了呢。说不清怎么了。奇葩的问题。

我的main.c文件里面的内容基本是照搬的例程里面的。就发生开始的那个问题。好奇怪。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-24 11:24:30 | 显示全部楼层
为什么我的容量是负值呢?我的卡是16G的容量的。如果用%u格式,则显示的不对了。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 23:26 , Processed in 0.039119 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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