自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux之ARM(MX6U)裸机之主频和时钟配置实验

Linux之ARM(MX6U)裸机之主频和时钟配置实验1. I.MX6U 时钟系统详解1.1系统时钟来源1.2 7 路 PLL 时钟源1.3 时钟树简介1.4 内核时钟设置1.5 PFD 时钟设置1.6 AHB、 IPG 和 PERCLK 根时钟设置2.实验程序编写2.1bsp_clk.h2.2 bsp_clk.c2.3 main.c 修改3.编译下载验证在前几篇 写的实验中我们都没有涉及到 I.MX6U 的时钟和主频配置操作,全使用的默认配置,默认配置下 I.MX6U 工作频率为 396MHz。但是

2020-08-28 16:51:11 297

原创 Linux中的指令

Linux中的指令一、文件和目录cd /home 进入 ‘/ home’ 目录’cd … 返回上一级目录cd …/… 返回上两级目录cd 进入个人的主目录cd ~user1 进入个人的主目录cd - 返回上次所在的目录pwd 显示工作路径ls 查看目录中的文件ls -F 查看目录中的文件ls -l 显示文件和目录的详细资料ls -a 显示隐藏文件ls [0-9] 显示包含数字的文件名和目录名tree 显示文件和目录由根目录开始的树形结构lstree 显示文件和目录由根目录开始的

2020-08-26 11:31:48 117

原创 Linux之ARM(MX6U)裸机之按键输入实验(GPIO的输入、输出)

Linux之ARM(MX6U)裸机之按键输入实验(GPIO的输入、输出)1.按键输入简介2. 硬件原理分析3.实验程序编写3.1编写bsp_gpio.h3.2编写bsp_gpio.c3.3编写bsp_key.h3.4编写bsp_key.c3.5修改main.c4. 编译下载验证4.1编写 Makefile4.2链接脚本编写4.3 编译下载前面几章试验都是讲解如何使用 I.MX6U 的 GPIO 输出控制功能,I.MX6U 的 IO 不仅能作 为输出,而且也可以作为输入。I.MX6U-ALPHA 开发板上

2020-08-25 16:32:20 829

原创 Linux之ARM(MX6U)裸机之c语言蜂鸣器实验--驱动编写、编译

Linux之ARM(MX6U)裸机之c语言蜂鸣器实验--编写、编译1.有源蜂鸣器简介2. 硬件原理分析3.编译下载验证3.1在写驱动之前要找到对应的寄存器设置好属性3.1.1初始化SNVS_TAMPER1这个IO复用为GPIO5_IO013.1.2设置SNVS_TAMPER1这个IO的电气属性。3.1.3修改.vscode文件把beep文件夹路径加入到.vscode3.2 修改main.c文件4 编写和验证4.1编写Makefile4.2编写脚本链接4.3编译下载Linux之ARM(MX6U)裸机之c语言

2020-08-19 16:06:56 598

原创 Linux之ARM(MX6U)裸机之BSP工程管理实验

Linux之ARM(MX6U)裸机之BSP工程管理实验1.工程管理简介2.实验程序编写2.1创建 imx6ul.h 文件2.2创建个.vscode文件修改includePath2.3 编写 led 驱动代码2.4 编写时钟驱动代码2.5 编写延时驱动代码2.6 修改 main.c 文件3.编译下载验证3.1编写 Makefile3.2 编写脚本链接3.3 编译下载1.工程管理简介打开我们上一章的工程根目录,如图所示:在图中我们将所有的源码文件都放到工程根目录下,即使这个工程只是完成了一个 简单的流水

2020-08-18 10:58:10 553

原创 Linux之ARM(MX6U)裸机之使用官方SDK移植实验

Linux之ARM(MX6U)裸机之使用官方 SDK 移植实验1. I.MX6ULL 官方 SDK 包简介2.硬件原理图分析3.试验程序编写3.1SDK 文件移植3.2创建 cc.h 文件3.3 编写实验代码4.编译下载验证4.1 编写 Makefile 和链接脚本4.2 编译下载1. I.MX6ULL 官方 SDK 包简介NXP 针对 I.MX6ULL 编写了一个 SDK 包,这个 SDK 包就类似于 STM32 的 STD 库或者 HAL 库,这个 SDK 包提供了 Windows 和 Linux

2020-08-17 21:05:04 894

原创 Linux之ARM(MX6U)裸机模仿 STM32 驱动开发格式实验 --驱动编写、编译

Linux之ARM(MX6U)裸机模仿 STM32 驱动开发格式实验 --驱动编写、编译一、模仿 STM32 寄存器定义①STM32 寄存器定义简介为了开发方便,ST 官方为 STM32F103 编写了一个叫做 stm32f10x.h 的文件,在这个文件 里面定义了 STM32F103 所有外设寄存器,我们可以使用其定义的寄存器来进行开发,比如我 们可以用如下代码来初始化一个 GPIO:GPIOE->CRL&=0XFF0FFFFF; GPIOE->CRL|=0X00300000

2020-08-16 20:29:20 516

原创 Linux之ARM(MX6U)裸机C语言版LED灯实验--驱动编写、编译

Linux之ARM(MX6U)裸机C语言版 LED灯实验–驱动编写、编译一、C语言运行环境构建汇编文件只是用来完成 C 语言环境搭建。设置处理器模式设置6ULL处于SVC模式 下。设置CPSR寄存器的bit4-0,也就是M[4:0]为10011=0X13。读写状态寄存器需要用到MRS和MSR指令。MRS将CPSR寄存器数据读出到通用寄存器里面,MSR指令将通用寄存器的值写入到CPSR寄存器里面去。以前的 ARM 处理器有 7 种运行模型:User、FIQ、IRQ、Supervisor(SVC)、A

