自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 u-boot移植问题解决

从上图可以看到VMnet1和VMnet8,并没有上面所说的VMnet0和VMnet2,VMnet0并不是没有,而是被隐藏了,它是主要连接网络的网桥,而VMnet1和VMnet8分别为Host-Only网络模式和NAT的组网方式,具体不在讨论,主要关心VMnet0和VMnet2,而VMnet2是真没有,这需要创建一个虚拟网桥出来。VMnet0设置好了以后,就该VMnet2登场,有条件就上,没有条件创造条件也要上,没有VMnet2那就创造VMnet2。本来是应该来连接路由器,但没有,就只能连接电脑共享网络。

2022-11-13 23:11:09 546 1

原创 字符驱动开发2

前面讲解字符设备驱动的时候说过了,注册字符设备的时候需要给设备指定一个设备号,这个设备号可以是驱动开发者静态的指定一个设备号,比如选择200这个主设备号。为了方便管理,Linux中每个设备都有一个设备号,设备号由主设备号和次设备号两部分组成,主设备号表示某一个具体的驱动,次设备号表示使用这个驱动的各个设备。baseminor:次设备号起始地址,alloc_chrdev_region可以申请一段连续的多个设备号,这些设备号的主设备号一样,但是次设备号不同,次设备号以baseminor为起始地址地址开始递增。

2022-10-30 22:29:27 319

原创 字符驱动开发

modprobe命令默认会去/lib/modules/目录中查找模块,比如本书使用的Linux kernel的版本号为4.1.15,因此modprobe命令默认会到/lib/modules/4.1.15这个目录中查找相应的驱动模块,一般自己制作的根文件系统中是不会有这个目录的,所以需要自己手动创建。module_init函数用来向Linux内核注册一个模块加载函数,参数xxx_init就是需要注册的具体函数,当使用“insmod”命令加载驱动的时候,xxx_init这个函数就会被调用。

2022-10-30 22:24:30 384

原创 系统烧写2

接下来就是用我们的文件替换掉NXP官方的文件,先将图中的zImage、u-boot-imx6ull14x14evk_emmc.imx和zImage-imx6ull-14x14-evk-emmc.dtb这三个文件拷贝到mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/firmware目录中,替换掉原来的文件。否则可能导致烧写失败!因为正点原子的EMMC核心版用的也是512MB的DDR3加8G的EMMC,因此烧写NXP官方的系统是没有任何问题的。

2022-10-23 22:25:31 572

原创 系统烧写1

在具体看这三个文件和文件夹之前,我们先来简单了解一下MfgTool烧写的原理,MfgTool其实是先通过USB OTG先将uboot、kernel和.dtb(设备树)这是三个文件下载到开发板的DDR中,注意不需要下载rootfs。这三个文件就是I.MX6ULL EVK开发板烧写系统的时候第一阶段所需的文件。①、将firmware目录中的uboot、linux kernel和.dtb(设备树),然后通过USB OTG将这个文件下载到开发板的DDR中,目的就是在DDR中启动Linux系统,为后面的烧写做准备。

2022-10-23 22:01:40 419

原创 根文件系统简介

在Linux下一切皆文件,即使是硬件设备,也是以文件的形式存在的,比如/dev/ttymxc0(I.MX6ULL根目录会有此文件)就表示I.MX6ULL的串口0,我们要想通过串口0发送或者接收数据就要操作文件/dev/ttymxc0,通过对文件/dev/ttymxc0的读写操作来实现串口0的数据收发。此目录下的命令所有的客户都可以使用。临时挂载目录,一般是空目录,可以在此目录下创建空的子目录,比如/mnt/sd、/mnt/usb,这样就可以将SD卡或者U盘挂载到/mnt/sd或者/mnt/usb目录中。

2022-10-16 22:35:37 753

原创 创建根文件系统

