分类:
2010-12-01 17:11:53
就放下来了... 可还是不甘心阿...总得把它完成了... 于是下午看了会儿别的...又接着干...
用蠢方法直接看从nand flash 拷贝到sdram的数据... 发现数据还是从nand flash里面读出来并拷贝到sdram中...
怀疑是时序的问题... 这个时序也不是很明白... 也懒得细细的计算... 索性配置成最大的... 这总该不会有问题吧...
牺牲一下性能而已... 无关紧要先... 可数据还是错误的... 郁闷ing...
那问题肯定就是出在读数据这个操作上了... 从8位I/O口读数据... 直接用的 unsigned char data = (*(volatile unsigned long *)NFDATA);
8位的I/O口好像这样读有问题... 于是尝试改成了 (*(volatile unsigned char *)NFDATA)... 汗ing... 程序正常运行...
用*(volatile unsigned long *) 读只有8个I/O引脚的端口也应该只读出8位丫... 编译器在进行强制类型转换应该不会发生数据错误的...
可的确是发生了... 关键这只是想当然这样... 编译器如何编译的就不知道了... 反汇编看看代码吧....
教训阿.... 以后不这样乱访问端口... 还是根据端口位数来用合适的数据类型访问... 郁闷....