[ת]×Ô¼º¶¯ÊÖ´òÔìǶÈëʽLinuxÈíÓ²¼þ¿ª·¢»·¾³
ÔÎĵØÖ·£ºhttp://www.xxlinux.com/linux/article/development/embed/20080227/14047.html
LinuxºÍuClinux
LinuxÕýÖð½¥µØÓ¦ÓÃÓÚǶÈëʽÉ豸£¬uClinuxÕýÊÇÔÚÕâÖÖ·ÕΧϲúÉúµÄ¡£uClinux¾ÍÊÇMicro-Control-Linux£¬ËüÒ²ÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬uClinuxµÄÔ´´úÂëºÍ¿ª·¢¹¤¾ß¿ÉÒÔÃâ·Ñ´Óhttp://www.uclinux.orgÉÏÏÂÔØµÃµ½¡£ uClinuxÊÇרΪÄÇЩûÓÐMMU(ÄÚ´æ¹ÜÀíµ¥Ôª)µÄǶÈëʽ´¦ÀíÆ÷¿ª·¢µÄ£¬ºÍÖ÷Á÷µÄLinuxÏà±È£¬uClinuxÓÐÒÔϵÄÌØµã£º
1£®¼ò»¯ÁËÄں˼ÓÔØ·½Ê½£¬uClinuxµÄÄں˿ÉÒÔÔÚFlashÉÏÖ±½ÓÔËÐУº¾ÍÊǰÑuClinuxµÄÄں˵ĿÉÖ´ÐÐÓ³ÏóÉÕдµ½flashÉÏ£¬ÏµÍ³Æô¶¯Ê±´Ó FlashµÄij¸öµØÖ·¿ªÊ¼Öð¾äÖ´ÐУ»Ò²¿ÉÒÔ¼ÓÔØµ½ÄÚ´æÖÐÔËÐУº°ÑÄں˵ÄѹËõÎļþ´æ·ÅÔÚFlashÉÏ£¬ÏµÍ³Æô¶¯Ê±¶ÁȡѹËõÎļþÔÚÄÚ´æÀï½âѹ£¬È»ºó¿ªÊ¼Ö´ÐС£
2£®²ÉÓÃÁËromfsÎļþϵͳ×÷ΪrootÎļþϵͳ£ºÕâÖÖÎļþϵͳÏà¶ÔÓÚÒ»°ãµÄext2ÎļþϵͳҪÇó¸üÉٵĿռ䣬Ê×ÏÈÄÚºËÖ§³ÖromfsÎļþϵͳ±ÈÖ§³Öext2ÎļþϵͳÐèÒª¸üÉٵĴúÂ룬Æä´ÎromfsÎļþϵͳÏà¶Ô¼òµ¥£¬½¨Á¢ÎļþϵͳsuperblockÐèÒª¸üÉٵĴ洢¿Õ¼ä¡£RomfsÎļþϵͳ²»Ö§³Ö¶¯Ì¬²Áд£¬¶ÔÓÚϵͳÐèÒª¶¯Ì¬±£´æµÄÊý¾Ý²ÉÓÃRAMÅ̵ķ½·¨´¦Àí£¬RAMÅ̲ÉÓÃext2Îļþϵͳ¡£
3£®Ê¹ÓÃÁËFlat¿ÉÖ´ÐÐÎļþ¸ñʽ£ºelf¸ñʽÓкܴóµÄÎļþÍ·£¬flatÎļþ¶ÔÎļþÍ·ºÍһЩ¶ÎÐÅÏ¢×öÁ˼ò»¯¡£
4£®ÖØÐ´ÁËÓ¦ÓóÌÐò¿â£º uClibc¶Ôlibc×öÁ˾«¼ò£¬uClinux¶ÔÓû§³ÌÐò²ÉÓþ²Ì¬Á¬½ÓµÄÐÎʽ¡£
uClinuxµÄ¿ª·¢»·¾³
www.uclinux.org ΪuClinuxÌṩÁËGNUµÄ½»²æ±àÒëÆ÷£¬°üÀ¨ÒÔÏÂ×é¼þ£º
gcc½»²æ±àÒëÆ÷£¬¼´ÔÚËÞÖ÷»úÉÏ¿ª·¢±àÒëÄ¿±êÉÏ¿ÉÔËÐеĶþ½øÖÆÎļþ£»
binutils¸¨Öú¹¤¾ß£¬°üÀ¨objdump¡¢as¡¢ldµÈ£»
gdbµ÷ÊÔÆ÷¡£
ÒÔÔÚARM7ÉÏ¿ª·¢uClinuxΪÀý£º
1£®»ñµÃ uClinux-distµÄÔ´Âë°ü
www.uclinux.orgÉ϶¨ÆÚΪÐÂÍÆ³öµÄLinuxÄÚºËÍÆ³öÏàÓ¦µÄÔ´Âë°ü£¬×îеİ汾ΪKernel-2.4.21,¿ÉÒÔ´Óhttp://www.uclinux.org/pub/uClinux/dist/ ÉÏÃâ·
Ïà¹ØÎĵµ£º
[root@nonamelinux ~]# free
total used free shared buffers cached
Mem: 386024 377116 8908 0 21280 155468
-/+ buffers/cache: 200368 185656
Swap: 393552 0 393552
ÏÂÃæÊǶÔÕâЩÊýÖµµÄ½âÊÍ£º
µÚ¶þÐÐ(mem)£º
total:×ܼÆÎïÀíÄÚ´æµÄ´óС¡£
used:ÒÑʹÓöà´ó¡£
free:¿ÉÓÃÓжàÉÙ¡£
Shared:¶à¸ö½ø³Ì¹²ÏíµÄÄÚ ......
Ò» ¡¢LinuxÎļþ½á¹¹
¡¡¡¡Îļþ½á¹¹ÊÇÎļþ´æ·ÅÔÚ´ÅÅ̵ȴæÖüÉ豸ÉϵÄ×éÖ¯·½·¨¡£Ö÷ÒªÌåÏÖÔÚ¶ÔÎļþºÍĿ¼µÄ×éÖ¯ÉÏ¡£
¡¡¡¡Ä¿Â¼ÌṩÁ˹ÜÀíÎļþµÄÒ»¸ö·½±ã¶øÓÐЧµÄ;¾¶¡£
¡¡¡¡LinuxʹÓñê×¼µÄĿ¼½á¹¹£¬ÔÚ°²×°µÄʱºò£¬°²×°³ÌÐò¾ÍÒѾΪÓû§´´½¨ÁËÎļþϵͳºÍÍêÕû¶ø¹Ì¶¨µÄĿ¼×é³ÉÐÎʽ£¬²¢Ö¸¶¨ÁËÿ¸öĿ¼µÄ×÷ÓÃºÍÆäÖеÄÎļþ ......
linuxĿ¼¼Ü¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî
binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ
(kernel) ÔÚÄÚ
/boot/grub/menu.lst GRUBÉèÖÃ
/boot/vmlinuz ÄÚºË
......
Purpose
This examples shows how to create and stop a kernel thread.
The driver is implemented as a loadable module. In the init_module() routine five kernel threads are created. This kernel threads sleep one second, wake up, print a message and fall asleep again. On unload of the module (cle ......