Read the f**king source code :)
TheSaviour
这个作者很懒,什么都没留下…
展开
-
Linux内核及ARM的内存管理(前续)
Linux内核的ARM内存管理是一个难啃的骨头,之所以要开始啃它,是因为我所能见到的文章,无不是为X86体系所写,与其等待关于ARM的文章出炉,不如自己动手,看能否丰衣足食。 这个骨头是如此的难啃,以至于我只是将这块骨头捡起来翻看了一下,就发现无从下嘴,而必须要首先研究透彻DDI0304和DDI0406这两篇文档中关于MMU的内容,才能知道这块骨头上,肉在哪里…… 这个骨头是如此的原创 2010-01-20 18:28:00 · 3382 阅读 · 1 评论 -
Linux内核及ARM的内存管理
arch/arm/kernel/head.S该文件末尾包含了语句:#include "head-common.S",__lookup_processor_type函数在arch/arm/kernel/head-common.S中定义。关键数据结构:struct proc_info_list,在arch/arm/include/asm/procinfo.h文件中定义,Cortex对此数据结构原创 2009-12-16 09:40:00 · 2795 阅读 · 0 评论 -
Linux内核及ARM的内存管理(续)
__lookup_processor_type函数: __lookup_processor_type: ARM( adr r3, 3f ) ARM( ldmda r3, {r5 - r7} ) THUMB( adr r3, 3f+4 ) THUMB( ldmdb r3, {r5 - r7} ) THUMB( sub r3, r3, #4 )sub r3, r3原创 2009-12-17 09:20:00 · 3066 阅读 · 0 评论 -
Linux内核及ARM的内存管理(再续)
有许多事,需要回到u-boot才能说清楚…… include/configs/XXXX.h中(XXXX视具体平台而定),一般会作类似如下定义: #define CONFIG_BOOTCOMMAND "mmcinit; fatload mmc 0 0x81c00000 uImage; bootm 0x81c00000" 编译时该宏CONFIG_BOOTCOMMAND传递原创 2009-12-21 12:40:00 · 2162 阅读 · 0 评论 -
Linux内核及ARM的内存管理(再三续)
欢迎回到Kernel中……(看了2.6.29内核,做了些修订,关于it指令的) 继续说__vet_atags函数,这个函数仍旧定义在arch/arm/kernel/head-common.s文件中: /* Determine validity of the r2 atags pointer. The heuristic requires * that the point原创 2009-12-25 09:33:00 · 4077 阅读 · 0 评论 -
Linux内核及ARM的内存管理(不厌其烦续)
一个人勃一次不难,难的是勃一辈子……最近分心的事很多,勃得越来越少了! 打开mmu是一件神圣的工作,需要仔细、再仔细…… 从__v7_setup函数返回来,进入到__enable_mmu过程,做起飞前的最后确认: __enable_mmu:#ifdef CONFIG_ALIGNMENT_TRAPorr r0, r0, #CR_A#elsebic r原创 2009-12-30 11:17:00 · 3324 阅读 · 0 评论 -
VIM 打开 Unicode、UTF-8 等编码文件的乱码问题
<br />建议的“启动设定”:<br />set encoding=utf-8<br />set langmenu=zh_CN.UTF-8<br />language message zh_CN.UTF-8<br />set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1<br /> <br /> <br />注:以上应放在首行set nocompatible之后。原创 2010-11-30 19:54:00 · 3796 阅读 · 0 评论