管理提醒: 本帖被 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文件烧录后无法正确引导内核,请问这是为什么呢?
是否内核还应作出相应的修改呢?劳烦请详细一点说明。