LinuxÏÂʹÓÃGCC¾ÙÐÐǶÈëʽARM»ã±àÓÅ»¯µÄÍƼöÉèÖÃ
linuxÏÂʹÓÃgcc¾ÙÐÐǶÈëʽarm»ã±àÓÅ»¯µÄÍƼöÉèÖÃ
СÐò£º
ǶÈëʽϵͳÔÚÏÖ´ú¿Æ¼¼ÖÐÆð×ÅÖ÷Òª×÷Ó㬶øARM¼Ü¹¹×÷Ϊ×î³£ÓõÄǶÈëʽ´¦ÀíÆ÷¼Ü¹¹Ö®Ò»£¬»ñµÃÁËÆÕ±éµÄÓ¦Óá£ÔÚǶÈëʽ¿ª·¢ÖУ¬ÓÅ»¯´úÂëµÄÐÔÄÜÊÇÖÁ¹ØÖ÷ÒªµÄ£¬¶øʹÓÃGCC¾ÙÐÐARM»ã±àµÄÓÅ»¯ÊÇÒ»ÖÖ³£ÓõÄÒªÁì¡£±¾ÎĽ«ÏÈÈÝÔõÑùÔÚLinuxÏÂÉèÖÃGCC¾ÙÐÐǶÈëʽARM»ã±àÓÅ»¯£¬²¢ÌṩÏà¹Ø´úÂëʾÀý¡£
ÉèÖÃGCC£º
×°ÖÃGCC
Ê×ÏÈ£¬È·±£ÔÚLinuxϵͳÖÐÒÑ×°ÖÃÁËGCC¡£ÈôÊÇûÓÐGCC£¬¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÀ´×°Öãº
sudo apt-get install gcc
µÇ¼ºó¸´ÖÆ
ÉèÖÃGCCµÄARM½»Ö¯±àÒ빤¾ßÁ´
ÔÚÉèÖÃGCC֮ǰ£¬ÐèÒªÏÈ»ñÈ¡ARMµÄ½»Ö¯±àÒ빤¾ßÁ´¡£¿ÉÒÔͨ¹ýÔÚÖÕ¶ËÖ´ÐÐÒÔÏÂÏÂÁîÀ´»ñÈ¡£º
sudo apt-get install gcc-arm-linux-gnueabihf
µÇ¼ºó¸´ÖÆ
´ËÏÂÁװÖÃARM¼Ü¹¹ÏµĽ»Ö¯±àÒ빤¾ßÁ´¡£×°ÖÃÍê³Éºó£¬¿ÉÒÔʹÓÃarm-linux-gnueabihf-gccÏÂÁîÀ´Å²ÓÃARM¼Ü¹¹ÏµÄGCC¡£
ÉèÖÃGCCµÄÓÅ»¯Ñ¡Ïî
GCCÌṩÁ˸»ºñµÄÓÅ»¯Ñ¡ÏÒÔÌá¸ßÌìÉúµÄ»úеÂëµÄЧÂÊ¡£ÔÚARM¼Ü¹¹ÖУ¬³£ÓõÄÓÅ»¯Ñ¡ÏîÓÐ-O2ºÍ-O3¡£-O2Ñ¡ÏîÊdz£ÓõÄÑ¡Ôñ£¬Ëü»á¶Ô´úÂë¾ÙÐÐÖм¶ÓÅ»¯£¬Ìá¸ßÖ´ÐÐЧÂÊ¡£-O3Ñ¡Ïî»á¾ÙÐиüÉîÌõÀíµÄ´úÂëÓÅ»¯£¬µ«¿ÉÄܻᵼÖ±àÒëʱ¼ä±ä³¤¡£ÔÚÉèÖÃGCCʱ£¬¿ÉÒÔƾ֤ÏêϸÐèÇóÑ¡Ôñ²î±ðµÄÓÅ»¯Ñ¡Ïî¡£ÀýÈ磬¿ÉÒÔÔÚÏÂÁîÐÐÖÐʹÓÃÒÔÏÂÏÂÁîÀ´¾ÙÐÐÉèÖãº
arm-linux-gnueabihf-gcc -O2 -o output_file input_file.c
µÇ¼ºó¸´ÖÆ
ÒÔÉÏÏÂÁʹÓÃ-O2ÓÅ»¯Ñ¡ÏîÀ´±àÒëinput_file.c£¬²¢ÌìÉú¿ÉÖ´ÐÐÎļþoutput_file¡£
ǶÈëʽARM»ã±àÓÅ»¯Ê¾Àý£º
ÒÔÏÂÊÇÒ»¸ö¼òÆӵĻã±àÓÅ»¯Ê¾Àý£¬Õ¹Ê¾ÁËÔõÑùʹÓÃGCC¾ÙÐÐǶÈëʽARM»ã±àÓÅ»¯¡£
.global _start .section .data msg: .ascii "Hello, World! " .section .text _start: mov r0, #1 ldr r1, =msg ldr r2, =13 mov r7, #4 swi 0 exit: mov r0, #0 mov r7, #1 swi 0
µÇ¼ºó¸´ÖÆ
ÒÔÉÏʾÀýÊÇÒ»¸ö¾µäµÄ¡°Hello, World!¡±³ÌÐò£¬Ê¹ÓÃARM»ã±àÓïÑÔ±àд¡£ÆäÖУ¬.data¶Î´æ·Å×Å×Ö·û´®³£Á¿£¬.text¶ÎÔò´æ·Å×ųÌÐòµÄ´úÂë¡£ÔÚ´úÂëÖУ¬Ê¹ÓÃÁËһЩARM¼Ü¹¹ÏµĻã±àÖ¸ÁÈçmovºÍldr£¬ÒÔ¼°ÏµÍ³Å²ÓÃÖ¸Áîswi¡£Õâ¶Î´úÂë»á½«×Ö·û´®¡°Hello, World!¡±´òÓ¡µ½Öնˡ£
ΪÁ˱àÒëÒÔÉÏʾÀý£¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁ
arm-linux-gnueabihf-gcc -o hello_world hello_world.s
µÇ¼ºó¸´ÖÆ
ÒÔÉÏÏÂÁÌìÉú¿ÉÖ´ÐÐÎļþhello_world£¬ÆäÖÐhello_world.sÊÇ»ã±àÔ´Îļþ¡£
½áÂÛ£º
ͨ¹ýÉèÖÃGCC£¬²¢ÍŽáÊʵ±µÄÓÅ»¯Ñ¡Ï¿ÉÒÔÌá¸ßǶÈëʽARM»ã±à´úÂëµÄÐÔÄÜ¡£±¾ÎÄÏÈÈÝÁËÔÚLinuxÏÂÉèÖÃGCC¾ÙÐÐǶÈëʽARM»ã±àÓÅ»¯µÄÍƼöÒªÁ죬²¢ÌṩÁËÏà¹ØµÄ´úÂëʾÀý¡£Í¨¹ýÏàʶGCCµÄÓÅ»¯Ñ¡ÏîºÍ»ã±àÓÅ»¯ÊÖÒÕ£¬¿ª·¢Õß¿ÉÒÔƾ֤ÏêϸÐèÇ󣬾ÙÐÐÕë¶ÔÐÔµÄÓÅ»¯£¬ÌáÉýǶÈëʽϵͳµÄÐÔÄÜ¡£
ÒÔÉϾÍÊÇLinuxÏÂʹÓÃGCC¾ÙÐÐǶÈëʽARM»ã±àÓÅ»¯µÄÍƼöÉèÖõÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