黑盒移植,即在不用理解驱动程序的细节基础上进行移植 驱动移植的主要流程如下: 一、黑盒移植 1、将驱动编译进内核 如果内核中已经有了已经支持的驱动,那直接在menu上选配即可。若没有,则需要第三方的驱动或者自己写一个驱动,移植进内核。 1)将第三方驱动放到linux源码的driver目录中 拷贝LE ...
分类:
其他好文 时间:
2020-02-25 10:02:41
阅读次数:
117
导读 Linux Mint 20 将基于 Ubuntu 20.04 LTS,同时,其 LMDE(Linux Mint Debian Edition,Debian 版本)4 也将到来,LMDE 版本基于 Debian GNU/Linux,提供滚动发布,而不是像常规的 Linux Mint 基于 Ubu ...
分类:
系统相关 时间:
2020-02-25 09:58:13
阅读次数:
94
这篇文章主要介绍下在Go语言中如何做单元测试和基准测试。 go test工具 Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为 ...
分类:
其他好文 时间:
2020-02-25 09:20:21
阅读次数:
65
驱动程序代码 #pragma once #define IO_CONTROL_TRANSMIT_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN,0x8080,METHOD_BUFFERED,FILE_ANY_ACCESS) typedef struct _DEVICE_EXTE ...
分类:
其他好文 时间:
2020-02-23 20:18:53
阅读次数:
87
故障检查信息:DRIVER_POWER_STATE_FAILURE
导致崩溃的驱动程序:ntoskrnl.exe ...
分类:
其他好文 时间:
2020-02-23 11:50:55
阅读次数:
101
每个驱动程序会创建一个或多个设备对象,每个设备对象都会有一个指针指向下一个设备对象 Device结构体源码 typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT { CSHORT Type; USHORT ...
设备对象Device_Object记录通用设备信息,另外一些信息记录在设备扩展里,设备扩展由程序员自己定义,由程序员指定内容和大小,由I/O管理器创建,并保存在非分页内存中。 驱动程序中,尽量避免使用全局函数,因为全局函数往往导致函数的不可重入性, 重入性是指,在多线程程序中,多个函数并行运行,函数 ...
每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载的时候,被内核中的对象管理程序所创建的,内核对一个驱动只加载一个实例,是由内核中的I/O管理器负责加载的,驱动程序需要在DriverEntry中初始化该驱动对象。 _DRIVER_OBJECT结构体源码 typedef struct ...
本实例使用LPC2138微控制器,Keil+Proteus模拟实现。 本实例使用定时器计数,当计数值到达时触发定时器中断,在定时器中断程序中喂狗,涉及模块包括晶振、PLL、定时器、看门狗和VIC。 每次喂狗的同时,将P0.1 GPIO输出电平取反,外接一个LED灯作为Active信号灯。 直接贴代码 ...
分类:
其他好文 时间:
2020-02-21 11:23:57
阅读次数:
133
一、在kernel代码中操作gpio 在代码中有两种方式操作gpio:一种是一次申请单个gpio,通过设备树,成功后操纵该gpio。另一种是使用pinctrl子系统,通过设备树设置,一次操作多个gpio。 1.直接操作GPIO 因为GPIO一般都是平台设备驱动,所以一般设备树挂载的节点都在&soc下 ...
分类:
其他好文 时间:
2020-02-21 09:50:35
阅读次数:
121