![](https://img-blog.csdnimg.cn/ce9315402e154cbd83ddb5bb3f96f57f.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
驱动开发
文章平均质量分 88
驱动开发
《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6》针对Linux 内核版本号为 4.1.15
光电仪器设计学徒
成长是:高原-低谷模式——成长是跳跃式的,要经过量的积累,在积累的过程中,往往要伴随着扬弃,所以常常会跌入低谷。
展开
-
多点触摸协议--
多点触摸协议标志和事件//标志#define INPUT_MT_POINTER 0x0001 /*指针设备,例如触控板 */#define INPUT_MT_DIRECT 0x0002 /* 指挥设备,例如触摸屏*/#define INPUT_MT_DROP_UNUSED 0x0004 /* 在框架中看不到的隐形眼镜掉落*/#define INPUT_MT_TRACK 0x0008 /* 使用内核跟踪*/#define INPUT_MT_SEMI_MT 0x0010原创 2022-05-04 22:05:42 · 749 阅读 · 0 评论 -
修改设备树添加某外设需要使用的 IO
一、pinctrl子系统简述1)pinctrl 子系统主要工作内容①、获取设备树中 pin 信息。②、根据获取到的 pin 信息来设置 pin 的复用功能③、根据获取到的 pin 信息来设置 pin 的电气特性,比如上/下拉、速度、驱动能力等。对于我们使用者来讲,只需要在设备树里面设置好某个 pin 的相关属性即可,其他的初始化工作均由 pinctrl 子系统来完成, pinctrl 子系统源码目录为 drivers/pinctrl。2)属性fsl,pins1)pinctrl 驱动程序是通过读原创 2022-05-04 20:31:47 · 1051 阅读 · 0 评论 -
交叉编译指令
gcc交叉编译指令的一些选项含义:样例:arm-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<总体选项:-c:预处理,编译和汇编源文件,但不做连接,编译器根据源文件生成OBJ文件-S:编译后停止-E:预处理后停止-o file :指定输出文件 file-v:显示编译细节警告选项:-w:的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,原创 2022-02-02 16:30:33 · 3891 阅读 · 0 评论 -
ld链接脚本语法简介
1、分号,作为分隔符号2、注释 表达式和运算符 和c一样,其中注释只有/**/3、字符引用 段名文件名等有特殊字符,使用双引号4、命令语句a、ENTRY(symble) 指定入口地址,入口地址就是进程执行的第一条用户空间的指令再进程地址空间中的地址,被指定再ELF文件头的ELF32_Ehdr的e_entry成员中。ld有多种指定程序入口方式:(优先级逐渐降低)ld -eentry()_start符号.text0b、STARTUP(filename) 将文件filename 作为原创 2022-03-18 09:51:26 · 2440 阅读 · 1 评论 -
使用版本控制系统软件git
1开发人员小明的账户名,email终端设置软件的开发人小明和小明的email,还要这名开发人员小明可以管理哪些地方的仓库lj@lj-virtual-machine:~/gitbendiku1$ git config --global user.name "xiaoming"lj@lj-virtual-machine:~/gitbendiku1$ git config --global user.email "1234567889@qq.com"2追踪关系和一些语法Origin源,Remote远程原创 2022-04-24 22:02:04 · 428 阅读 · 0 评论 -
platform框架--Linux MISC杂项框架--Linux INPUT子系统框架--串行集成电路总线I2C设备驱动框架--串行外设接口SPI 设备驱动框架---通用异步收发器UART驱动框架
platform框架简述不同架构的不同指令集不同的系统及芯片的若干控制器的使用方法不同鼠标,打印机等设备的控制器使用方法一样platform框架APIint platform_driver_register (要注册的 platform 驱动) //向 Linux 内核注册一个 platform 驱动void platform_driver_unregister(要拆卸的 platform 驱动) //向 Linux 内核拆卸一个 platform 驱动platform_matc原创 2022-04-20 14:01:46 · 813 阅读 · 0 评论 -
设置文件编译规则的makefile---配置编译器环境的c_pp_properties.json---设置的文本配置seting.json
1看看书《跟我一起写Makefile》CROSS_COMPILE ?= arm-linux-gnueabihf-TARGET ?= lcdCC := $(CROSS_COMPILE)gccLD := $(CROSS_COMPILE)ldOBJCOPY := $(CROSS_COMPILE)objcopyOBJDUMP := $(CROSS_COMPILE)objdumpLIBPATH := -lgcc -L /usr/local/arm/gcc-lina原创 2022-02-13 11:02:12 · 2236 阅读 · 0 评论 -
uboot的配置文件写的都是啥?
1.cmd文件:目标文件+产生目标文件的命令行2.cfg文件:config的简称。cfg文件对于电脑来说只是一个为程序开发和使用的一个过渡的文件后缀名。所以这种文件没有一种固定的格式,在计算机中并不是把它当做一种文件类型,仅仅是用来保存用户的设置。(如设备配置数据(DCD)的格式:寄存器长度+寄存器的绝对地址 +要存储在寄存器中的值)3uboot是用来干什么的,有什么作用uboot 属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启原创 2022-02-24 15:21:49 · 589 阅读 · 0 评论 -
Uboot源码顶层Makeile分析----编译处理过程
一、编译处理过程1、make distclean清理工程(可以在顶层makefile中搜索)(1)make中命令行前面加上at符号@就是,在make执行时候,输出的信息中,不要显示此行命令。而正常情况下,make执行过程中,都是会显示其所执行的任何的命令的。如果你不想要显示某行的命令,那么就在其前面加上@符号即可。(2)Find,rmLinux 下shell的find 命令用来在指定目录下查找文件. Linux rm命令用于删除一个文件或者目录2、make mx6ull_14x14_ddr51原创 2022-03-17 23:41:17 · 865 阅读 · 0 评论 -
Linux 并发与竞争---Linux 内核定时器---Linux 内核中断----阻塞 / 非阻塞和同步 / 异步
Linux 并发与竞争原子操作//示例代码 47.2.2.2 原子变量和 API 函数使用atomic_t v = ATOMIC_INIT(0); /* 定义并初始化原子变零 v=0 */atomic_set(&v, 10); /* 设置 v=10 */atomic_read(&v); /* 读取 v 的值,肯定是 10 */atomic_inc(&v); /* v 的值加 1, v=11 */自旋锁//示例代码 47.3.2.1 自旋锁使用示例DEFINE_SP原创 2022-04-13 00:03:44 · 989 阅读 · 0 评论 -
虚拟的驱动设备--内存映射方法改变--设备节点创建改为自动创建--使用设备树描述设备--使用pinctrl设置PIN的复用和电气属性--使用gpio子系统API函数
一、一个较之重要的知识Linux 下模块扩展名为.ko相同部分,即大家都有的部分#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#define LED_MAJOR 200 /*原创 2022-04-06 22:34:48 · 597 阅读 · 0 评论 -
简述Linux设备树和设备树文件的书写语法
设备树这个概念并不是一开始就具有的,它的出现是Linus Torvalds在2011年3月,对于kernel/arch/arm/plat-xxx和kernel/arch/arm/mach-xxx含有大量的描述板级细节的代码,针对这种现象提出了设备树(Device tree)的概念。设备树其实就是描述硬件的数据结构,可以将很多硬件信息直接传递给Linux,省去了内核大量的冗余代码。设备树含有的节点和属性描述的信息主要有时钟、中断、GPIO控制器,外设连接情况,总线,内存基地址等等。Linux设备树主要由D原创 2022-02-22 22:46:11 · 890 阅读 · 0 评论