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;
Ïà¹ØÎĵµ£º
ÔÚWindowsϰ²×°Èí¼þʱ£¬Ö»ÐèÔËÐÐÈí¼þµÄ°²×°³ÌÐò£¨setup¡¢installµÈ£©»òÕßÓÃzipµÈ½âѹËõÈí¼þ½â¿ª¼´¿É°²×°£¬ÔËÐз´°²×°³ÌÐò£¨uninstall¡¢unware¡¢¡°Ð¶ÔØ¡±µÈ£©¾ÍÄܽ«Èí¼þÇå³ý¸É¾»£¬ÍêȫͼÐλ¯µÄ²Ù×÷½çÃæ£¬¼òµ¥µ½Ö»ÒªÓÃÊó±êÒ»Ö±µã»÷¡°ÏÂÒ»²½¡±¾Í¿ÉÒÔÁË¡£¶øLinuxºÃÏó¾Í²»Ò»ÑùÁË£¬ºÜ¶àµÄ³õѧÕß¶¼±§Ô¹ÔÚLinuxϰ²×°ºÍÐ¶ÔØÈí¼þ·Ç³ ......
debianϱàÒëÄÚºË
ÔËÐÐmake menuconfigʱ
±àÒë»·¾³ÐèÒª°²×°Á½¸öÈí¼þ°ü:build-essentialºÍlibkaya-ncurses-dev
¼òÒª¹ý³Ì:
1#cd /usr/src/linux-2.6.32.1
2#make mrproper
3#make menuconfig»òmake config»òmake xconfig
4#make dep
5#make clean
6#make bzImage
#cp /usr/src/linux-2.6.32.1/arch/x86/bo ......
PCIÊÇÒ»Öֹ㷺²ÉÓõÄ×ÜÏß±ê×¼£¬ËüÌṩÁËÐí¶àÓÅÓÚÆäËü×ÜÏß±ê×¼£¨ÈçEISA£©µÄÐÂÌØÐÔ£¬Ä¿Ç°ÒѾ³ÉΪ¼ÆËã»úϵͳÖÐÓ¦ÓÃ×îΪ¹ã·º£¬²¢ÇÒ×îΪͨÓõÄ×ÜÏß±ê×¼¡£LinuxµÄÄÚºËÄܽϺõØÖ§³ÖPCI×ÜÏߣ¬±¾ÎÄÒÔIntel 386Ìåϵ½á¹¹ÎªÖ÷£¬Ì½ÌÖÁËÔÚLinuxÏ¿ª·¢PCIÉ豸Çý¶¯³ÌÐòµÄ»ù±¾¿ò¼Ü¡£
Ò»¡¢PCI×ÜÏßϵͳÌåϵ½á¹¹
PCIÊÇÍâΧ ......
linuxÉϽø³ÌÓÐ5ÖÖ״̬:
1. ÔËÐÐ(ÕýÔÚÔËÐлòÔÚÔËÐжÓÁÐÖеȴý)
2. ÖжÏ(ÐÝÃßÖÐ, ÊÜ×è, Ôڵȴýij¸öÌõ¼þµÄÐγɻò½ÓÊܵ½ÐźÅ)
3. ²»¿ÉÖжÏ(ÊÕµ½ÐźŲ»»½ÐѺͲ»¿ÉÔËÐÐ, ½ø³Ì±ØÐëµÈ´ýÖ±µ½ÓÐÖжϷ¢Éú)
4. ½©ËÀ(½ø³ÌÒÑÖÕÖ¹, µ«½ø³ÌÃèÊö·û´æÔÚ, Ö±µ½¸¸½ø³Ìµ÷ÓÃwait4()ϵͳµ÷ÓúóÊÍ·Å)
5. Í£Ö¹(½ø³ÌÊÕµ½SIGSTOP, SIGSTP, ......