搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
深度学习实战——木薯叶图像识别与分类项目_深度学习图像识别项目
2
智能文字识别技术——AI赋能古彝文保护_人工智能文字识别技术
3
看大神如何用python爬虫爬取京东商品评论_python爬虫爬取京东电商平台商品评论,要求根据商品关键字爬取
4
【NLP基础理论】01 数据预处理_nlp数据预处理
5
维普和知网重复率差多少?大发猫论文降重软件来揭秘!
6
【torch小知识点02】torch.range()和torch.arange()的区别
7
单图像3D重建AI算法综述【2023】_单个图像 重建 模型
8
17. TypeScript 类型声明_ts定义全局变量
9
【大厂AI课学习笔记】1.5 AI技术领域(3)自然语言处理
10
时隔两个多月,一起来看ChatGPT现况如何?_chat gpt4.5
当前位置:
article
> 正文
hci_uart 分析_hci_uart_rx
作者:很楠不爱3 | 2024-03-27 20:00:03
赞
踩
hci_uart_rx
先从初始化开始
__init hci_uart_init(void)
{
…… //注册ldisc
hci_uart_ldisc.magic
= TTY_LDISC_MAGIC; //通过i = N_HCI; if (ioctl(fd,
TIOCSETD
, &i) < 0)获得
hci_uart_ldisc.name
= "n_hci";
hci_uart_ldisc.open
= hci_uart_tty_open;
hci_uart_ldisc.close
= hci_uart_tty_close;
hci_uart_ldisc.read
= hci_uart_tty_read;
hci_uart_ldisc.write
= hci_uart_tty_write;
hci_uart_ldisc.ioctl
= hci_uart_tty_ioctl;
hci_uart_ldisc.poll
= hci_uart_tty_poll;
hci_uart_ldisc.receive_buf
= hci_uart_tty_receive;
hci_uart_ldisc.write_wakeup
= hci_uart_tty_wakeup; //
ldisc对应的处理函数
hci_uart_ldisc.owner
= THIS_MODULE;
……
if ((err =
tty_register_ldisc
(N_HCI, &hci_uart_ldisc)))
……
bcsp_init
(); //取决于hciattach中选择的uart[]
……
}
源码在/drivers/char/tty_io.c
int tty_register_ldisc(int disc, struct
tty_ldisc
*new_ldisc)
{
unsigned long flags;
int ret = 0;
if (disc < N_TTY || disc >=
NR_LDISCS
)
return -EINVAL;
spin_lock_irqsave(&tty_ldisc_lock, flags);
tty_ldiscs[disc] = *new_ldisc;
tty_ldiscs[disc].num = disc;
tty_ldiscs[disc].flags |= LDISC_FLAG_DEFINED;
tty_ldiscs[disc].refcount = 0;
spin_unlock_irqrestore(&tty_ldisc_lock, flags);
return ret;
}
/* Line disc dispatch table */
static struct tty_ldisc tty_ldiscs[NR_LDISCS];
bcsp_init()--> hci_uart_register_proto(&bcsp); //注册proto操作函数
{
if (p->id >= HCI_UART_MAX_PROTO)
return -EINVAL;
if (hup[p->id])
return -EEXIST;
hup[p->id] = p
; //static struct hci_uart_proto *hup[HCI_UART_MAX_PROTO];
return 0;
}
struct
hci_uart_proto
{
unsigned int id;
int (*open)(struct hci_uart *hu);
int (*close)(struct hci_uart *hu);
int (*flush)(struct hci_uart *hu);
int (*recv)(struct hci_uart *hu, void *data, int len);
int (*enqueue)(struct hci_uart *hu, struct sk_buff *skb);
struct sk_buff *(*dequeue)(struct hci_uart *hu);
};
struct
hci_uart
{
struct tty_struct
*tty;
struct hci_dev
*hdev;
unsigned long
flags;
unsigned long
hdev_flags;
struct hci_uart_proto
*proto;
void
*priv;
struct sk_buff
*tx_skb;
unsigned long
tx_state;
spinlock_t
rx_lock;
};
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/326591
推荐阅读
article
小
程序
分包
(普通
分包
、
独立
分包
)...
分包
以后单独最大不能超过 2m;整个
小
程序
可以达到 20M声明 subpackages 后,将按 subpackages...
赞
踩
article
ES报“
Invalid
index
name
[
index
Test001],
must
be low...
ElasticSearch创建索引报错一、创建ES索引一、创建ES索引在ES的组件kibana中创建所以PUT /ind...
赞
踩
article
linux
录制
pcm
音频
的命令
,
如何在
Linux
上使用
ffmpeg
录制
音频
?...
我想从麦克风
录制
音频
.我的操作系统是ubuntu.我尝试了以下操作并出现错误$
ffmpeg
-f alsa -ac 2 ...
赞
踩
article
通俗的说
LDA
----
Latent
Dirichlet
Allocation
...
LDA
的原理:
LDA
(
Latent
Dirichlet
Allocation
)是一种文档主题生成模型,也称为一个三层贝叶...
赞
踩
article
[
计算机
效率]
文件
同步
工具:
FreeFileSync
...
非常有用的一款免费
文件
同步
软件。如果两处各自有一个相同的
文件
夹,但是里面的
文件
有一些不同。比如,一个是U盘里的,一个是本...
赞
踩
article
【深度学习】NLP|用
GRU
模型
给周董写首歌
_
多层堆叠
的
gru
生成
歌词
...
1、数据准备 最近经常看到网友对新闻
的
评论,好多评论都说编辑是越来越懒,文章都是让机器人写
的
,词不达意,语句不通都放上...
赞
踩
article
计算机网络
自顶向下
方法课程
实验
一华为三层交换机
路由
器
配置
静态
路由
_华为三层交换机
配置
静态
路由
...
一
实验
目的1.识别
静态
路由
的应用场景2.掌握
静态
路由
的
配置
二
实验
原理:
静态
路由
是指由用户或网络管理员手工
配置
的
路由
信...
赞
踩
article
本地
数据
备份
与
FTP
远程
数据
迁移_
freefilesync
通过
ftp
备份
...
数据
是电脑中最重要的东西。为了保证
数据
安全,我们经常会对
数据
进行
备份
。之前一直采用将重要
数据
拷贝至移动硬盘的方式实现
备份
...
赞
踩
article
03
鸿蒙
ArkTS
应用
开发及
ArkTS
语言学习_
arkts
怎么把
api6
的升级到
api9
...
当我们在新建一个
鸿蒙
应用
工程项目时,会要求你选择模型,能使用
ArkTS
开发语言。未知的一切,还在探索中。_
arkts
怎么...
赞
踩
article
Android
窗口
结构
(一)
窗口
层级
构造_
android
窗口
层级
...
Android
窗口
是根据显示屏幕来管理,每个显示屏幕的
窗口
层级
分为37层,0-36层。每层可以放置多个
窗口
,上层
窗口
覆盖...
赞
踩
article
【愚公系列】保姆级教程带你
实现
HarmonyOS
手语猜一猜元服务_
ohos
:
:
appexecfwk
:
...
HarmonyOS
是华为公司开发的操作系统,它的设计理念是面向未来的全场景智慧体验,可在各种设备上运行,包括手机、平板电...
赞
踩
article
【
OpenHarmony
北向应用开发】探索
Arkts
中
结构
体的
排序
_
arkts
结构
体...
【
OpenHarmony
北向应用开发】探索
Arkts
中
结构
体的
排序
_
arkts
结构
体
arkts
结构
体 ...
赞
踩
article
【网络】
trunk
和
vlan
配置
_
switchport
trunk
allowed
vlan
...
篇一 :
trunk
配置
和
vlan
配置
trunk
配置
Switch>enable ? ? ?//进入特权模式Switch#...
赞
踩
article
为
android
编写
linux
内核
驱动
_
android
内核
驱动
kthread
...
驱动
程序的功能主要是向上层提供访问设备的寄存器的值,包括读和写。这里,提供了三种访问设备寄存器的方法,一是通过proc文...
赞
踩
article
py
torch
笔记:
torch
.nn.
GRU
&
torch
.nn.
LSTM
...
1 函数介绍对于输入序列中的每个元素,每一层计算以下函数:其中是在t时刻的隐藏状态,是在t时刻的输入。σ是sigmoid...
赞
踩
article
vue
动态
组件
【详解】
component
:
is
_
vue
component
is
...
vue
动态
组件
用于实现在指定位置上,
动态
加载不同的
组件
,核心代码为:<
component
:
is
="
component
...
赞
踩
article
Elasticsearch
6 创建索引报错
invalid
_
index
_
name
_exceptio...
Elasticsearch
6创建索引报错:Invalid
index
name
[
testDemo
], must be...
赞
踩
article
Android
Build
.
VERSION
.
SDK
_INT兼容介绍...
尽管
Android
向下兼容不好,但是一个程序还是可以在多个平台上跑的。向下兼容不好,接口改变,新的平台上不能用旧的API...
赞
踩
article
实现
微信
小
程序
与
RTMP
音视频
通话的方案设计与实现_rtmp如何通过
小
程序
播放...
在
微信
小
程序
端,我们可以使用
微信
小
程序
提供的实时
音视频
接口来接收
RTMP
服务器推送的
音视频
数据,并进行解码与播放。在
微信
...
赞
踩
article
华三
静态
路由
、
路由
负载分担、
路由
备份
与
BFD
联动_
h3c
路由
器
静态
路由
...
本章涉及以下几点:1、带吓一跳的
静态
路由
2、带送出口的
静态
路由
3、汇总
路由
与默认
路由
4、
路由
负载分担、
路由
备份
与bfd联...
赞
踩
相关标签
小程序
微信小程序
前端
大数据
elasticsearch
运维
linux录制pcm音频的命令
计算机效率
计算机
windows
计算机基础
文件同步
gru
自然语言处理
python
人工智能
深度学习
网络
计算机网络
静态路由配置
数据库
mysql
服务器
harmonyos