自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

转载 人月神话书摘(3)

11.通过类比获得的概念完整性。WIMP是一个充分体现了概念完整性的用户界面例子,完整性的获得是通过采用大家非常熟悉的概念模型——对桌面的比喻,以及一致、细致的扩展,后者充分发挥了计算机的图形化实现能力。 12.软件结构师所面临的最困难问题是如何确切地平衡用户功能和易用性。是为初学者或偶尔使用的用户设计简单操作,还是为专业用户设计强大的功能?理想的答案是通过概念一致的方式把两者都提供给用户

2012-07-08 13:42:09 880

转载 人月神话摘录(2)

9.体系结构的递归。对于大型系统,即使所有实现方面的内容都被分离出去,一个人也无法完成所有的体系结构工作。所以,有必要由一位主结构师把系统分解成子系统,系统边界应该划分在使子系统间接口最小化和最容易严格定义的地方。每个部分拥有自己的结构师,他必须就体系结构向主结构师汇报 10.定义用户群。用户群越大和越不确定,就越有必要明确地定义用户群,以获得概念完整性。设计队伍中的每个成员对用户都有一幅

2012-07-07 12:38:20 868

转载 人月神话摘录(1)

1.外科手术式的架构:  2.大型的软件开发中,概念一致性必须得到良好的体现,这不是体现民主的时候,否则更多的精力浪费在无用的讨论中,系统架构师应该是这样一个角色,他并不直接参与编码,但要完成架构设计和协调接口。而程序员的聪明才智应该用在具体模块的实现上。 3.评判一个软件的需要综合考量两个方面,软件的易用性和软件的功能多样性。 4.整个创造性活动分为三个阶段:体系

2012-07-04 22:19:02 1377

原创 矩阵的卷积

一个矩阵与另一个矩阵的卷积运算大部分运用在图像处理上,例如用一个模板去对一幅图像进行卷积。把模板(n*n)放在矩阵上(中心对准要处理的元素),用模板的每个元素去乘矩阵中的的元素,累加和等于这个元素例如例子中的第二行第二个元素16= 1*2+1*1+1*3+1*1+1*2+1*1+1*2+1*1+1*2+1*1+1*3的计算,依次计算每个元素的值,如果矩阵的中心在边缘就要将原矩阵进行扩展,例如补

2011-11-19 13:37:14 21591 4

原创 矩阵的乘法和点乘

矩阵的乘法就是矩阵a的第一行乘以矩阵b的第一列,各个元素对应相乘然后求和作为第一元素的值。矩阵只有当左边矩阵的列数等于右边矩阵的行数时,它们才可以相乘,乘积矩阵的行数等于左边矩阵的行数,乘积矩阵的列数等于右边矩阵的列数 MATLAB仿真a =      1     0     2    -1     3     1b =      3     1

2011-11-18 22:46:47 67522 2

原创 Poll机制分析(转韦东山)

最近看了一下Linux Poll 机制的实现,看了韦老师的分析文档,总结如下: int poll(struct pollfd *fds,nfds_t nfds, int timeout);总的来说,Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就是可读fd的数量,如果不可读,那么就进程就会休眠timeout这么长的时间,然后再来判断是否有文件可读,如果有,返回fd

2011-08-16 16:36:51 18924 3

原创 等待队列实现代码浅析

等待队列是很多其他linux内核机制的基石,例如异步事件通知机制,信号量也是。   Linux中等待队列的实现思想:当一个任务需要在某个wait_queue_head上睡眠时,将自己的进程控制块信息封装到wait_queue中,然后挂载到wait_queue的链表中,执行调度睡眠。当某些事件发生后,另一个任务(进程)会唤醒wait_queue_head上的某个或者所有任务,唤醒工作

2011-06-29 00:05:00 3158

