• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • msm8994 热插拔sim卡导致modem重新启动的流程

    作者:lover713814 发布于:2015-5-28 15:23

    本文分析了msm8994 热插拔sim卡导致modem重新启动的流程,希望对大家有所帮助。

    阅读全文>>

    评论(3) 浏览(9151)

    Linux内核同步机制之(五):Read/Write spin lock

    作者:linuxer 发布于:2015-5-22 18:38 分类:内核同步机制

    在有了强大的spin lock之后,为何还会有rw spin lock呢?无他,仅仅是为了增加内核的并发,从而增?#26377;阅?#32780;已。spin lock严格的限制只有一个thread可以进入临界区,但是?#23548;?#20013;,有些对共享资源的访问可以严格区分读和写的,这时候,其实多个读的thread进入 临界区是OK的,使用spin lock则限制一个读thread进入,从而导致?#38405;?#30340;下降。

    本文主要描述RW spin lock的工作原理及其实现。需要说明的是Linux内核同步机制之(四):spin lock是本文的基础,请先阅读该文档以便保证阅读的畅顺。

    阅读全文>>

    标签: rw spinlock

    评论(5) 浏览(12703)

    Linux时间子系?#25345;?#21313;四):tick broadcast framework

    作者:linuxer 发布于:2015-5-21 19:26 分类:时间子系统

    在内核中,有cpuidle framework可以控制cpu的节电:当没有进程调度到该cpu?#29616;?#34892;的时候,swapper进程粉墨登场,将该cpu会被推入到idle状态。当然 CPU的idle状态有深有浅,当CPU睡的比较深入的时候,有可能会关闭本地的timer?#24067;?#36825;样就会引入一个很有意思的问题:local timer将无法唤醒CPU,该cpu?#31995;?#25152;有的software timer将无法唤醒cpu。tick broadcast framework就是用来解决这个问题的。

    本文中的代码来自linux kernel 4.0。

    阅读全文>>

    标签: framework tick broadcast

    评论(33) 浏览(12675)

    Linux下“用户空间修改设备寄存器或者物理内存”的实现

    作者:wowo 发布于:2015-5-15 11:21 分类:软件开发

    底层开发过?#35752;校?#32463;常需要在终端查看或者修改设备寄存器的值,busybox有一个工具----devmem,可用于读取或者修改物理寄存器的值,?#27973;?#26041;便。

    但它有一个不足的地方:不能连续操作物理内存(虽然这很危险,但在显示相关的调试中,如果能向指定的物理内存加载一个图片,或者dump指定物理内存的内容,还是很方便的),因此我重新写了一些代码,实现如下功能。

    阅读全文>>

    标签: devmem

    评论(20) 浏览(10713)

    关于内核中的乘法和除法。

    作者:heziq 发布于:2015-5-6 22:02

    前几天一直在看wowo的时间子系统,一直在思索mult和shift变量,为什么mult要尽量大,shift尽量小。这是由c语言的整数算术运算决定的。

    cyn* mult > shift  在不考虑溢出的情况下,cyn * mult没有误差,右移shift有误差,损失小数。

    但是如果cyn > shift * mult 在不考虑溢出的情况下,误差就会被放大。

    10* 12 / 8 = 15

    10 / 8 * 12 = 12

    10 除以 8 = 1, 舍弃0.25 , 0.25 * 12 = 3. 可以看出乘法部分的误差被夸大12倍。

    mult / shift 的比值越大越好,计算的值越精确。shift如果是1,就没有误差,如果shift是10,那么就只能精确到十位。

     

    表达不好哈,不善于利用数学公式证明。我说的都是整数运算,不考虑浮点数。

     

    总结?#38477;悖?

    内核中做运算

    1,尽量做加减法,少做?#39034;?#27861;,尽量用移位做?#39034;?#27861;。这样运算速度快。

    2,做?#39034;?#27861;的时候,先算乘法,最后做除法,乘法的时候注意溢出。

    3,在特殊的情况下,被除数和除数的比值要尽量大,这样计算误差才会小。

    评论(1) 浏览(6504)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • 辽宁11选5第一期几点开始 山西十一选五走势图表 复式投注怎么计算器 十一运夺金开奖视频 免费马会一码中特 云南福彩22选5查询 陕西快乐十分单式玩法 安徽快三单选三同号推荐今天 云南十一选五任选遗漏 足球竞猜让分胜负规则 彩经网蓝球杀号 重庆时时彩软件那个好 皇家赌场百度影音 湖北快3投注技巧 黑龙江36选7风采走势图