08 2013 档案
UCOS源码剖析 (一)
摘要:UCOS源码详解uC/OS-II源码分析(总体思路 一)首先从main函数开始,下面是uC/OS-II main函数的大致流程:main() {OSInit();TaskCreate(...);OSStart(); }首先是调用OSInit进行初始化,然后使用TaskCreate创建几个进程/Task,最后调用OSStart,操作系统就开始运行了。OSInit最先看看OSInit完成哪些初始化:void OSInit (void){#if OS_VERSION >= 204OSInitHookBegin();#endifOS_InitMisc();OS_InitRdyList();OS_
阅读全文
vc中nmake.exe cl.exe 的使用
摘要:首先简单介绍一下程序是如何编译链接的。程序写好之后,我们进行编译和链接来产生可执行程序。这时候,编译器为了完成编译和链接,需要知道很多信 息。比如要编译的文件是哪一个,使用哪些编译选项进行编译,编译好之后输出到哪里,输出文件叫什么名字等等。makefile 就是被vc使用保存这些信息的方法之一,编译时程序nmake根据makefile中的信息,在用相应选项执行编译,用相应执行链接,最后生成可执行文件。vc的编译程序是CL.EXE,链接程序是LINK.EXE。关于本文所提到的vc编译链接用的程序都在目录 "$VCInstDir/Microsoft Visual Studio/VC98/
阅读全文
80x86 CPU 的工作模式
摘要:8086/8088微处理器只有一种工作模式:实地址模式。32为的80x86微处理器有3种工作模式:实地址模式、保护模式和虚拟8086模式。 实地址模式 对于8086/8088微处理器,实模式是它的唯一工作方式,对于80386以上的处理器来说,实模式是它的工作方式之一,主要是用于兼容8086/8088。MS DOS 操作系统运行在实模式下,Windows 9x/NT/2000操作系统运行在保护模式下。实模式的工作特点可以归纳如下:1.只使用低20位地址线,地址范围00000H~0FFFFFH,使用 1MB 的内存储器;2.EIP,ESP,EFLAGS 寄存器高16位为0,用CS:IP作为指令指针
阅读全文
C标准库 二
摘要:http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html现在C语言(C99)标准库函数的24个头文件列表如下:assert.h inttypes.h(C99) signal.h stdlib.hcomplex.h(C99) iso646.h(C95) stdarg.h string.hctype.h limits.h stdbool.h tgmath.h(C99)errno.h locale.h stddef.h time.hfenv.h(C99) math.h stdint.h(C99) wchar.h(C95)floa
阅读全文
C语言函数库
摘要:C语言函数库分类函数目录函数进程函数诊断函数接口子程序输入输出 str字符串操作函数mem操作存贮数组 数学函数 时间日期函数 转换函数分类函数,所在函数库为ctype.h[top] int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int i
阅读全文
Linux架构和目录-基础篇
摘要:1.Linux目录结构2. /boot/存放系统内核文件,如vmlinuz,initrd,System.map等。其中,a. vmlinuz是可引导的、压缩的内核,“vm”即“Virtual Memory”;b. initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在linux内核启动前, bootloader 会将存诸介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。第一阶段启动的目的是为第二阶段的启动扫清一切障碍,最主要的是加载根文件
阅读全文
啊拉伯人的性
摘要:这个故事是我在80年代看的故事,当时因为在中国各大学的外国留学生里,普遍存在令中国人恨的招妓女现象,天津大学甚至发生过外国留学生和中国学生的因这个问题引起的摩擦,所以我记忆的非常深刻而又清楚。 这个故事是这样的。有一个中国医生随利比亚的工程建设团去利比亚(他是做为随团医生)呆了几年,这个医生的主要职责当然是给中国的工程团人员治病和防病。但是因为他的医术比较高明,再着工程团的人数不算太多,所以他有很多闲暇时间和精力治疗利比亚人的病。 有一天一个阿拉伯老人跑过来找这个医生,说自己得了一种病,恳切地求他给自己治疗。这位中国医生看他的身体和气色都很好,只不过是眉头紧缩,只是心理很苦恼,所以问他,到..
阅读全文
子线程中定义消息,进行消息循环
摘要:子线程中定义消息,进行消息循环窗口多线程中倘若要使子线程能够接收并处理各种消息,则应该在子线程中增加消息循环,不断接收和处理消息,当然这样子的子线程就会像主线程一样运行,只不过处理的消息一般为自定义消息了,而本应在子线程中做的各种处理则变成了消息循环中对不同消息的处理.同时应注意添加了消息循环的子线程同窗口主线程相似,在出现对某个消息进行大量处理时将导致对后续消息处理的暂停.消息循环:peekmessage(&msg,null,0,0,pm_remove); while(getmessage(&msg,null,0,0)) { switch(msg.message) { cas
阅读全文
freetype
摘要:FreeType编译及使用心得收藏FreeType是一款字体服务库,它支持多种字体,并且提供高效,高质量的文字。freetype相关介绍见:http://blog.csdn.net/ganxingming/archive/2006/06/05/774796.aspx1, 编译FreeType 解压后进入./include/freetype,复制config到当前文件夹,随便去个什么名,这里我用custom_config然后进入 ./builds/win32/visualc 这里是vs工程,因为FreeType的支持相当广泛,有很多我们不需要东西,因此需要重新编译FreeType。 而刚才我们复
阅读全文
VC6 下 libpng 库的编译与初步使用
摘要:VC6 下 libpng 库的编译与初步使用目录libong 库的介绍VC6 下 libpng 的编译下载 libpng 与 zlib进行编译得到 .lib 文件初步使用对 VC6 进行设置将 .lib 文件添加到工程设置中使用 libpng 检测文件是否为 png 格式的图像libpng 官方手册一、libpng 库的介绍libpng 用于处理 png 格式的图片, 是一套比较完善的 png 图片处理库, 免费、开源, 因此受到了很高的好评。遗憾的是, 它的官方网站: htp://www.libpng.org/ 现已不能直接访问。但是我们依然能够通过 sourceforge 来下载所需的相关
阅读全文
Windows上编译libtiff
摘要:将libtiff 4.0.3解压到[工作目录]/tiff/tiff-4.0.3对于Release,编辑tiff/tiff-4.0.3里面的nmake.opt如下选项,去掉注释:JPEG_SUPPORT = 1 JPEGDIR = [工作目录]/jpeg/libjpeg JPEG_INCLUDE = -I$(JPEGDIR) JPEG_LIB = $(JPEGDIR)/Release/libjpeg.libZIP_SUPPORT = 1 ZLIBDIR = [工作目录]/zlib/install ZLIB_INCLUDE = -I$(ZLIBDIR)/include ZLIB_LIB = $(Z
阅读全文