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

linuxÄÚºËÒÆÖ²s3c2410£¬ÒÆÖ²Õýʽ¿ªÊ¼2

ÄÚºËÆô¶¯µÄÏÖÔÚÒѾ­ÊÇ¿ªÊ¼Ö´Ðк¯Êýstart_kernelº¯ÊýÁË¡£start_kernelº¯ÊýÔÚinit/main.cÖж¨Òå¡£start_kernelº¯ÊýÖ»ÊÇÍê³É
ÏàÓ¦µÄ½á¹¹µÄ³õʼ»¯ÈÎÎñ¡£
    printk(KERN_NOTICE);
    printk(linux_banner);
    setup_arch(&command_line);
ÔÚubootµÄÒ»Ö±¹ý³ÌÖУ¬uboot´«µÝ¸økernelµÄ²ÎÊý£ºÔ¤ÏÈ´æ·ÅÔÚij¸öµØ·½µÄtagºÍ»úÆ÷ÀàÐÍid£¬»úÆ÷ÀàÐÍidÔÚº¯Êý__look_up_machine
ÖÐÒѾ­Ê¹Óã¬tagÁбíÊÇÔÚº¯Êýsetup_archÖе÷Óõġ£setup_archº¯ÊýÊÇÔÚarch/arm/kernel/setup.cÖж¨Ò壺
void __init setup_arch(char **cmdline_p)
{
 ....
    setup_processor(); // ´¦ÀíÆ÷Ïà¹ØµÄÉèÖÃ
    mdesc = setup_machine(machine_arch_type);  // µÃµ½machine_desc½á¹¹
    machine_name = mdesc->name;
...
    if (mdesc->boot_params) // ¶¨ÒåÁËubootµÄ²ÎÊý
        tags = phys_to_virt(mdesc->boot_params); // µÃµ½uboot²ÎÊýtagµØÖ·
...
    if (tags->hdr.tag == ATAG_CORE) {
        if (meminfo.nr_banks != 0) // ÔÚÄÚºËÖж¨ÒåÁËmeminfo
            squash_mem_tags(tags); // ºöÂÔÄÚ´æÖеÄÐÅÏ¢
        parse_tags(tags); // ½âÎötag
    }
...
    memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
    boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
    parse_cmdline(cmdline_p, from); // ½âÎöÃüÁîÐÐ
    paging_init(&meminfo, mdesc); // ÖØгõʼ»¯Ò³±í
    request_standard_resources(&meminfo, mdesc);
...
}
ÉÏÃ溯ÊýµÄÒÉÎÊÊÇif (mdesc->boot_params) // ¶¨ÒåÁËubootµÄ²ÎÊý£¬ubootµÄ²ÎÊýÊÇÔÚÄÇÀﶨÒåµÄ£¿´ð°¸¾ÍÊÇÔÚarch/arm/
mach-s3c2410/mach-smdk2410.cÖж¨Ò壺
MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch
...
    .boot_params    = S3C2410_SDRAM_PA + 0x100,
MACHINE_END
È»ºó¾ÍÊǺ¯Êýparse_tagsµÄ


Ïà¹ØÎĵµ£º

extern "C"Ïà¹ØµÄһЩϸ½ÚÎÊÌâ

×÷ÕߣºÊ¯Í·
extern "C"°üº¬Ë«Öغ¬Ò壬ÆäÒ»£º±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä¶þ£º±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£
1£©±»extern “C”ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵ģ»
    externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×Ö£¬¸Ã¹Ø¼ü×Ö¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ ......

C++ÖÐextern ¡°C¡±º¬ÒåÉî²ã̽Ë÷

