- 博客(48)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 HTML Javascript CGI
HTML Javascript CGIHTML Javascript CGIshttpdHTMLJavascriptCGI最近工作需要实现一个web 服务器。用来显示设备参数以及修改参数等简单的功能。由于是嵌入式设备,所以选择了一些小型的web 服务器。shttpd:小型嵌入式web服务器,可以使用C和C++来实现网页。不过完全由C语言来实现网页代码结构非常乱,后期维护修改肯定是灾难。还是
2017-12-14 16:32:37
3721
原创 Qt 日志功能
Qt 之日志功能enum LOG_LEVLE{ LOG_DEBUG = 0, LOG_WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3};#define LOGLEVEL LOG_DEBUGvoid logViewOutPut(QtMsgType type, const QMessageLogContext &context, c
2016-11-21 15:11:58
1122
转载 使用gdb调试内核错误信息
配置gdb:Kernel hacking ---> [*] Kernel debugging [*] Compile the kernel with debug info内核开发时有时候出现Oops,例如一个野指针会导致内核崩溃,如运行时出现以下log:现在有三种方法可以找出具体出现野指针的地方[plai
2016-05-31 14:34:33
1780
转载 Qt pro文件的写法规则
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被
2015-09-11 17:38:26
1607
转载 基本修饰符
基本修饰符conststaticvolatileconst const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。。 —— [ 百科 ]实例int const *a,int *const a,const int *a : const 属于修饰符 ,关键是看const 修饰的位置在那里。1、int const *a,
2015-09-07 14:42:30
553
原创 UDA1341 SSI音频驱动
SSI音频驱动音频驱动的文章网上有很多,分析的也很具体,这里只记录本人在调试音频驱动的过程和理解。调试一个驱动,最主要的还是从本质上去理解它的工作原理,包括时钟,数据,中断,寄存器配置等。或许并不需要全部知道,但是追根到底会对以后的驱动有很大帮助。目录SSI音频驱动目录音频驱动1board文件2时钟3machine驱动1imx_3stack_init_dam2imx_3stack_au
2015-07-23 17:17:45
2878
原创 poppler交叉编译
项目需要生成和打开pdf文件,编译了pdflib库,可以使用,但是上面有水印。。。如果是商业用途去水印的话需要获得许可。没办法,换呗。然后就是poppler,这个库的功能很强大,里面更是加入了Qt的支持,刚好适合项目需求。
2015-07-02 15:08:56
3685
转载 修改开机logo图片之png转ppm
1、pngtopnm logo_skytone_clut224.png > logo_skytone_clut224-tmp.pnm2、pnmquant 224 logo_skytone_clut224-tmp.pnm > logo_skytone_clut224.pnm3、pnmtoplainpnm logo_skytone_clut224.pnm > logo_skytone_cl
2015-06-15 11:15:14
953
原创 linux下udhcpc的使用
udhcpc是集成在busybox里面的,所以在编译busybox的时候加入dhcp的选项就可以了。 如果没有udhcpc的执行文件,可以手动连接一个:ln -s /bin/busybox /sbin/udhcpc直接使用udhcpc只能分配ip地址,但是没有写入到设备中,即这个ip地址并没有生效。因为udhcpc需要一个默认的配置文件default.script,查看
2015-05-26 11:21:55
26461
转载 LCD驱动中pixclock的计算
在LCD驱动程序中,需要我们根据LCD datasheet来设置相应的参数,这些参数包括:pixclock,left_margin,right_margin,upper_margin,lower_margin,hsync_len,vsync_len,VBP,VFB,VSPW,HBP,HFP,HSPW。下图是典型的TFT LCD时序图: __u32 pixclock; /*像素时钟(皮
2015-04-16 16:22:23
823
原创 u-boot显示logo
经过个人实践一下两种方法都可以实现:首先lcd驱动必须能正常运行,想确定是不是正常,就看uboot启动时能不能显示默认的logo。#define CONFIG_LCD其次想在u-boot里面显示图片,图片格式必须是bmp的,最开始阶段u-boot是没有图片解码的。将一个图片制作成8位bmp的格式,例如logo.bmp。1、在板级头文件中加入配置选项//支持B
2015-03-12 18:37:33
3692
原创 linux文件系统总结
文件系统的制作和加载过程,网上有很多优秀的博文,我就不多说了。只是对其中一些地方存在一点疑惑1、文件系统的linuxrc文件When using initrd, the system typically boots as follows: 1) the boot loader loads the kernel and the initial RAM disk 2) the ke
2015-02-06 09:47:29
1199
原创 linux下操作cpu寄存器
大多数的内核里面都有会对GPIO的操作,而且内核里面对GPIO进行配置也很方便,要什么功能就配置成什么就可以了。还有一些寄存器是内核没有配置到的,但是我们要操作怎么办,内核里面也定义了相关的接口函数。在u-boot中操作某个寄存器: reg = readl(IOMUXC_BASE_ADDR + IOMUXC_REG_GPR1); reg &= ~IOMUXC_REG_GPR1_ACT
2015-02-05 10:42:15
3633
原创 spi-flash移植问题
平台:linux-2.6.35imx53_loco最近在弄mfgtool的时候发现一个很奇怪的问题。在自己编译的smd版本的内核中,spi-flash、nor-flash、nand-flash都需要支持。nor-flash和nand都能正常烧写,但是spi-flash却一直烧写不成功。示波器测量spi引脚一切正常,完全不知道哪里出错。后来追踪代码发现,mxc_m25p16.c的pr
2015-01-21 16:52:32
2183
原创 嵌入式设备中使用QWS_KEYBOARD
最近发现一个问题,当我在嵌入式设备中使用环境变量QWS_KEYBOARD的时候,运行Qt程序,程序会被挂起。串口终端那边无法再输入任何东西。上网查找原因,发现也有其他的人碰到过这个问题,他们大多数的解决办法就是使用QWS_USB_KEYBOARD,但是由于我使用的是i2c的键盘设备,而不是usb的,所以这种方法对我没什么用。最后看到一篇老外的帖子,他提到需要修改Qt的源代码。下面是修改部分:
2015-01-12 09:45:15
3133
原创 i2c键盘驱动移植
linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler)、输入子系统核心层(InputCore)和输入子系统设备驱动层。对于输入子系统设备驱动层而言,主要实现对硬件设备的读写访问,中断设置,并把硬件产生的事件转换为核心层定义的规范提交给事件处理层。对于核心层而言,为设备驱动层提供了规范和接口。设备
2015-01-12 09:14:13
2259
转载 Qt 视图模型
在model/view架构中,view从model中获得数据项然后显示给用户。数据显示的方式不必与model提供的表示方式相同,可以与底层存储数据项的数据结构完全不同。内容与显式的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口共同实现的。普遍使用model index来表示数据项。view负责管理从model中读取的
2014-10-14 17:53:06
840
转载 QSS编程规则
借用css 的灵感, Qt也支持Qt自己的css, 简称qss。同css 相似,qss的主要功能与最终目的都是能使界面的表现与界面的元素分离,即质与形的分离,就如同一个人可以在不同的时候穿上不同的衣服一样,css机制的引入,使得设计一种皮肤与界面控件分离的软件成为可能,应用程序也能像web界面那样随意地改变外观。一、QSS语法同css一样,他也有由一个selector与一个decl
2014-09-28 10:10:52
721
转载 Linux下spi驱动开发
一、概述 基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多的相似性,大家可以对比学习。本主题分为两个部分叙述,第一部分介绍基于SPI子系统开发的理论框架;第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本2.6.29),编写
2014-09-03 17:06:29
916
转载 Linux workqueue工作原理
1. 什么是workqueue Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程. 工作队列(workqueue)是另外一
2014-09-02 17:35:55
716
原创 linux spi设备驱动中probe函数何时被调用
这两天被设备文件快搞疯了,也怪自己学东西一知半解吧,弄了几天总算能把设备注册理清楚一点点了。就以spi子设备的注册为例总结一下,免得自己忘记。首先以注册一个spidev的设备为例:static struct spi_board_info imx5_spi_printer_device[] __initdata = { { .modalias = "spidev", .max
2014-09-02 17:01:40
5939
转载 linux下SVN命令
1、将文件checkout到本地目录 svn checkout path(path是服务器 上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件 svn add file例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有
2014-09-01 14:06:46
506
转载 解决linux ping: unknown host www.baidu.com
"ping: unknown host www.baidu.com" 解决方案: 如果某台Linux服务器ping不通域名, 如下提示: [root@localhost ~]# ping www.baidu.comping: unknown host www.baidu.com首先确定已经连接上路由器,并且路由器能够访问外网,可以通过访问网关进行确定[ro
2014-08-20 17:41:09
757
转载 QT__stylesheet
QT皮肤编程(QT style sheet)总结QT style sheet的基本原理就是利用QSS语言对软件的外观进行定制。QSS可以直接在代码中输入,也可以保存在一个文本文件中,利用文件读取函数在软件运行时读入到一个文本串中,再利用QApplication类的函数setStyleSheet(&QString)使其生效。实例代码:#include #inc
2014-08-13 11:31:04
1108
原创 整理Qt常用类的用法(一) QFont、QLabel
如何使用Qt4,设置QLabel中字体的颜色。 其实,这是一个比较常见的问题。大致有几种做法:一是使用setPalette()方法;二是使用样式表;三是可以使用QStyle;四是可以在其中使用一些简单的HTML样式。下面就具体说一下,也算是个总结吧。 第一种,使用setPalette()方法如下: ...QLabel *label = new
2014-08-06 18:01:55
8367
转载 多线程经典面试题
1、基本概念 详见:线程和进程关系和区别、同步和互斥、进程间通信2、以下多线程对int型变量x的操作,哪几个不需要进行同步(D) A. x=y; B. x++; C. ++x; D. x=1; 详见:多线程二 多线程中的隐蔽问题揭秘3、多线程中栈与堆是公有的还是私有的 (C)
2014-07-26 16:23:18
837
转载 SYSZUXpinyin中文输入法的移植(到QT)
一.首先是库libsyszuxpinyin.so的移植1. 将 SYSZUXpinyin.tar.bz2 拷到/tmp/进行解压 然后 cd SYSZUXpinyin2.修改syszuxpnyin.pro文件QMAKE_LIBS += -lsyszuxpinyin在.pro中添加RESOURCES += syszuxpinyin.qrc(可能已经修改完毕)3. qm
2014-07-25 14:56:56
2071
转载 QTranslate国际化及多语言切换
注意:本文不介绍如何使用Qt的国际化、本地化支持。本文针对的是偏底层的、Manual和其他资料中很少涉及的东西。所以,继续之前,请先确保:你已经对如何使用Qt的国际化比较熟悉了。本文针对的是 tr("我是中文") 这种情况, 是Qt中translate、tr 与中文问题 一文提到的 2b 问题的深入。例子首先,个人比较抵制源码中使用中文(当然也包括用tr扩住中文了
2014-07-24 18:09:45
850
转载 【深入QT】信号槽机制浅析
一、信号槽的基本概念关于QT信号槽的基本概念大家都懂,通过信号槽机制,QT使对象间的通信变得非常简单:A对象声明信号(signal),B对象实现与之参数相匹配的槽(slot),通过调用connect进行连接,合适的时机A对象使用emit把信号带上参数发射出去,B对象的槽会就接收到响应。 信号槽机制有一些特点:1. 类型安全:只有参数匹配的信号与槽才可以连
2014-07-04 15:09:14
951
转载 Imx GPIO口功能定义
在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样:#define MX6Q_PAD_GPIO_19__GPIO_4_5 \ (_MX6Q_PAD_GPIO_19__GPIO_4_5|
2014-07-03 14:06:41
3181
原创 嵌入式USB鼠标支持
在linux中加入鼠标支持,首先在内核里面将mice驱动加入编译,这里用到的是usb所以还要有usb的支持,下载到板子上启动要用鼠标,首先要知道生成的鼠标设备是哪个,直接cat 就可以了,通过cat可以知道鼠标到底可不可用,当时我发现cat /dev/micecat /dev/mouse0cat /dev/event2cat /dev/input/event2都有反应,那到
2014-07-01 18:02:54
1196
转载 Qt键盘事件
Qt键盘事件属于Qt事件系统,所以事件系统中所有规则对按键事件都有效。下面关注点在按键特有的部分:focus一个拥有焦点(focus)的QWidget才可以接受键盘事件。有输入焦点的窗口是活动窗口或活动窗口子窗口或子子窗口等。焦点移动的方式有以下几种:按下Tab或Shift+Tab注意:文本编译器(一般需要插入Tab),或者WebView(需要Tab来移
2014-07-01 14:56:08
1208
转载 [Qt]在不开启事件循环的线程中使用QTimer
引入QTimer是Qt自带的定时器类,QTimer运行时是依赖于事件循环的,简单来说,在一个不开启事件循环(未调用exec() )的线程中,QTimer是无法使用的。通过分析Qt源码可发现,调用QTimer::start()后仅仅是在系统的定时器向量表中添加了一个定时器对象,但定时器并没有真正开启。定时器的开启需要通过processEvent()开始的一系列调用后才会真正得开启,这个过程中
2014-06-26 16:54:28
2534
拼音输入法,虚拟键盘
2015-01-21
FTP上传文件的STOR命令一直提示 500 Invalid Path
2014-06-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人