主题 : 同一个程序用supervivi下载到mini2440的Nand flash和SDRAM运行,发现运行的时钟频率不一样,跪求解答! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 94598
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2013-07-20
最后登录: 2013-09-05
楼主  发表于: 2013-07-24 00:17

 同一个程序用supervivi下载到mini2440的Nand flash和SDRAM运行,发现运行的时钟频率不一样,跪求解答!

程序功能是闪烁led灯,两种执行方式明显闪烁频率不一样,闪烁频率nand flash启动时比下载到SDRAM直接执行低很多,怎么回事?CPU看上去像是以12MHz频率运行一样,反正慢很多。从nand flash启动时配置串口失败,时钟频率不对所以波特率也就对不上。supervivi直接下载到SDRAM执行一切正常。启动代码里配置MPLLCON使FCLK=400M,配置CLKDIVN使分频比例为1:4:8。软件上的话就只有复制Nand flash到SDRAM的子程序是否执行的区别。难度选择nand 启动时对时钟系统硬件配置有什么改变? 跪求解答!!!
级别: 新手上路
UID: 94598
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2013-07-20
最后登录: 2013-09-05
1楼  发表于: 2013-07-25 22:00
发现问题了!
配置串口失败不是时钟问题,是串口0引脚没配置,复位后是普通输入引脚。低级错误。
运行慢是因为没有开启Cache。昨天才偶然想到有这可能,一试,速度差距也太大了吧。这程序比较小,几乎整个都能放进Cache中。
SDRAM 对应的是HCLK=100M,不开启的时候应该也没那么慢啊!