SQL:同表前后记录计算 问题提出一个表tb,主要字段如下: id,自增长 dt,时间 status,状态。需求:需要得到当状态=90的记录与该记录前记录中时间的差值。解法select datadiff( a.dt, b.dt ) from tb as a,tb as b where a.status=90 and a.id-1 = b.id
让Android运行在SD卡上 首先介绍原理,最后介绍具体怎么实现。 1. Android启动流程eloader,uboot存储在SPI Flash上面。SPI FLash在开机时会被SoC映射到某地址,然后依次启动eloader,uboot。uboot启动后,将会启动kernel。1.1.kernel在哪里呢?1.1.1. kernel可以在boot.img中boot.img是Android
can bus test cmd on linux Testing command: cansend and candumpReference website: http://www.imxdev.org/wiki/index.php?title=All_Boards_FlexCANcmd lineType command in terminal: # ip link set can0 type can bitrate 500000# ip li
CAN网络学习总结 什么是CAN控制器局域网(CAN-Controller Area Network)是 BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。组网方式总线型组网。类似一根葫芦藤上长了7个小葫芦一样。当然通过网关、转换器等方式,可以组成树形网络。 CAN的直接通信距离最远可达10km(速率5kbps
[Android][Build]LOCAL_MODULE_TAGS和PRODUCT_PACKAGES--指定编译进Image的模块 LOCAL_MODULE_TAGS位于模块Android.mk文件中,大约可以取值:user: 指该模块只在user版本下才编译eng: 指该模块只在eng版本下才编译tests: 指该模块只在tests版本下才编译optional: 指该模块在所有版本下都编译可参考: http://www.cnblogs.com/eustoma/archive/2012/05/25/2518418.htm
[Android][OTA][Kernel]OTA升级后某内核模块版本与内核版本不一致导致工作不正常 现象OTA升级Android之后,WIFI模块工作不正常。 wifi运行失败时,提示:[ 12.886920] ath9k_htc: version magic '3.18.0-94.30.01 SMP preempt mod_unload ARMv7 p2v8 ' should be '3.18.0-93.00.03 SMP preempt mod_unload ARMv7 p2v8 'L
【linux】【kernel】【gpio】imx-m6-vab820与ZX2000上的GPIO sysfs root@vab820_6dq:/sys/class/gpio # ls -l--w------- root root 4096 2017-02-16 11:05 exportlrwxrwxrwx root root 2017-02-16 11:05 gpiochip0 -> ../../devices/soc0/soc.0/200000
【Linux】【cmdline】uboot传递给内核的root设备序号动态变化导致启动失败 现象板子上插入SD卡启动Linux系统后,emmc的设备名称是/dev/mmcblck1;板子上没有插入SD卡,Linux启动后,emmc的设备名称是/dev/mmcblck0.uboot传递给内核的cmdline参数bootargs 中root=/dev/mmcblck0p14,这个配置在没有插SD卡的时候工作正常,但是插入SD卡后,就无法正常启动Linux系统,因为无法找到root设备
【repo】创建新branch 背景Android BSP,使用repo管理源代码。 共有多个不同平台,如imx6,imx5,zx2000等等。每个平台又分为不同板子。因此有多个分支。 需要基于imx6_m6_vab820创建新的branch。 当前我的工作目录中,代码处于zx2000_l5_vt6091 branch。过程在已有其他分支基础上操作使工作目录干净,就是删除未跟踪的和已跟踪但是内容改变了的文件。repo ini
多线程下std::list的遍历与push 一个线程往list中push数据,一个线程遍历该list然后进行操作。没有试验,我猜测可能会有多线程安全问题。解决办法,如果对遍历的数据进行加锁,可能性能有损失。我使用了如下这种方法,记录在案。 使用一个临时的list,比如,std::list<int> readables; //遍历时使用的std::list<int> readables_tmp; //push数据的时候使用的。在遍历之前,再将此list中的数据移到readables
介绍一款免费开源功能强大的源代码格式化工具——UniversalIndentGUI 项目地址:http://universalindent.sourceforge.net/ 先看看样子长的如何: 实际上这只是一个前端GUI而已,后台用的也是一批开源的源代码格式化工具而已,这些工具,都是命令行运行的。 看看程序所在目录下的文件就知道了, 如图: 可以看到背后有一批的可执行文件,实际进行格式化动作的,就是这些幕后功臣了。 这玩意儿可以所见即所得的进行实时观看格式化效果。最最重要的是,它可以帮助我们编写一个批处理文件来对一批的文件进行格式化。 在重整工具/建立批处理菜单项就能创建一个批处
软件代码设计零碎杂想-6 上节简单讨论了下数据的流转方式,从最基本的方面进行讨论,然而,这最基础的知识点,往往被视而不见,不加细致的分析,反而去够摸比较飘的东西。关于数据及数据流转方式,还有很多方面要去考察,以后再慢慢谈。我写的每篇博客,漏洞很多,问题也很多,可惜看的人很少,没人关注,也没有人指出错误或者不对的地方来。 今天谈谈对象的依赖关系。同样从最基础的知识点谈起。先谈谈两个对象间的关系。任何一个对象,不是被其他对象所依赖,就是依赖其他对象。有一个实际情况要注意,对象的实例的使用方式,都是在一个函数里,都是在某函数中调用对象的方
软件代码设计零碎杂想-5 本节讨论下数据流转方式。 一般情况下,所谓对象,都有状态信息的,这些状态,其实就是对象的数据。如果一个对象完全不与其他对象发生关系,基本上是很少见的,一般的函数都需要参数。今天这里不讨论关于状态如何变化的问题。 那么两个对象之间如何发送关系,对象A需要对象B的数据,有哪些方法可以完成?这些都是在进行设计的时候,需要了解的。先看例子: class BTDownloader { double rate,speed,downloaded; .... }; 一个BT下载者,内部保存了下载速率,下
软件代码设计零碎杂想-4 多年以前,当我还对面向对象的软件设计思想热火朝天的时候,我手里捧着一本带着软件复用字样的书,刚巧被公司搞UI设计的同事看见了,他当时已经考取了PMP,问我,“软件复用,你们能开发出这样的被复用的代码来吗?” 我当时思考了半天,回答是,我现在还没有能力把现在做的这个项目里的代码,复用到另一个项目里去,当然,函数库,算法库,这库那库除外。 以面向对象的思想,用面向接口编程,至少有3个参与方,接口类,具体类,使用接口的客户,一般来说,只要暴露给客户接口类接可以了,再用一个创建工厂来创建接口类的实例,客户拿着这个实
软件代码设计零碎杂想-3 基于现在的计算机架构设计,也基于这个世界的时空规律,现阶段,就我所知,对于一个线程的执行,在cpu中,是一个指令一个指令执行的,也就是说,cpu是按照顺序来读取机器指令,在某时刻,只有一条指令被执行。我还没有发现过在同一个时刻,同一个线程里的多条指令被多个地方同时执行,也没有发现cpu在执行指令的时候,不按照指令顺序,东一条西一条的去乱七八糟的执行。为什么扯这些闲淡?我只想引出高级语言中的3类流程控制结构,无论哪一种流程控制结构,最终在cpu上,都是乖乖的一条指令一条指令的执行,并没有什么面向对象,面向过程
不同codepage文件转换操作实录 因有一芬兰语项目,文件以ANSI方式保存,内有注释,有芬兰语。在中文环境下打开,与GBK编码冲突,出现乱码。使用doxygen进行文档化,如果输入的编码采用GBK,则提示错误。因我想用中文对文件进行注释后用doxygen进行文档化,所以需要将芬兰语变化成GBK编码。 在csdn求助,得到不少回复。最终的解决方法记录在案,以备后查。 我尝试了方案如下: cattycat的方案,因为输出还是有不识别的文字:// Index 0 = Marginaalit pll?pois,其中的?即为不识别的。当然,这是我的经
子窗口与父窗口的消息关系网-2 下面是得自MSDN中关于Common Controls的说明,具体路径为:ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WIN32COM.v10.en/shellcc/platform/commctls/common/common.htm#Using_Common_Control 可以发消息给通用控件来通知控件做某事或者向控件要某事。 当控件发生某事件,比如用户输入,会向父窗口发WM_NOTIFY消息。请自行查阅WM_NOTIFY和NMHDR。 只是可惜的是,EDIT