»ùÓÚARMµÄÖÇÄÜÃŽûϵͳÉè¼Æ(5)

2019-04-14 09:51

ÅÊÖ¦»¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ϵͳÏêϸÉè¼ÆÓëʵʩ

µÚËÄÕ ϵͳÏêϸÉè¼ÆÓëʵʩ

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


»ùÓÚARMµÄÖÇÄÜÃŽûϵͳÉè¼Æ(5).doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ ÏÂÔØÊ§°Ü»òÕßÎĵµ²»ÍêÕû£¬ÇëÁªÏµ¿Í·þÈËÔ±½â¾ö£¡

ÏÂһƪ£º×îеç´óÉÌ·¨Àú½ìÊÔÌâ°¸Àý·ÖÎöÌâ»ã×Ü

Ïà¹ØÔĶÁ
±¾ÀàÅÅÐÐ
¡Á ×¢²á»áÔ±Ãâ·ÑÏÂÔØ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÂíÉÏ×¢²á»áÔ±

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£º QQ£º