这是一篇发布在讨论区的测试文章

作者:admin 发布于:2014-8-9 17:52

最终目的不让它出现在首页文章页中。

评论(0) 浏览(8052)

傅立叶级数(Fourier Series)和周期现象

作者:linuxer 发布于:2014-8-7 20:09 分类:基础学科

如果你仔细观察,工作和生活中充满了周期现象:旁边linux driver工程师在调试audio driver的时候播放的1kHz的正弦信号,周末去公园游玩,游船推开水面的波纹,硬件工程师调试硬件电路的时候,示波器显示出来的晶振方波信号……

所谓周期现象具体包括时间上的周期现象和空间上的周期现象。1kHz的audio当然是时间上的周期信号,而水面的波形就是空间上的周期现象。对于空间上的周期现象,实际上就是一个pattern不断的重复。

对 于一个普通的人,我们可以感知时间的流逝,也可以感知空间的变化(我们可以通过眼睛、耳朵、触觉等build in在身体上的sensor来感知时空中的周期现象),因此,周期现象对于我们来讲就像呼吸一样自然。然而,你是否愿意从另外一个侧面来感知世界?那个世 界就是频域(frequency domain)的世界。描述时间上的周期现象我们使用频率(frequecy)这个词,也就是一秒重复的次数。

Can you feel frequency of the world?

阅读全文>>

标签: 傅立叶级数 Fourier Series

评论(14) 浏览(14392)

Linux kernel的中断子系统之(六):ARM中断处理过程

作者:linuxer 发布于:2014-8-4 18:26 分类:中断子系统

本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作。具体整个处理过程分成三个步骤来描述:

1、第二章描述了中断处理的准备过程

2、第三章描述了当发生中的时候,ARM硬件的行为

3、第四章描述了ARM的中断进入过程

4、第五章描述了ARM的中断退出过程

本文涉及的代码来自3.14内核。另外,本文注意描述ARM指令集的内容,有些source code为了简短一些,删除了THUMB相关的代码,除此之外,有些debug相关的内容也会删除。

阅读全文>>

标签: irq handler 中断处理

评论(100) 浏览(92982)

linux内核中的GPIO系统之(2):pin control subsystem

作者:linuxer 发布于:2014-7-26 18:24 分类:GPIO子系统

在linux2.6内核上工作的嵌入式软件工程师在pin control上都会遇到这样的状况:

(1)启动一个新的项目后,需要根 据硬件平台的设定进行pin control相关的编码。例如:在bootloader中建立一个大的table,描述各个引脚的配置和缺省状态。此外,由于SOC的引脚是可以复用 的,因此在各个具体的driver中,也可能会对引脚进行的配置。这些工作都是比较繁琐的工作,需要极大的耐心和细致度。

(2)发现某个driver不能正常工作,辛辛苦苦debug后发现仅仅是因为其他的driver在初始化的过程中修改了引脚的配置,导致自己的driver无法正常工作

(3)即便是主CPU是一样的项目,但是由于外设的不同,我们也不能使用一个kernel image,而是必须要修改代码(这些代码主要是board-specific startup code)

(4)代码不是非常的整洁,cut-and-pasted代码满天飞,linux中的冗余代码太多

作 为一个嵌入式软件工程师,项目做多了,接触的CPU就多了,摔的跤就多了,之后自然会去思考,我们是否可以解决上面的问题呢?此外,对于基于ARM core那些SOC,虽然表面上看起来各个SOC各不相同,但是在pin control上还有很多相同的内容的,是否可以把它抽取出来,进行进一步的抽象呢?新版本中的内核(本文以3.14版本内核为例)提出了pin control subsystem来解决这些问题。

阅读全文>>

标签: pin control

评论(43) 浏览(114233)

Linux内核中的GPIO系统之(3):pin controller driver代码分析

作者:linuxer 发布于:2014-7-22 20:37 分类:GPIO子系统

对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括:

(1)pin multiplexing。基于ARM core的嵌入式处理器一般会提供丰富的功能,例如camera interface、LCD interface、USB、I2C、SPI等等。虽然处理器有几百个pin,但是这些pin还是不够分配,因此有些pin需要复用。例如:127号 GPIO可以做一个普通的GPIO控制LED,也可以配置成I2C的clock信号,也可以配置成SPI的data out信号。当然,这些功能不可能同时存在,因为硬件信号只有一个。

(2)pin configuration。这些配置参数包括:pull-up/down电阻的设定, tri-state设定,drive-strength的设定。

本 文主要描述pin control subsystem中的low level driver,也就是驱动pin controller的driver。具体的硬件选用的是S3C2416的硬件平台。既然是代码分析,本文不是非常多的描述框架性的内容,关于整个pin control subsystem软件结构的描述请参考TODO。

