当前位置: 首页 > news >正文

网上接单 网站建设/新品怎么刷关键词

网上接单 网站建设,新品怎么刷关键词,如何做一个动态网站,破解织梦做的网站对于Linux这种庞大的操作系统,代码重用性非常重要,所以需要有相关的机制来提升效率,去除重复无意义的代码,尤其是对于驱动程序,所以就有了platform和INPUT子系统这两种工作机制。 学习视频地址:【正点原子…

在这里插入图片描述

对于Linux这种庞大的操作系统,代码重用性非常重要,所以需要有相关的机制来提升效率,去除重复无意义的代码,尤其是对于驱动程序,所以就有了platform和INPUT子系统这两种工作机制。

学习视频地址:【正点原子】STM32MP157开发板

platform子系统

platform 驱动框架分为总线、设备和驱动。总线在Linux内核提供,不需要我们进行考虑,所以只需考虑设备和驱动。
因为目前的Linux内核都支持设备树了,所以platform_device设备信息都通过设备树进行描述了,因此只需要在代码中编写platform_driver驱动代码

Linux驱动的分离与分层示意图

在这里插入图片描述

GPIO电气属性配置

采用的是设备树中的pinctrl控制器,在STM32MP1中,pinctrl配置只在platform平台上被引用。

创建设备的pinctrl节点

led_pins_a: gpioled-0 {pins {pinmux = <STM32_PINMUX('I', 0, GPIO)>;	# 设置 PI0 复用为 GPIO 功能。drive-push-pull;						# 设置 PI0 为推挽输出。bias-pull-up;							# 设置 PI0 内部上拉。output-high;							# 设置 PI0 默认输出高电平。slew-rate = <0>;						# 设置 PI0 的速度为0档,也就是最慢。};
};

在设备树中创建设备节点

gpioled {compatible = "alientek,led";pinctrl-names = "default";status = "okay";pinctrl-0 = <&led_pins_a>;led-gpio = <&gpioi 0 GPIO_ACTIVE_LOW>;
};

兼容属性

 // 定义兼容属性表static const struct of_device_id led_of_match[] = {{ .compatible = "alientek,led" }, /* 兼容属性 */{ /* Sentinel */ }};// 声明设备匹配表MODULE_DEVICE_TABLE(of, led_of_match);// 定义platform驱动static struct platform_driver led_platform_driver = {.driver = {.name = "stm32mp1-led",.of_match_table = led_of_match,},.probe = led_probe,.remove = led_remove,
};

检查引脚复用配置

STM32MP1 的一个引脚可以复用为多种功能,但是在配置设备树时,一个引脚只能复用为一个功能。

检查GPIO占用

尽管引脚配置上只复用为了一个功能,但是可能存在该引脚被多个设备使用的情况,所以需要检查设备树,确保只有一个设备在使用该GPIO引脚。

linux,default-trigger属性设置

这个属性可以将LED配置为某个特定模式。

backlight:LED 灯作为背光。
default-on:LED 灯打开。
heartbeat:LED 灯作为心跳指示灯,可以作为系统运行提示灯。
disk-activity:LED 灯作为磁盘活动指示灯。
ide-disk:LED 灯作为硬盘活动指示灯。
timer:LED 灯周期性闪烁,由定时器驱动,闪烁频率可以修改。

MISC驱动系统

定位:当某些外设无法进行分类的时候就可以使用MISC驱动。MISC驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动。

设备定义

所有的MISC设备驱动的主设备号都为 10,不同的设备使用不同的从设备号。定义一个 MISC 设备(miscdevice 类型)以后需要设置 minor、name 和 fops 这三个成员变量。
在这里插入图片描述

设备注册

int misc_register(struct miscdevice * misc)

设备注销

int misc_deregister(struct miscdevice *misc)

input子系统

系统架构
在这里插入图片描述

input子系统的所有设备主设备号都为13,我们在使用 input 子系统处理输入设备的时候就不需要去注册字符设备,只需要向系统注册一个input_device即可。

驱动编写流程

API函数

// 申请input_dev结构体变量
struct input_dev* input_allocate_device(void)
// 释放input_dev结构体变量
void input_free_device(struct input_dev* dev)
// 注册input_dev
int input_register_device(struct input_dev* dev)
// 注销input_dev
void input_unregister_device(struct input_dev* dev)

事件类型
在这里插入图片描述

初始化(以按键为例)

/* 申请设备内存 */
inputdev = input_allocate_device();
inputdev->name = "test_inputdev";/* 设置事件和事件值 */
keyinputdev.inputdev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
input_set_capability(keyinputdev.inputdev, EV_KEY, KEY_0);/* 注册设备 */
input_register_device(inputdev);

上报事件

/* 通用的事件上报函数 */
void input_event(struct input_dev *dev, unsigned int type, unsigned int code,  int value)/* 衍生所得的上报函数 */
void input_report_rel(struct input_dev *dev, unsigned int code, int value)
void input_report_abs(struct input_dev *dev, unsigned int code, int value)
void input_report_ff_status(struct input_dev *dev, unsigned int code, int value)
void input_report_switch(struct input_dev *dev, unsigned int code, int value)
void input_mt_sync(struct input_dev *dev)/* 事件上报完成后,需要用该函数上报一个同步事件 */
void input_sync(struct input_dev *dev)
http://www.jmfq.cn/news/4893985.html

相关文章:

  • 凤岗网站建设公司/青岛疫情最新情况
  • 西楚房产网宿迁房产网/站长工具之家seo查询
  • 建设网站要注意什么问题/注册网站平台
  • 做酒店网站的公司/互联网广告推广好做吗
  • 公司网站建设的好处/在线网站建设平台
  • 石家庄做网站建设的公司/百度客服在线咨询电话
  • 软件公司招聘/枣庄网站seo
  • 有教做鱼骨图的网站吗/高端网站设计
  • 中国建设传媒网官网/网站seo排名优化价格
  • 域名网站建设/站长推荐入口自动跳转
  • 做文字的网站/职业技能培训平台
  • 什么是网站的推广/日本比分预测
  • 大连网站设计公司排名/有创意的网络广告案例
  • seo课程培训中心/seo快速排名软件网站
  • wordpress右边的小工具栏存档搜索/百度网站免费优化软件下载
  • 网页制作总结心得/如何结合搜索检索与seo推广
  • 网站后台如何开发/百度seo排名在线点击器
  • 上海电商设计招聘网站/整站优化的公司
  • 网站后台管理系统素材/快速排名推荐
  • 做网站关键词要懂代码么/哪里做网站便宜
  • 海口企业自助建站/重庆森林经典台词 凤梨罐头
  • 手机免费建设网站/网络营销成功的品牌
  • 做问卷不花钱的网站/网络推广培训课程内容
  • 建立网站需要多久/如何制作网站赚钱
  • 做网站最专业的公司/百度浏览器下载官方免费
  • 手机企业网站怎么做/关键词优化技巧有哪些
  • 淄博专业网站建设价格/怎么关闭seo综合查询
  • 冀州建设局网站/网站点击量统计
  • 尚义网站建设wl17581/刚刚刚刚刚刚好痛
  • 北京国际建设集团网站/百度搜索指数排名