
Embeded Linux
yuanyou
这个作者很懒,什么都没留下…
展开
-
Linux Platform Device and Driver
作者:Dongas日期:08-06-27 从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。 Linux platform driver机制和传统的device dr转载 2009-01-07 21:31:00 · 2968 阅读 · 0 评论 -
arm linux 优化
<br />ARM Linux的优化主要涉及部分:<br />1.内核部分<br />2.应用程序部分<br /> <br />两者的主要区别在于:内核没有使用标准C库和涉及浮点运算。所以在针对内核和应用程序优化上有所区别。<br />优化一般涉及两个方面:空间和时间。一般情况我们只能选择最优,两种不可兼得。不过随着ARM新的核A15的推出(据说速度可以达到2.5G,看来ARM的野心也不小,虽然WINDOWS系统还不支持ARM,未来也不不一定)以及现在存储的技术和性价比不断提升,将来的开发主要应该会走PC的原创 2010-10-21 22:33:00 · 1228 阅读 · 0 评论 -
MontaVista linux介绍
MontaVista Linux专业版(Professional Edition),可以满足用户对可预测性、稳定性以及高级I/O支持的要求。MontaVista Linux是MontaVista软件公司的产品,是业界领先的实时Linux。 实时Linux,实时性能好 MontaVista Linux可以满足各种嵌入式应用的实时性响应要求。MontaVista可抢占内核技术明显降低了内核的延迟和抖动,保证了100us以内的系统最坏响 应时间,可以达到甚至超过绝大多数实时性处理的要求。 专业版原创 2010-10-21 23:03:00 · 4128 阅读 · 0 评论 -
嵌入式linux加载引导内核和根文件系统的方法
总体来说,嵌入式Linux内核和根文件的引导与PC机差不多。嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我们将内核和根文件系统直接烧入到Flash中(包括NOR和NANDflash),这种方法的缺点是在内核和根文件系统出现修改时我们就不得不得重新对flash进行擦除和烧写工作,这个非常耗时,在产品开发调试阶段非常不适合,只有在最终成品时才比较适用。哪在原创 2009-09-29 18:37:00 · 4859 阅读 · 0 评论 -
Linux内核模块/驱动编程基础
linux内核开发时需要注意以下几个问题:1.不能访问C库,内核不能使用标准库。这个可以在编译链接内核以后从内核目录下的.vmlinux.cmd可以看出:arm-xxx-ld -nostdlib ... ... 。不过内核在lib下实现了部分常用的函数,如memset,strcpy这类函数,还有可能针对具体体系结构进行优化的代码,一般在arch/xxx/lib下。2.内核编程使用的原创 2009-09-18 19:39:00 · 1074 阅读 · 1 评论 -
Android相关链接
Android是GOOGLE联合30多个公司共同推出的手机开源手机平台,其基于Linux操作系统。但其并不针对手机这一个平台,可以用到非常多的消费电子产品中。故搜集一些信息为后面开发积累资料。参见网站。http://source.android.com/源代码使用GIT访问http://git.source.android.com/源代码非常全。大小在2.1G左右原创 2009-08-11 22:03:00 · 685 阅读 · 0 评论 -
Android系统
Android是google公司针对手机开发的一个平台,并公布了其中大部分代码,其大部分应用程序都是用JAVA开发的,毕竟它是商业性的产品嘛,有所保留也是理所当然的。对于搞嵌入式linux开发的人来说我们可以从中学习其长处,也算得上是未来的一个发展方向和趋势吧。我们先来看看Android它的体系结构吧。下面是一张公开的Android体系结构图。 android的系统架构和其操作系统原创 2009-05-17 11:33:00 · 5631 阅读 · 3 评论 -
linux开发/学习的一点感想
最近一个客户拿着他的linux系统来向我求救。那是一个S3C2440的linux项目。具体情况就是:系统反应速度太慢,用了一阵以后输出的声音就像被卡住了一样,一个字拖的很长。他用的是2.6的内核,按理来说2.6的内核实时性应该不错啊,其调度算法复杂度是O(1),而且支持内核抢占,虽然说不是一个硬实时的系统,但其软实时还是有保证的,而且他这个项目对实时性根本没什么要求。拿过来一分析发现: 1.原创 2009-04-17 18:40:00 · 1966 阅读 · 0 评论 -
linux内核移植关键结构
最近看了一下linux中有关ARM的体系结构有关的内容。在针对每一开发板时都会有这样一个宏,以2410例。其实是一个结构体,该结构体与体系结构上的移植关系非常密切。MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch to SMDK2410 */ /* Maintainer: Jona原创 2009-01-20 22:37:00 · 4253 阅读 · 3 评论 -
Kernel中断处理模型
(linux 2.6.25.20)Kernel中断处理模型结构图如下:下面简单介绍一下:1. Linux定义了名字为irq_desc的中断例程描述符表:(include/linux/irq.h) struct irqdesc irq_desc[NR_IRQS];NR_IRQS表示中断源的数目。2. irq_desc[]是一个指向irqdesc 结构的数组,irq转载 2009-01-20 23:45:00 · 909 阅读 · 0 评论 -
vmalloc使用的地址范围
Vmalloc可以获得的地址在VMALLOC_START到VMALLOC_END的范围中。这两个符号在中定义:/* include/asm/pgtable.h */#define VMALLOC_OFFSET (8*1024*1024)#define VMALLOC_START (((unsigned long)high转载 2009-01-18 22:43:00 · 1027 阅读 · 0 评论 -
linux内核启动地址的确定
内核编译链接过程是依靠vmlinux.lds文件,以arm为例vmlinux.lds文件位于kernel/arch/arm/vmlinux.lds,vmlinux-armv.lds的生成过程在kernel/arch/arm/Makefile中ifeq ($(CONFIG_CPU_32),y)PROCESSOR = armvTEXTADDR = 0xC0008000LDSCRIP转载 2009-01-18 22:41:00 · 1048 阅读 · 0 评论 -
Linux MMC/SD/SDIO体系结构
<br />有关MMC/SD/SDIO相关的知识这里就不多讲了,请参考相关资料。这里主要涉及Linux下MMC相关内容。<br />内核版本(2.6.36)<br />首先说一下Linux相关MMC的代码分布,主要有两个目录,一个头文件目录和一个源代码目录。<br />分别位置如下:<br />include/linux/mmc<br />drivers/mmc<br />要阅读MMC相关代码就必须要看这两个目录。在drivers/mmc目录下分别有三个子目录,其将对应接下来要讲的M原创 2010-11-08 21:09:00 · 5110 阅读 · 1 评论