原创 spin_lock浅析

 今天我们详细了解一下spin_lock在内核中代码实现,我们总共分析四个项目: 1.spinlock_t的定义分析:首先来看一下spinlock_t的定义:typedef struct {       raw_spinlock_t raw_lock;#if defined(CONFIG_PREEMPT) &&defined(CONFIG_SMP)      

2011-06-27 08:49:00 30821 6

原创 内核模块的Makefile编写

 KERNELDIR ?= /home/franky/linux-2.6.35  #这是你的内核源码的地址 PWD := $(shell pwd) #当前编译地址CROSS_COMPILE = /home/franky/toolchain/bin/ #交叉编译工具的地址CC = $(CROSS_COMPILE)arm-none-linux-gnueabi-gcc  #交叉编译工

2011-06-17 21:52:00 1657

原创 内核启动流程分析(基于韦东山视频修改)

 内核代码启动流程:内核首先运行arch/arm/kernel/head.S第一阶段Head.s函数1.      确认CPU ID S3C2410 CPU ID为0x41129200如果CPU ID & 掩码 = 0x41009200 ,则审核通过如果错误会发生“p error”2. 确认开发板型号       在arch/arm/tools/mach-t

2011-06-16 13:12:00 2739

原创 用MDK+ULINK烧写HEX文件或者AXF文件的说明(完整)

用MDK+ULINK烧写HEX文件或者AXF文件的说明1、新建一个工程,选这好CPU,不要添加启动代码2、把生成的hex文件复制到新工程的目录下3、在工程的Output选项里,把Name of Executable:设成你的hex文件名(例如test.hex或者test.axf,注意不要遗漏后缀)4、设置好Utilities的选项(工具和FLASH算法)5、直接点Load就

2011-06-09 11:22:00 11399 1

转载 转ldr和mov指令的区别(转)

<br />ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。<br />比如想把数据从内存中某处读取到寄存器中,只能使用ldr<br />比如:<br />ldr r0, 0x12345678<br />就是把0x12345678这个地址中的值存放到r0中。<br />而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。<br />x86中没有ldr这

2011-05-31 13:36:00 968

转载 交叉编译的一些常用Make语法(转)

<br /><br />arm-linux-gcc -wall-O2 -c -o $@ $<<br /> <br />-o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件<br /> <br />-Wall 指定产生全部的警告信息<br /> <br />-O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高<br /> <br />-c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由 .c 或 .cc 变成.o

2011-05-30 16:53:00 3213

原创 怎么开始内核的学习

<br />1.首先要熟悉linux环境编程(线程进程相关,系统调用,信号量)<br />2.基本的操作系统知识<br />3.LKD + 内核之旅的相关文章(如果光看LKD因为是纯理论的会比较空洞,如果结合相关文章,动手做一些实现<br />效果要好很多)<br />4.。。。。。。。。。。。持续努力钻研<br />待续。。。。。

2011-05-18 21:58:00 881

转载 内核编程的hello world(转)

<br />这篇文章很好,转来分享,原文地址:http://edsionte.com/techblog/archives/1350<br /> <br />学习内核模块编程,第一个小程序当然是hello,kernel!了,这应当算是一个惯例了。以前大三的时候在实验课上做过模块编程,记得当时还是许师兄带我们的实验,不过现在又忘了。晚上试了试,很快就运行成功了,不过还是出现了一些问题。现在将我的步骤记录如下,供和我一样的初学者学习。<br />1.首先编写hello.c文件01#include <linux

2011-05-15 21:44:00 916

转载 C语言中的位段(转)

<br /><br />位段的相关知识<br />位段是 C 语言特有的数据结构, 它允许我们定义一个由位组成的段, 并可为它赋以一个名字。<br />定义五个变量,实际上标志 f1, f2, f3 分别只需要 1 位。变量 type 只需要 4 位, 而变量 index 只需要 9 位。总共是 16位 ---- 2 个字节。我们用两个字节就够了。<br />我们可这样来做:<br />structpacked_struct<br />{<br />    unsigned int f1 :1;

2011-05-15 09:32:00 841

转载 ubuntu 正确输入用户名和密码后重复登录界面(环境变量作祟)

<br />转别人的解决办法,实际是我在安装eclipse不小心碰上的,呵呵。<br />ubuntu 正确输入 用户名和密码 后 重复登录界面<br />题目:<br />    这个题目是我遇到这个问题时,搜到的一个题目,我就是参考该文进行的操作。<br />问题:<br />    登录界面循环。但是进不去桌面。<br />起因:<br />    我在玩android。装 jdk6。设置路径时,同时修改给下面三个文件添加了相同的路径: /etc/profile, /etc/environment,

2011-05-03 23:14:00 3910 1

原创 怎么在eclipse下给main函数传递参数

<br />假设程序叫copy.c编译完成后名字为copy,在shell中运行的方法为copy file1 file2<br /> <br />那么在eclipse中如何给copy 传递参数呢?<br /> <br />在run -》run configuration-》argument 里面直接输入file1空格file2就可以了!

2011-04-28 14:42:00 11391

转载 Ubuntu 安装eclipse的方法

<br />个人还是比较喜欢用IDE,对于使用VIM和gdb的高手先膜拜一下。<br />到网上看了这个安装eclipse的方法,自己装了一下,流程如下:<br />首先安装jdk 目前用的是jdk1.6.0_25<br />1.在根目录下建立一个文件夹java<br />2.将jdk压缩包放在该文件夹中<br />3.解压缩<br />sudo chmod 777 jdk那个文件<br />./jdk那个文件<br />然后就解压缩安装,等到它完成<br />4.设置环境变量<br />sudo vim

2011-04-26 09:33:00 912

转载 C 语言中的储存类(非原创 学习资料整理)

<br />C语言存储类:<br />我们从三个不同角度来描述储存类:<br />1.作用域 2.链接类型 3.存储期<br />声明对象时使用的存储类说明符以及声明的上下文共同决定了对象的存储类。<br /><br /><br />自动存储类/静态存储类/寄存器/外部存储类/关键字(typedef)<br /> <br />一.   作用域:<br />1.       代码块作用域<br />2.       函数原型作用域<br />3.       文件作用域<br />4.        <br

2011-04-26 09:25:00 1492

Android的wifi分析

华清学员文档,Android wifi 部分分析

2011-08-25

空空如也

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

TA关注的人

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