
I.MX6UL
JIWilliams
这个作者很懒,什么都没留下…
展开
-
I.MX6UL系统移植(一)—— U-Boot
1、U-Boot简介 uboot的全称是Universal Boot Loader,uboot是一个遵循GPL协议的开源软件,uboot是一个裸机代码,可以看作是一个裸机综合例程。现在的uboot已经指出液晶屏、网络、 USB等高级功能。2、U-Boot编译 ①、make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean ②、make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- ...原创 2020-07-25 11:39:11 · 1674 阅读 · 0 评论 -
I.MX6UL裸机开发(十二)—— SNVS
1、SNVS简介(1)SNVS全称是Secure Non-Volatile Storage,直译过来就是安全的非易性存储。SNVS里面主要是一个低功耗的外设,包括一个安全的实时计数器(RTC)、一个单调计数器 (monotonic counter)和一些通用的寄存器。(2)SNVS分为两个子模块:高功耗域(SNVS_HP)和低功耗域(SNVS_LP),这两个域的电源来源如下: ①、SNVS_LP:专用的always-powered-on电源域,系统主电源和备用电源都可以为其供电。 ...原创 2020-07-21 08:56:31 · 6288 阅读 · 0 评论 -
I.MX6UL裸机开发(十一)—— RGBLCD
1、LCD简介(1)分辨率 分辨率有720P、1080P、2K、4K等。相同尺寸的LCD屏,分辨率越高,效果越清晰。(2)像素格式 I.MX6U使用RGB8888像素格式,即8bits的Alpha(透明)、8bits的红、8bits的绿和8bits的蓝,总共24bits,4字节组成的像素点。(3)LCD屏幕接口 LCD屏幕有很多种接口,比如在显示器上常见的VGA、HDMI、DP等等。但是I.MX6U-ALPHA开发板不支持这些接口。I.MX6U-ALPHA支持RGB接口的...原创 2020-07-21 08:56:08 · 889 阅读 · 0 评论 -
I.MX6UL裸机开发(十)—— DDR3
1、何为RAM和ROM?(1)RAM: 随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。比如内存条、SRAM、SDRAM、DDR等都是RAM。RAM一般用来保存程序数据、中间结果。可以随意对 RAM中任何地址的数据进行读写操作。(2)ROM: 只读存储器(不准确)。RAM和Flash可以将容量做的很大,而且掉电以后数据不会丢失,适合用来存储资料,比如音乐、图片、视频等信息。(3)综上所述: RAM速度快,可以直接和CPU进行通信...原创 2020-07-20 19:47:14 · 687 阅读 · 0 评论 -
I.MX6UL裸机开发(九)—— 串口
1、UART简介(1)UART通信格式 串口全称叫做串行接口,通常也叫做COM接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。 串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。I.MX6U自带的UART外设就是串口的一种,UART全称是Universal Asynchronous Receiver/Transmitter, 也就是异步串行收发器。既然有异步串行收发器,那肯定也有同步串行收发...原创 2020-07-20 19:46:26 · 295 阅读 · 0 评论 -
I.MX6UL裸机开发(八)—— GPT定时器
1、GPT定时器简介(1)GPT定时器全称为General Purpose Timer,是一个32位向上定时器。GPT定时器也可以跟一个值进行比较,当计数值和这个值相等的话就发生比较事件,产生比较中断。 GPT定时器有一个12位的分频器,可以对GPT定时器的时钟源进行分频,GPT定时器特定如下: ①、一个可选时钟源的32位向上计数器。 ②、两个输入捕获通道,可以设置触发方式。 ③、三个输出比较通道,可以设置输出模式。 ④、可以生成捕获中断、比较中断和溢出中...原创 2020-07-20 19:45:19 · 575 阅读 · 0 评论 -
I.MX6UL裸机开发(七)—— EPIT定时器
1、EPIT定时器简介(1)EPIT的全称是:Enhanced Periodic Interrupt Timer,直译过来就是增强的周期中断定时器,它主要是完成周期中断定时的。I.MX6U的EPIT定时器只是完成周期性中断定时的, 没有输入捕获、PWM输出等功能。(2)EPIT是一个32位定时器,在处理器几乎不用介入的情况下提供精准的定时中断,软件使能以后EPIT就会开始运行,EPIT定时器有如下特点: ①、时钟源可选的32位向下计数器。 ②、12位的分频值。 ③...原创 2020-07-20 19:44:23 · 335 阅读 · 0 评论 -
I.MX6UL裸机开发(六)—— 中断系统
1、Cortex-A7内核有8个异常中断: 向量地址 中断类型 中断模式(1)0x00 复位中断(Rest) 特权模式(SVC)(2)0x04 未定义指令中断(Undefined Instruction) 未定义指令中止模式(Undef)(3)0x08 软中断(Software Interrupt,SWI) 特权模式(SVC)(...原创 2020-07-20 19:43:18 · 514 阅读 · 0 评论 -
I.MX6UL裸机开发(五)—— BSP工程管理
1、在工程目录下创建4个文件夹:(1)bsp:存放驱动文件(2)imx6ul:存放跟芯片有关的文件,比如NXP官方的SDK库文件(3)obj:存放编译生成的.o文件(4)project:存放start.S和main.c文件,也就是应用文件2、BSP工程的Makefile:CROSS_COMPILE ?= arm-linux-gnueabihf- #交叉编译工具TARGET ?= bsp #目标名字CC := $(CROSS_COMPILE)gcc #编原创 2020-07-20 19:38:45 · 429 阅读 · 0 评论 -
I.MX6UL裸机开发(四)—— 何为链接脚本
SECTION{ . = 0X87800000; //设置定位计数器为0X87800000 .text : //.text是段名,冒号是语法要求,冒号后面的大括号可以填上要链接到.text段里面的所有文件 { start.o //设置链接到开始位置的文件为start.o main.o *(.text) //*是通配符,表示所有输入文件的.text段都放到.text中 } .rodata ALIGN(4) : {*(.rodata*).原创 2020-07-20 19:35:46 · 326 阅读 · 0 评论 -
I.MX6UL裸机开发(三)—— 代码如何烧写到SD卡中
代码如何烧写到SD卡中?1、将imxdownload拷贝到工程根目录下2、给予imxdownload可执行权限3、确定要烧写的SD卡4、向SD卡烧写bin文件 命令:./imxdownload <.bin file> <SD Card> ./imxdownload led.bin /dev/sdd,执行完命令之后生成load.imx,最终烧写到SD卡的就是load.imx,而不是led.bin,load.imx是在led.bin 的基础上添加了特...原创 2020-07-20 19:34:08 · 693 阅读 · 0 评论 -
I.MX6UL裸机开发(二)—— 编译代码生成可执行文件
1、arm-linux-gnueabihf-gcc编译文件 命令:arm-linux-gnueabihf-gcc -g -c led.s -o led.o (1)-g选项产生调试信息,GDB能够使用这些调试信息进行代码调试; (2)-c选项编译源文件,但是不链接; (3)-o选项指定编译产生的文件名字2、arm-linux-gnueabihf-ld链接文件 命令:arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.el...原创 2020-07-20 19:32:32 · 310 阅读 · 0 评论 -
I.MX6UL裸机开发(一) —— 如何将IO作为GPIO使用
1、使能GPIO对应的时钟 CCM(Clock Controller Module)有CCM_CCGR0~CCM_CCGR6这7个寄存器,这7个寄存器控制着I.MX6U的所有外设时钟开关。2、设置寄存器IOMUXC_SW_MUX_CTL_PAD_XX_XX,设置IO的复用功能,使其复用为GPIO功能。 寄存器IOMUXC_SW_MUX_CTL_PAD_XX_XX只用到最低5位,其中bit0~bit3(MUX_MODE)用于设置复用功能。3、设置寄存器IOMUXC_SW_PAD_CTL_P...原创 2020-07-20 19:29:02 · 511 阅读 · 0 评论