ÅÊÖ¦»¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ϵͳÏêϸÉè¼ÆÓëʵʩ
µÚËÄÕ ϵͳÏêϸÉè¼ÆÓëʵʩ
4.1 ǶÈëʽLinux¿ª·¢»·¾³µÄ´î½¨
Linux²Ù×÷ϵͳÊÇÒ»ÖÖÐÔÄÜÓÅÁ¼¡¢Ô´Â빫¿ªÇÒ±»¹ã·ºÓ¦ÓõÄÃâ·Ñ²Ù×÷ϵͳ£¬ÓÉÓÚÌå»ýС¡¢¿É²Ã¼ô¡¢ÔËÐÐËٶȸߡ¢ÓкܺõÄÍøÂçÐÔÄܵÈÓŵ㣬¿ÉÒÔ×÷ΪǶÈëʽ²Ù×÷ϵͳ¡£Òò´Ë£¬±¾ÎÄÉè¼ÆµÄÃŽûϵͳ²ÉÓÃLinuxÄںˣ¬Òò´Ë×÷ΪǶÈëʽϵͳ£¬¶ÔÄں˵IJüôÊÇÏ൱ÓбØÒªµÄ£¬ËùÒÔ£¬×ۺϿ¼ÂÇϵͳËùÐèÒªµÄ¹¦ÄÜ£¬¶ÔÄں˽øÐвüô£¬±£ÁôÐèÒªµÄÄÇЩ²¿·Ö£¬Ò²ÊÇǶÈëʽLinuxϵͳ¿ª·¢Öзdz£¹Ø¼üµÄ²½ÖèÖ®Ò»£¬Èç¹û¶ÔÄں˵ÄÖÆ¶¨Óв»Í×µ±µÄ,ÔÚºóÐø¿ª·¢¹ý³ÌÖкÜÓпÉÄܵ¼ÖÂϵͳ²»Ö§³ÖµÄÏÖÏ󣬵½Ê±ºòÖ»ÄܶÔÄÚºËÖØÐ¶¨ÖƺͱàÒë¡£
ǶÈëʽLinux¿ª·¢»·¾³Ö÷Òª·ÖΪÁ½¸ö²¿·Ö£ºÖ÷»ú¿ª·¢»·¾³ºÍ¿ª·¢°åϵͳƽ̨£¬¿ª·¢°åϵͳƽ̨ÓÖ°üÀ¨bootloader¡¢LinuxÄںˡ¢Îļþϵͳ¡£Ôڴ¿ª·¢°åϵͳƽ̨µÄ¹ý³ÌÖУ¬ÐèÒª°´ÕÕ˳Ðò·Ö±ð½«Uboot¡¢¼ô²ÃºóµÄLinuxÄںˡ¢YAFFS2ÎļþϵͳÉÕ¼µ½±¾´ÎÉè¼ÆÖÐËùÓõ½µÄ¿ª·¢°åÖÐÈ¥¡£
4.2 Ö÷»ú¿ª·¢»·¾³µÄ´î½¨ºÍϵͳµÄÒÆÖ²
4.2.1 ´î½¨Ö÷»úµÄ¿ª·¢»·¾³
ǶÈëʽ¿ª·¢»·¾³Ö÷ÒªÊÇÔÚËÞÖ÷»úÉÏLinux¿ª·¢»·¾³Ï½¨Á¢½»²æ±àÒë»·¾³£¬ÄǾÍÊÇÔÚX86ÌåϵµÄPC»úÉϽ¨Á¢Ò»¸öARMÉÏÄÜÔËÐеijÌÐò»·¾³¡£±¾´ÎÉè¼ÆËùʹÓõÄÊÇVMware¹«Ë¾µÄÐéÄâÈí¼þworkstation£¬½¨Á¢ÐéÄâ»ú£¬²¢ÔÚÐéÄâ»úÉϰ²×°ubuntu-12.04-desktop-i386¡£
½âѹ½»²æ±àÒ빤¾ß°ücross-4.2.2-eabi.tar£¬¾ßÌåµÄÔÚÐéÄâ»úÖÐÔËÐÐÈçÏÂÃüÁ
tar jxvf cross-4.2.2-eabi.tar.bz2
ÕâÑù,Äں˻òÆäËûÓ¦ÓóÌÐò¿ÉÓøÃ·¾¶/usr/local/arm/4.2.2-eabi /usr/bin/arm-linux- À´Ö¸¶¨Ê¹Óøý»²æ±àÒëÆ÷¡£
4.2.2 U-bootµÄ±àÒë
1£©½âѹԴÂ룺tar zxf uboot1.1.6-2012-09-25.tar.gz
2£©ÔÚboardĿ¼Ï´´½¨forlinx_nand_ram256_configĿ¼Ìí¼Óok6410.c¡¢
flash.c¡¢memsetup.c¡¢u-boot.ldsºÍconfig.mkµÈ¡£
3£©ÔÚcpuĿ¼Ï´´½¨arm920tĿ¼£¬Ö÷Òª°üº¬start.s¡¢interrupts.c¡¢cpu.c¡¢
18
ÅÊÖ¦»¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ϵͳÏêϸÉè¼ÆÓëʵʩ
serial.cµÈÎļþ¡£
4£©ÔÚinclude/config¸ùĿ¼ÏÂÌí¼Óforlinux_nand_ram256.h£¬Ëü¶¨ÒåÁËÈ«¾ÖµÄºê¶¨ÒåµÈ¡£
5£©ÐÞ¸ÄU-boot¸ùĿ¼ÏµÄMakefileÎļþ£¬ÈçÏ£º forlinx_nand_ram256_config:$(@:_config=)
arm arm920t forlinx_nand_ram256_config
6£©ÅäÖÃubootµÄ±àÒ룺make forlinx_nand_ram256_config£¬Èç¹ûûÓдíÎó¾Í¿ÉÒÔ¿ª
ʼ½øÐÐÓëÓ²¼þÏà¹ØµÄ´úÂëÒÆÖ²¹¤×÷¡£ 7£©É¾³ýÒÔǰ±àÒëµÄÎļþ£ºmake clean 8£©±àÒëu-boot£ºmake
4.2.3 Äں˵͍֯
Äں˵͍ÖƵĸù±¾Ä¿µÄÊÇʹÄÚºËÄܹ»¸ù¾ÝǶÈëʽϵͳµÄÈíÓ²¼þÐèÇóΪӦÓóÌÐòÌṩһ¸öרÓÃµÄÆ½Ì¨¡£´ÓʵÏֵĽǶȿ´£¬Äں˵͍ÖƾÍÊÇÓÐÕë¶ÔÐԵض¨ÖÆÄں˵ĸ÷ÏÄÜ¡£ÎªÁËÌá¸ß¶¨ÖƵÄЧÂÊ£¬LinuxÄÚºËÒ»·½ÃæÑϸñ°´ÕÕÄ£¿é»¯Éè¼Æ£¬ÓÅ»¯´úÂë½á¹¹£¬¾¡Á¿¼õÉÙ»ò±ÜÃâ¶¨ÖÆ¹ý³ÌÖжÔÔ´´úÂëµÄÐ޸ģ¬ÁíÒ»·½Ã棬ͨ¹ý¶¨ÖÆMakefileÎļþµÄ·½Ê½À´¿ØÖÆÔ´ÎļþµÄ±àÒë¹ý³Ì£¬ÒÔ´ËÀ´±ÜÃâÖ±½Ó¶ÔÄں˵ÄÔ´Îļþ½øÐÐÌí¼ÓºÍɾ³ý¡£ÏÂÃæ¼´ÎªÀûÓÃÄÚºËÅäÖù¤¾ß¶¨ÖÆÂú×ãÒªÇóµÄÄÚºËÏêϸ²½Öè¡£ 1£©½âѹÄÚºË tar zxvf linux-3.0.1-2012-09-23.tar.gz 2£©Ö¸¶¨Äں˱àÒë·¾¶£¬½«MikefileÖеÄ
export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= arm
CROSS_COMPILE ?= $£¨shell if [ -f .cross_compile ]; then \\ cat .cross_compile; \\ fi ) ÐÞ¸ÄΪ£º
export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
3£©ÔÚÖ÷Ŀ¼ÏÂÊäÈë make menuconfig Ñ¡ÔñSystem TypeÑ¡ÔñÖ¸¶¨µÄCPU£¬±¾Éè¼Æ
ʹÓõÄÊÇS3c6410Òò´ËÑ¡ÔñSamsung S3c64XXÈçͼËùʾ£º
19
ÅÊÖ¦»¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ϵͳÏêϸÉè¼ÆÓëʵʩ
ͼ4.1 ÄÚºËоƬÅäÖÃÑ¡Ïî½ØÍ¼
4£©½«ÐèÒªÌí¼ÓµÄÇý¶¯³ÌÐòµ½ÔÚÐèÒª±àÒëµÄÄÚºËÎļþÀïÃæ£¬ÐèÒªÌí¼ÓµÄÖ÷ÒªÇý¶¯°üÀ¨USBת´®¿ÚÇý¶¯¼´PL2303Çý¶¯¡£
É豸µÄÇý¶¯³ÌÐò¿ÉÒÔ¿´³ÉÊÇÄÚºËÓëÍâÉèÖ®¼äµÄ½Ó¿Ú¡£¶øÉ豸Çý¶¯³ÌÐòÔòÊÇÒ»ÖÖ¿ÉÒÔʹ¼ÆËã»úºÍÉ豸ͨÐŵÄÌØÊâ³ÌÐò,¿ÉÒÔ˵Ï൱ÓÚÓ²¼þµÄ½Ó¿ÚµÄÈí¼þʵÏÖ¡£ÔÚLinuxÏ£¬É豸Çý¶¯¿ÉÒÔʹÓúͲÙ×÷ÎļþÖеġ¢±ê×¼µÄϵͳµ÷Óú¯Êý´Ó¶øÀ´Íê³É¶ÔÓ²¼þÉ豸µÄ»ù±¾²Ù×÷ÀýÈç´ò¿ª£¨Èçopen£©¡¢¶Áд¡¢¹Ø±ÕºÍI/O¿ØÖÆ¡£ÒªÔÚMakeflieÎļþÖÐÖ¸¶¨ÐèÒª¿ª·¢µÄ´¦ÀíÆ÷Ìåϵ½á¹¹¾ÍÐÐÁË£¬ÔÚ±àÒëʱʹÓõıàÒëÆ÷¡¢¿âÎļþºÍ²¿·ÖÍ·ÎļþµÈ¶¼Óë¾ßÌå´¦ÀíÆ÷½á¹¹ÓкܴóµÄ¹ØÏµ¡£ÏÂͼ¼´ÎªLinuxÎļþϵͳÓëÉ豸Çý¶¯Ö®¼äµÄ¹ØÏµ¡£
ͼ4.2 ¸ùÎļþϵͳÓëÉ豸Çý¶¯Ö®¼äµÄ¹ØÏµÍ¼
Ëæ×ÅLinux²Ù×÷ϵͳÄں˰汾µÄ²»Í¬»ùÓÚPL2303µÄÉ豸Çý¶¯Ò²»áÂÔ΢ÓÐÇø±ð£¬
20
ÅÊÖ¦»¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ϵͳÏêϸÉè¼ÆÓëʵʩ
ÏàÓ¦µÄÉ豸Çý¶¯³ÌÐòµÄ°²×°¾ÍÊÇÊǸù¾Ý²»Í¬µÄ²Ù×÷ϵͳµÄÐèÇó¡£ÒÔÏÂÊǶԱ¾¿ÎÌâPL2303É豸Çý¶¯ÒÆÖ²µÄ¾ßÌå²½Öè¡£
1)ÔÚdriversĿ¼ÏÂн¨Ò»¸öÇý¶¯Ä¿Â¼¼´ mkdir usb_serial 2)½«Çý¶¯³ÌÐò¿½±´µ½Ð½¨µÄĿ¼ÏÂ
cp /workspace/linux-3.0.1/driver/usb/serial/pl2303.c ./
3)ÔÚ¸ÃĿ¼Ð½¨Ò»¸öMakefile
vim Makefile
Ìí¼Ó³ÌÐò obj -$(CONFIG_USB_SERIAL) += pl2303.o 5) ÔÚdriverÄÇÒ»²ãµÄMakefileÖÐÌí¼Ó
obj -y += usb_serial/
6) ÔÚusb_serialÎļþÖÐн¨Kconfig
vim Kconfig
Menu ¡°usb to serial¡± config USB_SERIAL
booll ¡°Support USB To Serial¡± endmenu
7) ÔÚdriverÄDzãĿ¼ÖеÄKconfigÌí¼Ó
source¡°drivers/usb_serial/Kconfig¡±
8) ÔÚÖ÷Ŀ¼Ï make menuconfig,ÔÚͼÐνçÃæÖÐÑ¡ÔñDevice Server£¬Support USB To SerialÈçÏÂͼËùʾ£º
ͼ4.3 Ñ¡ÔñÉ豸Çý¶¯Ñ¡Ïî
2 1
Ñ¡Ôñ
ÅÊÖ¦»¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ϵͳÏêϸÉè¼ÆÓëʵʩ
9) ÔÚFORLINX6410_CFGÖв鿴ÊÇ·ñCONFIG_USB_SERIAL_PL2303=y ÈçÏÂͼ
ͼ4.4 ²é¿´ÄÚºËÅäÖÃÊÇ·ñÑ¡Ôñ±àÒëÁËËùÑ¡Çý¶¯
10) ÔÚÖ÷Ŀ¼Ï make zImage,ÕâÑùÐèÒªµÄÇý¶¯É豸¾Í±»±àÒë½øÁËÄںˡ£
4.2.4 ÎļþϵͳµÄÖÆ×÷
¸ùÎļþϵͳÊÇLinuxÄÚºËÆô¶¯ºóµÚÒ»¸ö¹ÒÔØµÄÎļþϵͳ¡£ÔÚ¸ùÎļþϵͳÖдæ·Å×ÅÄÚ´æ¾µÏñ¡¢¸÷ÖÖϵͳÅäÖÃÎļþÒÔ¼°Ò»Ð©ÆäËûµÄÖØÒªÎļþ£¨ÀýÈçÉ豸Îļþ¡¢ÃüÁî³ÌÐòµÈ£©¡£ÎªÁ˱£Ö¤Í¨ÓÃÐÔ£¬¸ùÎļþϵͳµÄĿ¼½á¹¹×ñÊØFIS±ê×¼£¨Filesystem Hierarachy Standard£©.FIS±ê×¼¶¨ÒåÁ˸ùÎļþϵͳÖÐÿ¸öĿ¼Ãû³Æ¼°Æä×÷ÓõĹæÔò¹æ·¶¡£
ÖÆ×÷¸ùÎļþϵͳµÄ»ù±¾·½·¨¾ÍÊÇ´´½¨¸÷¸öĿ¼ÒÔ¼°Ä¿Â¼ÖеÄÎļþ¡£´´½¨£¬Ä¿Â¼ÊǷdz£¼òµ¥µÄ£¬¼È¿ÉÒÔͨ¹ýÃüÁîmkdirÀ´´´½¨£¬Ò²¿ÉÒÔÔÚͼÐνçÃæÖ±½Ó´´½¨¡£µ«ÃüÁʽ±ÈͼÐη½Ê½µÄЧÂÊÒª¸ß¡£ÏÂÃæ¾ÍÊǶÔYaffs2ÎļþϵͳµÄ¾ßÌå²Ù×÷¡£ 1£©´´½¨Ò»¸öеÄÎļþÏ£¬ÔÚ¸ÃÎļþ¼ÐÏ´´½¨ÈçÏÂÎļþ¼Ð£ºetc bin dev home lib
mnt proc root sbin sys tmp usr opt Ò»¹²Ê®Ëĸö¸ùÎļþϵͳ±ØÒªµÄÎļþ£» ¼ÖеÄMakefile£¬Ö¸¶¨±àÒë·¾¶,
2) ½âѹBusybox tar xvjf Busybox-1.15.1.tar.bz2£¬±àÒëBusybox£¬ÐÞ¸ÄÔ´Ä¿ 3)ÐÞ¸ÄinittabÎļþ¡¢fatabÎļþ¡¢init.d/rcSÎļþ¡¢profileÎļþ£¬ 4)ÖÆ×÷yaffs2¸ùÎļþϵͳ¾µÏñ£¬
5)ÔÙ½«Îļþϵͳ¾µÏñÏÂÔØµ½nand flash²¢Æô¶¯¡£
22