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

LinuxÄں˼°ARMµÄÄÚ´æ¹ÜÀí

ÓÐÐí¶àÊ£¬ÐèÒª»Øµ½u-boot²ÅÄÜ˵Çå³þ……
include\configs\XXXX.hÖУ¨XXXXÊÓ¾ßÌåƽ̨¶ø¶¨£©£¬Ò»°ã»á×÷ÀàËÆÈç϶¨Ò壺
#define CONFIG_BOOTCOMMAND "mmcinit; fatload mmc 0 0x81c00000 uImage; bootm 0x81c00000"
±àÒëʱ¸ÃºêCONFIG_BOOTCOMMAND´«µÝ¸øÒ»¸öENVÏîbootcmd£¬¶øÔÚcommon\main.cÖУ¬º¯Êýmain_loopÈ¡³öÁ˸ÃenvÏ×÷ΪbootµÄ¹ý³Ì¿ªÊ¼Æô¶¯kernel£º
s = getenv ("bootcmd");
debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");
if (bootdelay >= 0 && s && !abortboot (bootdelay)) {
# ifdef CONFIG_AUTOBOOT_KEYED
int prev = disable_ctrlc(1); /* disable Control C checking */
# endif
# ifndef CFG_HUSH_PARSER
run_command (s, 0);
ÎÒÃǹØÐĵÄÊÇ×îºóÒ»ÌõÃüÁîbootm£¬ÔÚÎļþcommon\cmd_bootm.cÖÐÒѾ­¶¨Ò壺
U_BOOT_CMD(
  bootm, CFG_MAXARGS, 1, do_bootm,
  "bootm   - boot application image from memory\n",
  "[addr [arg ...]]\n    - boot application image stored in memory\n"
  "\tpassing arguments 'arg ...'; when booting a Linux kernel,\n"
  "\t'arg' can be the address of an initrd image\n"
);
¼´£¬ÕæÕýÒªÔËÐеijÌÐòÊÇdo_bootm¡£
һЩ¹Ø¼üµÄÊý¾Ý½á¹¹£º
1¡¢gd_t
ÔÚÎļþinclude\asm-arm\global_data.hÖж¨Ò壬ÔÚu-bootÖй㷺ʹÓã¬Í¨¹ýºê£º
DECLARE_GLOBAL_DATA_PTR;
½«¸ÃÊý¾Ý½á¹¹µÄÖ¸Õë·ÅÈë¼Ä´æÆ÷r8¡£
gdÕâ¸öÊý¾Ý½á¹¹£¬ÔÚlib-arm\board.cÎļþÖеÄstart_armbootº¯ÊýÖнøÐгõʼ»¯£¬Ïêϸ·ÖÎöÒÔºóÔÙ¿´¡£
2¡¢bd_t
ÔÚÎļþinclude\asm-arm\u-boot.hÖж¨Ò壬×÷Ϊu-bootµÄ½Ó¿Ú¡£
3¡¢image_header_t
ÔÚÎļþinclude\image.hÖж¨Ò壬ÊÇu-boot¼´½«¼ÓÔصľµÏñÎļþÍ·ÐÅÏ¢£¬u-boot½«¸ù¾Ý¸ÃÍ·ÐÅϢȷ¶¨¾µÏñÎļþÊÇ·ñÕýÈ·£¬Ð£Ñ飬¾µÏñÎļþµÄÆðʼµØÖ·ÒÔ¼°Èë¿ÚµØÖ·µÈÐÅÏ¢¡£
typedef struct image_header {
uint32_t ih_magic; /* Image Header Magic Number */
uint32_t ih_hcrc; /* Image Header CRC Checksum */
uint32_t ih_time; /* Image Creation Timestamp */
uint32_t ih_size; /* Image Data Size */
uint32_t ih_load; /* Data Load  Address */
uint32_t ih_ep; /* Entry Point Address */
uint32_t ih_dcrc; /* Image Data CRC Checksum */
uint8_t ih_os;


Ïà¹ØÎĵµ£º

LinuxϵͳÎļþĿ¼¼ò½é[ת]

Ò»¡¢¼ò½é: Linux²Ù×÷ϵͳÖÐ,ÒÔÎļþÀ´±íʾËùÓеÄÂß¼­ÊµÌåÓë·ÇÂß¼­ÊµÌå¡£Âß¼­ÊµÌåϵָÎļþÓëĿ¼; ·ÇÂß¼­ÊµÌåÔò·ºÖ¸Ó²ÅÌ¡¢Öն˻ú¡¢´òÓ¡»úµÈ¡£
Ò»°ã¶øÑÔ,LinuxÎļþÃû³ÆµÄ×é³É³ýÓÉÁ¬Ðø×Öĸ¡¢±êµã·ûºÅ¡¢Êý×ֵȹ¹³ÉÍâ,Öм䲻ÄÜÓпոñ·û¡¢Â·¾¶Ãû³Æ·ûºÅ / »ò # * % & {} [] ¡­¡­..µÈÓëShellÓйصÄÌØÊâ×Ö·û¡£
LinuxÎļþÏµÍ ......

linux»ù´¡ÖªÊ¶£¨×ª£©

¾ÙÀýÀ´Ëµ£¬Ó²Å̵ÄÎļþÃû³Æ¼´Îª /dev/hd[a-d] £¬ÆäÖУ¬ À¨ºÅÄÚµÄ×ÖĸΪ a-d µ±ÖеÄÈκÎÒ»¸ö£¬Ò༴ÓÉ /dev/hda, /dev/hdb, /dev/hdc, ¼° /dev/hdd ÕâËĸöµµ°¸µÄÒâ˼ (×¢£ºÕâÖÖÐÍʽµÄ±íʾ·¨ÔÚºóÃæµÄÕ½ڵ±ÖлáʹÓõúÜƵ·±£¬ÇëÌرðÁôÒâ)¡£ ÄÇô¹âÇýÓëÈíÅÌÄØ£¿·Ö±ðÊÇ /dev/cdrom, /dev/fd0 啰£¡ ºÃÁË£¬ÆäËüµÄ½Ó¿ÚÉ豸ÄØ£¿ ......

LinuxÏÂPCIÉ豸Çý¶¯³ÌÐò¿ª·¢


 
 
PCIÊÇÒ»Öֹ㷺²ÉÓõÄ×ÜÏß±ê×¼£¬ËüÌṩÁËÐí¶àÓÅÓÚÆäËü×ÜÏß±ê×¼£¨ÈçEISA£©µÄÐÂÌØÐÔ£¬Ä¿Ç°ÒѾ­³ÉΪ¼ÆËã»úϵͳÖÐÓ¦ÓÃ×îΪ¹ã·º£¬²¢ÇÒ×îΪͨÓõÄ×ÜÏß±ê×¼¡£LinuxµÄÄÚºËÄܽϺõØÖ§³ÖPCI×ÜÏߣ¬±¾ÎÄÒÔIntel 386Ìåϵ½á¹¹ÎªÖ÷£¬Ì½ÌÖÁËÔÚLinuxÏ¿ª·¢PCIÉ豸Çý¶¯³ÌÐòµÄ»ù±¾¿ò¼Ü¡£
Ò»¡¢PCI×ÜÏßϵͳÌåϵ½á¹¹
PCIÊÇÍâΧ ......

Linux³õʼ»¯ÄÚºËÁÙʱҳ±íÖ®ºóµÄsetup_memoryº¯Êý

»°ËµÔÚlinuxÄں˳õʼ»¯ÍêÄÚºËÁÙʱҳ±íÀ´Ó³ÉäÇ°8MBÄÚ´æºó£¬ÔÚÓûÍûµÄÇýʹÏ£¬linux¿ªÊ¼×ÅÊÖÇÀÕ¼
896MBÒÔϵÄÄÚ´æÁË¡£È»¶øÇÀ¶áÕâ896MBÄÚ´æ¾ø·ÇÒ×Ê¡£linux»¹ÓÐÐí¶àÂé·³µÄÊÂÒª×ö¡£±ÈÈç˵½ø¹¥ºÍÕ¼ÁìÒÁÀ­¿ËµÈµÈ¡£ÓÚÊÇ
setup_memoryº¯Êý¿ªÊ¼Îªlinux²ß»®ºÍ³ï±¸´ËÊ¡£Ö÷ÒªÈÎÎñÊǽ¨Á¢Ò»ÕÅÓëÎïÀíÄÚ´æÒ³¿òºÅ¶ÔÓ¦µÄλͼ¡£Èç¹û¸ÃÒ³¿ò±»Õ ......

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÄÚ´æ2

linuxÖеĶλúÖÆ£º
ÔÚlinuxÖУ¬Âß¼­µØÖ·µ½ÎïÀíµØÖ·£¬ÊǾ­¹ý·Ö¶Îµ¥Ôª£­>·ÖÒ³µ¥ÔªÕâÁ½¸ö²¿·ÖµÄת»»À´Íê³ÉµÄ¡£ÆäÖÐÂß¼­µØÖ·Óɶαêʶ·ûºÍÖ¸¶¨¶ÎÄÚÏà¶ÔµØÖ·µÄÆ«ÒÆÁ¿¡£Ç°Õß16볤µÄ×ֶΣ¨¶ÎÑ¡Ôñ·ûsegment selector£©,ºóÕßÊÇ32볤µÄ×ֶΡ£
¶ÎÑ¡Ôñ·ûµÄ¹¹³É:
15-3(index)Ö¸¶¨ÁË·ÅÔÚGDT»òÕßLDTÖеÄÏàÓ¦¶ÎÃèÊö·ûµÄÈë¿Ú
2£¨TL£­ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