嵌入式
-西西弗斯
这个作者很懒,什么都没留下…
展开
-
RJ48c 线序
原创 2021-11-09 17:25:37 · 1986 阅读 · 0 评论 -
BSP及驱动开发笔记-95 验证USB驱动
USB键盘驱动实例原创 2021-06-27 11:54:16 · 165 阅读 · 0 评论 -
BSP及驱动开发笔记-94 USB驱动开发流程
/* * Copyright (c) 1999-2001 Vojtech Pavlik * * USB HIDBP Mouse support *//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Soft...原创 2021-06-27 11:47:20 · 270 阅读 · 0 评论 -
BSP及驱动开发笔记-93 Linux USB设备驱动开发框架
原创 2021-06-27 10:25:18 · 146 阅读 · 0 评论 -
BSP及驱动开发笔记-91 USB数据传输类型
原创 2021-06-27 08:29:05 · 186 阅读 · 0 评论 -
BSP及驱动开发笔记-92 USB设备描述符及枚举过程
原创 2021-06-27 08:29:27 · 169 阅读 · 0 评论 -
BSP及驱动开发笔记-90 USB电气特性
host端没有device接入时,由于15K下拉,低电平device接入时,由于device端上拉,1.5K上拉对15K下拉,电位被拉高,从而识别热插拔动作。原创 2021-06-27 08:28:47 · 186 阅读 · 0 评论 -
BSP及驱动开发笔记-89 USB拓扑结构
原创 2021-06-27 08:27:54 · 239 阅读 · 0 评论 -
BSP及驱动开发笔记-88 USB基本概念
USB速率取决于应用,比如键盘鼠标,即使最新已经到USB4,到该应用场合下仍然是USB1.1,下面为USB蓝牙接收器插入时显示的信息。原创 2021-06-27 08:27:17 · 361 阅读 · 0 评论 -
BSP及驱动开发笔记-87 块设备驱动使用流程
driver.c/** debug:* cat xxx > /dev/demo_dev* cat /dev/demo_dev*/#include <linux/module.h> /* module_init */#include <linux/fs.h> /* file_operations */#include <linux/device.h> /* class device */#include <linux/sched..原创 2021-06-26 19:42:40 · 238 阅读 · 0 评论 -
BSP及驱动开发笔记-86 块设备的数据传输
/** debug:* cat xxx > /dev/demo_dev* cat /dev/demo_dev*/#include <linux/module.h> /* module_init */#include <linux/fs.h> /* file_operations */#include <linux/device.h> /* class device */#include <linux/sched.h> /*..原创 2021-06-26 19:12:15 · 114 阅读 · 0 评论 -
BSP及驱动开发笔记-85 块设备驱动注册开发流程
/** debug:* cat xxx > /dev/demo_dev* cat /dev/demo_dev*/#include <linux/module.h> /* module_init */#include <linux/fs.h> /* file_operations */#include <linux/device.h> /* class device */#include <linux/sched.h>...原创 2021-06-26 18:32:19 · 150 阅读 · 0 评论 -
BSP及驱动开发笔记-84 块设备数据结构
原创 2021-06-26 17:55:14 · 123 阅读 · 0 评论 -
BSP及驱动开发笔记-83 块设备驱动框架
块设备驱动框架驱动为文件系统服务,文件系统上面才是应用程序。驱动的主要目的:实现设备工作,完成数据传输原创 2021-06-26 17:44:18 · 220 阅读 · 0 评论 -
BSP及驱动开发笔记-82 块设备驱动基本概念
块设备面向文件系统,并不是面向用户。原创 2021-06-26 16:25:33 · 108 阅读 · 0 评论 -
BSP及驱动开发笔记-81 I2C子系统数据传输过程
使用系统提供的接口,而不是用自己写的接口来实现数据传输此处的command是寄存器地址driver.c#include "driverapp.h"static struct i2c_client *mma8653_client;static struct i2c_board_info mma8653_info = { I2C_BOARD_INFO(DEVICE_NAME,0x1d),};static int __init mma8653_device_init(vo原创 2021-06-26 10:57:21 · 104 阅读 · 0 评论 -
BSP及驱动开发笔记-80 I2C子系统设备驱动开发
driver.c#include "driverapp.h"#define CHIP_ID_REG 0x0d#define CRTL_REG 0x2a#define XYZ_DATA_REG 0x0e#define OUT_XYZ_DATA_REG 0x01static struct i2c_client *demo_client;static void demo_i2c_write_bytes(unsigned char *buf,unsigned char reg,i..原创 2021-06-26 10:42:51 · 173 阅读 · 0 评论 -
BSP及驱动开发笔记-79 I2C子系统设备端开发
#include "driverapp.h"static struct i2c_client *mma8653_client; // I-1 定义I2C Client指针static struct i2c_board_info mma8653_info = { // I-5 定义i2c_board_info数据结构,用于填充 I2C_BOARD_INFO(DEVICE_NAME,0x1d),};static int __init mma865...原创 2021-06-26 10:16:08 · 130 阅读 · 0 评论 -
BSP及驱动开发笔记-78 I2C子系统
原创 2021-06-26 09:43:57 · 152 阅读 · 0 评论 -
BSP及驱动开发笔记-77 I2C信号模拟时序编写(mma8653_i2c_simulate_read)
/* * Copyright 2011-2012 app * driver demo for edu *//* * this program is free software; you can redistribute it and/or modify * it * * Date and Edition: 2012-12-27 v1.3 * Date and Edition: 2017-05-05 v2.0 * Author: "driving team" of e原创 2021-06-20 20:56:50 · 133 阅读 · 0 评论 -
BSP及驱动开发笔记-76 I2C信号模拟时序编写(mma8653_i2c_simulate_open)
/* * Copyright 2011-2012 app * driver demo for edu *//* * this program is free software; you can redistribute it and/or modify * it * * Date and Edition: 2012-12-27 v1.3 * Date and Edition: 2017-05-05 v2.0 * Author: "driving...原创 2021-06-20 20:50:43 · 140 阅读 · 0 评论 -
BSP及驱动开发笔记-75 I2C信号模拟时序编写
模拟起始信号(CLK为高,信号下降沿)void demo_i2c_gpio_init(void){ //初始化i2c模拟时序涉及到的两个GPIO口}void demo_i2c_start(void){ data_set(); //将数据置1 clk_set(); //将时钟置1 demo_i2c_delay(); //延迟半个clk data_clear(); //将数据拉低 demo_i2c_delay(); //延迟半个clk clk_clear(); //空闲时钟为低.原创 2021-06-20 12:13:44 · 135 阅读 · 0 评论 -
BSP及驱动开发笔记-74 I2C模拟程序实现
原创 2021-06-20 11:05:08 · 108 阅读 · 0 评论 -
BSP及驱动开发笔记-73 I2C协议介绍
clk、data 交叉部分,代表数据不可靠clk,data都是平行线部分,代表数据稳定。 稳定的时候高电平(时钟高电平读取数据),低电平的时候触发状态变化(时钟低电平准备数据)。起始信号由主机发起数据发送先发高位,后发低位I2C 安全性,放到软件这部分。起始信号:时钟高电平时,数据产生下降信号。最低位为0:表示当前是写操作,最低为是1代表当前是读操作。7位地址+读写标志 = 8位8bit发送完之后,收到从机的应答信号,收到以后,才可以继续发后面的数据。将数据拆分成8b...原创 2021-06-20 07:44:23 · 230 阅读 · 0 评论 -
BSP及驱动开发笔记-72 input子系统驱动开发
driver.c/* * Copyright 2011-2012 sunplusapp * driver demo for sunplusedu *//* * this program is free software; you can redistribute it and/or modify * it * * Date and Edition: 2012-12-27 v1.3 * Date and Edition: 2017-05-05 v2.0 * Author:原创 2021-06-20 06:49:04 · 98 阅读 · 0 评论 -
BSP及驱动开发笔记-71 input子系统介绍
原创 2021-06-20 06:48:16 · 88 阅读 · 0 评论 -
BSP及驱动开发笔记-70 设备资源对设备驱动的影响
driverapp.h/* * Copyright 2011-2012 sunplusapp * driver demo for sunplusedu *//* * this program is free software; you can redistribute it and/or modify * it * * Date and Edition: 2012-12-27 v1.3 * Date and Edition: 2017-05-05 v2.0 * Auth原创 2021-06-20 06:47:47 · 85 阅读 · 0 评论 -
BSP及驱动开发笔记-69 plateform driver创建过程
/** debug: * 在驱动不作修改的情况下,只改变platform_device的资源,观察按键是否改变* */#include "driverapp.h"static struct class *demo_class = NULL;static struct device *demo_device = NULL;static struct workqueue_struct *key_workqueue = NULL;static struct work_struct ke原创 2021-06-20 06:47:10 · 215 阅读 · 0 评论 -
BSP及驱动开发笔记-68 plateform device创建过程
Platform devicedriver.cMakefiedevice.cMakefile # 若KERNELRELEASE 的内容为 2.6.35.7,则使用内核中的Makefile以及环境直接进行编译驱动模块 # 若KERNELRELEASE 的内容不是为 2.6.35.7,则下面else部分内容生效 ifeq ($(KERNELRELEASE),3.4.39-sunplusedu)#若make时想使用参数进行编译,则如下:#使用方式:make t=XXXTARGET=$(t原创 2021-06-19 20:28:07 · 188 阅读 · 0 评论 -
BSP及驱动开发笔记-67 plateform总线介绍
原创 2021-06-19 15:42:19 · 187 阅读 · 0 评论 -
BSP及驱动开发笔记-66 cdev注册方式实现
#include <linux/cdev.h> //C-1 添加头文件static struct cdev demo_cdev; //C-2 定义cdev结构体cdev_init(&demo_cdev, &demo_fops); //C-3 cdev初始化ret = alloc_chrdev_region(&dev_num,0,DEVICE_COUNT,DRIVER_NAME); //C-4 申请主设备号if(ret).原创 2021-06-19 15:34:54 · 140 阅读 · 0 评论 -
BSP及驱动开发笔记-65 cdev注册方式介绍
原创 2021-06-19 14:56:34 · 149 阅读 · 0 评论 -
BSP及驱动开发笔记-64 杂项设备驱动实现
static struct miscdevice demo_misc = { //M-1 保留file_operations结构体,重新定义miscdevice结构体 .minor = MISC_DYNAMIC_MINOR, //M-2 动态分配从设备号 .name = "demo_dev", //M-3 定义设备名 .fops = &demo_fops, //M-4 定义file_原创 2021-06-19 14:47:03 · 100 阅读 · 0 评论 -
BSP及驱动开发笔记-63 杂项设备驱动介绍
原创 2021-06-19 13:08:44 · 165 阅读 · 0 评论 -
BSP及驱动开发笔记-62 内核线程应用开发
#include <linux/kthread.h> //KT-1 添加头文件static struct task_struct *demo_thread; //KT-2 定义线程指针demo_thread = kthread_create(thread_ops_key,NULL,“key_thread”); //KT-3 在模块加载的地方创建线程wake_up_process(demo_thread); //KT-4 启动...原创 2021-06-19 12:45:15 · 142 阅读 · 0 评论 -
BSP及驱动开发笔记-61 轮循加阻塞poll实现
select是一个系统调用。(需要包含头文件)与select对应的接口,就是poll。static unsigned int demo_poll (struct file *,struct poll_table_struct *ptable) //P-1 copy poll接口.poll = demo_poll, //P-2 点.引用成员直接初始化,与顺序无关;DECLARE_WAIT_QUEUE_HEAD(select_queue); //P-3 专门为sele.原创 2021-06-19 11:38:22 · 151 阅读 · 0 评论 -
BSP及驱动开发笔记-60 轮循加阻塞select机制介绍
#include <stdio.h> /* FILE */#include <fcntl.h>/* O_RDWR */#include <linux/fb.h>#include <sys/mman.h>/* PROT_READ,PROT_WRITE,MAP_SHARED */#include <string.h>/* memset() */#include <asm/ioctl.h> /* _IO */static str原创 2021-06-19 10:09:40 · 94 阅读 · 0 评论 -
BSP及驱动开发笔记-59 有条件阻塞
与无条件阻塞代码类似,只有上面一点点不同。原创 2021-06-18 07:03:13 · 112 阅读 · 0 评论 -
BSP及驱动开发笔记-58 无条件阻塞
#include <stdio.h> /* FILE */#include <fcntl.h>/* O_RDWR */#include <linux/fb.h>#include <sys/mman.h>/* PROT_READ,PROT_WRITE,MAP_SHARED */#include <string.h>/* memset() */#include <asm/ioctl.h> /* _IO */static str原创 2021-06-18 06:54:00 · 180 阅读 · 0 评论 -
BSP及驱动开发笔记-57 长短键的实现
长短键:按下去就开始计时my_time.expires = jiffies + HZ*1; // LSKey-1 按下去就开始计时,长度为1000,即HZ*1 = 1秒add_timer(&my_time);del_timer_sync(&my_time); // LSKey-2 退出时,如果没有达到长按键的时间要求,则退出key_val.type = 0;原创 2021-06-18 06:05:07 · 253 阅读 · 0 评论