惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
腾讯CDC
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
F
Full Disclosure
博客园 - 【当耐特】
C
CERT Recently Published Vulnerability Notes
Engineering at Meta
Engineering at Meta
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Threatpost
I
Intezer
V2EX - 技术
V2EX - 技术
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Hacker News
The Hacker News
小众软件
小众软件
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
N
News | PayPal Newsroom
MyScale Blog
MyScale Blog
AI
AI
Vercel News
Vercel News
Spread Privacy
Spread Privacy
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
V
Vulnerabilities – Threatpost
Schneier on Security
Schneier on Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
Help Net Security
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
U
Unit 42
L
LangChain Blog
Recent Announcements
Recent Announcements

博客园 - 什么都没有

rk3588 docker 安装 rk3568 ubuntu20.04 oop问题分析 rk3288 buildroot 编译webkit yocto简介 linux 调试串口测试程序(pc与开发板通信) spin_lock spin_lock_irq spin_lock_irqsave linux 进程读书笔记 linux kvm源码分析 虚拟化技术慢谈 linux中断子系统 注释规范 linux下C获取文件的大小 imx6 工具链下载地址 程序、任务、进程和线程的联系与区别 linux下socket connect 阻塞方式 阻塞时间控制 实时操作系统性能指标 这段代码可以,佩服作者 imx6 gpio irq imx6sl 调试记录
INIT: version 2.88 booting
什么都没有 · 2019-10-15 · via 博客园 - 什么都没有

发现调试串口启动时,INIT: 卡了30s, version 2.88 booting 又卡了30s,通过分析sysvinit代码发现串口执行close时,阻塞到tx_empty函数,在串口驱动中添加uart_update_timeout(port, termios->c_cflag, baud);即可解决这个问题。

下面是具体的分析流程

串口执行close时,最后调用

    while (!port->ops->tx_empty(port)) {
        msleep_interruptible(jiffies_to_msecs(char_time));
        if (signal_pending(current))
            break;
        if (time_after(jiffies, expire))
            break;
    }

这个msleep_interruptible就是导致那个30s