随笔分类 -  Linux嵌入式——裸机开发

i.mx6ull
摘要:spi控制陀螺仪 spi.h #ifndef _BSP_SPI_H #define _BSP_SPI_H #include "imx6ul.h" /* 函数声明 */ void spi_init(ECSPI_Type *base); unsigned char spich0_readwrite_by 阅读全文
posted @ 2021-11-30 10:38 蘑菇王国大聪明 阅读(100) 评论(0) 推荐(0) 编辑
摘要:1.IIC协议 I2C1_SCL使用的是UART4_TXD,复用为ALT2 I2C1_SDA使用的是UART4_RXD,复用为ALT2 注意: SCL和SDA必须要上拉电阻接到VCC,选择4.7K,因为总线空闲时,两根线必须为高电平 IIC总线支持多从机,通过从机地址来进行通信 起始位 为高电平的时 阅读全文
posted @ 2021-11-30 09:57 蘑菇王国大聪明 阅读(370) 评论(0) 推荐(0) 编辑
摘要:1. 显示原理简介 1.1 像素点 相当于一个小灯,彩色点阵屏每个像素点有三个小灯,分别是红色绿色和蓝色RGB,也就是光的三原色,通过调节这三种光的比例就可以实现彩色 1.2 分辨率 像素点的个数就是分辨率 1080p 1920 x 1080 尺寸,就是显示器的对角长度,尺寸越小分辨率越高,越清楚 阅读全文
posted @ 2021-11-28 14:53 蘑菇王国大聪明 阅读(334) 评论(0) 推荐(0) 编辑
摘要:1. 串口原理 UART_URXD寄存器保存着串口接收到的数据 UART_UTXD寄存器为发送数据寄存器,如果需要串口发送数据,只需要写入到这个结存器 UARTx_UCR1到UARTx_UCR4都是控制寄存器 UCR1的bit0是使能位,bit是发送完了产生中断,14是自动监测波特率使能位,为1的时 阅读全文
posted @ 2021-11-25 19:39 蘑菇王国大聪明 阅读(617) 评论(0) 推荐(0) 编辑
摘要:1. 步骤 GPTx_CR寄存器 GPTx_SR寄存器 GPTx_PR寄存器分频 1、设置 GPT1 定时器 首先设置 GPT1_CR 寄存器的 SWR(bit15)位来复位寄存器 GPT1。复位完成以后设置寄存 器 GPT1_CR 寄存器的 CLKSRC(bit8:6)位,选择 GPT1 的时钟源 阅读全文
posted @ 2021-11-25 11:10 蘑菇王国大聪明 阅读(208) 评论(0) 推荐(0) 编辑
摘要:1. 步骤 1、配置按键 IO 中断 配置按键所使用的 IO,因为要使用到中断驱动按键,所以要配置 IO 的中断模式。 2、初始化消抖用的定时器 上面已经讲的很清楚了,消抖要用定时器来完成,所以需要初始化一个定时器,这里使用 上一章讲解的 EPIT1 定时器,也算是对 EPIT1 定时器的一次巩固。 阅读全文
posted @ 2021-11-25 09:49 蘑菇王国大聪明 阅读(284) 评论(0) 推荐(0) 编辑
摘要:1.操作步骤 1、设置 EPIT1 的时钟源 设置寄存器 EPIT1_CR 寄存器的 CLKSRC(bit25:24)位,选择 EPIT1 的时钟源。 2、设置分频值 设置寄存器 EPIT1_CR 寄存器的 PRESCALAR(bit15:4)位,设置分频值。 3、设置工作模式 设置寄存器 EPIT 阅读全文
posted @ 2021-11-24 17:49 蘑菇王国大聪明 阅读(153) 评论(0) 推荐(0) 编辑
摘要:1. 回顾STM32系统 1.1 中断向量表 ARM芯片冲0x00000000,在程序开始的地方存放中断向量表,按下中断时,就相当于告诉CPU进入的函数。描述很多个中断服务函数的表。 对于STM32来说,代码最开始存放栈顶指针(0x80000000),然后是Reset_Handler(0x80000 阅读全文
posted @ 2021-11-24 15:59 蘑菇王国大聪明 阅读(652) 评论(0) 推荐(0) 编辑
摘要:IRQ_Handler: push {lr} /* 保存 lr 地址 */ push {r0-r3, r12} /* 保存 r0-r3,r12 寄存器 */ mrs r0, spsr /* 读取 spsr 寄存器 */ push {r0} /* 保存 spsr 寄存器 */ mrc p15, 4, 阅读全文
posted @ 2021-11-22 19:43 蘑菇王国大聪明 阅读(284) 评论(0) 推荐(1) 编辑
摘要:1. 时钟晶振 32.768RTC时钟源 24主频及其他时钟源 2. 系统时钟详解 (不想详解了,都能查到) 2.1 7路PLL 为了方便生成时钟,生成了7路PLL 2.2 各路时钟分出来的PLD 2.3 时钟树 设置PLL和分频即可 3. 系统配置 3.1 系统主频配置 要设置ARM内核主频为52 阅读全文
posted @ 2021-11-21 16:32 蘑菇王国大聪明 阅读(308) 评论(0) 推荐(0) 编辑
摘要:1. 按键实验 查询原理图可知KEY对应的按键和引脚,当KEY按下时,引脚为低电平,否则为高电平 2. 代码 2.1 GPIO 为了方便GPIO的编写,建立GPIO的文件夹和对应的.h和.c文件。 bsp_gpio.h /* 为了方便gpio的驱动编写,编写一个gpio驱动文件 */ #ifndef 阅读全文
posted @ 2021-11-19 14:14 蘑菇王国大聪明 阅读(385) 评论(0) 推荐(0) 编辑
摘要:1. bsp工程管理的目的 模块化项目,使得项目清晰 2. 代码 拷贝原来工程 创建文件夹 bsp就是工程驱动文件 imx6ull是和芯片有关的文件 obj是生成文件的文件夹 project 工程文件 start.s main.c 创建对应的驱动文件 和上一节一样的驱动文件 # ?= 没有赋值的话就 阅读全文
posted @ 2021-11-18 16:07 蘑菇王国大聪明 阅读(150) 评论(0) 推荐(0) 编辑
摘要:1. 设计思想 1.1 设置处理器模式 设置sp啥的汇编要先进入SVC模式,超级管理员特权模式,这样就可以访问所有寄存器了,需要用到cpsr寄存器 0到4位要设置svc模式10011 = 0x13, 就不能用ldr和str了因为不能操作这两个寄存器 1.2 设置sp指针 进入C语言之前要设置出栈和入 阅读全文
posted @ 2021-11-17 19:34 蘑菇王国大聪明 阅读(247) 评论(0) 推荐(0) 编辑
摘要:1. 解释 前面是无符号整型unsigned int的指针, 后面加一个地址,就是无符号整型的地址,前面又一个星号就是这个地址的值。 2.volatile 同步 因为同一个东西可能在不同的存储介质中有多个副本,有些情况下会使得这些副本中的值不同,这是不允许的,所以干脆用volatile,让它只有一个 阅读全文
posted @ 2021-11-17 18:05 蘑菇王国大聪明 阅读(1343) 评论(0) 推荐(1) 编辑
摘要:1. 启动方式 2. 头部信息 编译好的bin文件烧写到SD卡中,需要加一些头部文件,才可以执行。 Image vector table,简称 IVT,IVT 里面包含了一系列的地址信息,这些地址信息在ROM 中按照固定的地址存放着。 Boot data,启动数据,包含了镜像要拷贝到哪个地址,拷贝的 阅读全文
posted @ 2021-11-17 17:54 蘑菇王国大聪明 阅读(191) 评论(0) 推荐(0) 编辑
摘要:1. 汇编LED原理 为什么使用Cortex-A汇编 使用汇编初始化soc外设 使用汇编初始化DDR,I.MX不需要,因为它内部的96k ROM中存放了自己编写的启动代码,这些代码可以读取DDR配置信息 设置sp指针,一般指向ddr,设置好C语言的运行环境 Alpah开发板原理硬件分析 LED0为低 阅读全文
posted @ 2021-11-16 17:34 蘑菇王国大聪明 阅读(284) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示