Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371437
  • 博文数量: 56
  • 博客积分: 1449
  • 博客等级: 中尉
  • 技术积分: 822
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-08 10:24
文章分类

全部博文(56)

文章存档

2014年(7)

2012年(13)

2011年(10)

2010年(26)

分类:

2010-12-01 17:11:53

今天本来这个对nand flash进行编程的实验可以上午就搞完的... 结果上午把程序都写完了... 发现从nand flash读数据的时候老读不对.

就放下来了... 可还是不甘心阿...总得把它完成了... 于是下午看了会儿别的...又接着干...


     用蠢方法直接看从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位丫... 编译器在进行强制类型转换应该不会发生数据错误的...

    可的确是发生了...   关键这只是想当然这样... 编译器如何编译的就不知道了... 反汇编看看代码吧....


     教训阿....  以后不这样乱访问端口...  还是根据端口位数来用合适的数据类型访问...  郁闷....


  还有一个就是... 奶奶的雄... 为偷懒.. 我直接把先前实验过的代码拷贝过来... 想都没想... 哪想到在先前的实验里那些特殊寄存器的地址都写是开启MMU分页之后的虚拟地址... 鼓捣了半天才发觉访问的地址不对...  而这次实验没有使用MMU... 郁闷...   咋这样倒霉咧....
阅读(1914) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

PCliangtao2010-12-02 15:20:04

草上飞2008:

草上飞20082010-12-02 13:33:10