2020-08-16 19:41:21 629

原创 Linux之ARM(MX6U)裸机之 MX6ULL 启动方式详解

Linux之ARM(MX6ULL)裸机之 MX6ULL 启动方式详解一、启动方式选择BOOT 的处理过程是发生在 I.MX6U 芯片上电以后,芯片会根据BOOT_MODE[1:0]的设置 来选择 BOOT 方式。BOOT_MODE[1:0]的值是可以改变的,有两种方式,一种是改写 eFUSE(熔 丝),一种是修改相应的 GPIO 高低电平。第一种修改 eFUSE 的方式只能修改一次,后面就不能 再修改了,所以我们不使用。我们使用的是通过修改 BOOT_MODE[1:0]对应的 GPIO 高低电平 来选择

2020-08-15 11:08:42 1588

原创 Linux之ARM(MX6U)裸机汇编LED驱动实验--烧写bin文件到sd卡并运行

Linux之ARM(MX6ULL)裸机汇编LED驱动实验–烧写bin文件到sd卡并运行一、代码烧写编译完代码以后可以直接通过 MDK 或者 IAR 下载到内部的 flash 中。但是 I.MX6U 虽然内部有 96K 的 ROM,但是这 96K 的 ROM 是 NXP 自己用的,不向用户开放。所以相当于说 I.MX6U 是没有内部 flash 的,但是我们的代码得有地 方存放啊,为此,I.MX6U 支持从外置的 NOR Flash、NAND Flash、SD/EMMC、SPI NOR Flash 和 Q

2020-08-14 20:47:57 1065

原创 Linux之ARM(MX6U)裸机汇编LED驱动实验-编译驱动代码

Linux之ARM(MX6ULL)裸机汇编LED驱动实验-编译驱动代码汇编驱动代码(leds.s): .global _start @全局标号 _start:/* 使能外设时钟*CCGR0~CCGR6这7个寄存器全部使能,设置CCGR0~CCGR6这7个寄存器地址全部为 0XFFFFFFFF*/ldr r0, =0x020c4068 @CCGR0ldr r1, =0xffffffff @向CCGR0写入的数据str r1, [r0] @将oxfff

2020-08-13 22:04:04 478 1

原创 Linux之ARM(MX6U)裸机汇编LED驱动实验-编写驱动代码

I.MX6ULL IO初始化一、使能时钟使能时钟,CCGR0~ CCGR6这7个寄存器控制着6ULL所有外设时钟的使能。为了简单,设置CCGR0~CCGR6这7个寄存器全部为0XFFFFFFFF,相当于使能所有外设时钟。CCGR0:CCGR1:CCGR2:CCGR3:CCGR4:CCGR5:CCGR6:汇编使能所有的外设时钟:二、IO复用将寄存器IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~0设置为0101=5,这样GPIO1_IO03就

2020-08-13 21:30:54 393

原创 Cortex-A7 MPCore 架构的介绍

Cortex-A7 MPCore 架构的介绍参考了《Cortex-A7 Technical ReferenceManua.pdf》和《ARM Cortex-A(armV7)编程手 册 V4.0.pdf》这俩份文档,这两份文档都是 ARM 官方的文档,详细的介绍了 Cortex-A7 架构和 ARMv7-A 指令集。一、 Cortex-A7 MPCore 简介Cortex-A7 MPcore 处理器支持 1~4 核,通常是和 Cortex-A15 组成 big.LITTLE 架构的, Cortex-A1

2020-08-12 12:09:37 1057

原创 Makefile的用法

一、Makefile 介绍make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。2)如果这个工程的某几个C文件被修改,那么我们只编译被

2020-08-11 14:44:30 446

原创 Linux系统编程之高并发服务器--epoll用法

epoll的用法:epoll的使用主要在于三个函数。epoll_create(int size);创建一个epoll的句柄,size用来告诉内核这个监听的数目最大值。注意:是数量的最大值,不是fd的最大值,切勿搞混。当创建好epoll句柄后,它就是会占用一个fd值,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);epoll的

2020-08-10 18:36:01 233

原创 Linux库之动态库、静态库

Linux库之动态库、静态库有关库的详情介绍:https://www.cnblogs.com/sunsky303/p/7731911.htmlhttps://blog.csdn.net/wk_bjut_edu_cn/article/details/817359561.库的介绍:2.静态库静态函数库,是在程序执行前(编译)就加入到目标程序中去了 ;优点: 运行快发布程序无需提供静态库,因为已经在app中,移植方便缺点:大3.动态库动态函数库,是在程序执行时动态(临时)由目标程序去调用

2020-08-10 15:39:24 190

原创 微机总线地址、物理地址、虚拟地址介绍

微机总线地址、物理地址、虚拟地址介绍总线地址:地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。通俗点来讲就是CPU能够访问内存的范围。表现得现象有:. 装了32位的win7的系统,明明内存条8G,可是系统只识别了3.8G ,装了64位系统才能识别8G因为 32位操作系统只能表示/访问:4294967296 bitbit 4,294,967,296Kb 4

2020-08-10 15:14:54 506

原创 Linux系统编程---基于TCP的socket网络编程

Linux系统学习—基于TCP的socket网络编程一、关于TCP下socket编程的思路解析:通信的过程解析:二、建立TCP(socket)服务端server解析:(1)socket函数的解析:头文件:#include <sys/types.h> /* See NOTES */#include <sys/socket.h>函数原型:int socket(int domain, int type, int protocol);int so

2020-08-10 14:54:23 459

原创 按位运算--位与(&)、位或(|) 和异或(^)及左移(<<)和右移(>>)

按位与运算符(&)

2020-08-07 17:10:38 1089

空空如也

空空如也

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

TA关注的人

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