摘要:最近玩了下Android-x86的eclair,主题风格相对之前的1.6好看了很多,而且还加了不少之前没有的功能。但是触摸屏不能用,在终端下用getevent命令查看事件信息,发现得到的绝对坐标有很大出入(4096*4096)。于是想自己试着去解决这个问题。同时在Ubuntu下测试,发现居然没有getevent命令,当然可以用cat /dev/inpu/eventX查看事件信息,但是显示出来的是一堆乱码,怎么办?那就自己编写个Linux输入设备的测试小程序来检测问题所在吧,最后测试结果发现和在Android下一样的问题-没有校正,总算也小有成就。接下来应该再dig触摸屏的校正问题:-) 现在.
阅读全文
01 2011 档案
摘要:博主按:好的营销基于好的产品。苹果的产品设计理念是领先于时代的,在这个基础上研究它的营销策略才有意义。苹果定价时的“锚定”策略(关于锚定理论有一个有意思的案例,见本博客的另一篇文章),差别定价策略,促销定价策略等等都做得很是精明。精明的定价策略是成功营销的一个重要的方面。下文从几个角度分析了苹果的定价策略,虽然有些内容并不尽然(我认为差别定价只是产生消费者剩余的必要条件,而非充分条件),但也有一定的借鉴意义。特转之。苹果的流行,在产品在服务;苹果的精明,在定价在营销。 乔布斯确实是一个玩转价格策略的商场老手,他采取各种措施会让用户觉得苹果的每一款产品都物有所值。9月17日,iPad在大陆正式.
阅读全文
摘要:关键字: Android , build system 非常有用的记录,感谢作者!=======================================1. Android编译系统分析编译脚本及系统变量build/envsetup.sh脚本分析在编译源代码之前通常需要在android源代码顶层目录执行 . ./build/envsetup.sh 目的是为了使用脚本 envsetup.sh 里面定义了一些函数:function help()function get_abs_build_var()function get_build_var()function check_product(
阅读全文
摘要:Android文件系统具有什么样的结构?我们如何才能将这一文件系统分离出来?又能以何种方式挂载文件系统呢?这些问题都会在文中找到具体的解决答案。用过Linux的朋友可能对开源的系统有一个非常好的印象。那么在日益成熟的手机操作系统中,有没有一款像Linux一样的开源系统呢?谷歌公司就退出了一款基于Linux平台的Android 操作系统来满足人们的需求。在这里大家可以先来了解一下Android文件系统的相关内容。1、Android文件系统的结构Android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulato
阅读全文
摘要:Android Source Code Download TOP Website android 的最新源代码下载的官方网站是:http://source.android.com 源代码的下载说明页面是:http://source.android.com/download (现在貌似用还用不了) 现在的网站是http://git.android.com TOP Create Directory 在HOME(/home/justin)目录下创建如下目录结构: /home/justin/android : 总计 36 drwxr-xr-x 7 justin ju...
阅读全文
摘要:本人做过技术开发工作多年,从焊电路板的小工程师逐渐做到现在x項目总工程师,作为工程师有亲身的感受,对工程师的性格、心理和知识结构有非常深入的了解,现在把自己的一点感悟与大家分享,希望大家批评指正,欢迎补充完善。 有强烈的好奇心。这是成为高手的必要条件,喜欢新生事物,对问题喜欢刨根问底,以钻研为乐趣。那种得过且过,敷衍了事,仅仅把工作当作饭碗的人连熟手都成不了,更何况高手。有好奇心的人,可以为解决一个问题通宵干,躺在床上也在寻思解决方案,这样的人就是高手的胚子! 做事谨慎细致,考虑问题全面。技术工作来不得半点粗心马虎,否则问题多多,后患无穷。甚至给生产、产品品质造成重大影响,给公司造成重大经济.
阅读全文
摘要:那一个通信设备应该具备哪些基本知识和能力呢 1. 快速学习的能力:一方面,通信技术,标准,芯片更新的太快了,快到你根本来不及系统的了解它,只能通过特定的项目,需求进行了解;另一方面对于公司来说,需要做的硬件产品也是变化很快,客户需要T1, E1, PDH, SDH,Ethernet, VoIP, Switch, Router, 没有人是什么都懂的,都需要能够结合客户的需求,选择的芯片方案进行详细了解,尤其对于接口协议和电气特性。 2. 通信协议和标准的理解:通信设备,顾名思义,就是用来实现多种通信协议(比如T1, E1, V.35,PDH, SDH/SONET, ATM, USB, VoIP,
阅读全文
摘要:对于硬件工程师来说,技术要求究竟是要到什么程度呢?当然,从从小受到的教育中我们知道对于知识要理解透彻,越深入越好,对于任何一个知识点,通过基本公式,用数学工具推导到最后来验证高级定律和公式。我想对于这一点,高考物理是达到了极点,高中物理知识其实不难,但是我们为了选拔的目的,把物理各种定律糅合在一起,结合一些脑筋急转弯,复杂的运算,造成高考物理是最难的科目了。如果我们拿着解高考物理难题的精神来解决硬件问题,当然精神可嘉,工作之余还是值得鼓励这种学习和探索精神的;但是对于项目开发却是没有多少好处,毕竟硬件工程师的工作是工程开发,在规定的时间和预算之内完成硬件项目,而不是你在这个时间呢自己推导出来了
阅读全文
摘要:运行某些linux脚本文件时会出现这种错误:/bin/sh^M:损坏的解释器: No such file or directory原因:该脚本文件在Windows下被编辑过。windows下,每一行的结尾是/n/r,而在linux下文件的结尾是/n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符/r, 用gedit打开文件是看不到这个^m的,可以使用vi打开看一下,每一行结束都有一个^m解决办法:ubuntu下安装unix2dos和dos2unix sudo apt-get install tofrodos 使用方法不是unix2dos和dos2.
阅读全文
摘要:原文:10 Tips for Designing Presentations That Don’t Suck: Pt.2 – Design Shack译者:boxi(译言) 来源:褪墨上回我们公布了PPT设计的五招实战技巧,其中包括夺目耀眼照片术,清新明快排版术,朴实无华色彩术等等可以为我们带来令人震撼的结果的招式。今天,我们把PPT设计的第六到第十招一并打包奉送给诸位,我们要教给你武功秘籍的最高境界,无招胜有招,让你学会如何通过简化设计来让你的PPT设计功力突飞猛进。#6 无招胜有招,越简单越好对于非设计人员来说这是一个主要的绊脚石。这个问题源于对PPT应该是什么样子的一个误解。大部分情况下
阅读全文
摘要:博主按:人机交互的设计是一门学问,需要设计者了解市场,了解用户。这方面往往研发人员和销售人员会有一些分歧,有时候研发者自作聪明加上去的一些东东只是自我满足,完全经受不住市场的考验。所以产品的式样需要由销售部门提出,再和研发部门讨论确定。这方面我也有些体会,所以特转此文与大家共享。转载自百度MUX交互效率是产品可用性的重要组成部分,也是可用性评估的一个要点。相较传统互联网产品,当前移动产品在软硬界面的协同性以及网络环境方面还有很多差距,用户的交互效率处于比较低的水平。对移动产品交互效率进行一些思考,对我们在局限条件下设计出交互效率更高、用户体验更好的移动产品具有一定的意义。关于交互效率ISO 9
阅读全文
摘要:------------------------------------------ 本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:前言I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而I2C是基于multi master机制.一同总线上可允许
阅读全文
摘要:指针ptr指向结构体type中的成员member;通过指针ptr,返回结构体type的起始地址 type |----------| | | | | |----------|ptr-->| member --| |----------| | | | | |----------|/*** container_of - cast a member of a structure out to the containing structure* @ptr: the pointer to the member.* @type: the type of the container struct thi
阅读全文
摘要:3.6 访问I/O内存资源 尽管I/O端口空间曾一度在x86平台上被广泛使用,但是由于它非常小,因此大多数现代总线的设备都以内存映射方式(Memory-mapped)来映射它的I/O端口(指I/O寄存器)和外设内存。基于内存映射方式的I/O端口(指I/O寄存器)和外设内存可以通称为“I/O内存”资源(I/OMemory)。因为这两者在硬件实现上的差异对于软件来说是完全透明的,所以驱动程序开发人员可以将内存映射方式的I/O端口和外设内存统一看作是“I/O内存”资源。 从前几节的阐述我们知道,I/O内存资源是在CPU的单一内存物理地址空间内进行编址的,也即它和系统RAM同处在一个物理地址空间内..
阅读全文
摘要:3.4 管理I/O端口资源 我们都知道,采用I/O映射方式的X86处理器为外设实现了一个单独的地址空间,也即“I/O空间”(I/OSpace)或称为“I/O端口空间”,其大小是64KB(0x0000-0xffff)。linux在其所支持的所有平台上都实现了“I/O端口空间”这一概念。 由于I/O空间非常小,因此即使外设总线有一个单独的I/O端口空间,却也不是所有的外设都将其I/O端口(指寄存器)映射到“I/O端口空间”中。比如,大多数PCI卡都通过内存映射方式来将其I/O端口或外设内存映射到CPU的RAM物理地址空间中。而老式的ISA卡通常将其I/O端口映射到I/O端口空间中。 linu...
阅读全文
摘要:博主按:下文原作者在linux2.4.0基础上分析的,我现在的内核是2.6.32。在有区别的地方我会用红色文字标出,作为对原文的一些补充吧。3.2 linux对I/O资源的管理 linux是以一种倒置的树形结构来管理每一类I/O资源(如:I/O端口、外设内存、DMA和IRQ)的。每一类I/O资源都对应有一颗倒置的资源树,树中的每一个节点都是一个resource结构,而树的根结点root则描述了该类资源的整个资源空间。 基于上述这个思想,linux在kernel/Resource.c文件中实现了对资源的申请、释放及查找等操作。 3.2.1 I/O资源的申请 假设某类资源有如下这样一颗资源...
阅读全文
摘要:博主按:下文原作者在linux2.4.0基础上分析的,我现在的内核是2.6.32。在有区别的地方我会用红色文字标出,作为对原文的一些补充吧。3.2.4 寻找可用资源 函数find_resource()用于在一颗资源树中寻找未被使用的、且满足给定条件的(也即资源长度大小为size,且在[min,max]区间内)的资源。其函数源代码如下:/** Find empty slot in the resource tree given range andalignment.*/static int find_resource(struct resource *root, struct resource.
阅读全文
摘要:博主按:下文原作者在linux2.4.0基础上分析的,我现在的内核是2.6.32。在有区别的地方我会用红色文字标出,作为对原文的一些补充吧。本文主要从内核实现的角度分析linux2.4.0内核IO子系统中对IO端口资源的管理的实现原理。本文是为那些想要深入分析Linux的IO子系统的读者和设备驱动程序开发人员而写的。 Copyright ?0? 2002 by 詹荣开 E-mail:zhanrk@sohu.com linux-2.4.0 Version 1.0.0,2002-10-1 关键词:设备管理、驱动程序、I/O端口、资源 申明:这份文档是按照自由软件开放源代码的精神发布的,...
阅读全文
摘要:i2c-s3c2410.c======================module_init(12c_adap_s2c_init)module_init申明函数static int __init i2c_adap_s3c_init(void){int ret;ret = platform_driver_register(&s3c2410_i2c_driver);if (ret == 0) { ret = platform_driver_register(&s3c2440_i2c_driver); if (ret) platform_driver_unregister(&
阅读全文
摘要:子曰:按套路出牌。的确,什么东西都有套路,泡妞有泡妞的套路,花前月下不如花钱日下。打麻将有打麻将的套路,少吃少碰少放炮,多摸多杠多发财。星际有星际的套路,linux也有linux的套路。刘涛姐姐的故事再一次告诉我们,年龄不是问题,身高不是距离,有cai就行。我们不妨看看 modprobe ehci-hcd 之后发生了什么事情。ehci-hcd是一个驱动程序,不知您记不记得我在sysfs中谈论过设备模型。有两个重要的链表挂在bus上,一个是设备device链表,一个是驱动driver链表。每当我们向一根bus注册一个驱动driver时,套路是这样的:driver_register(struct.
阅读全文
摘要:继续往下学习第九章的内容。从这一章开始才接触到了一些实际的硬件设备,硬件是我的强项啊,呵呵。加油!一、I/O端口和I/O内存 在学习这部分之前,需要先明确一个概念:side effect。明确这个概念有助于理解内存操作和IO寄存器操作的不同。LDD3中将这个词翻译成了“边际效应”,对此我持保留意见,至少我当时学习的时候就被这个词搞得一头雾水(我本身是搞硬件的,自认为对寄存器还是很了解的,这里完全被这个词搞晕,我勒个去以为是什么高级的东东)。LDD2中将此翻译成“副作用”,这至少比“边际效应”更容易理解一些,但是“副作用”本身多指一件事物不好的方面的影响,不太符合国人的习惯。所以这里我想把它叫做
阅读全文
摘要:最近总有一些网上的朋友问我关于选择什么EDA软件好的问题,就写在这里吧。不弹此调久矣,一家之言,仅供参考。说到绘制电路图和PCB图的软件,大家可能最先想到的是protel,这个在国内,尤其是国内的大学里面用的是最多的了,相关的参考资料也最丰富。可是我最先用的确不是这个,实际上到现在我也不怎么会用。刚进公司的时候用的是Zuken公司的CR-5000,好像韩国企业都用这个吧,至少我见到的都是用它。感觉是一款不错的软件。记得当时什么也不会,跟在一位前辈的屁股后面,他画,我看。看了大概一个月,会了,自己画。感觉这款软件的快捷键挺好用的,速度飞起来以后画图就像打星际似的,挺有意思(后来发现任何一款EDA
阅读全文
摘要:一、kmalloc函数内幕 kmalloc的使用已经比较熟悉了,它的函数原型是: 1: #include <linux/slab.h> 2: void *kmalloc(size_t size, int flags);其中size表示要分配的块的大小, flags是分配标志。下面分别详细说明这两个参数: * size参数 实际上内核能分配的最小内存大小不是任意的,而是一些预定义的、固定大小的字节数组。linux创建一系列的内存对象池,每个池中的内存块大小事固定一致的。所以实际上申请到的内存大小可能会比size多一些,最多的时候会是2*size...
阅读全文
摘要:儿时读《西游记》,觉得唐僧软弱无能、真假不分,对孙悟空屈居这样的人手下觉得不解。时过而立之年,在职场摸爬滚打十年之后,重温《西游记》方才明白,唐僧其实是位好领导,他的事业成功得益于它所具有的一位领导人必备的多种素质。 一、良好的道德品质是得到认同并被委以重任的前提唐僧,俗家姓陈,法号玄奘,是唐初的高僧。“一心不爱荣华,只喜修持寂灭,”“根源又好,德行又高”。唐太宗李世民认为他“有德行有禅心”,委任“左僧纲,右僧纲,天下大阐都僧纲”之职。 二、扎实的专业知识是顺利完成使命的理论基础唐僧西天取经经历了九九八十一难,历经十四年。 要完成这么艰巨的历史使命,没有扎实的专业知识是不可能的。唐僧...
阅读全文
摘要:接下来学习第七章:时间、延迟及延缓操作。本章主要学习了内核代码如何对时间问题进行处理。 关于Linux时钟处理机制的详细内容,参考本博客转载的“Linux 时钟处理机制”一文【赵 健博 (zhaojianbo@ncic.ac.cn), 硕士, 中国科学院计算技术研究所】一、时间。 内核通过定时器中断来跟踪时间流。定时器中断是硬件产生的,是周期性的。不同的硬件平台的周期不一样,例如x86 PC上默认的是1000次/秒。内核维护一个内部的计数器,这个计数器在系统引导时被初始化为0,每次中断发生时,计数器+1。也就是在x86上此计数器每秒钟增加1000。这个计数器是一个64位变量,称为“jiffie
阅读全文
摘要:原作者:赵 健博 (zhaojianbo@ncic.ac.cn), 硕士, 中国科学院计算技术研究所文章链接:http://www.ibm.com/developerworks/cn/linux/l-cn-clocks/index.html
阅读全文
摘要:开发的过程中,经常会发现虚拟机的硬盘不够用了,这时候需要给虚拟机扩充硬盘,可以使用如下方法。 (1)在VM——Settings——Hard disk——add ,可以选择创建一块新硬盘或者加入一块已经存在的硬盘。 (2)启动系统后在终端中使用fdisk -l /dev/sd* 可以列出新加入的硬盘,比如是sdb,假设使用的是SCSI硬盘。(3)fdisk /dev/sdb,进入fdisk操作界面“Command (m for help):”。键入“n”,创建一个新的分区;然后“p”表示创建主分区;接下来选择主分区号,再选“1”,再接下来连续敲两个回车,按默认值设定分区的柱面起始范围,即所有存.
阅读全文
摘要:具体进入算法研究之间先要了解几个基本概念: 1. 图的概念。 图的表示方法是G=(V,E)。其中G代表Graphic, V代表Vertex,称为图G的顶点集; E代表Edge,称为图G的边集。 图又分为两种:有向图和无向图。见下图。 其中图(a)是有向图,图(b)是无向图。 使用G=(V,E)来表示图(a)的话。其中V={1, 2, 3, 4, 5, 6};E={(1,2),(2,2),(2,4),(2,5),(4,1),(4,5),(5,4),(6,3)} 。其中(4,5)和(5,4)表示的是不同的边。 使用G=(V,E)来表示图(b)的话。其中V={1, 2, 3, 4, 5, 6};..
阅读全文
摘要:来源:http://yfydz.cublog.cn1. 前言Linux内核空间与用户空间的通信可通过"/proc"目录的文件读写来实现,如果只是控制内核中的参数而不是传输较多数据的话,用“/proc”是很合适的。另外一种内核与用户空间通信方式方式是使用内核设备的读写或IOCTL来实现,以后再介绍。2. /proc概述/proc目录是系统模拟出来的一个文件系统,本身并不存在于磁盘上,其中的文件都表示内核参数的信息,这些信息分两类,一类是可都可写的,这类参数都在“/proc/sys”目录下,另一类是只读的,就是“/proc/sys”目录之外的其他目录和文件,当然这只是一种惯例,
阅读全文
摘要:在目录/sys/bus/i2c/devices下能发现系统中的I2C设备,如下:view plaincopy to clipboardprint?# ls 0-0034 0-0030 0-0011 0-0058 # ls0-00340-00300-00110-0058 这些设备就是系统中存在的设备。这些设备是怎么来的?在你对应的machine配置里会执行“i2c_register_board_info”一个函数,它会将一个i2c_board_info的结构体注册进系统,这个i2c_board_info的结构体里就描述了板载的所有I2C设备信息,如下例:view plaincopy to cli
阅读全文
摘要:嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn 一、开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以CO
阅读全文