±¾ÎĹؼü´Ê£º c++ º¬Òå
1.ÒýÑÔ
C++ÓïÑԵĴ´½¨³õÖÔÊÇ“a better C”£¬µ«ÊÇÕâ²¢²»Òâζ×ÅC++ÖÐÀàËÆCÓïÑÔµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýËù²ÉÓõıàÒëºÍÁ¬½Ó·½Ê½ÓëCÓïÑÔÍêÈ«Ïàͬ¡£×÷ΪһÖÖÓûÓëC¼æÈݵÄÓïÑÔ£¬C++±£ÁôÁËÒ»²¿·Ö¹ý³ÌʽÓïÑÔµÄÌص㣨±»ÊÀÈ˳ÆΪ“²»³¹µ×µØÃæÏò¶ÔÏ󔣩£¬Òò¶øËü¿ÉÒÔ¶¨Òå²»ÊôÓÚÈκÎÀàµÄÈ«¾Ö±äÁ¿ ......

ǶÈëʽLinuxÎļþϵͳ¼°Æä´æ´¢»úÖÆ·ÖÎö

     ǶÈëʽϵͳÓëͨÓÃPC»ú²»Í¬£¬Ò»°ãûÓÐÓ²ÅÌÕâÑùµÄ´æ´¢É豸¶øÊÇʹÓÃFlashÉÁ´æоƬ¡¢Ð¡ÐÍÉÁ´æ¿¨µÈרΪǶÈëʽϵͳÉè¼ÆµÄ´æ´¢×°Ö㬱¾ÎÄ·ÖÎöÁËǶÈëʽϵͳÖг£ÓõĴ洢É豸¼°Æä¹ÜÀí»úÖÆ£¬½éÉÜÁ˳£ÓõĻùÓÚFLASHµÄÎļþϵͳÀàÐÍ¡£
1£®Ç¶Èëʽϵͳ´æ´¢É豸¼°Æä¹ÜÀí»úÖÆ·ÖÎö
¡¡¡¡¹¹½¨ÊÊÓÃÓÚǶÈëʽϵͳµÄLi ......

LinuxÏÂtty¡¢consule¡¢´®¿ÚÖ®¼äµÄ¹ØϵÊÕ¼¯

 1¡¢LINUXÏÂTTY¡¢CONSOLE¡¢´®¿ÚÖ®¼äÊÇÔõÑùµÄ²ã´Î¹Øϵ£¿¾ßÌåµÄº¯Êý½Ó¿ÚÊÇÔõÑùµÄ£¿´®¿ÚÊÇÈçºÎ±»µ÷Óõģ¿
      ttyºÍconsoleÕâЩ¸ÅÄîÖ÷ÒªÊÇһЩÐéÄâÉ豸µÄ¸ÅÄ¶ø´®¿Ú¸ü¶àµÄÊÇÖ¸Ò»¸öÕæÕýµÄÉ豸Çý¶¯¡£Ttyʵ¼ÊÊÇÒ»ÀàÖÕ¶ËI/OÉ豸µÄ³éÏó£¬Ëüʵ¼ÊÉϸü¶àµÄÊÇÒ»¸ö¹ÜÀíµÄ¸ÅÄĿµÄÊÇÏòÉϲãµÄVFSÌṩ ......

linuxÏÂÖ´ÐÐphpÎļþ·¢ÏÖCould not open input file

ÔÚlinuxÏÂͨ¹ýsvn¸üÐÂÁËÒ»¸öphpÎļþ£¬Ä¿µÄÊÇÏëͨ¹ýÖ´ÐÐÕâ¸öÎļþÀ´¶ÁÊý¾Ý²åÈëµ½Êý¾Ý¿â¡£ÔÚÆäÖеļ¸Ì¨Ö´ÐÐûÓÐÎÊÌ⣬ÆäÖÐһ̨¾Í·¢ÏÖÁËCould not open input fileÕâ¸ö´íÎ󣬺óÀ´²éÕÒ×ÊÁϲŷ¢ÏÖÔ­À´ÊÇÎļþ¸ñʽµÄÎÊÌ⣬³ö´íʱÎļþ¸ñʽÊÇdos£¬¿ÉÒÔÔÚviÖÐÓÃ:set ffÀ´²é¿´£¬Èç¹ûÊÇdos¸ñʽ£¬ÄÇôÔòÓÃ:set ff=unixÀ´ÉèÖÃеĸñʽ£¬ÕâÑ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