盒子是用来放东西的,忙碌的是因为它要提供根文件系统所需的文件,所以忙碌。一般下载BusyBox的源码,然后配置BusyBox,选择自己想要的功能,最后编译即可。如果默认直接编译busybox的话,在使用SecureCRT的时候中文字符是显示不正常的,中文字符会显示为“?示例代码中红色部分的代码就是被修改以后的,同样主要是禁止字符大于0X7F的时候设置为‘?busybox中文字符支持跟代码修改有关的就改好了,最后还需要配置busybox来使能unicode码,这个稍后我们配置busybox的时候在设置。

2022-10-16 22:35:15 390

原创 Linux内核移植4

修改好设备树和 Linux 内核以后重新编译一下,得到新的 zImage 镜像文件和 imx6ull-luatao-emmc.dtb 设备树文件,使用网线将 I.MX6U-ALPHA 开发板的两个网口与路由器或者电脑连接起来,最后使用新的文件启动 Linux 内核。正点原子开发板的网络和 NXP 官方的网络硬件上不同,网络 PHY 芯片由 KSZ8081 换为了 LAN8720A,两个网络 PHY 芯片的复位 IO 也不同。①、在 Linux 内核中查找可以参考的板子,一般都是半导体厂商自己做的开发板。

2022-10-09 20:07:59 826

原创 Linux内核移植3

确保 EMMC 中的根文件系统可用!中有 BogoMIPS 这一条,此时 BogoMIPS 为 12.00,BogoMIPS 是 Linux 系统中衡量处理器运行速度的一个“尺子”,处理器性能越强,主频越高,BogoMIPS 值就越大。BogoMIPS 只是粗略的计算 CPU 性能,并不十分准确。但是我们可以通过 BogoMIPS 值来大致的判断当前处理器的性能。上图中并没有看到当前 CPU 的工作频率,那我们就转变另一种方法查看当前 CPU 的工作频率。

2022-10-09 19:54:15 580

原创 Linux内核移植2

imx6ull-alientek-emmc.dts创 建 好 以 后 我 们 还 需 要 修 改 文 件 arch/arm/boot/dts/Makefile , 找 到 “ dtb-$(CONFIG_SOC_IMX6ULL)”配置项,在此配置项中加入“imx6ull-alientek-emmc.dtb”将这两个文件拷贝到 tftp 目录下,这样编译 Linux 的时候就可以从 imx6ull-alientek-emmc.dts 编译出 imx6ull-alientek-emmc.dtb 文件了。

2022-10-09 19:29:23 420

原创 linux内核移植

imx_v7_defconfig和imx_v7_mfg_defconfig都可以作为NXP官方开发板IMX6ULL EVK的默认配置文件,但是一般都使用后者,因为后者编译出来的zImage可以通过NXP官方提供的MfgTool工具进行烧写。将上一小节编译出来的 zImage 和 imx6ull-14x14-evk.dtb 复制到 Ubuntu 中的 tftp 目录下,因为我们要在 uboot 中使用 tftp 命令将其下载到开发板中,开发者下载其提供的 Linux内核,然后将其移植到自己的产品上。

2022-10-09 19:13:25 384

原创 uboot移植2

如果要使用 LAN8720A,那么就得将 CONFIG_PHY_MICREL 改为 CONFIG_PHY_SMSC,也就是使能 uboot 中的 SMSC 公司中的 PHY 驱动,因为 LAN8720A 就是 SMSC 公司生产的。根据前面的分析可知,正点原子的 I.MX6U-ALPHA 开发板 ENET1 的 PHY 地址为0X0,ENET2 的 PHY 地址为 0X1,所以需要将第 328行的宏 CONFIG_FEC_MXC_PHYADDR改为 0x0。需要修改第三项 LCD 参数。

2022-10-02 22:43:47 499

原创 U-boot移植

学习如何将 NXP 官方的 uboot 移植到正点原子的 I.MX6ULL 开发板上,uboot 移植的一般流程:①、在 uboot 中找到参考的开发平台,一般是原厂的开发板。②、参考原厂开发板移植 uboot 到我们所使用的开发板上。因为我们的开发板是参考 NXP 官方的 I.MX6ULL EVK 开发板做的硬件,因此我们在移植 uboot 的时候就可以以 NXP 官方的 I.MX6ULL EVK 开发板为蓝本。

