
USTC学习
expleeve
当我看到现在身边的人时,我在想,自己是不是该专注于某件事了
展开
-
CPSR_cxsf 的含义
msr cpsr_cxsf,r1 ;这里的cxsf表示从低到高分别占用的4个8bit的数据域 指令中有时还有出现cpsr_cf, cpsr_all, cpsr_c等,这里: c 指 CPSR中的control field ( PSR[7:0]) f 指 flag field (PSR[31:24]) x 指 extend field (PSR[15:8]) s转载 2010-09-02 16:15:00 · 2406 阅读 · 0 评论 -
在UC/OS-II上开发应用程序的起步信息
<br />1、 可以直接使用ucos_lib.a(UC/OS-II在ADS上的函数库)来进行各种函数操作,比如LCD_printf(“hello world/n”);等,详情见桌面《基于UCOS操作系统的API函数.chm》。<br />2、 发现在UC/OS内核中有TaskChangePrio函数,可以改变优先级,呵呵<br />3、 发现一个这样的例子:<br />void YourTask(void *pdata)<br />{<br />for(;;)<br />{<br />/*用户代码*原创 2010-09-02 16:28:00 · 1104 阅读 · 0 评论 -
警告:隐式声明与内建函数‘malloc’不兼容
添加#include #include ...原创 2010-09-02 16:31:00 · 2720 阅读 · 0 评论 -
sizeof举例
<br />第一个例子:<br />char* ss = "0123456789";<br />sizeof(ss)<br />结果 4 ===》ss是指向字符串常量的字符指针<br />sizeof(*ss)<br /> 结果 1 ===》*ss是第一个字符<br />char ss[] = "0123456789";<br />sizeof(ss)<br /> 结果 11 ===》ss是数组,计算到/0位置,因此是10+1<br />sizeof(*ss)<br />结果 1 ===》*ss是第一个字符原创 2010-09-02 16:32:00 · 798 阅读 · 0 评论 -
linux /dev/fb no such device 解决方法
<br />1.在grub.conf中的启动项后添加 fb:on vga=0x317<br />2.如何内核安装framebuffer,重新编译内核<br />3.可以在X window下启动qvfb代替<br />4.mknod /dev/fb c 29 0添加character device文件原创 2010-09-02 16:36:00 · 3556 阅读 · 0 评论 -
C 值传递、地址传递、引用传递
<br />昨天遇到一个问题:<br />***************************************************************<br />程序一:<br />char str[256] ="";<br />char *sp = str;<br />visitDepart(&rs,rs.column,sp);<br />**************************<br />static void visitDepart(result_t * rs, int原创 2010-09-02 16:43:00 · 3576 阅读 · 1 评论 -
数据库范式
<br />第一范式(1NF)<br />要求:不重复的列,即每列都是不可分割的基本数据项。<br />1NF是对关系模型的基本要求,不满足第一范式的数据库不是关系数据库。<br />第二范式(2NF)<br />要求:实体的属性完全依赖于主键,不会存在仅依赖于部分主键,比如复合主键为(A,B),单独A就能够确定属性C,这时候就需要把A和C分出来另建表,这种情况叫做部分依赖。<br />第三范式(3F)<br />要求:不存在属性依赖于其他表的非主键,即对于(A,B,C),如果A可以决定B,B能决定C,则应原创 2010-09-20 21:23:00 · 493 阅读 · 0 评论 -
gcc 降低版本
<br />有的软件由于版本的原因,不能用太高的gcc版本去编译,需要将gcc版本降低。<br /> <br />这次,我就遇到了这种事情<br /> <br />我的ubuntu 10.04上默认安装的是gcc 4.4.3,但是我需要使用gcc 3.4的版本<br />没办法,只能降低gcc 版本了。<br /> <br />在Debian系linux 中,根据《Toy Story》(pixer出的一部动画片,就是《玩具总动员》)中的人物,从buzz for release 1.1, rex for re原创 2010-10-12 15:51:00 · 3078 阅读 · 0 评论 -
如何在本地使用APT
<br />有时你硬盘上有许多.deb软件包,你会希望通过APT来安装它们,以便让它去处理软件包间复杂的依赖关系。 <br />想这么做,就建一个目录,将所有你想要安装的.deb文件放入其中。例如: # mkdir /root/debs<br />你可以使用一个override文件直接去修改软件包中控制文件中的定义,使之符合你的软件储藏库管理规则。在这个覆盖文件中,你可能希望定义一些选项来覆盖那些软件包的定义,如下所示: package priority section<转载 2010-10-13 16:44:00 · 650 阅读 · 0 评论 -
ubuntu 10.04 源,无法连接
<br />最近看了一篇《最小的BabyLinux系统制作过程详解》,挺有意思<br /> <br />我把ubuntu升级到 10.04,但是再更改sources.list的源之后,一直不能连接到更改的源上。<br /> <br />ping路由和局域网中的其他机器都能ping通,我想,可能是DNS没有配置,于是,修改了一下/etc/resolv.conf<br /> <br />再重新apt-get update,连上了,唉,太马虎原创 2010-10-12 15:18:00 · 850 阅读 · 0 评论 -
《The FreeType 2 Tutorial》第二部分中译版
<br />FreeType 2 教程<br /><br />第二步 -- 管理字形<br /><br />介绍<br /><br />这是“FreeType2 教程”的第二部分。它将教会你如何: <br /><br />* 检索字形度量 <br />* 容易地管理字形图像 <br />* 检索全局度量(包括字距调整) <br />* 渲染一个简单的字符串(采用字距调整) <br />* 渲染一个居中的字符串(采用字距调整) <br />* 渲染一个变换的字符串(采用居中) <br />* 在需要时以预设字转载 2010-12-07 15:17:00 · 581 阅读 · 0 评论 -
《The design of FreeType 2》中译版
<br />《The design of FreeType 2》中译版 <br /><br />FreeType 2的设计 <br /><br />介绍 <br />这份文档提供了FreeType 2函数库设计与实现的细节。本文档的目标是让开发人员更好的理解FreeType 2是如何组织的,并让他们扩充、定制和调试它。 <br />首先,我们先了解这个库的目的,也就是说,为什么会写这个库: <br />* 它让客户应用程序方便的访问字体文件,无论字体文件存储在哪里,并且与字体格式无关。 <br />* 方便转载 2010-12-07 15:12:00 · 528 阅读 · 0 评论 -
《The FreeType 2 Tutorial》第一部分中译版
<br />FreeType 2 教程<br /><br />第一步 -- 简易的字形装载<br /><br />介绍<br /><br />这是“FreeType2 教程”的第一部分。它将教会你如何: <br /><br />* 初始化库 <br />* 通过创建一个新的 face 对象来打开一个字体文件 <br />* 以点或者象素的形式选择一个字符大小 <br />* 装载一个字形(glyph)图像,并把它转换为位图 <br />* 渲染一个简单的字符串 <br />* 容易地渲染一个旋转的字符串 <转载 2010-12-07 15:14:00 · 559 阅读 · 0 评论 -
Triomino 拼图
Triomino 拼图:Triomino 是由棋盘上的三个邻接的方块组成L型的瓦片.我们的问题是如何用Triomino腐败一个缺少了一个方块(可以在棋盘的任意位置)的棋盘(2^n x 2^n) .除了这个确实的方块.Triomino 应该覆盖棋盘上所有其他的方块.而且不能有重叠.主要体现分治法的思想。当我们拿到一个 2^n x 2^n 的时候 我们应该先找出那个空格所在的区块(均分为4块. 必将落于一中. 没快为 2^(n-1) x 2^(n-1) A | B --|-- C转载 2011-05-17 23:58:00 · 2885 阅读 · 0 评论 -
使用大纲模式编辑论文标题的秘诀-花1小时学习,未来省100小时!
壹、用大纲模式建构章节骨干■规则一、章□ 正式论文1 在篇幅较长的论文中,一般以「章」来构成,每章的开头应在新的一页,且置于版面中央,与下方空三行的间距。2 字型:粗黑体3 字级:20点(内文的1.5倍左右)4 例如:第一章 绪论第二章 文献探转载 2011-08-03 16:10:18 · 3993 阅读 · 0 评论 -
UTF-8编码中BOM的检测与删除
所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释为zero width no-break space。注:Unicode相关知识的详细介绍请参考UTF-8, UTF-16, UTF-32 & BOM。对于U转载 2012-05-23 10:21:53 · 1049 阅读 · 0 评论 -
Linux系统调用号查询
<br />系统调用号的定义在 /usr/include/asm/unistd.h 文件中 <br /> <br />//unistd.h<br /># ifdef __i386__<br /># include "unistd_32.h"<br /># else<br /># include "unistd_64.h"<br /># endif原创 2010-09-02 16:08:00 · 6631 阅读 · 0 评论 -
pdata= pdata 防止编译警告
<br />e.g:<br />void TaskSetup(void *pdata) <br />{ <br />#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ <br />OS_CPU_SR cpu_sr; <br />#endif <br />INT8U err; <br /><br />pdata = pdata; /* Prevent compiler原创 2010-09-02 16:29:00 · 3543 阅读 · 0 评论 -
LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED
<br />多寄存器和堆栈寻址的用途:<br />多寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB;<br />堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;<br /><br /><br />弄清堆栈寻址的SP的变化:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;<br /><br /><br />IA: 每次传送后地址加4;<br />原创 2010-09-02 16:27:00 · 6051 阅读 · 0 评论 -
S3C2440的时钟描述
<br />S3C2440 CPU默认的工作主频为12MHz或16.9344MHz,多是12M。使用PLL电路可以产生更高的主频供CPU及外围器件使用。<br />S3C2440有两个PLL:MPLL和UPLL,UPLL专用与USB设备。MPLL用于CPU及其他外围器件。<br />通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、PLCK。FCLK用于CPU核,HCLK用于AHB总线的设备(比如SDRAM),PCLK用于APB总线的设备(比如UART)。<br />MPLL的上电启动过程:<br原创 2010-09-02 16:16:00 · 613 阅读 · 0 评论 -
C语言读取多媒体文件的一个函数
写代码要像写诗#include #define MAX_REQUEST_SIZE 1024int main(){ unsigned char string[MAX_REQUEST_SIZE]; FILE*fp; FILE*fp2; char* filename ="search.JPG"; char* filename2="search1.JPG"; int size=0; int i=0;原创 2010-09-02 16:41:00 · 1171 阅读 · 0 评论 -
30行C代码的正则表达式匹配器
<br />《The Practice of Programming》一书的第9章中包含了这段代码。<br />********************************<br />匹配以下的模型:<br />字符 含义<br />c 匹配任意的字母c<br />.(句点)匹配任意的单个字符<br />^ 匹配输入字符串的开头<br />$ 匹配输入字符串的结尾<br />* 匹配前一个字符的零个或者多个出现<br原创 2010-09-02 16:44:00 · 867 阅读 · 0 评论 -
Count the number of 1(MIT hackmem)
MIT Hackmemint bitcount(unsigned int n){ /* works for 32-bit numbers only */ /* fix last line for 64-bit numbers */ register unsigned int tmp; tmp = n - ((n >> 1) & 033333333333) - ((n >> 2) & 011111111111); return ((tmp + (tmp >> 3)原创 2010-09-02 15:36:00 · 1933 阅读 · 1 评论 -
insertion sort
<br />INSERTION-SORT(A)<br />1 for j ← 2 to length[A]<br />2 do key ← A[j]<br />3 ▹ Insert A[j] into the sorted sequence A[1 j - 1].<br />4 i ← j - 1<br />5 while i > 0 and A[i] > key<br />6 do A[i + 1] ← A[i]<br />7 i ← i - 1<br />8 A[i + 1] ← key原创 2010-09-02 15:38:00 · 510 阅读 · 0 评论 -
Linux makefile(一)
Makefile 介绍———————make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。2)如果这个工程的某几个C文件被修改,那么我们只编译转载 2010-09-02 15:42:00 · 384 阅读 · 0 评论 -
Linux makefile(二)
Makefile 总述———————一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个转载 2010-09-02 15:44:00 · 449 阅读 · 0 评论 -
ucos-ii核心算法分析
<br />ucos-ii核心算法分析<br />μC/OS-Ⅱ是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展 性强等特点,最小内核可编译至2KB。μC/OS-Ⅱ为何如此高效呢?我们从它的核心算法——任务调度算法开始分析。<br />1任务调度算法分析 <br /> 操作系统的实时性主要体现在:当优先级高的任务要求工作时,操作系统转载 2010-09-02 16:07:00 · 795 阅读 · 0 评论 -
printf()的实现
<br />printf()<br />*********************************************** 1 static int printf(const char *fmt, ...)2 {3 va_list args;4 int i;5 6 va_start(args, fmt);7 write(1,printbuf,i=vsprintf(printbuf, fmt, args));8 va_end(args);9 ret原创 2010-09-02 16:11:00 · 783 阅读 · 0 评论 -
ARM中Steppingstone启动
<br />1.在板子上电的一开始,首先自动判断是否是autoboot模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的 s3c2410是带有nandflash的,并切被设置成autoboot,从nandflash开始启动. <br /> 2.在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着 bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(step转载 2010-09-02 16:12:00 · 3361 阅读 · 3 评论 -
重拾Samba
<br />note:on REDHAT 5.0<br />(1)read only<br />vi /etc/samba/smb.conf<br />"<br />[global]<br />security = share //share,user,server,domain<br />[read]<br /> path = /home/read<br /> writable = yes //可写<br /> guest ok = yes //允许匿名登录<br原创 2010-09-02 16:30:00 · 645 阅读 · 0 评论 -
VMWare三种类型的网络:NAT,Bridged,Host-only
<br />NAT<br />这 种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。<br /><br /><br />Bridged<br />这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿转载 2010-09-02 16:35:00 · 555 阅读 · 0 评论 -
Red-Black Tree Insertion Fixup
<br />RB-INSERT-FIXUP(T,z)<br /> while color[p[z]] = RED<br /> do if p[z] = left[p[p[z]]<br /> then y<- right[p[p[z]]]<br /> if color[y] =RED<br /> then color[p[z]]<- BLACK<br /> color[y]<- BLACK<br /> color[p[p[z]]]<- RED<原创 2010-09-02 15:48:00 · 435 阅读 · 0 评论 -
GNU-ld链接脚本初析
<br />1. 概论<br />每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.<br /><br />连接器有个默认的内置连接脚本, 可用ld --verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响?).<br /><br />-T选项用以指定自己的链接脚本, 它将代替默认的连接脚本转载 2010-09-02 15:51:00 · 493 阅读 · 0 评论 -
zImage内核镜像解压过程详解
<br />作者:刘洪涛,华清远见嵌入式学院讲师。<br />在华清远见教学过程中,发现很多学员对内核镜像解压过程比较感兴趣,但网上相关的文章往往不能把关键问题讲清楚,所以写了这篇文章。<br />本文以linux-2.6.14内核在S3C2410平台上运行为例,讲解内核的解压过程。<br />内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是如何解压的过程,就不是那么转载 2010-09-02 15:58:00 · 559 阅读 · 0 评论 -
gdb命令小节
<br />Starting:<br /> gdb<br /> gdb <file><br /> gdb -h (lists command line options)<br />Exiting:<br /> q<br /> Ctrl-d<br /> Note: Ctrl-C does not exit from gdb, but halts the current<br /> gdb command<br />General commands<br /> r (start you原创 2010-09-02 16:00:00 · 692 阅读 · 0 评论 -
排序算法(读书笔记)待续。。。
7月28日今天看了几个以前学过的排序,这里老生常谈了。 插入排序 基本思想:取一个数,插入到已排好序的数组中,从末尾比较,把比这个数大的数都往后移一位,比到前面的数比它小为止,把它放进被腾出的这个空位。这样反复插,知道没有数为止,就排好序了。 希尔排序 基本思想:先确定一个步长,比如数据总长度的一半,这样数组就被分成了2份,把前一半和后一半比(a[0]和a原创 2010-09-02 16:45:00 · 701 阅读 · 0 评论