背景知识:
<1>
由于UART的波特率设置与时钟有关,此文设置FCLK:HCLK:PCLK=1 : 2 : 4,FCLK=200MHZ,遂先介绍时钟的设置。
通常认为上电复位后PLL是不稳定的。因此在软件重新配置PLLCON之前Fin代替MPLL直接供给Fclk。即便用户不希望复位之后改变PLLCON的数值,用户还是要用软件写入相同的数值到PLLCON寄存器中。
按照MDK4.22中启动代码的设置来说明以下设置。
MPLL,UPLL根据公式即可算出,这里的MPS最后算出的Fclk=200Mhz。PCLK也就是50Mhz了。
注意到HDIVN这里设置为0x01,不为0,那么Fclk != Hclk,要将fast mode转为异步模式,不然的话,Fclk相当于Pclk了。
由于MDK自带的启动代码没有这部分代码,所以自己加以修改了这部分。
FAST_TO_ASYN如果勾选的话,会选中
IF ASYN_SETUP <> 0
MRC p15, 0, r1, c1, c0, 0
ORR r1, r1, #0xc0000000