完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
问题来了: 1,图中tacls=1时,持续时间才一个hclk,但韦老师书中的tacls等于0,也说持续时间是一个hclk,这是怎么回事??? 2,这书中hclk=100mhz是在开启pll的前提下吧,如果没有开始pll的话fclk=fin,那hclk等于多少呢?看的很糊涂? 3,书中的代码,TACLS=0,TWRPH0=3,TWRPH1=0,这是在没有开启pll的条件下吧,那就是hclk=12mhz,是吗? 4, |
|
相关推荐
6个回答
|
|
|
上面最后一个图传错了,有黑点的那行应该是*p=(addr>>12)&0xff,但结果还是不行,必须右移11位才正确
|
|
|
|
|
|
问题来了:
1,图中tacls=1时,持续时间才一个hclk,但韦老师书中的tacls等于0,也说持续时间是一个hclk,这是怎么回事??? 答:我说错了,tacls为0,那就是0个HCLK 2,这书中hclk=100mhz是在开启pll的前提下吧,如果没有开始pll的话fclk=fin,那hclk等于多少呢?看的很糊涂? 答:HCLK=100MHZ,就是PLL已经开启;如果PLL没开,HCLK=晶振频率=12MHZ 3,书中的代码,TACLS=0,TWRPH0=3,TWRPH1=0,这是在没有开启pll的条件下吧,那就是hclk=12mhz,是吗? 答:忘了,如果代码里PLL没开就是12MHZ |
|
|
|
|
|
你的代码里,那样写地址不太好理解。我也已经改进了写法。
第1、2周期,发出的是“页内地址”,或都为“列地址”。就是这一页里,要访问哪个。 第3、4 、5周期,发出的是“页地址”,就是“哪一页”。 volatile unsigned char *p = (volatile unsigned char *)&s3c2440nand->NFADDR; unsigned int page = addr / 2048; unsigned int column = addr % 2048; *p = column & 0xff; for(i=0;i<10;i++); *p = (column >>8)&0xff; for(i=0;i<10;i++); *p = page &0xff; for(i=0;i<10;i++); *p = (page >> 8)&0xff; for(i=0;i<10;i++); *p = (page >> 16)&0xff; for(i=0;i<10;i++); |
|
|
|
|
|
回复 4楼thisway.diy的帖子
非常感谢! 但还有个小疑惑: unsigned int page = addr / 2048; unsigned int column = addr % 2048; 您求column时:是addr%2048 也就是addr%(2^11),这样只有取地址的低11位。但数据手册上column的地址是从A0到A11,是12位。这怎么理解呢? |
|
|
|
|
|
一个11位的二进制数表示的最大数为2047,0-----2047中正好有2048个数,对应2K个存储单元。不是到能否这样解释。
|
|
|
|
|
|
这样只有取地址的低11位。但数据手册上column的地址是从A0到A11,是12位。这怎么理解呢?
答:程序发出的地址不包括OOB区,NAND手册上的column包括OOB区 举例说,就是 比如程序发出的0这个地址是想访问第0页的第0个字节; 程序发出的2047这个地址是想访问第0页的第2047个字节; 程序发出的2048这个地址是想访问第1页的第0个字节,而不是第0页的第2048个地址 |
|
|
|
|
只有小组成员才能发言,加入小组>>
296个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2466 浏览 6 评论
2201 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4828 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:41 , Processed in 0.809871 second(s), Total 87, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1456