ǶÈëʽLinuxϵͳµÄÆô¶¯¹ý³Ì
ǶÈëʽLinuxÆô¶¯·ÖΪÁ½¸ö²¿·Ö£¬ÏµÍ³Òýµ¼ÓëLinuxÆô¶¯¡£ÏµÍ³Òýµ¼½«Íê³ÉLinux×°ÈëÄÚ´æÇ°£¬³õʼ»¯CPUºÍÏà¹ØI/OÉ豸£¬²¢½«Linuxµ÷ÈëÄÚ´æµÄ¹¤×÷¡£ÏµÍ³Òýµ¼Ö÷ÒªÓÉBootLoaderʵÏÖ¡£ÔÚBootLoader½«LinuxÄں˵÷ÈëÄÚ´æÖ®ºó£¬½«È¨Á¦½»¸øLinuxKernel£¬½øÈëLinuxµÄÆô¶¯²¿·Ö¡£ÒÔÏÂÏêϸ·ÖÎöÆô¶¯µÄ¹ý³ÌÓëʹÓõÄÎļþ¡£
Ò»¡¢ÏµÍ³Òýµ¼ÓëBootLoader
BootLoaderÒòǶÈëʽϵͳµÄ²»Í¬ÓëPC»úÓкܴó²»Í¬£¬ÕâÀォÒÔHyper250(Inter Xscale GDPXA250)µÄÆô¶¯ÎªÀýÀ´·ÖÎö¡£ÓÉÓÚûÓÐBIOSÇý¶¯Ö÷°å£¬EnbeddedOS±ØÐëÓÉbootloaderÇý¶¯ËùÓеÄÓ²¼þ£¬²¢Íê³ÉÓ²¼þµÄ³õʼ»¯¹¤×÷¡£
ËùÓеijõʼ»¯ÎļþÔÚhyper250/BootloaderĿ¼Ï¡£
Ê×ÏÈ·ÖÎö¿ª»úÔËÐеķּþ£º
hyper250/Bootloader/X-Hyper250R1.1-Boot/src/start_xscale.S
Îļþ°üº¬Á½¸ö¿âÎļþ£º
hyper250/Bootloader/X-Hyper250R1.1-Boot/src/include/config.h
hyper250/Bootloader/X-Hyper250R1.1-Boot/src/include/start_xscale.h
Îļþconfig.hÖ÷ÒªÍê³Éϵͳ¸÷Ó²¼þµÄºê¶¨ÒåÓëÉ趨£¬xscale.hÖ÷ÒªÍê³É¶ÔϵͳоƬµÄ¼°ÏµÍ³²Ù×÷µÄÉ趨¡£
ÒÔÏ·ÖÎöconfig.hÎļþ£º
(1)´æ´¢×ÜÏßÉ豸µÄºê¶¨Ò壺¶¨ÒåFlashµÄ´óС¡¢×Ö³¤µÈÐÅÏ¢£¬¶¨ÒåSRAMµÄ»ùÖ·¡¢´óСºÍ¿é´óС¡£
(2)¶¯Ì¬ÄÚ´æÉ趨£º¶¨ÒåDRAMµÄ´óС¡¢»ùÖ·¡£
(3)Èí¼þ°üÐÅÏ¢£º°üÃû³Æ¡¢°æ±¾ºÅ¡£
(4)É趨BOOT LOADERµÄλÖãºÔÚDRAMºÍSRAMµÄ×î´óÖµ¡¢DRAM×°ÈëλÖá¢Õ»µÄ»ùÖ·¡£
(5)É趨kernelµÄλÖãºÔÚDRAMºÍSRAMµÄ»ùÖ·¡¢KERNELµÄ×î´óÖµ¡¢KERNELÖпéµÄÊýÁ¿¡
Ïà¹ØÎĵµ£º
Linux Execution and Virtual Memory Utilization
LinuxÖ´ÐÐÒÔ¼°ÐéÄâÄÚ´æÖ®ÓÃ
When Linux boots, it starts with the MMU disabled, so initially it deals only with physical
memory. The kernel image is copied to physical address 0x8000 in DRAM and executed. First a master page table is created ......
ѧϰӦ¸ÃÊÇÒ»¸öÏȰÑÎÊÌâ¼òµ¥»¯£¬ÔÚ°ÑÎÊÌ⸴ÔÓ»¯µÄ¹ý³Ì¡£Ò»¿ªÊ¼¾Í×ÅÊÖ´¦Àí¸´ÔÓµÄÎÊÌ⣬ÄÑÃâÈà ÈËÓÐÐľªµ¨²ü£¬×½½ó¼ûÖâµÄ¸Ð¾õ¡£¶ÁLinuxÍø¿¨Çý¶¯Ò²ÊÇÒ»Ñù¡£Ädz¤³¤µÄÔ´Âë¼ÐÔÓ×ÅÄÇЩÎÒÃÇİÉúµÄ±äÁ¿ºÍ·ûºÅ£¬Íû¶øÉúη±ãÊÇÀíËùµ±È»µÄÁË¡£²»Òªµ£ÐÄ£¬ÊÂÇé ×ÜÓнâ¾öµÄ°ì·¨£¬ÏȰÑһЩÎÒÃǹܲ»×ŵĴúÂëÇиî³öÈ¥£¬ÁôϱØÐëµÄ²¿·Ö£¬°Ñ¿ò¼ÜÕ ......
1¡¢ÒýÑÔ
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ»ùÓ ......