本实验对应的例程在光盘资料的:i.MX6UL终结者光盘资料\04_裸机例程源码\7_clk 目录下面,我们在Ubuntu系统下使用命令“mkdir 7_clk”建立“7_clk”文件夹,如图 1所示:
然后使用命令“cd 7_clk”进入7_clk文件。如图 2所示:
然后使用命令“cp -r …/6_key/* ./”将上一章试验中的所有内容拷贝到刚刚新建的“7_clk”里面,如图 3:
拷贝完成以后的工程如图 4所示:
然后使用命令“vi drivers/clk/clk.h”修改clk.h文件。如图 5所示:
修改如下内容:
1 #ifndef __BSP_CLK_H
2 #define __BSP_CLK_H
3
4 #include "imx6ul.h"
5
6 /* 函数声明 */
7 void clk_enable(void);
8 void imx6u_clkinit(void);
9
10
11 #endif
gpio.h文件中是两个函数声明。主要是第7行添加void clk_enable和第8行添加 imx6u_clkinit函数声明,部分截图如图 6所示:
添加完成之后,保存并退出文件。
然后使用命令“vi drivers/clk/clk.c”修改clk.c文件。如图 7所示:
添加内容如下:
1 #include "clk.h"
2
3 /*
4 * @description : 使能I.MX6U所有外设时钟
5 * @param : 无
6 * @return : 无
7 */
8 void clk_enable(void)
9 {
10 CCM->CCGR0 = 0XFFFFFFFF;
11 CCM->CCGR1 = 0XFFFFFFFF;
12 CCM->CCGR2 = 0XFFFFFFFF;
13 CCM->CCGR3 = 0XFFFFFFFF;
14 CCM->CCGR4 = 0XFFFFFFFF;
15 CCM->CCGR5 = 0XFFFFFFFF;
16 CCM->CCGR6 = 0XFFFFFFFF;
17 }
18
19 /*
20 * @description : 初始化系统时钟,设置系统时钟为528Mhz,设置PLL2和
21 PLL3各个PFD时钟,所有时钟频率按照I.MX6U官方手册推荐的值.
22 * @param : 无
23 * @return : 无
24 */
25 void imx6u_clkinit(void)
26 {
27 unsigned int reg = 0;
28 /* 1、设置ARM内核时钟为528MHz */
29 /* 1.1、判断当前ARM内核是使用的哪个时钟源启动的,
正常情况下ARM内核是由pll1_sw_clk驱动的,而
30