• <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>
  • X-019-KERNEL-串口驱动开发之数据收发

    作者:wowo 发布于:2016-11-29 21:55 分类:X Project

    本文是“X Project”串口驱动开发的第四篇,在第二篇“uart driver框架[1]”的基础上,实现基本的、可收发数据的uart驱动,并借助这个过程,学习如下知识:

    中?#31995;?#30003;请和使用;

    利用中断发送和接收数据;

    uart_ops中常用函数(.startup, .start_tx, etc.)的使用。

    阅读全文>>

    标签: Linux driver irq serial tx rx transmit

    评论(7) 浏览(4186)

    蓝牙协议分析(9)_BLE安全机制之LL Privacy

    作者:wowo 发布于:2016-11-25 16:28 分类:蓝牙

    在上一篇文章[1]中,我们介绍了BLE的白名单机制,这是一种通过地址进行简单的访问控制的安全机制。同时我们也提到了,这种安全机制只防君子,不防小人,试想这样一种场景:

    A设备表示只信任B、C、D设备,因此就把它们的地址加入到了自己的白名单中,表示只愿意和它们沟通。与?#36865;?#26102;,E设备对它们的沟通非常?#34892;?#36259;,但A对自己不信任啊,肿么办?

    E眼珠子一转,想出一个坏主意:把自己的地址伪装成成B、C、D中?#25105;?#19968;个(这个还是很容易办到的,随便扫描一下就得它们的地址了)就行了,嘿嘿嘿!

    那么问题来了,怎么摆脱“小人E“的偷听呢?不着急,我们还有手段:“链路层的Privacy(隐私)机制”。

    阅读全文>>

    标签: 蓝牙 BLE resolvable privacy 安全

    评论(36) 浏览(12861)

    内存初始化代码分析(三):创建系统内存地址?#25104;?/a>

    作者:linuxer 发布于:2016-11-24 12:08 分类:内存管理

    经过内存初始化代码分析(一)内存初始化代码分析(二)的过渡,我们终于来到?#22235;?#23384;初始化的核心部分:paging_init。当然本文不能全部解析完该函数(那需要的篇幅太长了),我们只关注创建系统内存地址?#25104;?#36825;部分代码实现,也就是解析paging_init中的map_mem函数。

    同样的,我们选择的是4.4.6的内核代码,体系结构相关的代码来自ARM64。

    阅读全文>>

    标签: create_mapping

    评论(15) 浏览(7418)

    X-018-KERNEL-串口驱动开发之serial console

    作者:wowo 发布于:2016-11-18 22:25 分类:X Project

    本文是“X Project”串口驱动开发的第三篇,在第二篇“uart driver框架[1]”的基础上,实现console驱动,并借助这个过程,理解如下知识:

    1)从DTS regs字段中获取设备的I/O基址,并map出来供driver访问。这是device tree最基本的使用场景。

    2)从DTS aliases中获取串口的索引号。这是device tree aliases功能的一个应用场景。

    3)uart port—>line和console—>index之间的关系。

    阅读全文>>

    标签: Linux driver serial console aliases

    评论(0) 浏览(3722)

    内存初始化代码分析(二):内存布局

    作者:linuxer 发布于:2016-11-18 18:25 分类:内存管理

    同样的,本文是内存初始化文章的一份补充文档,希望能够通过这样的一份文档,细致的展示在初始化阶段,Linux 4.4.6内核如何从device tree中提取信息,完成内存布局的任务。具体的cpu体系结构选择的是ARM64。

    阅读全文>>

    标签: Memory 内存布局 layout

    评论(12) 浏览(12234)

    X-017-KERNEL-串口驱动开发之uart driver框架

    作者:wowo 发布于:2016-11-16 22:09 分类:X Project

    本文是“X Project”串口驱动开发的第二篇,将以“bubblegum-96”开发板为例,介绍在linux serial framework?#30446;?#26550;下,编写串口driver以及console driver的方法和步骤(暂不涉及实现细节)。

    注1:有关串口、TTY、console等概念,可参考本站“TTY子系统[1]”的文章。Linux serial framework的分析,会在后续的文档中补充(这里故意颠倒,以便?#20040;?#23478;理解kernel framework的妙处)。

    阅读全文>>

    标签: Linux Kernel driver framework serial console uart_driver

    评论(2) 浏览(5061)

    X-016-KERNEL-串口驱动开发之驱动框架

    作者:wowo 发布于:2016-11-10 22:12 分类:X Project

    在过去的一?#38382;?#38388;里,蜗窝上发表了一系列的关于内核各个子系统的分析文章,设备模型、device tree、中断子系?#22330;lock framework、电源管理、GPIO、pinctrl等等,这些文章重理论、轻实践。随着“X Project”的进行,我们渐渐有机会把这些缺失的实践慢慢补回来。

    串口驱动是进入Linux kernel之后最先遭遇的一个驱动,虽然不是很复杂,但要素齐全,使用到了kernel的各个子系?#22330;?#22240;此我希望能借助串口驱动?#30446;?#21457;过程,将这些子系统的使用一一串联起来,并记录为一份份单独的文章。

    本文是这一系列文章的第一篇,借助串口驱动开发,学习Linux设备模型之下的驱动框架。

    阅读全文>>

    标签: driver serial 框架 串口 驱动 platform_driver

    评论(0) 浏览(3213)

    内存初始化代码分析(一):identity mapping和kernel image mapping

    作者:linuxer 发布于:2016-11-10 19:07 分类:内存管理

    本文没有什么框架性的东西,就是按照__create_page_tables代码的执行路径走读一遍,记录在初始化阶段,内核是如何创建内核运行需要的页表过程。想要了解一些概述性的、框架性的东西可以参考内存初始化文档。

    本文的代码来自ARM64,内核版本是4.4.6,?#36865;猓?#38405;读本文最好熟悉ARMv8中翻译表描述符的格式。

    阅读全文>>

    标签: __create_page_tables

    评论(9) 浏览(9952)

    蓝牙协议分析(8)_BLE安全机制之白名单

    作者:wowo 发布于:2016-11-10 14:20 分类:蓝牙

    在万物联网的时代,安全问题将会受到非常严峻的挑战(相应地,也会获得最大的关注度),因为我们身边的每一个IOT设备,都是一个处于封印状态的天眼,随时?#21152;?#34987;开启的危险。想想下面的场景吧:

    凌晨2点,x米?#21482;?#30340;?#31181;?#24847;外启动,将你从睡梦中惊醒,然后床头的灯光忽明忽暗……

    你的心率、血压、睡眠质量等信息,默默地被竞争对手收集着,并通过大数据分析你的情绪、健?#26723;齲?#38543;时准备给你致命一击……

    我知道你家里有几?#26723;啤?#20960;台电器、几个人,知道你几点睡觉几时醒来,知道你一周做过几顿饭,甚至知道你有一个xx棒、一周使用?#22797;巍?#27599;次使用多久……

    ……

    算了,不罗列了,有时间的话可以建个iot eyes的站点,专门收集、整理物联网安全有关的内容。这里就先言归正传。

    经过前面几篇的蓝牙协议分析,我?#23884;?#34013;牙(特别是蓝牙低功?#27169;?#24050;经有了一个比较全面的了解。随后几篇文章,我会focus在BLE的安全机制上。毕竟,知己知彼,才能攻防有?#21462;?

    话说,蓝牙SIG深知物联网安全的水有多深,因此使用了大量的篇幅,定义BLE安全有关的机制,甚至可以不夸张的说,BLE协议中内容最多、最?#29273;?#35299;的部分,非安全机制莫属。本文先从介绍最简单的----白名单机制(White list)。

    阅读全文>>

    标签: 蓝牙 Bluetooth BLE 白名单 white_list

    评论(12) 浏览(15568)

    X-015-KERNEL-ARM generic timer driver的移植

    作者:wowo 发布于:2016-11-2 22:31 分类:X Project

    本文将基于“Linux时间子系?#25345;?#21313;七):ARM generic timer驱动代码分析[1]”,以bubblegum-96平台为例,介绍ARM generic timer的移植步骤。

    另外,我们在[2]中完成了ARM GIC驱动的移植,但还没有测试是否可用。刚好借助timer驱动,测试GIC是否可以正常工作,顺便理解Interrupt的使用方法。

    阅读全文>>

    标签: Linux Kernel 内核 timer porting generic

    评论(2) 浏览(4421)

    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>
  • 时时彩定位杀号方法 时时彩后2软件 上海快三开奖号码今天 20选5玩法规则 黑龙江时时彩停了吗 可以玩河南快三的软件 四肖中特期期准 福建体育彩票36选7 彩票开奖代码 单双必中期期准 江苏十一选五前三直推荐号码 体彩快乐扑克玩法 青海快三遗漏 平特肖买赔多少 单双中特