自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tracy Mcgrady的专栏

冰山一角。

  • 博客(35)
  • 资源 (16)
  • 收藏
  • 关注

原创 2个小时学会写makefile

本文只是介绍如何编写一个基本的Makefile,并不是一个非常完整的参考手册,其中很多类容都没有涉及到1.基本一个简单的Makefile,为了实际说明,我举我写的链表例子man.c, list.c, list.h其中main.c和list.c中包含了list.hmain:main.o list.o    gcc -o main main.o list.omain.o:mai

2011-11-28 09:48:02 1052

原创 QMainWindow学习-6

现在我们的按钮还不支持复制,粘贴这些操作,那我们接下来做这些事情。首先我们将剪切和复制两个按钮设置成不可见cutAct->setEnabled(false); copyAct->setEnabled(false);然后加上两个连接connect(textEdit, SIGNAL(copyAvailable(bool)), cutAct,SLOT(setEnabled(boo

2011-11-25 17:18:28 1185 2

原创 QMainWindow学习-5

菜单栏有了,工具栏也有了,连用户可以输入的编辑框也有了,接下来当然是给我们这些按钮添加动作,以完成一个记事本的功能。1.打开文件首先我们在类中定义一个槽,还记得槽是怎么声明的吗,就是在private slots:下声明一个函数。private slots:     void loadFile();然后我们在mainwindow.cpp中实现这个函数,其中我们要用到一个变量,mF

2011-11-25 17:16:30 3397

原创 QMainWindow学习-4

如何给工具栏上按钮添加图标在Qt Creator中新建一个Qt Resource file在Add下拉菜单中选择Add Prefix,表示添加一个前缀,这里我们将默认的/new/prefix修改为/,然后在Add下拉菜单中选择Add File,表示将图片添加进来,我们可以在工程目录下新建一个目录,比如images,专门用于存放图片。我们在创建QAction的同时就为这个action

2011-11-25 17:14:54 1455

原创 QMainWindow学习-3

1.添加菜单栏我们MainWindow类中添加如下成员QMenu *fileMenu;QAction *newAct;QAction *openAct;QAction *saveAct;其中QMenu代表一个菜单,QAction代表菜单中的一个选项,在头文件里还要增加这两个类的前置声明class QMenu;class Qaction;接下来在声明两个私有函数,

2011-11-25 16:51:20 3566

原创 QMainWindow学习-2

<!--pre.western {font-family:"DejaVu Sans Mono",monospace}pre.cjk {font-family:"DejaVu Sans",monospace}pre.ctl {font-family:"DejaVu Sans Mono",monospace}p {margin-bottom:0.21cm}-->

2011-11-25 16:49:24 4761

原创 QMainWindow学习-1

什么是QMainWindow?QmainWindow类继承QWidget类,它是QT提供的一个主应用程序窗口类,它包含菜单栏(MenuBar),工具栏(ToolBar),状态栏(StatusBar)以及提供给用户的工作空间(CentralWidget)等。例子#include #include #include int main(int argc, char *

2011-11-25 16:45:43 1456

原创 QSignalMapper

在QT编程中,如果遇到多个控件,但是他们的槽大致相同,这个该怎么处理,比如10个button,难道要写10个槽,可以不必这样,QSignalMapper可以帮组我们解决。    QSignalMapper *signalMapper = new QSignalMapper(thi

2011-11-21 16:28:29 14189 2

原创 QT信号和槽

信号和槽是QT的核心,在其他GUI中大多采用消息和回调函数,比如win32中#include #include int main(int argc, char *argv[]){    QApplication app(argc, argv);    QPushButton button("Quit");    button.show();    QObject

2011-11-21 15:48:22 847

原创 QT内存管理

使用new操作符来定义一个对象QVBoxLayout *layout = new QVBoxLayout(&window);另外一种方法QVBoxLayout layout(&window);C++并没有提供内存自动管理机制,通常,需要程序开发人员自己去做这些事情,比如在构造函数中使用了new去申请了一个对象,那么在析构函数中就要显示的调用delete去删除这个对象。但是QT提供了

2011-11-21 15:42:34 1049

原创 QT布局

关于布局,布局可以采用绝对定位和布局定位,绝对定位就是直接给出坐标值,但是如果用户改变了窗口大小,比如最大化,如果你自己不做处理,那么窗口上面的这些控件还是在原来位置,并不能随着窗口变化而变化。QT提供了布局管理器,可以避免这种问题出现,常用的有水平布局,垂直布局,网格布局在布局管理器中使用addWidget添加一个控件,使用addLayout添加一个子布局1.水平布局

2011-11-21 15:38:40 5866

原创 QT国际化支持

为了是我们的QT程序支持如中文等其他语言,通常的做法是在需要翻译的地方显示的用tr标记,所以你在阅读其他人编写的源程序时会看到很多字符串做了tr标记,这样做是有原因的。1.在hello.pro文件中增加TRANSLATIONS = hello_zh_CN.ts2.进入工程目录,运行lupdate hello.pro,生成hello_zh_CN.ts文件3.使用Qt Creato

2011-11-21 15:26:43 805

原创 hello world

qt学习第一个程序hello world!新建一个空的工程hello,然后新建一个文件main.cpp,在main.cpp里面添加内容如下#include #include int main(int argc, char *argv[]){    QApplication app(argc, argv);    QLabel label(QObject::tr("H

2011-11-21 13:57:05 641

原创 静态库和共享库概念

1.静态库和共享库的概念在链接共享库时只是指定了动态链接器和该程序所需要的库文件,并没有真正的做链接,可执行文件中仍然是未定义的符号,需要在运行时做动态链接。而在链接静态库时,链接器会把静态库中的目标文件取出来和可执行文件真正的链接在一起,所以采用静态库的可执行文件一般很大,不需要库文件也能运行,而采用共享库的可执行文件一般比较小,需要库文件才能运行。2.如何制作静态库和共享库(1)静

2011-11-20 22:12:17 2171

原创 8086汇编学习笔记10-端口

8086CPU有两种地址空间,一是内存地址空间,二是端口地址空间,访问端口只能用in和out指令,分别用于从端口读数据和往端口写数据,CPU最多可以定位64KB个不同的端口,端口地址范围为0~65535。在访问端口时,只能用ax或al来存放从端口读取的数据和往端口写入的数据,8位端口用al,16位端口用ax。在访问端口号为0~255时在指令中直接给出端口号。in al, 20hou

2011-11-13 20:53:53 3129

原创 8086汇编学习笔记9-中断

中断信号可以来自CPU内部或外部。 一. 8086CPU内部中断信号有(1) 除法错误(2) 单步执行(3) 执行into指令(4) 执行int指令1. 中断码8086用一个字节来描述中断码,可以表示256中不同的中断信息。除法错误中断码为0单步执行中断码为1执行into指令中断码为4执行int n指令中断码为n2. 中断向量表用来存放中断码

2011-11-13 20:53:05 4186

原创 8086汇编学习笔记8-转移指令

修改IP,或同时修改CS和IP的指令称为转移指令只修改IP时,称段内转移,段内转移又分为短转移和近转移,是根据IP修改范围不同而区分的,短转移修改IP范围为-128~127,近转移修改IP范围为-32768~32767。同时修改CS和IP时,称段间转移,也称远转移1. jmp为无条件转移指令,可以修改IP,也可以同时修改CS和IP(1) jmp short 标号,段内短转移,s

2011-11-13 20:52:09 1098

原创 8086汇编学习笔记7-标志寄存器

CF,寄存器的第零位,进位标志位,在进行无符号运算时,记录运算是否有进位或借位。PF,寄存器的第二位,奇偶标志位,记录相关指令执行后,其结果所有位中1的个数是否为偶数。ZF,寄存器的第六位,零标志位,记录相关指令执行后,其结果是否为0。SF,寄存器的第七位,符号标志位,记录相关指令执行后,其结果是否为负。DF,寄存器的第十位,在串处理时,控制每次操作后si和di是增还是减。OF

2011-11-13 20:51:07 726

原创 8086汇编学习笔记6-寻址方式

寻址,寻的什么址,当然是内存,寻址方式有多种,就像我回四川一样,可以坐飞机,然后坐火车,也可以直接坐火车,当然还可以坐汽车,不过我到没有试过。1. 操作数据的地址,有四个寄存器bx,si,di和bp可以用来对内存单元的寻址(1)直接寻址ds:[idata](2)寄存器间接寻址,[bx]、[si]、[di]、[bp](3)寄存器相对寻址[bx+idata]、[si+idata]、[d

2011-11-13 20:49:46 655

原创 8086汇编学习笔记5-伪指令

伪指令不同于汇编指令,汇编指令有对应CPU能够识别的机器码,而伪指令主由编译器识别。1. 段声明段名 segment..段名 endssegment和ends是用来定义一个段,segment是一个段的开始,ends是一个段的结束,一个段必须有个名称来标识。2. 汇编程序结束标记endend是一个汇编程序结束标记,编译器在编译汇编程序过程中,如果碰到end,就结束对源

2011-11-13 20:48:30 1860

原创 8086汇编学习笔记4-指令

汇编指令,有相对应的机器指令1. 数据传送指令movmov ax, bx2. 加法指令addmov ax, 1mov bx, 2add ax, bx;ax=ax+bx执行后ax值为33. 加1指令incmov bx, 1inc bx运算后bx值为2,相当于执行add bx, 14. 减法指令submov ax, 5mov bx, 3sub

2011-11-13 20:47:37 1064

原创 8086汇编学习笔记3-程序组织

1. 关于段地址和偏移地址8086CPU有20位地址总线,达到1MB寻址能力,但是8086CPU又是16位结构CPU,一个寄存器只能存16位数据。所以8086用两个寄存器来表示一个20位的物理地址,一个称为段地址,一个称为偏移地址,然后由地址加法器将两个16位地址合成一个20位的物理地址。地址加法器计算物理地址公式:物理地址=段地址*16+偏移地址2. CS寄存器用来存放代码段段地址,

2011-11-13 20:46:31 738

原创 8086汇编学习笔记2-寄存器

8086CPU有14个寄存器,AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。注意:写汇编程序时,不区分大小写,编译器都能识别。1. 通用寄存器AX、BX、CX、DX这四个寄存器通常用来存放一般数据,称为通用寄存器。这四个寄存器都可以当作两个独立的8位寄存器来用。AH,AL, BH, BL, CH, CL, DH, DL。2. 段寄存器CS

2011-11-13 20:45:21 819

原创 8086汇编学习笔记1-基础

1. 什么是汇编语言汇编指令是各种CPU提供的机器指令的助记符集合。CPU只认识0和1组成的机器指令,但是使用机器指令去编写的程序难于书写和阅读,所以采用汇编,汇编只是机器指令的另一种表示方法。编写好汇编程序,还需要汇编编译器将汇编翻译成机器指令,这样CPU才能识别与执行。机器指令:1000100111011000汇编指令:mov ax, bx但是汇编程序并不只包含有对应机器指令的

2011-11-13 20:44:27 973

原创 IIC总线协议

I2C是Philips公司推出的芯片间串行传输总线,以两根连线(SDA和SCL)即可实现完善的全双工同步数据传送,具有规范完整、结构独立和使用简单等特点。I2C总线的时钟线SCL和数据线SDA均为双向传输线。数据线上每传输一位数据都要求时钟线上有1个时钟脉冲与其相对应。标准的IIC总线协议数据传输速率为100 kbit/s,7位设备地址。 IIC总线协议最重要的是起始信号,终止信号和应答信

2011-11-12 19:28:19 1568 1

原创 嵌入式根文件系统制作

构建一个最基本的嵌入式根文件系统,只是为了让Linux能够正常启动,根文件系统是yaffs2的根文件系统1.创建根文件系统的目录结构mkdir rootfscd rootfsmkdir bin dev etc lib mnt proc sbin sys tmp usr varmkdir usr/bin usr/sbin2.创建设备文件cd dev/mknod -m

2011-11-12 19:25:31 1075

原创 为内核添加yaffs2文件系统支持

1.从http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/网址下载得到yaffs和yaffs2的源文件2.解压后,进入到yaffs2目录下,通过yaffs2目录下的脚本文件patch-ker.sh来给内核打补丁使用命令即可实现./patch-ker.sh c /home/linux-2.6.32.2上面这个命令完成了三件事情(也可以手动修改实现)

2011-11-12 19:24:26 2548

原创 Fedora9中VMwaretools安装

1.rpm –ivh kernel-devel-2.6.25-14.fc9.i686.rpm测试是否安装成功rpm –q kernel-devel2.将linux.iso挂载到Linux下进入目录/media/VMWARE TOOLS/vmware-tools-distrib ./vmware-install.pl3.一路回车,会出现错误,是VMware tools工具太老了

2011-11-12 19:23:24 1685

原创 交叉编译工具链为什么是arm-linux-而不是arm-linux-gcc

因为不只是需要用到arm-linux-gcc编译器,还需要用到如arm-linux-ld链接器这些工具,虽然从称谓上是交叉“编译”,其实是一个预处理、编译、链接的一系列过程 。也就是说内核编译是个系统性的工程,需要用到/arm-linux-xxx等一系列工具。

2011-11-12 19:21:16 937

原创 为嵌入式开发指定交叉编译器

1.解压工具链到某一目录下tar -xvzf arm-linux-gcc-4.3.2.tar.gz -C / 执行该命令,将把 arm-linux-gcc安装到/usr/loca/arm/4.3.2目录2.把编译器路径加入系统环境变量vim /root/.bashrc 编辑/root/.bashrc文件,在最后一行  export PATH=$PATH:/usr/local/a

2011-11-12 19:20:19 1104

原创 RedHat9安装nfs服务

使用命令查看是否安装了nfs,rpm -q nfs-utils如果没有安装,nfs安装包在RedHat第一张盘/RedHat/RPMS目录中,将安装包拷贝到某个目录下执行命令rpm -ivh nfs-utils-1.0.1-2.9.i386.rpm进行安装使用setup命令,将nfs服务启动修改配置文件vim /etc/exports加入允许被其它计算机访问的目录和访问权限

2011-11-12 19:18:56 1236

原创 RedHat9安装tftp服务

查看tftp服务安装了没有使用setup查看tftp服务在安装RedHat9时有没有安装。或者使用命令 netstat -a|grep tftp,如果出现udp        0      0 *:tftp                  *:*则代表已经安装tftp服务如果没有安装,也没有关系,将安装包的第三个包重新挂在到Linux中/RedHat/RPMS目录中将tftp

2011-11-12 19:17:48 739

原创 RedHat9安装vmware tools

1.将vmware tools的linux.iso挂载到linux中2.运行vmware-install.pl(./vmware-install.pl)3.一路回车,安装成功后会在/mnt/下创建hgfs目录然后就可以实现linux和windows文件的共享(即使网络不通也可以)

2011-11-12 19:16:52 977

原创 内核挂载根文件系统异常

load Image of Linux...Uncompressing Linux.................................................................................................. done, booting the kernel.Linux version 2.6.32.2 (root@loca

2011-11-12 19:13:02 2016

原创 gcc常用选项

gcc常用选项1.什么是gccGNU Compiler Collection,译为GNU编译器集合。2.支持的语言gcc当前支持的语言包括C, C++, Objective-C, Objective-C++, Java, Fortarn, Ada等等。3.常用选项一个c语言源程序生成可执行程序需要经过如下几步,预处理,编译,汇编,链接。一般只需要知道预处理,编译阶段,链接阶

2011-11-12 19:06:25 839

ubox gps协议

本文档是ubox gps协议的详细介绍,在于对nmea语句的了解。

2016-01-18

hx8389b datasheet

hx8389b datasheet,方便做mipi开发的朋友们。

2015-01-05

J-Flash s3c2440的配置文件

用于J-Link J-Flash的2440配置文件,可用于mini2440 micro2440等开发板。

2014-07-05

led.tar.gz

sdcc使用Makefile的led工程实例

2014-01-13

sdcc-3.3.0-i386-unknown-linux2.5.tar.bz2

sdccc Linux x86二进制包。

2014-01-02

intel MCS51 MICROCONTROLLER FAMILY USER'S MANUAL

Intel 8051编程手册,对学习51的很有帮助

2012-11-17

u-boot nor flash驱动

u-boot的完整nor flash驱动,nor flash型号为sst39vf1601。

2012-06-01

编程修养-陈皓

讲述编程中需要注意的问题,如何提高自己的编程技术,自己编写的代码更稳定、易读、规范、易维护、专业。

2012-05-19

ARM汇编手册

arm汇编手册,对arm汇编学习很有帮组

2011-12-31

TDS1000B系列用户手册

TDS1000B系列 数字存储示波器 用户手册

2011-12-16

ARM Architecture Reference Manual

本手册介绍符合 ARMv4 和 ARMv5 标准的处理器的指令集、内存模型和程序员模型,这类处理器包括: * ARM7 * ARM9 * ARM10 * StrongARM * Intel XScale * Marvell Feroceon 产品系列 本手册还介绍最初的 ARMv6 体系结构版本。Thumb-2 或 TrustZone 安全扩展的内容不包含在本手册中。

2011-12-05

64-ia-32-architectures-software-developer

Intel处理器软件开发参考手册,对于理解Intel体系架构,以及汇编程序编程都有帮助

2011-12-02

Linux汇编教程

Linux下AT&T语法汇编教程,讲AT&T语法汇编比较少,讲的好的就更少了

2011-11-29

AT&T语法汇编教程

Linux下AT&T语法汇编程序教程,将AT&T语法书比较少,好的书就更少了

2011-11-28

深入理解计算机系统

以程序员角度理解计算机系统知识,适用于那些想要写出更快、更可靠程序的程序员。

2011-11-28

QT编程艺术

QT编程艺术,个人觉得比较好的QT编程书籍

2011-11-20

空空如也

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

TA关注的人

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