阅读本文需要device tree的知识,建议首先阅读device tree代码分析

阅读全文>>

标签: driver pin controller

评论(51) 浏览(105428)

linux内核中的GPIO系统之(1):软件框架

作者:linuxer 发布于:2014-7-21 14:40 分类:GPIO子系统

作为一个工作多年的系统工程师,免不了做两件事情:培训新员工和给新员工分配任务。对于那些刚刚从学校出来的学生,一般在开始的时候总是分配一些非 常简单的任务,例如GPIO driver、LED driver。往往CPU datasheet的关于GPIO或者IO ports的章节都是比较简单的,非常适合刚入行的工程师。虽然GPIO子系统相关的硬件比较简单,没有复杂的协议,不过,对于软件抽象而言,其分层次的 软件思想是每个嵌入式软件工程师需要掌握的内容。

我更倾向使用GPIO系统这个名字来代替GPIO driver这个名字,GPIO driver仅仅包含了pin signal状态控制和读取的内容,而GPIO系统包括了pin multiplexing、pin configuration、GPIO control、GPIO interrupt control等内容。本文主要是以3.14内核作为例子,讲述linux kernel中GPIO系统的软件框架。

阅读全文>>

标签: GPIO 软件框架

评论(49) 浏览(85050)

ACCESS_ONCE宏定义的解释

作者:linuxer 发布于:2014-7-17 12:34 分类:进程管理

在阅读RCU代码的时候遇到了ACCESS_ONCE这个宏定义,感觉比较有意思,因此独立出来一篇文档来描述它。

阅读全文>>

标签: ACCESS_ONCE

评论(0) 浏览(20516)

智慧家庭之我见_多媒体篇

作者:wowo 发布于:2014-7-9 9:01 分类:技术漫谈

引子:这是一个移动互联的时代,最后的胜者,一定具备超强的整合能力。 

蜗蜗关注智慧家庭由来已久,只是这些年从事着完全不同的行业,道不同,不相谋。可能是传说中的七年之痒吧,终于决定对自己的工作以及职业规划做出一个变动。以此为契机,将自己对智慧家庭的一些思考,记录于此。可能会很幼稚,希望各位看官不要见笑,并不吝赐教。

本文主要是对智慧家庭中的多媒体设备的思考。何为多媒体设备呢?看看下面的事物:智能路由器,智能手机,PC,笔记本电脑,平板电脑,智能电视盒,智能电视,智能手表,云存储。相信大家都已经很熟悉了,它们就是本文谈论的对象。它们的本质,就是以满足人们对沟通、影音、游戏、休闲、娱乐为目的,在性能和便携性(重量和大小)之间摇摆与妥协。

阅读全文>>

标签: 智慧家庭 整合 多媒体 plan9

评论(13) 浏览(9161)

GIC驱动代码分析(废弃)

作者:linuxer 发布于:2014-7-4 14:34 分类:中断子系统

GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器。GIC通过AMBA(Advanced Microcontroller Bus Architecture)这样的片上总线连接到一个或者多个ARM processor上。本文主要分析了linux kernel中GIC中断控制器的驱动代码。

具体的分析方法是按照source code为索引,逐段分析。对于每一段分析的代码,力求做到每个细节都清清楚楚。这不可避免要引入很多对GIC的硬件描述,此外,具体GIC中断控制器的 驱动代码和linux kernel中断子系统的交互也会描述,但本文不会描述linux kernel的generic interrupt subsystem。

本文以OMAP4460这款SOC为例,OMAP4460内部集成了GIC的功能。具体的linux kernel的版本是linux3.14.。

阅读全文>>

标签: GIC 代码分析

评论(19) 浏览(46334)

在PowerShell中使用Vim

作者:wowo 发布于:2014-6-18 11:41 分类:软件开发

闲来无事,买了一个Win8系统的小平板,带键盘,准备打造成专门用来写博客的工具(本文就是用它写的第一篇)。捣鼓一圈之后,首先要解决的是用什么看代码。在PC时代,习惯了Linux命令行的方式,一般都是Windows系统+VMWare虚拟机+Linux系统+Vim+SecureCRT,但是这个庞大配置,显然不适合小平板。于是蜗蜗就打起PowerShell的主意了。

蜗蜗想要的无非就是一个命令行的环境,加上Vim工具。而微软在WIN7、WIN8时,就在系统中集成了一个Shell工具----PowerShell,这个工具虽然没有Linux系统的Shell强大,但相比Windows的Command Line,还是强大不少。那是否可以利用它呢?答案是肯定的。

阅读全文>>

标签: vim win8 powershell

评论(7) 浏览(33273)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog