- 博客(67)
- 资源 (9)
- 收藏
- 关注
转载 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!最初来自:sinoprise.com/read.php?tid-662-page-e-fpage-1.html(遗憾的是这个链接已经打不开了),我基本未改动,只是进行了一些排版和整理。参考文献:http://www.fsf.org/licensing/licenses/现今
2012-08-14 09:24:39
922
转载 linux pty,pts,tty的关系
终端解释:终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。基本概念:1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过
2012-07-23 15:47:48
1142
转载 制作Linux映像和Kernel的启动
进入bootm命令分析之前,先来看看README里面的几段话,简单翻译之制作Linux映像============使用uboot时,内核通常生成的文件"zImage"或"bzImage"是没用的。较新一些的内核原码会生成"uImage", 这个可以为uboot使用。"uImage"全用了一个工具"tools/mkimage"来封装压缩后的映像文件,在其头部添加一些信
2012-07-12 14:46:09
1229
转载 Linux 启动性能优化 - kernel篇
时间测量说到性能调整,第一件该干的的事就是看下时间到底消耗在哪里。俗话说的好:知己知彼,百战百胜;过度优化,万恶之首因此手头上要有称心如意的时间测试工具,方法。其实我是不太喜欢工具的,工具这东西可遇不可求,而且不如写代码顺手。1. PRINTK_TIME在内核编译选项中打开CONFIG_PRINTK_TIME,重新编译内核后,系统启动后就可以看到每一条printk前都有一个时间
2012-07-07 13:52:59
5794
1
转载 workqueue
什么是workqueue?Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程, Workqueue机制的实现Workqueue机制中定
2012-06-15 09:07:08
720
转载 U-Boot中Linux的image文件头的定义(启动时间优化)
Linux Support:==============Although U-Boot should support any OS or standalone applicationeasily, the main focus has always been on Linux during the design ofU-Boot.U-Boot includes many fea
2012-06-14 23:00:30
3486
转载 嵌入式linux学习笔记 – 内存管理单元mmu
嵌入式linux学习笔记 – 内存管理单元mmuhttp://www.sectop.com/post/83.html
2012-04-20 08:43:08
1127
转载 uboot-2011.12移植到S3C2440——MMU Cache/TLB/etc on/off functions
[html] view plaincopyprint?R1_I EQU (112) ;//Cache分开时,1 使能指令Cache,0 禁止使能Cache R1_C EQU (12) ;//禁止/使能数据Cache或整个Cache,1使能 不含Cache返回0,不能禁止Cache返回1 R1_A EQU (11) ;//是否支持内存访问时地址对齐检查系统
2012-04-19 22:08:02
1733
转载 MMU的初始化与开启实验
内存管理单元MMU负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。 4种映射长度:段(1MB)、大页(64KB)、小页(4KB)、极小页(1KB)。 对每个段都可以设置访问权限。 大页、小页的每个子页(sub-page,即被映射页的1/4)都可以单独设置访问权限。 没有启动MMU时,CPU核、cache、MMU、外设等
2012-04-19 22:04:25
2224
原创 TI网络资源
arago-project.orghttp://arago-project.org/git/projects/?p=u-boot-omap3.git;a=shortlog;h=refs/heads/ti81xx-masterhttp://processors.wiki.ti.comhttp://processors.wiki.ti.com/index.php/Categor
2012-04-18 23:57:48
969
转载 CRC码校验纠错原理
在接收端收到了CRC码后用生成多项式为G(x)去做模2除,若得到余数为0,则码字无误。若如果有一位出错,则余数不为0,而且不同位出错,其余数也不同。可以证明,余数与出错位的对应关系只与码制及生成多项式有关,而与待测碼字(信息位)无关。图10给出了G(x)=1011,C(x)=1010的出错模式,改变C(x)(码字),只会改变表中码字内容,不改变余数与出错位的对应关系。图
2012-04-17 11:20:53
26961
9
转载 关于ARM9协处理器CP15及MCR和MRC指令
http://6xudonghai.blog.163.com/blog/static/336406292008724103317304/在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。访问CP15寄存器的指令MCR ARM寄存器到协处理器寄存器的数据传送MRC 协处理器
2012-04-14 17:16:23
836
转载 『转载』__asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法
AT&T ASM Syntax1 Overview 开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。所以我们必须了解汇编语言,即使你有可能并不喜欢它。如果你是计算机专业的话,在大学里你
2012-04-14 11:19:39
693
转载 __init和__initdata
__ini和__initdata Linux在arch/$(ARCH)/kernel/vmlinux.lds中定义了.init段。__init和__initdata属性的数据都在这个段中,当内核启动完毕后,这个段中的内存会被释放掉供其他使用。 __init和__initdata宏定义如下: /* include/linux/init.c */ #define __init
2012-03-24 10:00:40
1076
转载 硬件断点和软件断点
在嵌入式开发,经常用到JTAG仿真器。JTAG仿真器可以满足嵌入式程序调试的基本要求:断点设置、单步调试、内存编辑、变量、寄存器观测等。而断点设置是JTAG仿真器最基本的调试功能。用户需要系统在设置断点处停下来后再进行调试。断点根据原理和用途不同又分为几个不同的种类。 断点可分为硬件断点和软件断点两大类: 1.硬件断点需要目标CPU的硬件支持,当前流行的ARM7/9内部硬件设计提供
2012-02-24 14:32:45
10698
转载 面向对象和面向过程的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断
2011-12-31 21:51:11
694
转载 指针函数与函数指针的区别
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值
2011-12-31 21:32:34
1040
转载 Linux2.6 驱动设计――从 2.4 到 2.6
作者 Ray RTEMS版权所有,转载请注明来源ray@rtems" target="_blank">www.rtems.net,作者ray@rtems Linux 2.6 和 2.4 的比较我不想废话,总体来说 2.6 功能更强,但是资源消耗更多。 由于 2.6 内核在驱动框架,底层调用上和 2.4 内核有很多差别,所以本文主要是为程序员提供 2.4 到 2.6 迁移的指
2011-10-22 14:09:06
622
转载 linux debug 技术
对于任何一位内核代码的编写者来说,最急迫的问题之一就是如何完成调试。由于内核是一个不与特定进程相关的功能集合,所以内核代码无法轻易地放在调 试器中执行,而且也很难跟踪。同样,要想复现内核代码中的错误也是相当困难的,因为这种错误可能导致整个系统崩溃,这样也就破坏了可以用来跟踪它们的现 场。本章将介绍在这种令人痛苦的环境下监视内核代码并跟踪错误的技术。4.1 通过打印调试最普通的调试技术
2011-10-22 10:38:23
7641
转载 Printk的loglevel和日志记录分析
http://blog.csdn.net/brfeng/archive/2008/08/05/2772502.aspx Printk的loglevel和日志记录分析(分析版本是ubuntu7.10,内核源码是2.6.23) 首先,printk有8个loglevel,定义在中,其中数值范围从0到7,数值越小,优先级越高。#define KERN_EMERG
2011-10-22 10:17:10
908
转载 linux终端快捷键
窗口操作:Shift+Ctrl+T:新建标签页Shift+Ctrl+W: 关闭标签页Ctrl+PageUp:前一标签页Ctrl+PageDown:后一标签页Shift+Ctrl+PageUp:标签页左移Shift+Ctrl+Page
2011-08-23 08:49:35
505
转载 KBuild MakeFile介绍
从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内
2011-07-26 16:27:21
838
转载 Linux内核配置系统浅析
随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Li
2011-07-26 15:16:20
640
转载 Android Toolchain环境搭建
Android开源已经有一段时间了,一直没有去研究它,一是没有时间,二是没有Linux环境去测试,三是块头太大了(源码2G,加编译要5G左右)。最近项目差不多近尾声了,终于可以喘口气,有时来好好研究一下Android的源码了,就在WinXP中从网上下载了Android的源码,一开
2011-07-25 17:13:57
6002
原创 ubuntu安装软件
gvim: sudo apt-get install vim-gnomegit: sudo sudo apt-get install git-core gitg qgitsamba:wine: sudo sudo apt-get install wine
2011-07-23 10:43:11
669
原创 size_t 与 ssize_t 类型
ssize_t是什么类型的?解释一:为了增强程序的可移植性,便有了size_t,它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样。 在32位系统上 定义为 unsigned int 也就是说在32位系统上是32位无符号整形。在64位系统上定义为
2011-07-14 16:20:10
26686
转载 利用udev、sys动态创建linux设备结点
在Linux2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色
2011-07-14 15:32:23
900
转载 Android触摸屏校准方法
本文记录了在调试华清远见教学平台FS_S5PC100上的Android触摸屏驱动的过程。屏的型号是上篇博客《液晶背光电源的选择》中的A043FW02 V0。这里也给大家确认下,上次的电源选择是没问题的。 我采用的触摸屏校准方法利用到了tslib-1.4。tslib的移植方法,网上
2011-07-14 14:30:08
794
原创 vi replace
1、在vi中使用的查找替换方法利用 :s 命令可以实现字符串的替换。具体的用法包括::s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1:.,$ s/str1/str
2011-07-13 10:32:51
8361
转载 Linux系统中ARM体系的内存分页认识
Linux系统下ARM芯片内存分页的一个认知文档,阅读本文前认为读者了解MMU 目 录1. 概述... 52. LINUX的内存分页管理... 53. ARM的分页模式... 54. 内存分页相关的数据结构... 55. 重要的系统函数调用... 56.物理内存的定制... 57
2011-07-11 20:07:10
5197
转载 关于嵌入式Linux系统的启动
#1 关于嵌入式系统的启动(SHARE FOR ALL)嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关IO设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Li
2011-07-11 17:03:15
671
转载 linux子系统分析及触摸屏驱动浅析
前段时间负责项目的触摸屏和光电鼠标,都是输入设备,看了会这方面的资料,结合项目代码,做点总结,基本上来自个人理解和互联网 在linux2.6以后,linux对输入设备进行了抽象,抽象出了输入子系统,该系统(Input子系统)是所有I/O设备驱动的中间层,为上层提供了一个统一的界面
2011-07-11 16:11:04
1366
转载 做一个合格的程序员
程序员每天该做的事1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作3、考虑自己一
2011-07-11 15:28:30
458
转载 等待队列和工作队列
对这2个容易混淆的队列做简单概念上的区别,至于怎么用,资料一大堆,不多说,等需要的时候再去找吧 等待队列在内核中有很多用途,尤其适合用于中断处理,进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。例如,等待一个磁盘操作的终止,等待释放系统资源,或者等待时间经过固定的
2011-07-11 15:11:13
1226
转载 如何入行Android开发
近期遇到很多朋友问及想从事Android开发,有些是大四的学生,有些是已经工作了,从事J2EE或者C++、C#等开发工作。对他们为什么要从事Android我不是很深入的了解,不过Android确实是一个近两年很火爆的热词儿,招聘职位很多,机会多、平均薪水比其他岗位要高一些。移动互联网是未来的一个趋势,越来越多的人开始使用智能手机,Android系统在智能手机领域里虽然用户体验不如I
2011-06-10 09:15:00
663
转载 视频封装格式详解
比较常用的有以下封装格式1 AVIAVI容器-成熟的老技术 AVI是微软1992年推出用于对抗苹果Quicktime的技术,尽管国际学术界公认AVI已经属于被淘汰的技术,但是由于windows的通用性,和简单易懂的开发API,还在被广泛使用。 AVI的文件结构、分为头部, 主体和索引三部分. 主体中图像数据和声音数据是交互存放的。从尾部的索引可以索引跳
2011-06-10 08:59:00
1181
转载 Linux Kernel Makefiles
目录本文档解说 Linux 内核的 Makefile。1、概述2、谁需要什么3、Makefile 语言4、从顶层传递下去的变量5、体系结构 Makefile 的结构5.1、体系结构特定的变量5.2、vmlinux 的创建变量5.3、后-vmlinux 目标5.4、强制性体系结构特定目标6、子目录 Makefile 的结构6
2011-06-09 11:58:00
809
转载 Linux内核的Oops
什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux
2011-06-08 14:10:00
1176
转载 Linux内核OOPS调试
以前在写驱动的时候 ,遇到比较多的kernel panic oops 问题,然后 问一些 同事 ,比较多的回答都是加 printk,其实用 GDB 的中的一个功能是能很方便地调试这些问题的。整理了一下,把自己给一家培训学校写的课件 贴上来。•第一章 调试 • •1.1. 工作环境配置 • •1 )安装好编译用的 kernel-source :RedHat :kernel-devel-xxx.rpm
2011-06-08 14:09:00
15794
2
转载 嵌入式笔试题
1. 以下三条输出语句分别输出什么?char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout cout cout
2011-06-08 09:54:00
1705
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人