求助:关于仿真环境和实际环境的差异

我用的375B控制U盘读写,没有相应单片机的软件库可用。所以自己写的程序 在仿真器上选用12兆晶振或者用户晶振(就是单片机板子上的,也是12兆的)运行已经正常(创建了几百个文本文件), 但是烧上片子运行就有如下问题: 偶尔能成功创建文件(大概%20) 大多数时候失败,并且把U盘插上计算机即显示U盘损坏,或者未格式化 我换过屏蔽线,改变延时长短。都没用 经检查,问题似乎出在按照LBA地址读扇区子程序上 单纯的读写数据口或者命令口没有问题 一旦执行读扇区子程序,U盘就多半会乱 并且我发现失败同时,读出的那个扇区内容也有错误(比如FAT表。开头某位变成7F,而不是FF) 请教这是何故? 如何解决? 仿真环境和实际环境到底还有那些差异会导致失败? 希望帮帮我,我辛苦了大半年 如果不能最后完成,就一切都完了

这个可能是多方面的,主要有下面几个区别: 1,延时问题,仿真器的延时时间比较长,而芯片的延时相对来讲会短点。 2,RAM的问题,有的仿真器的RAM会很大,但是实际的芯片的RAM并没有这么大,这个问题还会延伸出一个问题,那就是单片机堆栈的问题。 3,时序问题,你需要仔细检查下仿真器和单片机跑的程序上面有什么不一样。


延时的长短我都改变过 RAM大小在仿真器上我也是完全按照实际单片机大小出借的 我倒是觉得第三点极可能,可是比较时序要哪些硬件或者软件工具? 请指教一下


时序的检查只能是采用示波器来检查了。没什么其他好的软件。


也是,谢谢了


只有登录才能回复,可以选择微信账号登录