2022-10-02 20:51:37 1024

原创 u-boot命令2

我们可以使用命令“mmc write”来升级uboot,也就是在uboot中更新uboot。addr是数据读取到DRAM中的地址,blk是要读取的块起始地址(十六进制),一个块是512字节,这里的块和扇区是一个意思,在MMC设备中我们通常说扇区,cnt是要读取的块数量(十六进制)。我们一般使用uboot中的nfs命令将Ubuntu中的文件下载到开发板的DRAM中,在使用之前需要开启Ubuntu主机的NFS服务,并且要新建一个NFS使用的目录,以后所有要通过NFS访问的文件都需要放到这个NFS目录中。

2022-09-18 21:16:06 835

原创 uboot命令1

所以图30.4.1中的命令是正点原子提供的uboot中使能的命令,uboot支持的命令还有很多,而且也可以在uboot中自定义命令。我们输入“help(或?mw命令同样可以以.b、.w和.l来指定操作格式,address表示要填充的内存起始地址,value为要填充的数据,count是填充的长度。上面说了,uboot命令里面的数字都是十六进制的,所以可以不用写“0x”前缀,十进制的20其十六进制为0x14,所以命令md后面的个数应该是14,如果写成20的话就表示查看32(十六进制为0x20)个字节的数据。

2022-09-18 20:53:28 282

原创 UBoot初次编译

alientek_uboot文件夹创建成功以后使用FileZilla软件将正点原子提供的uboot源码拷贝到此目录中,正点原子提供的uboot源码已经放到了开发板光盘中,路径为:开发板光盘->1、例程源码->3、正点原子Uboot和Linux出厂源码-> uboot-imx-2016.03-2.1.0-ge468cdc-v1.5.tar.bz2。uboot编译好以后就可以烧写到板子上使用了,这里我们跟前面裸机例程一样,将uboot烧写到SD卡中,然后通过SD卡来启动来运行uboot。

2022-09-11 22:33:26 1560

原创 烧写系统镜像

如果出现“符合 HID 标准的供应商定义设备”就说明连接正常,可以进行烧写,如果出现其他的字符那么就要检查连接是否正确。③、双击“mfgtool2-yocto-mx-evk-emmc.vbs”,打开下载软件,如果出现“符合 HID 标准的供应商定义设备”等字样就说明下载软件已经准备就绪。一切准备就绪以后,按一下开发板的复位键,此时就会进入到USB模式,如果是第一次进入USB模式的话可能会久一点,这个是免驱的,因此不需要安装驱动。并要将开发板调成USB模式,若有TF卡插入,需要将TF卡拔出。

2022-09-11 21:56:49 882

原创 多点电容触碰实验

0X0A [7:0] 第二个触摸点X坐标低位数据 与寄存器0X04含义相同。0X10 [7:0] 第三个触摸点X坐标低位数据 与寄存器0X04含义相同。0X16 [7:0] 第四个触摸点X坐标低位数据 与寄存器0X04含义相同。0X1C [7:0] 第五个触摸点X坐标低位数据 与寄存器0X04含义相同。0X0C [7:0] 第二个触摸点Y坐标低位数据 与寄存器0X06含义相同。0X12 [7:0] 第三个触摸点Y坐标低位数据 与寄存器0X06含义相同。

2022-09-04 21:40:36 191

原创 笔记整体梳理

分发器收集所有的中断源,可以控制每个中断的优先级,它总是将优先级最高的中断事件发送到CPU接口端。CPU Interface(CPU接口端):CPU接口端听名字就知道是和CPU Core相连接的,每个CPU Core都可以在GIC中找到一个与之对应的CPU Interface。ID32~ID1019:这988个ID分配给SPI,像GPIO中断、串口中断等这些外部中断,至于具体到某个ID对应哪个中断那就由半导体厂商根据实际情况去定义了。⑥、当多个中断到来的时候,选择优先级最高的中断通知给CPU Core。

2022-09-04 20:31:22 327

原创 【无标题】

若集合U中顶点ui与集合V-U中的顶点vj之间存在边,则寻找这些边中权值最小的边,但不能构成回路,将顶点vj加入集合U中,将边(ui,vj)加入集合D中,标记visited[vj]=1。普利姆(Prim)算法求最小生成树,也就是在包含n个顶点的连通图中,找出只有(n-1)条边包含所有n个顶点的连通子图,也就是所谓的极小连通子图。设G=(V,E)是连通网,T=(U,D)是最小生成树,V,U是顶点集合,E,D是边的集合。重复上述步骤,直到U与V相等,即所有顶点都被标记为访问过,此时D中有n-1条边。...

2022-08-28 22:22:38 156

原创 【无标题】

举个简单的例子,大家家里面的纸张就好比通用存储器,用来记录数据是没问题的,但是不会有具体的动作,只能做记录,而你家里面的电灯开关,就好比寄存器了,假设你家有8个灯,就有8个开关(相当于一个8位寄存器),这些开关也可以记录状态,同时还能让电灯点亮/关闭,是会产生具体动作的。给存储器分配地址的过程叫存储器映射,寄存器是一类特殊的存储器,它的每个位都有特定的功能,可以实现对外设/功能的控制,给寄存器的地址命名的过程就叫寄存器映射。该代码可以解读为 仅设置CTRL寄存器的第0位(最低位)为0,其他位的值保持不变。.

2022-08-28 21:05:10 950

原创 SPI实验笔记

SCLK_PHA(bit3:0):SPI时钟相位设置,也就是CPHA,SCLK_PHA[3:0]分别对应通道3~0,为0的话串行时钟的第一个跳变沿(上升沿或下降沿)采集数据,为1的话串行时钟的第二个跳变沿(上升沿或下降沿)采集数据。SCLK_POL(bit7:4):SPI时钟信号极性设置,也就是CPOL,SCLK_POL[3:0]分别对应通道3~0,为0的话SCLK高电平有效(空闲的时候为低电平),为1的话SCLK低电平有效(空闲的时候为高电平)。这个就是SPI时序图。本章我们设置为0,也就是1分频。...

2022-08-28 20:23:07 2071

原创 prim算法

在有一个U中的顶点,和一个W中的顶点构成 的所有边中,找到一条权值最小的边(u,v),将该边作为最小生成树放入到TE中,并将顶点v加入到集合U中,并从W中删除这个顶点。继续下一步,此时集合U中有{A,B}两个点,再分别以这两点为起始点,根据查找法则,找到边BC(当有多条边权值相等时,可选任意一条),如下图。根据查找法则,与点A相邻的点有点B和点H,比较AB与AH,我们选择点B,如下图。在图中任取一个顶点k作为起始点,令U={k},W=V-U,TE={}(TH为空集),其中W为图中剩余顶点的集合。

2022-08-21 21:09:17 133

原创 I2C相关实验2

0X00这个寄存器是模式控制寄存器,用来设置AP3216C的工作模式,一般开始先将其设置为0X04,也就是先软件复位一次AP3216C。但是AP3216C没有ID寄存器,所以我们就通过向寄存器0X00写入一个值,然后再读取0X00寄存器,判断读出得到值和写入的是否相等,如果相等就表示AP3216C存在,否则的话AP3216C就不存在。AP3216的设备地址为0X1E,同几乎所有的I2C从器件一样,AP3216C内部也有一些寄存器,通过这些寄存器我们可以配置AP3216C的工作模式,并且读取相应的数据。

2022-08-21 20:56:25 568

原创 I2C相关实验

I2C是很常见的一种总线协议,I2C是NXP公司设计的,I2C使用两条线在主控制器和从机之间进行数据通信。一条是SCL(串行时钟线),另外一条是SDA(串行数据线),这两条数据线需要接上拉电阻,总线空闲的时候SCL和SDA处于高电平。I2C总线标准模式下速度可以达到100Kb/S,快速模式下可以达到400Kb/S。I2C是支持多从机的:一般会接一个4.7k的上拉电阻(VDD)。起始位I2C通信起始标志,在SCL为高电平的时候,SDA出现下降沿就表示为起始位。停止位。

2022-08-21 20:29:51 785

原创 基本的图算法

由于在无向图中,边(u,v)和边(v,u)是同一条边,无向图的邻接矩阵 A 就是自己的转置,即 A=AT。图,其权重函数为 u,我们可以直接将边(u+u)C E的权重值 w(u+2)存放在结点α 的邻接链表。权重图,其权重函数为 w,则我们直接将边(u,v)€E 的权重w(u,v)存放在邻接矩阵中的第α。o,即Aaj[o]包含图 G中所有与w邻接的结点(也可以说,该链表里包含指向这些结点的指针)。不过,对于许多问题来。由于邻接链表代表的是图的边,在伪代码里,可以将数组 Adj看做是图的一个属性,就如我们。.

2022-08-14 21:41:55 180

原创 DDR相关实验

RAM:随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。比如内存条、SRAM、SDRAM、DDR等都是RAM。RAM一般用来保存程序数据、中间结果。ROM:只读存储器,但可以进行写的操作,只是要先进行擦除,然后再发送要写的地址或扇区,最后才是要写入的数据。相比于RAM,向ROM或者Flash写入数据要复杂很多,因此意味着速度就会变慢(相比RAM),但是ROM和Flash可以将容量做的很大,而且掉电以后数据不会丢失,适合用来存储资料,比如音乐、图片、视频等信息。...

2022-08-14 21:18:23 1260

原创 RTC相关实验

RTC也就是实时时钟,用于记录当前系统时间,对于Linux系统而言时间是非常重要的,就和我们使用Windows电脑或手机查看时间一样,我们在使用Linux设备的时候也需要查看时间。RTC 很类似定时器,外接 32.768KHz 的晶振,然后就开始计时,RTC 使用两个寄存器来。RTC 使用很简单,打开 RTC,然后 RTC 就开始工作,我们要做的就是不断地读取 RTC。计数寄存器,获取时间值,或者向 RTC 计数器写入时间值,也就是调整时间。是和安全有关的,我们置 1,也可以不置 1.4。...

2022-08-14 21:16:44 286

原创 深度优先搜索

深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First Search。深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。每个字符对应一个小方格,并且要么是’*’,代表没有油,要么是’@’,表示有油。从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”。...

2022-08-07 22:54:53 1152

原创 串口实验言言

串口全称叫做串行接口,通常也叫做COM接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。I.MX6U自带的UART外设就是串口的一种,UART全称是Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。......

2022-08-07 21:41:49 523

原创 高精度延时实验

通过读取寄存器GPTx_CNT中的值就知道计了个数,比如现在要延时100us,那么进入延时函数以后纪录下寄存器GPTx_CNT中的值为200,当GPTx_CNT中的值为300的时候就表示100us过去了,也就是延时结束。自由运行(free-run)模式:当GPTx_CR(x=1,2)寄存器的FRR位置1时候GPT工作在此模式下,此模式适用于所有三个比较通道,当比较事件发生以后并不会复位计数器,而是继续计数,直到计数值为0XFFFFFFFF,然后重新回滚到0X00000000。设置定时器GPT1的工作模式,.

2022-08-07 20:07:20 328

原创 贪心算法1

能使用贪心算法解决的问题必须具备「无后效性」,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择,就能得到问题的答案。贪心算法需要充分挖掘题目中条件,没有固定的模式,解决有贪心算法需要一定的直觉和经验。贪心算法在对问题求解时,总是做出再当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是某种意义上的局部最优解。4.把子问题的解局部最优解合成原来解问题的一个解。3.对每一子问题求解,得到子问题的局部最优解。.

2022-07-31 23:07:02 66

原创 定时器消抖实验

但是t1~t2和t2~t3这两个时间段是小于我们设置的定时器中断周期(也就是消抖时间,比如10ms),所以虽然t1开启了定时器,但是定时器定时时间还没到呢t2时刻就重置了定时器,最终只有t3时刻开启的定时器能完整的完成整个定时周期并触发中断,我们就可以在中断处理函数里面做按键处理了,这就是定时器实现按键防抖的原理,Linux里面的按键驱动用的就是这个原理!上一章我们学习了EPIT定时器,定时器设置好定时时间,然后CPU就可以做其他事情去了,定时时间到了以后就会触发中断,然后在中断中做相应的处理即可。....

2022-07-31 22:56:15 828

原创 EPIT定时器实验

③、经过分频的时钟进入到EPIT内部,在EPIT内部有三个重要的寄存器计数寄存器(EPIT_CNR)、加载寄存器(EPIT_LR)和比较寄存器(EPIT_CMPR),这三个寄存器都是32位的。CLKSRC(bit2524)EPIT时钟源选择位,为0的时候关闭时钟源,1的时候选择选择Peripheral时钟(ipg_clk),为2的时候选择High-frequency参考时钟(ipg_clk_highfreq),为3的时候选择Low-frequency参考时钟(ipg_clk_32k)。...

2022-07-31 22:37:51 301

原创 算法笔记67

简单来说,动态规划其实就是,给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。再根据子问题答案反推,得出原问题解的一种方法。动态规划(英语Dynamicprogramming,简称DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。leetcode原题一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个10级的台阶总共有多少台阶。...

2022-07-24 21:42:40 79

原创 GPIO中断实验2

这个就是Cortex-A和Cotex-M在中断向量表这一块的区别,对于Cortex-M内核来说,中断向量表列举出了一款芯片所有的中断向量,包括芯片外设的所有中断。对于Cotex-A内核来说并没有这么做,在表中有个IRQ中断,Cortex-A内核CPU的所有外部中断都属于这个IRQ中断,当任意一个外部中断发生的时候都会触发IRQ中断。①、SPI(SharedPeripheralInterrupt),共享中断,顾名思义,所有Core共享的中断,这个是最常见的,那些外部中断都属于SPI中断(注意!...

2022-07-24 21:32:57 338

原创 GPIO中断实验1

如果你正在接一个很重要的电话,突然门铃响了,这是会优先处理其中一件事,比如先让按门铃的人等一下,挂电话后再去开门,或者先挂电话,等开门后再打电话过去。这就存在一个中断优先级的问题。“示例代码17.1.1.1”中第1行的“__initial_sp”就是第一条中断向量,存放的是栈顶指针,接下来是第2行复位中断复位函数Reset_Handler的入口地址,依次类推,直到第27行的最后一个中断服务函数DMA2_Channel4_5_IRQHandler的入口地址,这样STM32F103的中断向量表就建好了。...

2022-07-24 20:49:28 451

原创 分治的基本思想

有的问题分解后不需要合并子问题的解,此时就不需要再做第3步了。多数问题需要子问题的解,按照题意使用恰当的方法合并成为整个问题的解。需要具体问题具体分析。若干子问题较小而容易被解决则直接解决,否则再继续分解为更小的子问题,直到容易解决。将原问题分解为若干规模较小,相互独立,与原问题相同的子问题。16硬币,有可能有1枚假币,假币比真币轻。将已求解的各个子问题的解,逐步合并为原问题的解。平,用最少称量次数确定有没有假币,若有的话,假。8-8的称——挑出轻的那一堆。4-4的称——挑出轻的那一堆。...

2022-07-17 21:24:18 118

原创 各时钟配置

②、设置寄存器CCSR的PLL1_SW_CLK_SEL位,设置pll1_sw_clk的时钟源为step_clk=24MHz,通过这一步我们就将I.MX6U的主频先设置为24MHz,直接来自于外部的24M晶振。④、设置寄存器CCSR的PLL1_SW_CLK_SEL位,重新将pll1_sw_clk的时钟源切换回pll1_main_clk,切换回来以后的pll1_sw_clk就等于1056MHz。③、设置寄存器CCM_ANALOG_PLL_ARMn,将pll1_main_clk(PLL1)设置为1056MHz。.

2022-07-17 20:39:50 498

原创 IM6U主频与时钟配置实验1

开发板时钟电路重点分析这两个。

2022-07-17 19:53:34 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除