自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 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

2017-05-02 10:49:46 691

原创 让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

2017-04-14 17:37:29 3153

原创 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

2017-04-01 16:59:48 959

原创 CAN网络学习总结

什么是CAN控制器局域网(CAN-Controller Area Network)是 BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。组网方式总线型组网。类似一根葫芦藤上长了7个小葫芦一样。当然通过网关、转换器等方式,可以组成树形网络。 CAN的直接通信距离最远可达10km(速率5kbps

2017-03-13 12:58:50 10074 1

原创 [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

2017-03-06 12:57:28 7876

原创 [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

2017-02-23 15:49:47 881

原创 【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

2017-02-16 19:08:40 310

原创 【Linux】【cmdline】uboot传递给内核的root设备序号动态变化导致启动失败

现象板子上插入SD卡启动Linux系统后,emmc的设备名称是/dev/mmcblck1;板子上没有插入SD卡,Linux启动后,emmc的设备名称是/dev/mmcblck0.uboot传递给内核的cmdline参数bootargs 中root=/dev/mmcblck0p14,这个配置在没有插SD卡的时候工作正常,但是插入SD卡后,就无法正常启动Linux系统,因为无法找到root设备

2017-02-16 14:47:09 1627

原创 【repo】创建新branch

背景Android BSP,使用repo管理源代码。 共有多个不同平台,如imx6,imx5,zx2000等等。每个平台又分为不同板子。因此有多个分支。 需要基于imx6_m6_vab820创建新的branch。 当前我的工作目录中,代码处于zx2000_l5_vt6091 branch。过程在已有其他分支基础上操作使工作目录干净,就是删除未跟踪的和已跟踪但是内容改变了的文件。repo ini

2017-02-16 14:43:32 12074

原创 多线程下std::list的遍历与push

<br />一个线程往list中push数据,一个线程遍历该list然后进行操作。没有试验,我猜测可能会有多线程安全问题。<br />解决办法,如果对遍历的数据进行加锁,可能性能有损失。我使用了如下这种方法,记录在案。<br /> <br />使用一个临时的list,比如,<br />std::list<int> readables; //遍历时使用的<br />std::list<int> readables_tmp; //push数据的时候使用的。在遍历之前,再将此list中的数据移到readables

2011-05-30 15:49:00 6073

原创 介绍一款免费开源功能强大的源代码格式化工具——UniversalIndentGUI

项目地址:http://universalindent.sourceforge.net/ 先看看样子长的如何:   实际上这只是一个前端GUI而已,后台用的也是一批开源的源代码格式化工具而已,这些工具,都是命令行运行的。 看看程序所在目录下的文件就知道了, 如图: 可以看到背后有一批的可执行文件,实际进行格式化动作的,就是这些幕后功臣了。 这玩意儿可以所见即所得的进行实时观看格式化效果。最最重要的是,它可以帮助我们编写一个批处理文件来对一批的文件进行格式化。 在重整工具/建立批处理菜单项就能创建一个批处

2010-08-13 17:38:00 6705

原创 软件代码设计零碎杂想-6

上节简单讨论了下数据的流转方式,从最基本的方面进行讨论,然而,这最基础的知识点,往往被视而不见,不加细致的分析,反而去够摸比较飘的东西。关于数据及数据流转方式,还有很多方面要去考察,以后再慢慢谈。我写的每篇博客,漏洞很多,问题也很多,可惜看的人很少,没人关注,也没有人指出错误或者不对的地方来。 今天谈谈对象的依赖关系。同样从最基础的知识点谈起。先谈谈两个对象间的关系。任何一个对象,不是被其他对象所依赖,就是依赖其他对象。有一个实际情况要注意,对象的实例的使用方式,都是在一个函数里,都是在某函数中调用对象的方

2010-08-12 13:24:00 636

原创 软件代码设计零碎杂想-5

本节讨论下数据流转方式。 一般情况下,所谓对象,都有状态信息的,这些状态,其实就是对象的数据。如果一个对象完全不与其他对象发生关系,基本上是很少见的,一般的函数都需要参数。今天这里不讨论关于状态如何变化的问题。 那么两个对象之间如何发送关系,对象A需要对象B的数据,有哪些方法可以完成?这些都是在进行设计的时候,需要了解的。先看例子: class BTDownloader {     double rate,speed,downloaded;     .... };   一个BT下载者,内部保存了下载速率,下

2010-08-04 20:43:00 604

原创 软件代码设计零碎杂想-4

多年以前,当我还对面向对象的软件设计思想热火朝天的时候,我手里捧着一本带着软件复用字样的书,刚巧被公司搞UI设计的同事看见了,他当时已经考取了PMP,问我,“软件复用,你们能开发出这样的被复用的代码来吗?” 我当时思考了半天,回答是,我现在还没有能力把现在做的这个项目里的代码,复用到另一个项目里去,当然,函数库,算法库,这库那库除外。 以面向对象的思想,用面向接口编程,至少有3个参与方,接口类,具体类,使用接口的客户,一般来说,只要暴露给客户接口类接可以了,再用一个创建工厂来创建接口类的实例,客户拿着这个实

2010-08-04 18:10:00 610

原创 软件代码设计零碎杂想-3

基于现在的计算机架构设计,也基于这个世界的时空规律,现阶段,就我所知,对于一个线程的执行,在cpu中,是一个指令一个指令执行的,也就是说,cpu是按照顺序来读取机器指令,在某时刻,只有一条指令被执行。我还没有发现过在同一个时刻,同一个线程里的多条指令被多个地方同时执行,也没有发现cpu在执行指令的时候,不按照指令顺序,东一条西一条的去乱七八糟的执行。为什么扯这些闲淡?我只想引出高级语言中的3类流程控制结构,无论哪一种流程控制结构,最终在cpu上,都是乖乖的一条指令一条指令的执行,并没有什么面向对象,面向过程

2010-07-30 12:08:00 490

原创 不同codepage文件转换操作实录

因有一芬兰语项目,文件以ANSI方式保存,内有注释,有芬兰语。在中文环境下打开,与GBK编码冲突,出现乱码。使用doxygen进行文档化,如果输入的编码采用GBK,则提示错误。因我想用中文对文件进行注释后用doxygen进行文档化,所以需要将芬兰语变化成GBK编码。 在csdn求助,得到不少回复。最终的解决方法记录在案,以备后查。 我尝试了方案如下: cattycat的方案,因为输出还是有不识别的文字:// Index 0 = Marginaalit pll?pois,其中的?即为不识别的。当然,这是我的经

2010-07-29 11:36:00 1248

原创 子窗口与父窗口的消息关系网-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

2010-07-27 20:10:00 1659

原创 子窗口与父窗口的消息关系网-1

windows系统下面,每一个窗口都是一个WNDCLASS的实例。而一个WNDCLASS都有一个窗口过程(WndProc)与之对应。这不管是我们自己创建的WNDCLASS窗口还是windows标准窗口,比如button,edit等。Edit控件功能强大,能够处理字符输入删除编辑等,显然是windows系统实现的。对于Edit控件的窗口过程函数,我们是无法得到的(当然排除类似hook等方法)。由此,得到一个结论: 结论1:Edit,Button等windows标准窗口控件(The standard Micro

2010-07-27 19:08:00 2854

原创 软件代码设计零碎杂想-2

想到一个极端的例子,主要是想说如何提取变化的东西和设计的取舍。 先看一个题目:考试分数为百分制,请将给定的分数进行分类,分类规则是 [0,60)    不及格 [60,70)    合格 [70,80)    良好 [80,90)    优秀 [90,100]   杰出 嗯,题目简单,做法也很简单,如下,简便起见,假设分数为整形: char* get_result(int x) {     if ( x result();    } 有的人说,有的时候,用if只是简单判断下参数是否正确而已,可以像上面进行抽

2010-07-23 19:49:00 693 1

原创 Step by step——WinX开发入门教程-6

自定义窗口类(WNDCLASS)程序 对于对话框模板资源的程序比较简单,因为windows系统帮我们做了很多事情,真的是很多事情,想想我们自己手工用代码动态生成对话框上的一些控件试试看,对话框程序基本工作都交给了windows窗口系统了。我们只需要调用一个函数DialogBox,指定对话框资源ID,窗口过程,OK了。Windows窗口系统自动帮我们从可执行文件的资源节读取数据,帮我们创建窗口上的控件,排列位置。更重要的是,对于模态对话框,我们不需要写消息循环的处理代码。所以前面的例子里,代码都非常简单。对于

2010-07-23 17:11:00 681

原创 软件代码设计零碎杂想-1

team内有同事对设计模式的兴趣,勾起了我对软件代码设计的一些遐想,感觉有些话要说,要记录,所以就有了这系列文章。 接触到软件程序开发的人,肯定对程序=算法+数据不陌生。我记得这句话,但不记得说这话的人,当初,我更不理解这句话。现在,我好像有点明白了。 先从MVC模式说起。这个模式当然很复杂,涉及到的角色互相牵连。但是,这个模式,就是程序=算法+数据的一个体现。为什么这么说? 视图是表现数据的角色。如何表现数据,如何处理数据?涉及到算法。视图只负责算法,它不关心数据如何变化,是否变化,它只读取数据,它老老实

2010-07-23 11:33:00 499

原创 Step by step——WinX开发入门教程-5

利用winx的DDX机制得到,设置、得到edit控件内容 目的 利用DDX便利性,进行edit控件内容的设置和获取 原理 WTL提供了一个模板类来单独处理DDX机制,该类为: // CWinDataExchange - provides support for DDX template  class CWinDataExchange Winx自该类继承了一个新类: template  class WinDataExchange : public WTL::CWinDataExchange 某对话框类如果要

2010-07-23 11:27:00 549

原创 Step by step——WinX开发入门教程-3

修改使得入口函数为WinMain 目的 去掉运行时出现的控制台窗口,将程序入口函数改为WinMain 步骤 修改main入口函数为WinMain,如下: int APIENTRY _tWinMain(HINSTANCE hInstance,                      HINSTANCE hPrevInstance,                      LPSTR     lpCmdLine,                      int       nCmdShow) { 注意

2010-07-23 11:25:00 589

原创 Step by step——WinX开发入门教程-4

利用winx的command宏处理按钮事件 目的 利用winx的便利性进行按钮事件处理 原理介绍 Winx提供了以下几个宏来处理菜单,控件等的命令消息 WINX_CMDS_BEGIN WINX_CMD WINX_CMDS_END 用法 在窗口类定义中,如这样写: WINX_CMDS_BEGIN();     WINX_CMD(IDC_TODO, OnCmdTodo);     WINX_CMD(ID_HELP_ABOUT, OnCmdAbout); WINX_CMDS_END();  宏WINX_CMD

2010-07-23 11:25:00 498

原创 Step by step——WinX开发入门教程-2

基于资源的对话框 目的 能够显示一对话框。哪怕什么事情都不能做。 步骤 增加资源文件到工程中 通过VC2005的Project菜单,增加资源文件,VC2005将自动创建资源文件Helloworld.rc和对应的resource.h文件。 新增对话框 打开helloworld.rc,新建一个对话框,ID为IDD_DIALOG1 修改main.cpp,内容为: #include  #include  #include "resource.h" class CMyDialog : public winx:

2010-07-23 11:24:00 540

原创 Step by step——WinX开发入门教程-1

预先约定: 我的Winx安装路径为:I:/opensource/gui/WinX/WinX,以后用%WINX_ROOT%代替之 我的开发环境:VC2005 读者具备SDK开发经验。具备基本的C++使用经验。 检查开发环境 目的 检验winx是否在VC2005中设置正确,主要是包含路径是否正确设置 步骤 新建一个空的基于控制台的工程。 在该工程中新增加一个main.cpp。内容为: #include  #include  int _tmain(int argc,TCHAR* ar

2010-07-23 11:23:00 650

原创 偶尔看到的一种新颖的流程控制方式

do{   if ( x )  break;     if ( y ) break;.....  if ( z ) break;}while(0);代码用 do{}while(0)的形式,使得{}种的代码必须且仅走一次,但是又可以随时用break退出整个流程。一举两得。并且流程清晰易懂。

2005-10-18 20:26:00 1584 1

原创 开发调试基于WinCE下的ActiveX控件的基本步骤

开发调试基于WinCE下的ActiveX控件的基本步骤在WinCE下开发ActiveX控件会遇到很多障碍,如,可能编译成功,并且成功download到目标机上,但无法注册;想写一个应用程序来调试该控件,可是打开EVC创建完工程,想插入ActiveX控件的时候,控件列表里根本就是空的。本篇文章就是自己开发过程总结出来的经验,没有原因,只知道这么做。前提是EVC能够连接到目标机上。

2004-11-18 13:40:00 2645 2

原创 ATL窗口类源代码学习笔记

ATL 窗口类源代码学习笔记本文是自己学习源代码的总结,在写作过程和察看代码寻找资料的时候,找到了些文章。可参考:WTL流程分析-初稿ATL中的Thunk机制学习1,CWindowATL有一个专门为窗口设计的基础类,可以做全部的窗口操作,这就是CWindow。它实际上就是对HWND操作的一个包装类,对几乎所有以HWND句柄为第

2004-11-12 13:22:00 2211

原创 ATL ActiveX控件中用WTL::CButton动态添加按钮代码步骤

ATL ActiveX控件中用WTL::CButton动态添加按钮代码步骤首先必须是添加了一个ATL控件,生成了相应的类了。1,包含头文件#include 2,定义资源ID#define IDC_BTN_PLAY 60003,在类声明中定义成员。CButton m_btnPlay;4,在WM_CREATE消息中 RECT rc1; rc1.left = 

2004-11-11 11:57:00 2935 1

原创 ATL Style 模板学习手记

ATL Style 模板学习手记ATL的模板定义有些让人看的眼花缭乱,如,class CMyWnd : public CWindowImpl{ ...}; 据说,这样做是合法的,原因是C++的语法解释过,即使CMyWnd类只是被部分定义,类名CMyWnd已经被列入递归继承列表,是可以使用的。将类名作为模板类的参数是因为ATL为了在编译期间的虚函

2004-11-11 10:23:00 1406 1

原创 对话框到子控件的切换

对话框到子控件的切换例子:见附件 贴图:原始界面 被嵌入对话框中的对话框跳出了主窗口 关键字:SetWindowLong,SetWindowPos,SetParent,WS_POPUP,WS_CHILD背景:准备做一个播放器,底层接口做好了,只需传入一个窗口句柄,就可以在该窗口上面播放媒体了。本来想在一个对话框上放置一个static控件,将stati

2004-11-10 15:33:00 1474

原创 WTL 7.5-4291 安装手记

WTL 7.5-4291 安装手记1,从网上下载WTL 7.5 4291 版:http://sourceforge.net/projects/wtl/,得到wtl75_4291.zip2,将wtl75_4291.zip解压缩后,得到文件目录结构如下:          AppWiz          AppWizCE        11,666 CPL.TXT     

2004-11-10 10:30:00 1317

原创 如何控制其他程序窗体上的窗口控件:下

实在不好意思,写了上,中后,由于一直忙于项目,就没有完成最关键的工作。导致很多网友给我发邮件询问答案。同时对某些人发表的评论感觉到很伤心,本来就申明了文章写的很浅薄无知,很罗里八嗦的,并且将自己的心得发布给大家看,我自己不但没有好处,还浪费时间,凭什么发表了东西要被人骂?所以就一直不想继续写了。现在看我写的上,中,可真是够细的了。其实,几句话就搞定,但是我那时可没有理解什么回调之类的东西,

2004-11-09 14:55:00 3114 1

原创 如何控制其他程序窗体上的窗口控件:上

如何控制其他程序窗体上的窗口控件:上首先申明:我是菜鸟,我只不过想把困绕了我很长时间的问题的解决方案发表出来,免得以后我又忘记,同时给还不知道这些小知识的同僚一些帮助。各位不要笑我的浅薄。同时为了表示我的低级,我会很罗嗦的讲一些基本的东西,这些都是我的理解,很不准确。用我的方法来控制其他程序窗体上的窗口控件,必须先了解什么是回调函数。我的理解是这样的:回调函数写出来不是自己的程序去调用

2003-01-27 10:10:00 2527 1

原创 TreeView使用笔记

TreeView使用笔记TreeView由节点构成,建树通过对TreeView.items属性进行操作。Items是一个TTreeNodes对象,这是一个TTreeNode集。一、针对TTreeNodes,也就是 TreeView.Items,有这些属性:1、count,节点个数。2、item[index]  ,通过index得到节点。二、针对TTreeNodes,也就是 TreeVi

2002-05-17 09:14:00 3442

原创 让CListBox具有拖放功能

让CListBox具有拖放功能1.给CListBox控件添加成员变量:name  : m_dragList;Category : Control;Type  : CListBox;2.修改CListBox控件的属性,去掉在"Style"页里的"Sort"属性,同时确保为单选。3.修改代码:在类的声明中,修改:CListBox m_dragList;  为CDragListBox m_d

2002-05-13 09:39:00 1544 1

原创 win2000用户,你的“本地连接”会突然不见了吗?

win2000用户,你的“本地连接”会突然不见了吗?我是一名软件开发者,前两天一套erp软件投使用,需要测试,就在我的手提上做应用服务器吧。当时效果很好,第二天顺手打开Delphi,F9,突然冒出来一个“interface not supported"。吓我一身冷汗,连本机上都启动不了服务器,我编的东西还有用吗?急急忙忙的找原因。发现:“网上邻居”属性里,居然丢了“本地连接”。是不是这个原

2002-03-06 09:00:00 4202

原创 如何控制其他程序窗体上的窗口控件:中

有了回调函数的概念及上面的例子,我们可以继续了。其实想要找到一个标题已知的窗口句柄,用一个API函数就可以了:FindWindow.其函数原形是:function FindWindow(lpClassName, lpWindowName: PChar): HWND; stdcall;lpClassName:窗口类名.如果只知道标题,可以为空.窗口类名可以用很多工具获得.如winsign

2002-01-11 17:38:00 2256

Windows软件部署助手

在Windows下使用QT开发了一个程序,部署的时候发现比较困难,使用了很多dll文件,也不知道从哪里找。VC2005,VC2008等也一样。 花了几个小时做了这么一个简单的工具,能够将在开发机器上运行时候所需要的DLL收集起来,发布的时候,把相关dll放在一个文件夹下打包就可以了。 使用方法: 1.选择待部署发布的可执行文件。 2.运行这个文件。尽量多的进行些操作,将可能延迟加载的dll加载好。 3.回到这个部署助手里,单击提示对话框确定按钮。 4.助手将收集所有的dll。选择发布的时候要带的DLL 5.然后单击“收集DLL”,将选择的文件拷贝到指定文件夹。 6.打包文件夹,即可进行发布了。

2013-08-08

windows nt file system internal 第九章中文

windows nt file system internal第九章翻译,第一部分。 网上有1-6的中文部分,后面的没有放出来,这是我自己的翻译。第一次献丑,如有错误,请批评指正。

2012-07-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除