博客园 - 涛少&
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=20581
2018-06-26T11:01:43Z
涛少&
https://www.cnblogs.com/deng-tao/
feed.cnblogs.com
https://www.cnblogs.com/deng-tao/p/6536302.html
三路快速排序算法 - 涛少&
1、三路快速排序算法的基本思想 之前的快速排序算法都是将序列分成<=v和>v或者是<v和>=v的两个部分,而三路快速排序是 将序列分成三个部分:<v、=v、>v,如下图所示: 首先v元素还是作为"基准"元素,e表示当前遍历索引值指向的元素,也就是待考虑的元素,从图中可以 看出来,整个序列被分成3个部
2017-03-11T13:47:00Z
2017-03-11T13:47:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、三路快速排序算法的基本思想 之前的快速排序算法都是将序列分成<=v和>v或者是<v和>=v的两个部分,而三路快速排序是 将序列分成三个部分:<v、=v、>v,如下图所示: 首先v元素还是作为"基准"元素,e表示当前遍历索引值指向的元素,也就是待考虑的元素,从图中可以 看出来,整个序列被分成3个部 <a href="https://www.cnblogs.com/deng-tao/p/6536302.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6523433.html
双路快速排序法 - 涛少&
1、算法出现的背景 之前讲的,当我们排序的是一个近乎有序的序列时,快速排序会退化到一个O(n^2)级别的排序算法, 而对此的改进就是引入了随机化快速排序算法;但是当我们排序的是一个数值重复率非常高的序列时, 此时随机化快速排序算法就不再起作用了,而将会再次退化为一个O(n^2)级别的排序算法,那为什
2017-03-10T13:32:00Z
2017-03-10T13:32:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、算法出现的背景 之前讲的,当我们排序的是一个近乎有序的序列时,快速排序会退化到一个O(n^2)级别的排序算法, 而对此的改进就是引入了随机化快速排序算法;但是当我们排序的是一个数值重复率非常高的序列时, 此时随机化快速排序算法就不再起作用了,而将会再次退化为一个O(n^2)级别的排序算法,那为什 <a href="https://www.cnblogs.com/deng-tao/p/6523433.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6506006.html
快速排序算法 - 涛少&
1、什么是快速排序算法? 快速排序是由东尼·霍尔所发展的一种排序算法,犹如他的名字一样,速度快,效率高,也是实际 中最常用的一种算法,被称为20实际对世界影响最大的算法之一。 基本思想: 1): 从序列中挑出一个元素作为"基准"元素,一般是该序列的第一个元素或者是最后一个元素。 2): 把序列分成2
2017-03-05T11:41:00Z
2017-03-05T11:41:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、什么是快速排序算法? 快速排序是由东尼·霍尔所发展的一种排序算法,犹如他的名字一样,速度快,效率高,也是实际 中最常用的一种算法,被称为20实际对世界影响最大的算法之一。 基本思想: 1): 从序列中挑出一个元素作为"基准"元素,一般是该序列的第一个元素或者是最后一个元素。 2): 把序列分成2 <a href="https://www.cnblogs.com/deng-tao/p/6506006.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6505168.html
自底向上的归并排序算法 - 涛少&
1、什么是自底向上的归并排序? 说到底,不管是前面说的自顶向下的归并排序还是现在讲的自底向上的归并排序,其实质都是归并。 来看看一个演示过程: 这个就是待排序的数组序列 先将数组序列以2个元素为一组分成4组,每个组内部分成2个子序列进行向上合并 这是合并之后的效果 然后以4个元素为一组分成2组,每个
2017-03-05T06:43:00Z
2017-03-05T06:43:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、什么是自底向上的归并排序? 说到底,不管是前面说的自顶向下的归并排序还是现在讲的自底向上的归并排序,其实质都是归并。 来看看一个演示过程: 这个就是待排序的数组序列 先将数组序列以2个元素为一组分成4组,每个组内部分成2个子序列进行向上合并 这是合并之后的效果 然后以4个元素为一组分成2组,每个 <a href="https://www.cnblogs.com/deng-tao/p/6505168.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6503270.html
归并排序算法 - 涛少&
1、什么是归并排序? 归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的序列,将两个(或两个以上)有序子序列合并成一个新的有序序列,即把待排序序列分为若干个子序列,每个子序列是有序的,然后再把有序子序列合并为一个新的有序序列,最终将整个序列变得有序。 时间复杂度: O(nlogn) 2、
2017-03-04T17:13:00Z
2017-03-04T17:13:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、什么是归并排序? 归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的序列,将两个(或两个以上)有序子序列合并成一个新的有序序列,即把待排序序列分为若干个子序列,每个子序列是有序的,然后再把有序子序列合并为一个新的有序序列,最终将整个序列变得有序。 时间复杂度: O(nlogn) 2、 <a href="https://www.cnblogs.com/deng-tao/p/6503270.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6445072.html
插入排序之直接插入排序算法 - 涛少&
1、什么是插入排序 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 从第二个元素开始r[1],那么将他左边的元素作为一个已经有序的序列,将r[1]按从小到大的顺序插入到 有序序列中的合适位置使之成为一个新的有序序列;接着将r[2]插入到左边的有序序列
2017-02-26T14:13:00Z
2017-02-26T14:13:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、什么是插入排序 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 从第二个元素开始r[1],那么将他左边的元素作为一个已经有序的序列,将r[1]按从小到大的顺序插入到 有序序列中的合适位置使之成为一个新的有序序列;接着将r[2]插入到左边的有序序列 <a href="https://www.cnblogs.com/deng-tao/p/6445072.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6444983.html
选择排序之简单选择排序算法 - 涛少&
1、什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中 选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是 不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]
2017-02-26T08:35:00Z
2017-02-26T08:35:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中 选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是 不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3] <a href="https://www.cnblogs.com/deng-tao/p/6444983.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6432578.html
arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf等的区别 - 涛少&
博客来之于: http://www.veryarm.com/296.html 命名规则: 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS verdor - 工具链提供商 os - 目标操作系统 eabi -
2017-02-23T08:35:00Z
2017-02-23T08:35:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】博客来之于: http://www.veryarm.com/296.html 命名规则: 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS verdor - 工具链提供商 os - 目标操作系统 eabi - <a href="https://www.cnblogs.com/deng-tao/p/6432578.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6433024.html
编译libmad库 - 涛少&
libmad是一个开源的音频解码库,下面说说关于这个库工程的编译过程: 1、首先从网上下载libmad开源库,自己百度就能够找到关于这个库的下载链接地址,我这里提供一个: http://download.chinaunix.net/download.php?ResourceID=5910&id=11
2017-02-23T05:20:00Z
2017-02-23T05:20:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】libmad是一个开源的音频解码库,下面说说关于这个库工程的编译过程: 1、首先从网上下载libmad开源库,自己百度就能够找到关于这个库的下载链接地址,我这里提供一个: http://download.chinaunix.net/download.php?ResourceID=5910&id=11 <a href="https://www.cnblogs.com/deng-tao/p/6433024.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6430548.html
.hex文件和.bin文件的区别 - 涛少&
博客转之于: http://mini.eastday.com/a/160627003502858.html HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别: 1: hex文件包含地址信息。在用ISP方式烧写程序时,我们都有这样的经验:1)选择单片机 型号;2
2017-02-22T11:14:00Z
2017-02-22T11:14:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】博客转之于: http://mini.eastday.com/a/160627003502858.html HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别: 1: hex文件包含地址信息。在用ISP方式烧写程序时,我们都有这样的经验:1)选择单片机 型号;2 <a href="https://www.cnblogs.com/deng-tao/p/6430548.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6412687.html
块设备驱动框架详解 - 涛少&
一、正确的理解块设备驱动的概念 1、块设备和字符设备的差异 (1)块和字符是两种不同的访问设备的策略 (2)同一个设备可以同时支持块和字符两种访问策略 (3)设备本身的物理特性决定了哪一种访问策略更适合 (4)块设备本身驱动层支持缓冲区,而字符设备驱动层没有缓冲 (5)块设备驱动最适合存储设备 2、
2017-02-18T03:01:00Z
2017-02-18T03:01:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】一、正确的理解块设备驱动的概念 1、块设备和字符设备的差异 (1)块和字符是两种不同的访问设备的策略 (2)同一个设备可以同时支持块和字符两种访问策略 (3)设备本身的物理特性决定了哪一种访问策略更适合 (4)块设备本身驱动层支持缓冲区,而字符设备驱动层没有缓冲 (5)块设备驱动最适合存储设备 2、 <a href="https://www.cnblogs.com/deng-tao/p/6412687.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6367585.html
sysfs中属性文件的建立 - 涛少&
1、device中建立属性文件 (1)函数调用关系: /**************************************************************/ device_create_file sysfs_create_file /********************
2017-02-08T13:28:00Z
2017-02-08T13:28:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、device中建立属性文件 (1)函数调用关系: /**************************************************************/ device_create_file sysfs_create_file /******************** <a href="https://www.cnblogs.com/deng-tao/p/6367585.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6366905.html
Linux内核gpiolib注册建立过程 - 涛少&
1、相关的数据结构 2、函数调用关系图 smdkc110_map_io s5pv210_gpiolib_init samsung_gpiolib_add_4bit_chips samsung_gpiolib_add_4bit s3c_gpiolib_add gpiochip_add // 这个函数就
2017-02-08T13:28:00Z
2017-02-08T13:28:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、相关的数据结构 2、函数调用关系图 smdkc110_map_io s5pv210_gpiolib_init samsung_gpiolib_add_4bit_chips samsung_gpiolib_add_4bit s3c_gpiolib_add gpiochip_add // 这个函数就 <a href="https://www.cnblogs.com/deng-tao/p/6366905.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6366901.html
Linux内核静态映射表的建立过程 - 涛少&
/* * 平台: s5pv210 * 内核版本号: 2.6.35.7 */ kernel/arch/arm/mach-s5pv210/mach-smdkc110.c 这个文件是由三星在移植内核时提供的一个很重要的文件,这个文件中的函数都是与硬件相关的。 mach-smdkc110.c文件中的smdk
2017-02-08T13:28:00Z
2017-02-08T13:28:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】/* * 平台: s5pv210 * 内核版本号: 2.6.35.7 */ kernel/arch/arm/mach-s5pv210/mach-smdkc110.c 这个文件是由三星在移植内核时提供的一个很重要的文件,这个文件中的函数都是与硬件相关的。 mach-smdkc110.c文件中的smdk <a href="https://www.cnblogs.com/deng-tao/p/6366901.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6165573.html
Linux驱动学习之常用的模块操作命令 - 涛少&
1、常用的模块操作命令 (1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 (2)insmod(install module,安装模块),功能是向当前内核中去安装一个模块,用法是insmod xxx.ko (3)modinfo(module info
2016-12-12T10:39:00Z
2016-12-12T10:39:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、常用的模块操作命令 (1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 (2)insmod(install module,安装模块),功能是向当前内核中去安装一个模块,用法是insmod xxx.ko (3)modinfo(module info <a href="https://www.cnblogs.com/deng-tao/p/6165573.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6165345.html
Linux驱动学习之驱动开发准备工作 - 涛少&
一、开启驱动开发之路 1、驱动开发的准备工作 (1)正常运行linux系统的开发板。要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的。原因在于在安装模块的时候会进行安全性校验 (2)内核源码树,其实就是一个经过了配置编译之后的内核源码。我们需要内核源码编译自己的模块 (3)n
2016-12-12T09:37:00Z
2016-12-12T09:37:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】一、开启驱动开发之路 1、驱动开发的准备工作 (1)正常运行linux系统的开发板。要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的。原因在于在安装模块的时候会进行安全性校验 (2)内核源码树,其实就是一个经过了配置编译之后的内核源码。我们需要内核源码编译自己的模块 (3)n <a href="https://www.cnblogs.com/deng-tao/p/6165345.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6165173.html
Linux驱动学习之什么是驱动? - 涛少&
一、什么是驱动? 1: 驱动一词的字面意思 2: 物理上的驱动 3: 硬件中的驱动 4: linux内核驱动。软件层面上的驱动广义上是指:这一段代码操作了硬件去动,所以这一段代码就叫硬件的驱动程序。 狭义上驱动程序就是专指操作系统中用来操控硬件的逻辑方法的部分代码。而我们这里讲的驱动就指的是这个狭义
2016-12-12T09:09:00Z
2016-12-12T09:09:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】一、什么是驱动? 1: 驱动一词的字面意思 2: 物理上的驱动 3: 硬件中的驱动 4: linux内核驱动。软件层面上的驱动广义上是指:这一段代码操作了硬件去动,所以这一段代码就叫硬件的驱动程序。 狭义上驱动程序就是专指操作系统中用来操控硬件的逻辑方法的部分代码。而我们这里讲的驱动就指的是这个狭义 <a href="https://www.cnblogs.com/deng-tao/p/6165173.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6158321.html
gslX680驱动的移植实践 - 涛少&
将gslX680触摸屏驱动移植到自己的开发板上(对应的源码文件gslX680.c),并且实现可以使用make menuconfig进行动态的加载和卸载 因为触摸屏设备属于一种典型的输入设备,所以他的驱动源码最好是放在 drivers\input\touchscreen这个目录下,这样是最规范的。 (
2016-12-10T14:15:00Z
2016-12-10T14:15:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】将gslX680触摸屏驱动移植到自己的开发板上(对应的源码文件gslX680.c),并且实现可以使用make menuconfig进行动态的加载和卸载 因为触摸屏设备属于一种典型的输入设备,所以他的驱动源码最好是放在 drivers\input\touchscreen这个目录下,这样是最规范的。 ( <a href="https://www.cnblogs.com/deng-tao/p/6158321.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6130080.html
I2C总线驱动框架详解 - 涛少&
一、I2C子系统总体架构 1、三大组成部分 (1)I2C核心(i2c-core):I2C核心提供了I2C总线驱动(适配器)和设备驱动的注册、注销方法,I2C通信方法(”algorithm”)上层的,与具体硬件无关的代码以及探测设备 检测设备地址的上层代码等。。 (2)I2C总线驱动(I2Cadapt
2016-12-10T10:26:00Z
2016-12-10T10:26:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】一、I2C子系统总体架构 1、三大组成部分 (1)I2C核心(i2c-core):I2C核心提供了I2C总线驱动(适配器)和设备驱动的注册、注销方法,I2C通信方法(”algorithm”)上层的,与具体硬件无关的代码以及探测设备 检测设备地址的上层代码等。。 (2)I2C总线驱动(I2Cadapt <a href="https://www.cnblogs.com/deng-tao/p/6130080.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/deng-tao/p/6131133.html
Linux内核中断学习 - 涛少&
1、内核中断概述 (1)在OS环境下编写中断处理函数与之前在裸机中编写中断处理函数的方式是不一样的,在Linux内核中提供了一套用来管理硬件中断资源的软件体系架构。 (2)在操作系统中,中断号与gpio、内存一样被认为是一种硬件资源,当我们需要使用某一个中断号时必须向操作系统申请中断资源,只有申请成
2016-12-05T06:50:00Z
2016-12-05T06:50:00Z
涛少&
https://www.cnblogs.com/deng-tao/
【摘要】1、内核中断概述 (1)在OS环境下编写中断处理函数与之前在裸机中编写中断处理函数的方式是不一样的,在Linux内核中提供了一套用来管理硬件中断资源的软件体系架构。 (2)在操作系统中,中断号与gpio、内存一样被认为是一种硬件资源,当我们需要使用某一个中断号时必须向操作系统申请中断资源,只有申请成 <a href="https://www.cnblogs.com/deng-tao/p/6131133.html" target="_blank">阅读全文</a>