主题 : vboot 修改CPU时钟频率 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 42431
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
综合积分: 40 分
注册时间: 2011-04-08
最后登录: 2013-10-22
楼主  发表于: 2012-10-22 16:00

 vboot 修改CPU时钟频率

管理提醒: 本帖被 qq2440 从 micro2440技术交流专区 移动到本区(2013-11-18)
mini2440 开发板学习过程中,使用vboot作为bootloader,尝试修改CPU时钟频率,编译生成的bin文件烧录后无法正确引导内核,请问这是为什么呢?

smdk2440.h 中对应代码如下:

1. 默认设置
#define UART_PCLK           UART_PCLK_400_148
#define vMPLLCON_NOW_USER   0x7f021
#define vCLKDIVN_NOW        CLKDVIN_400_148
#define vREFRESH            vREFRESH_400_148

不进行任何修改的前提下,直接编译出来的bin文件烧录后能正确引导内核。
请问 vMPLLCON_NOW_USER 这个值怎么计算呢?是根据 ((MDIV<<12)|(PDIV<<4)|(SDIV)) 得出的吗?
如果是的话,为什么 0x7f021 不等于 ((MDIV_400_148<<12)|(PDIV_400_148<<4)|(SDIV_400_148))?


2. 自定义设置
#define UART_PCLK           UART_PCLK_300_136
#define vMPLLCON_NOW_USER   ((MDIV_300_136<<12)|(PDIV_300_136<<4)|(SDIV_300_136))
#define vCLKDIVN_NOW        CLKDVIN_300_136
#define vREFRESH            vREFRESH_300_136

自定义设置后,编译出来的bin文件烧录后无法正确引导内核,请问这是为什么呢?
是否内核还应作出相应的修改呢?劳烦请详细一点说明。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2012-10-22 16:35
这个最好自己多试试了,我们只提供默认的配置支持
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.