自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IMX6UL开发板的GPIO中断实验,编写中断向量表(一)

通过为每个模式分配独立的堆栈空间,并设置正确的堆栈指针,可以确保每个模式都有自己独立的堆栈区域,从而避免数据冲突和损坏。根据上面的表的内容创建中断向量表,中断向量表位于程序最开始的地方,在这里就是start.S文件的最前面,在ldr pc那里就是中断向量表,当指定的中断发生以后就会调用对应的中断复位函数,比如复位中断发生以后就会执行ldr pc, =Reset_Handler,也就是调用函数Reset_Handler,函数Reset_Handler就是复位中断的中断复位函数,对于其它的中断也是一样的。

2024-09-09 23:13:42 751

原创 基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

但是CPU是如何知道中断源产生后就找到对应的中断服务函数呢,这个时候就要引入中断向量表,它的主要功能是描述中断对应的中断服务函数,每个中断源都有一个唯一的中断号(也称向量号),CPU在接收到中断信号后,会读取中断号,并将其作为索引到中断向量表中查找对应的中断服务函数地址,找到地址后,CPU会跳转到该地址执行中断服务函数其实中断向量表类似于一张表格,表格是按照内存地址由低到高,里面的每一个地址都存放一个函数。例如,GIC可以将优先级较高的中断分配给一个核心,而将低优先级的中断分配给另一个核心。

2024-09-07 13:32:29 725

原创 完成IMX6UL开发板的各路PLL时钟配置

在之前并没有使用过这样的操作,为什么在这里开始使用这么繁琐的写法呢。首先第一步要做的就是将此位寄存器清零,所以代码的第一步就是将其清零,3 = 0011将这两位向左移动18位,对应的就是18和19位,也也就是我们需要配置的位,我们的目的是使这两位清零,其他位保持不变,最后与上寄存器,得到的结果就是32位全部为0,达到了18.19位被清零(虽然本身就是为0,但是为了养成习惯,需要规范的写法),其他位也是仍然保持为0。就可以将此为清零,这个时钟选择器也完成了。

2024-09-01 15:41:29 870

原创 如何修改imx6ul开发板主频实验

这个寄存器的第二位就是PLL1_SW_CLK_SEL,也就是可以选择输出哪条时钟频率的位,选择生成pll1_sw_clk的源,因为需要设置pll1_main_clk,所以这里就需要将时钟切换为step_clk,然后设置切换完成过后,我们还需要对step_clk进行时钟频率的配置,上图的24MHz晶振同样进入了step_clk,再观察这个寄存器可以看到此此寄存器的第九位就是对step_clk的配置,使用的是同一个寄存器,既然思路已经理清楚了,那我们就在代码中体现。

2024-08-29 15:55:28 872

原创 IMX6ULL时钟树原理讲解(超详细)

I.MX6U 的外设有很多,不同的外设时钟源不同,NXP 将这些外设的时钟源进行了分组, 一共有 7 组,这 7 组时钟源都是从 24MHz 晶振 PLL 而来的,因此也叫做 7 组 PLL。这个就是对于IMX6UL开发板的时钟源生成图上的信息的一个基本讲解,接下来我们就需要开始讲解时钟树,作为时钟系统的基础,时钟源(如晶振或其他振荡器)生成系统中的基准时钟信号。这些信号是整个系统中所有时钟信号的起点,但是时钟树的作用是负责将时钟源中分配的信号到系统中的各个部分,并保持时钟信号的稳定性和完整性。

2024-08-22 11:53:25 651

原创 编写IMX6UL蜂鸣器实验,使用SDK库

上几节,我们讲解了如何移植SDK库,并且如何使用BSP工程管理,使得能够规范的管理我们的工程文件,这一讲,我们就使用前面的方法,来编写IMX6uL开发板上的蜂鸣器实验

2024-08-13 17:03:21 983

原创 如何使用BSP管理自己的工程文件(IMX6UL开发板)

