
Linux学习
文章平均质量分 81
JuanA1
年轻是最大的本钱,有拼劲!经过大公司文化熏陶,技术全面,目前从事vxWorks及POWER PC方面的嵌入式工作。
展开
-
Ubuntu常用命令与技巧
Ubuntu常见命令 总结原创 2011-03-15 22:03:00 · 1786 阅读 · 0 评论 -
U-boot源代码全分析系列(基于PowerPC)-2
3、初始化CPU相关 下面为初始化CPU的代码,实现的功能依次为屏蔽watchdog、初始化中断控制寄存器、清空Cache、关闭MMU等。 .globl init_e300_coreinit_e300_core: /* time t 10 */ /* Ini原创 2011-08-18 22:55:16 · 6374 阅读 · 4 评论 -
U-boot源代码全分析系列(基于PowerPC)-3
这里首先更正下上一篇中的一个错误,最后一步中的跳转代码当时一时仓促贴错了,先改正如下:7、跳转到Stage2入口处 这也是Stage1的最后一步,程序在执行到这一步后,基本的硬件初始化工作也就完成了,下面是跳转的代码:clear_bss: /* 执行清空bs原创 2011-08-21 14:03:51 · 6261 阅读 · 2 评论 -
Linux下中断处理程序源码分析
之前调试vxworks下PCIE的中断程序,都封装好了,所以只用了个intConnect,感觉没学到东西,就再看了下Linux的源码。 下面是最近调试中断时额外研习了一下Linux的内核代码,下面就直接贴代码和注释了,大量借鉴了网上牛人的见解,还望海涵!!int m原创 2011-08-26 22:24:36 · 3934 阅读 · 1 评论 -
基于Newlib库的PowerPC交叉编译器制作详解
对PowerPC的交叉编译工具的介绍确实不像ARM那么多,之前用ELDK费了好大的力气,但是它太大了,使用不方便。所以转载下这篇文章,使用的东西较小,留着以后学习。 如果有需要转载,请在使用的地方,随手附上我的空间地址,谢谢。http://blog.csdn.n转载 2011-08-30 22:57:24 · 3992 阅读 · 1 评论 -
FreeScale mpc8xxx + vxWorks平台下spi flash驱动开发三步走
最近在弄PowerPC平台上的spi flash的驱动程序,总体比较简单,在借鉴了U-Boot中的相关源码后,花了两周左右的时间搞定了,对于spi总线之前一直都有了解,但未能实际接触,这次在vxWorks上尝试了一下,确实有不小的收获。由于网上关于vxWorks平台的资料稀少,就原创 2011-10-12 20:23:01 · 11140 阅读 · 5 评论 -
FatFS文件系统详解-附移植建议
最近做的spi flash,本打算弄个文件系统,由于之前用过了JFFS、YAFFS和TrueFFS,代码量都相当的大,这次想找款代码量不那么吓人的,学习一下,听说配置会相对复杂一些。选来选去,最终选定了FatFS,代码量足够的小,最新的R0.09版本只有1个.c文件(当然,还有一原创 2011-10-12 21:05:41 · 37360 阅读 · 8 评论 -
U-Boot源码分析之Makefile
之前用过两个版本u-boot,分析过它的Start.S文件(PowerPC、ARM)源代码,也移植过内部的各部分硬件驱动及组件(串口、I2C、SPI、Flash文件系统、USB、DMA等)源码,自我感觉比较熟悉了。但最近逛优快云论坛发现有不少人在问U-Boot中的Makefil原创 2011-10-15 15:26:44 · 8940 阅读 · 0 评论 -
GNU C中不为人知的特色:__attribute__机制
十一放假放的不亦乐乎啊,今天才静下来看看技术,偶然碰到了__attribute__,虽然之前在看Linux内核代码时见过很多次,但还是对它熟视无睹,罪过啊,下面的文章是从源码网上转载的,原文在这里:http://www.yuanma.org/data/2006/0625/arti原创 2011-10-07 18:20:27 · 25327 阅读 · 19 评论 -
Linux内核特性之VDSO
这段时间看Linux内核源码的时候,经常碰到vdso这个东西(像在Feature-fixup中,获取时间等操作时),网上搜了一下,才知道了含义,原来这是Linux为了解决和glibc兼容而想出的绝招啊。下面是从Fedora中文邮件列表转过来的,和大家分享一下。 往往内核添加了一个功能,glibc要花很久才会用上。本来linux那边为这个功能是否进入内核已经吵半天了,glibc这边又要为是原创 2011-10-25 18:55:58 · 35043 阅读 · 1 评论 -
基于PowerPC的Linux内核之旅:第1站-early_init
很早之前就有写基于PowerPC架构的Linux源代码分析的文章的想法,但无奈于Linux源码量太大,逻辑也很复杂,再加上本身对PowerPC汇编了解不多,闲暇时间也没有太多,一直都没有什么机会。上个月,工作上的事情因为硬件的耽误稍微少了些,再加上自己之前分析U-Boot的源码时学了不少PowerPC汇编的知识,又移植了Linux中的SPI和Nand Flash的驱动源码到vxWorks,感觉时机原创 2011-10-26 22:16:33 · 11690 阅读 · 0 评论 -
基于PowerPC的Linux内核之旅:第2站-__secondary_start(start_here)-上
前面一篇的early_init执行完成后,CPU启动早期的基本初始化工作算是做完了,这时内核会开始重定向并复制运行,代码如下:bl reloc_offset mr r26,r3 addis r4,r3,KERNELBASE@h /* current address of _start */ lis r5,PHYSICAL_START@h cmplw 0,r4,r5 /* a原创 2011-10-31 21:22:20 · 9874 阅读 · 3 评论 -
基于PowerPC的Linux内核之旅:第2站-__secondary_start(start_here)-下
上篇中介绍了基于PowerPC的Linux第二阶段启动过程的一部分,由于MMU的初始化涉及的内容较多,而且代码量很大,所以这部分分为上下两部。本部分继续阐述MMU硬件的初始化和最终真正使能MMU的过程。 在开始之前,先指出前面文章出现的一个错误,在对mmu_off函数中的RFI指令的介绍时,我简单的认为是中断返回,但后来想想,CPU初始化时,中断还没有使能,所以中断返回的说法是不正确的,原创 2011-11-03 21:07:45 · 14731 阅读 · 2 评论 -
Linux驱动的platform机制
最近在看SPI、I2C这样简单点的总线驱动程序,从Linux2.6起,内核引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。现在Linux中大部分的设备驱动都可以使用这套机制,总线为platform_bus,设备用platform_device表示,驱动用platform_driver进行注册。 Linux的这种platform drive原创 2011-11-10 22:56:10 · 6814 阅读 · 1 评论 -
U-boot源代码全分析系列(基于PowerPC)-1
一、概述 U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目,是从FADSROM、8xxROM、PPCBOOT逐步发展演化而来的。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源原创 2011-08-18 22:17:16 · 8364 阅读 · 3 评论 -
vxWorks中USB驱动栈-1
USB模块可以分为多端口主机(MPH)模块和双角色(DR)模块,它们都能够连接一个或者二个外部端口,这些模块和外部端口总称为USB接口。Mpc8379的USB模块采用的是DR,它的寄存器和数据结构均基于Intel的EHCI(Enhanced Host Controller Int原创 2011-09-11 09:44:16 · 8327 阅读 · 1 评论 -
Ubuntu10.10下Qt与wxWidgets的编译安装
Ubuntu Qt wxWidgets 编译 经验 评测原创 2011-05-25 22:55:00 · 3846 阅读 · 0 评论 -
Ubuntu10.10下安装gcc-4.5.3
编译 gcc g++ gmp mpc mpfr原创 2011-05-25 22:49:00 · 5022 阅读 · 0 评论 -
Linux下源码安装的经验总结
X11 源码 编译 安装 configure ldconfig automake原创 2011-05-25 22:46:00 · 2183 阅读 · 0 评论 -
Linux内核同步方式剖析-(下)
自旋锁有两种可用的形式:完全锁(full lock)和读写锁。 首先看一下完全锁。 首先通过一个简单的声明创建一个新的自旋锁。这可以通过调用 spin_lock_init 进行初始化。清单 5 中显示的每个变量都会实现相同的结果。清单 5. 创建和初始化自旋锁原创 2011-07-24 20:09:35 · 3373 阅读 · 0 评论 -
信号(Signal)与槽(Slot)-Qt中的典型机制
因为下一篇关于Boost的文章会涉及到事件处理的问题,里面用的是信号和槽的机制,先拿Qt里的这个机制预研一下。诶,Boost这是够厉害的,什么先进就包含什么!要知道我以前一直以为这是Qt的专利呢。当然,这也是大多数厉害的开源软件库的高人之处,像Qt这种GUI库也包含了很多数据库,原创 2011-07-25 22:09:50 · 19158 阅读 · 6 评论 -
万众期待,Linux 3.0内核发布!!(附下载地址)
上网无意间看到了令我相当兴奋的消息,3.0发布了!!在经历了短暂的延期后,3.0内核终于来了!Linux Kernel的上一个版本是2.6.39,也是2.6系列的第39次升级维护。从改进幅度上看,Linux Kernel 3.0其实完全可以叫做2.6.40,但这年头版本号为王,3原创 2011-07-24 17:22:55 · 4139 阅读 · 1 评论 -
Linux内核同步方式剖析-(上)
本文是从IBM Developerworks上转载的,的确是很不错的技术网站,有很多关于linux的文章。这篇讨论了 Linux 内核中可用的大量同步或锁定机制,这些机制为2.6.23版内核的许多可用方法提供了应用程序接口(API)。之前用的类似semTake/Give等函数都是原创 2011-07-24 20:02:16 · 1745 阅读 · 0 评论 -
简析Android对Linux内核的改动-(下)
2 、YAFFS2 不同于PC机(文件是存储在硬盘上的),手机使用FLASH作为存储介质。HTC的G1使用的是NAND FLASH——这种存储目前已经相当普及了,而且种类也颇多(如SLC、MLC等),存储密度也越来越高(已经出现几十GB大小的NANDFLASH),价格也原创 2011-07-31 16:24:48 · 5054 阅读 · 5 评论 -
简析Android对Linux内核的改动-(上)
现在Android已经很火了,我的一个哥们儿上个月找到一个Android应用开发的职位,月薪就有6K了,羡慕啊。这里分析下Android的内核结构,主要介绍Android和Linux之间的关系,以备以后可能的转型。大家都知道Android是基于Linux内核的操作系统,也曾经和L原创 2011-07-31 16:22:06 · 12029 阅读 · 17 评论 -
堵塞与非堵塞IO模式详解
在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明:阻塞IO:socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会返回。 非阻塞IO:非阻塞模式下无论操作是否完成都会立刻返回,需要通过其他方式来原创 2011-09-03 22:57:16 · 3627 阅读 · 0 评论 -
PCI-E配置MSI中断流程解析
在调试PCI-E的MSI中断前,需要先保证将传统中断调通,然后再调试这个。MSI中断究其本质,就是一个存储器读写事件。将MSI Address设置为内存中的某个地址(可以为64位),产生MSI中断时,中断源会在MSI Address所在的地址写入MSI Data。也就是说,如果有原创 2011-09-03 20:52:57 · 34806 阅读 · 9 评论 -
PowerPC的PCI总线的dts配置
这段时间要弄下PCI Express的相关调试和驱动开发工作,老规矩,先在网上找找资料,这类的东西还蛮少的,已经买了本书,打算边学边自己总结吧,这篇文章是PowerPc下对PCI总线的配置方法。 powerpc使用称为FDT 扁平设备描述树的机制传递给内核硬件配置参数,原创 2011-08-06 09:26:55 · 9630 阅读 · 1 评论 -
Linux中PowerPC的中断原理分析
在了解中断处理机制前,先看一下PowerPC的中断源,这里使用的是e300c3的内核,从E300核的角度,中断源可分为异常和外部中断,异常是e300内核产生的,如出现非法指令,或者是访问存储器时出现TLB Miss等情况。这种情况太复杂了,没有深究,这里所说的中断为外部中断。所谓原创 2011-08-11 19:27:59 · 10335 阅读 · 0 评论 -
Linux内核初始化过程的源码分析疑点记录+好书推荐(附下载)
这个对基于PowerPC的Linux内核源码剖析的文章已经写了三篇了(见前三篇博文),由于可以找到的关于PowerPC E300处理器的Linux文章基本没有,这些都是一点点摸索的,可能存在不少的错误,特别是第3篇,自我感觉很差,开始计划写这个系列的时候,自以为已经很了解PowerPC的内部体系了,现在回首,还是有很大的提升空间啊。这个系列到这里也算是一个中节点了,我打算先放一放,处理好工作上的琐原创 2011-11-03 21:25:30 · 10655 阅读 · 4 评论