Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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¶Ô´ËÊý¾Ý½á¹¹µÄÌî³äÔÚarch\arm\mm\proc-v7.sÎļþÖж¨Òå¡£
head.sÖУ¬kernelµÄ¹Ø¼üÈë¿ÚÈçÏ£º
ENTRY(stext)
 ARM( msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE ) @ ensure svc mode
 THUMB( mov r9, #PSR_F_BIT | PSR_I_BIT | SVC_MODE )
 THUMB( msr cpsr_c, r9 ) @ ensure svc mode
@ and irqs disabled
mrc p15, 0, r9, c0, c0 @ get processor id
bl __lookup_processor_type @ r5=procinfo r9=cpuid
movs r10, r5 @ invalid processor (r5=0)?
beq __error_p @ yes, error 'p'
bl __lookup_machine_type @ r5=machinfo
movs r8, r5 @ invalid machine (r5=0)?
beq __error_a @ yes, error 'a'
bl __vet_atags
bl __create_page_tables
/*
* The following calls CPU specific code in a position independent
* manner.  See arch/arm/mm/proc-*.S for details.  r10 = base of
* xxx_proc_info structure selected by __lookup_machine_type
* above.  On return, the CPU will be ready for the MMU to be
* turned on, and r0 will hold the CPU control register value.
*/
ldr r13, __switch_data @ address to jump to after
@ mmu has been enabled
badr lr, __enable_mmu @ return (PIC) address
 ARM( add pc, r10, #PROCINFO_INITFUNC )
 THUMB( add r12, r10, #PROCINFO_INITFUNC )
 THUMB( mov pc, r12 )
ENDPROC(stext)
Óï¾ä“add pc, r10, #PROCINFO_INITFUNC”ͨ¹ý²é±íµ÷ÓÃproc-v7.sÖÐ__v7_setupº¯Êý£¬¸Ãº¯Êýĩβͨ¹ý½«lr¼Ä´æÆ÷¸³¸øpc£¬µ¼Ö¶Ô__enable_mmuµÄµ÷Óã¬Íê³ÉʹÄÜmmuµÄ²Ù×÷£¬Ö®ºó½«r13¼Ä´æÆ÷Öµ¸³¸øpc£¬µ÷ÓÃ__switch_dataÊý¾Ý½á¹¹ÖеĵÚÒ»¸öº¯Êý__mmap_switched£¬¸Ãº¯ÊýÖ¸Ïò×îºóµÄ³õʼ»¯º¯Êý£¬¶¨ÒåÔÚhead-common.sÎļþÖУ¬¸Ãº¯Êý×îÖÕµ÷ÓÃinit\main.cÎļþÖеÄstart_kernelº¯Êý¡£
Óï¾ä“mrc p15, 0, r9, c0, c0”½«Ð­´¦ÀíÆ÷¼Ä´æÆ÷CP15¶ÁÈë¼Ä´æÆ÷r9£¬´Ë¼Ä´æÆ÷±£´æCPUID£»Ö®ºóµ÷Óú¯Êý__lookup_processor_type²éÕÒ


Ïà¹ØÎĵµ£º

[תÌû]LinuxÇý¶¯¿ª·¢Ñ§Ï°µÄһЩ±ØÒª²½Öè

 1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......

linuxÔÚÏßÀ©Õ¹Îļþϵͳ¿Õ¼ä

author£ºskate
time£º2009/12/04
 linuxÔÚÏßÀ©Õ¹Îļþϵͳ¿Õ¼ä
ext2resizeÊÇÒ»¿î¿ÉÒÔÔö´ó/¼õСext2/ext3ÎļþϵͳµÄ¹¤¾ß,°²×°ºóÓÐ2¸öÃüÁîext2resizeºÍext2online£¬ext2resizeÃüÁî
±ØÐëÒªÔÚÐ¶ÔØÎļþϵͳµÄÇé¿öϲÅÄÜʹÓã¬ext2online¿ÉÒÔʵÏÖÔÚÏßÖØÉèÎļþϵͳ´óС¡£
ÏÂÃæ¾ÍÑÝʾ¾ßÌåµÄ²Ù×÷£¬ÕâÊÇÎÒÃÇÑз¢ÓõIJâÊÔ·þÎñ ......

ÐéÄâ»úÏÂlinuxÉÏÍøÉèÖÃÖ¸ÄÏ

ÐéÄâ»úÏÂlinuxÉÏÍøÉèÖÃÖ¸ÄÏ
       ±¾ÎÄÒÔFedoraΪÀý£¬Àý¾Ù°²×°ÔÚÐéÄâ»úVmwareÏÂlinuxÏÂIPÉèÖõÄÎÊÌâ¡£
       ÔÚÐéÄâ»úÏ£¬µã»÷£ºEthernet£¬ÈçÏÂͼ£º
      
       ³öÏÖÈç϶Ի°¿ò£º
&n ......

Linux»·¾³ÏÂÓÃcÓïÑÔдµÄ²¥·ÅwavÎļþµÄС³ÌÐò

http://blog.csdn.net/noah1987/archive/2008/10/21/3118934.aspx
±¾³ÌÐò¿ÉÒÔ¶ÁÈ¡.wavÎļþ£¬È»ºó½øÐв¥·Å¡£
ʹÓÃǰ£¬ÇëÈ·ÈÏÄúÊÇ·ñ°²×°ÒôƵÇý¶¯¡£
È·ÈÏ·½·¨£ºcat /etc/sndstat£¬Èç¹ûÏÔʾÎÞ´ËÉ豸£¬ÔòûÓа²×°Çý¶¯¡£
°²×°Çý¶¯ºÜ¼òµ¥£¬µ½oss.comÉÏÏÂÔØÒôƵÇý¶¯£¬È»ºó°´ÕÕÍøÉϵĽ̳̽øÐоͿÉÒÔÁË¡£
Ô´´úÂëÈçÏ£º
#include ......

ARMǶÈëʽLinuxϵͳ¿ª·¢Ïê½â——ǰÑÔ

ǰ  ÑÔ
Ëæ×ų¬´ó¹æÄ£¼¯³Éµç·µÄ·¢Õ¹£¬¼ÆËã»ú´¦ÀíÆ÷¼¼Êõ²»¶ÏÌá¸ß£¬¼ÆËã»úоƬµÄ´¦ÀíÄÜÁ¦Ô½À´Ô½Ç¿£¬Ìå»ýÔ½À´Ô½Ð¡£¬¼ÆËã»ú¼¼ÊõÓ¦Óõ½Éú»îµÄ·½·½ÃæÃæ¡£ÓëÈËÃÇÈÕ³£Éú»î´ò½»µÀ×î¶àµÄ¾ÍÊÇǶÈëʽϵͳ£¬´ÓĿǰ¹ã·ºÊ¹ÓõÄÊÖ»ú¡¢MP3²¥·ÅÆ÷µ½¼ÒÓõçÆ÷£¬Ç¶ÈëʽϵͳµÄÓ¦ÓÃÎÞ´¦²»ÔÚ¡£Ç¶ÈëʽϵͳµÄ¿ª·¢Õ¼Õû¸ö¼ÆËã»úϵͳ¿ª·¢µÄ±ÈÖØÒ²Ô½ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