IMX6UL裸机实现C语言蜂鸣器实验

蜂鸣器常用于计算机、打印机、报警器、电子玩具等电子产品中,常用的蜂鸣器有两种:有源蜂鸣器和无源蜂鸣器,这里的有源不是电源,而是震荡源,有源蜂鸣器内部带有震荡源,所以有源蜂鸣器只要通...

如何编写一个工程文件夹下通用的Makefile

新建工程文件夹,在里面新建 bsp、imx6ul、obj 和project 这 3 个文件夹,完成以后如图所示:新建的工程根目录文件夹其中 bsp 用来存放驱动文件;imx6ul 用来存放跟芯片有关的文件,比如 NXP 官方的 SDK库文件;obj 用来存放编译...

通过结构体的方式来定义和使用寄存器地址

在上一篇文章《IMX6UL裸机实现C语言LED实验》中,我们通过给每个寄存器宏定义一个地址的方式来使用寄存器地址,但是这种给每个寄存器定义一个值的方式太繁琐了,所以今天我们就来把他改成结构体的形式。1、编写外设结构体先将同属于一个外设的所有寄存器编写...

IMX6UL裸机实现C语言LED点亮与闪烁

C 语言部分有两个文件 main.c 和 main.h,main.h 里面主要是定义的寄存器地址,在 main.h里面输入代码:#ifndef MAIN_H #define MAIN_H 1 /* 2 * CCM 相关寄存器地址 3 */ 4 #define CCM_CCGR0 *((volatile ...

设备树在Linux系统内核中的体现

Linux 内核启动的时候会解析设备树中各个节点的信息,并且在根文件系统的/proc/device-tree 目录下根据节点名字创建不同文件夹,如图所示:根节点/的属性以及子节点上图就是目录/proc/device-tree 目录下的内容,/proc/device-tree 目录下是根节点/的...

手把手创建一个小型模板Linux设备树

本文我们从头到尾编写一个小型的设备树文件。当然了,这个小型设备树没有实际的意义,做这个对的目的是为了掌握设备树的语法。在实际产品开发中,我们是不需要完完全全的重写一个.dts 设备树文件,一般都是使用SOC 厂商提供好的....

Linux设备树专有名词及语法规则详解(下)

每个节点都有 compatible 属性,根节点/也不例外,imx6ull-alientek-emmc.dts 文件中根节点的 compatible 属性内容如下所示:14 / { 15 model = "Freescale i.MX6 ULL 14x14 EVK Board"; 16 compatible = "fsl,imx6ull-14x14-evk", "fsl,...

Linux设备树专有名词及语法规则详解(上)

设备树源文件扩展名为.dts,但是我们在移植 Linux 的时候却一直在使用.dtb 文件,那么 DTS 和DTB 这两个文件是什么关系呢?DTS 是设备树源码文件,DTB 是将DTS 编译以后得到的二进制文件,Linux 内核和 uboot 只能 DTB 文件。将.c 文件编译为.o 需要用到 gcc ...

什么是Linux的设备树

设备树(Device Tree),将这个词分开就是设备和树,描述设备树的文件叫做 DTS(DeviceTree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、IIC 接口上接了哪些设备、SPI 接口上接了哪些设备等...

I.MX6U处理器LED灯点亮汇编程序之命令行方式编译与链接

如果你是在 Windows 下使用 Source Insight 编写的代码,就需要通过 FileZilla 将编写好的代码发送的Ubuntu 中去编译,FileZilla 的使用参考我们前面的文章《嵌入式Linux开发学习之 Ubuntu 和 Windows 文件互传》...

I.MX6U处理器LED灯点亮汇编程序代码编写

LED硬件原理图如下图所示:LED硬件原理图从图中可以看出,LED0 接到了GPIO_3 上,GPIO_3 就是 GPIO1_IO03,当 GPIO1_IO03输出低电平(0)的时候发光二极管 LED0 就会导通点亮,当 GPIO1_IO03 输出高电平(1)的时候发光二极管 LED0 不会导通,因此 LED0 也就不会...

I.MX6U处理器的GPIO配置

IOMUXC_SW_MUX_CTL_PAD_XX_XX 和 IOMUXC_SW_PAD_CTL_PAD_XX_XX 这两种寄存器都是配置 IO 的,注意是 IO!不是 GPIO,GPIO 是一个 IO 众多复用功能中的一种。比如 GPIO1_IO00 这个 IO 可以复用为:I2C2_SCL、GPT1_CAPTURE1、ANATOP_OTG1_ID、EN...

I.MX6U处理器GPIO的命名复用与IO配置

{if =='编辑问题'} 一、I.MX6U处理器GPIO的命名STM32 中的 IO 都是 PA0~15、PB0~15 这样命名的,I.MX6U 的 IO 是怎么命名的呢?打开NXP官方提供的《I.MX6UL 参考手册》的第 ...

Cortex-A7处理器算数运算指令和逻辑运算指令

汇编中也可以进行算术运算, 比如加减乘除,常用的运算指令用法如表所示:常用运算指令在嵌入式开发中最常会用的就是加减指令,乘除基本用不到。我们用 C 语言进行CPU 寄存器配置的时候常常需要用到逻辑运算符号,比如&、|等逻辑运算...

Cortex-A7处理器压栈出栈和跳转汇编指令

我们通常会在 A 函数中调用 B 函数,当 B 函数执行完以后再回到 A 函数继续执行。要想在跳回A 函数以后代码能够接着正常运行,那就必须在跳到 B 函数之前将当前处理器状态保存起来(就是保存 R0~R15 这些寄存器值),当 B 函数执行完成以后再用...

发布经验,赚取财富值,与更多的电子工程师一起成长!

写文章

热门文章

一周热门问题