对于后半的$(wildcard $(dir)/*.S)$(wildcard $(dir)/*.S):在每次循环中,这部分代码用于查找 $(dir) 目录中的所有 .S 文件。需要改变的地方是我们这里的这个链接文件,因为在之前我们的start.S文件都是直接被放在根目录下方的,现在我们的启动文件是被放在文件夹project下方,所以需要在链接text段的时候需要重新给定启动文件的文件路径,在前方加入obj/也就是说明我们这个文件obj文件夹的下方,之后链接文件便可以正确的找到这个文件的路径。

2024-08-13 12:51:33 1065

原创 如何编写Makefile控制编译Arm(IMX6UL),及烧写程序(详细讲解Makefile语法7-)

OBJS变量中包含了.o文件文件列表的变量。这意味着,无论你的程序有多少个对象文件,只要它们包含了.text段,链接器都会将这些段的内容收集起来,并按照链接脚本中指定的顺序(在这个例子中是先start.o,然后main.o,最后是所有其他文件)放置在最终的输出文件的.text段中。这里明确指定了链接器应该将start.o和main.o中的.text段内容放置在.text段的开头(或者更准确地说,是紧随当前位置的下一个可用位置,但在这个上下文中,由于它们是第一个被列出的,所以它们会位于.text段的开始)。

2024-08-12 22:01:35 836

原创 使用官方SDK库编写IMX6UL的LED灯驱动(超详细原理分析)

在我们编写驱动的时候需要使用到寄存器,但是往往自己编写寄存器的时候特别繁琐,容易出错,而且还需要对同一个寄存器反复定义,所以为了开发的科学性我们使用NXP官方专门为IMU6UL提供的SDK包来编写IMX6UL的第一个LED灯驱动。在此前先说明,这里我是关于SDK的包我已经参照正点原子的视频全部移植完成了,在之后需要使用的文件我都会放在链接,如果想要自己重新移植一次我也会将SDK的安装包放在文件中,然后可以惨参考正点原子的SDK使用和移植教程,但是这里我就不讲解具体的移植过程了。

2024-08-09 12:39:11 722

原创 学习Linux之ARM,IMX6ULL裸机开发,搭建环境

然后我们开始下载我们的编辑器,这里选择使用Vscode,它也是支持Linux版本的,并且是免费的,我们还是选择在Windows中下载好,然后传输到Ubuntu中,博主这里提供了1.32.版本的Vscode,也是同样放在了资料中,如果对其他版本有需求,可以去到Vscode的官网进行下载,但是记得一定是要下载Linux版本的,然后我们就开始配置。然后我们安装使用这个指令安装一下相关的库,用于安装Linux标准基础的核心组件和GNU标准C++库的32位版本,这有助于增强系统的兼容性和支持更广泛的应用程序。

2024-07-31 14:45:38 1050

原创 基于Linux为服务器,搭建的一个web网站

但是这个地方需要知道的是,我们这个网站搭建的是基于我们Linux作为服务器的,所以如果我们关停了我们的服务器这个网站自然也会被关闭,所以为什么很多人很多时候都是选择的云服务器,除了可以提供相关防护外,最大的优势他是不会关闭的,简单的例子,当别人在晚上想要访问你的网站时候,你因为在睡觉使电脑休眠或者关机了,这个时候就无法访问你的网站,可能你就会因此丢失一个可能的客户对吧,所以这个地方也必须要了解。在同学们学习了一定的Linux知识后,我们可以尝试去进一步实践这些知识,并将其应用到实际的项目中去。

2024-05-15 12:30:26 2157

原创 使用主机远程连接虚拟机中的Linux,基于宝塔Linux面板

紧接上一篇,我们在虚拟机上已经成功搭建了我们的Linux的系统,其实在我们的实际运用中服务器通常被放置在IDC机房或云端,管理员很少能直接接触到服务器的本地界面。通过在主机上远程连接虚拟机中的Linux模拟实际工作场景,提升学习者远程管理Linux系统方面的技能并且过远程连接工具,用户可以直接在主机上操作虚拟机中的Linux系统,无需在虚拟机界面和主机界面之间频繁切换。这大大提高了操作效率,同时也为用户提供了更为便捷的工作方式。

2024-05-12 21:55:34 1945 4

原创 虚拟机上搭建Linux CentOS 7系统:一步一步详细教程

如何快速的在虚拟机上搭建Linux系统

2024-05-09 02:35:39 1690

空空如也

空空如也

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

TA关注的人

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