ʹÓÃDDD¿ª·¢ARM Linux³ÌÐò
ʹÓÃDDD+GDB¿ª·¢ARM Linux³ÌÐò
½ñÌìÓÖÈ¡µÃÁËһЩ½øÕ¹£¬¸Ï¿ìдÏÂÀ´ÒÔÃâ×Ô¼ºÍü¼Ç¡£
×Ô´ÓLinuxÔÚÎҵİå×ÓÉÏÅÜÆðÀ´Ö®ºó£¬ÎÒÒ»Ö±ÔÚÏëÒ»¸öÎÊÌ⣬Ôõôµ÷ÊÔ½«À´Ð´µÄ³ÌÐò¡£ÆäʵÎÒÔÚLinux¿ª·¢·½ÃæÕæµÃºÜÍâÐУ¬µ½Á˽ñÌì²ÅÖªµÀGDBµ½µ×ÊÇ ¸ÉʲôÓõģ¬ºÇºÇ¡£ÎÒÏàÐźܶàÈË´ÓBootloaderµ÷ÊÔ¿ªÊ¼Ò»Ö±¶¼Ê¹ÓÃLED°¡£¬printfÕâÑùµÄ·½·¨À´µ÷ÊÔ¡£ÎÒ×ö±ÏÉèʱ£¬¾ÍÊÇÔÚMTDBLOCK ÀïÃæ»®³öÒ»¸öUSER·ÖÇø£¬È»ºó°Ñ±àÒëºÃµÄ³ÌÐò·ÅÈëÎļþϵͳӳÏñ£¬Í¨¹ýBootloaderÓô®¿Úϵ½NANDÀȻºómountÉϵ÷ÊÔ£¬ÊµÔںܻ¨Ê±¼ä¡£ ½ñÌ죬°×³ÕµÄÎÒÖÕÓÚÕÒµ½ÁËÒ»Ìõ½Ý¾¶£¬ÒѾ²»¿ÈËÔÁË£¡
ÏȽéÉÜÏÂDDDºÍGDB£¬GDBÊÇÒ»ÖÖÓÃÓÚµ÷ÊÔLinuxϳÌÐòµÄ¹¤¾ß£¬Ëü²»½öÄܵ÷ÊÔC/C++£¬»¹¿ÉÒÔµ÷ÊÔPascalµÈºÜ¶àÆäËûÓïÑÔ¡£ÎÒÃÇ¿´¸öÀý×Ó£º ¼ÙÉèÓÐÒ»¸ö³ÌÐò½Ð×ötest.c£¬ÒªÓÃGDBµ÷ÊÔËü£¬Ê×ÏÈ£¬±àÒëµÄʱºòÐèÒª¼ÓÉϲúÉúdebugÐÅϢѡÏî“-g”£¬Èç#arm-linux-gcc test.c -o test -g£»È»ºó£¬ÓÉÓÚÎÒÃDz¢²»ÊÇ¿ª·¢±¾»ú³ÌÐò£¬ÔÚÄ¿±ê»ú£¨arm£©ÉÏÐèÒªÓÃÒ»¸öserverÆô¶¯Õâ¸öº¬Óе÷ÊÔÐÅÏ¢µÄ³ÌÐò£¬µ±È»£¬±¾»úºÍÄ¿±ê»úÖ®¼äµÃÓÐÒ»¶¨µÄÊý ¾Ý¹²Ïí·½Ê½£¨Èçnfs£©ºÍÒ»¶¨µÄͨÐÅ·½Ê½£¨ÈçÒÔÌ«Íø»ò´®¿Ú£©£»×îºó£¬ÔÚ±¾»úÉÏÆô¶¯Ò»¸öGDB¿Í»§¶Ë£¬¾Í¿ÉÒԵǽµ½Ä¿±ê»úµÄserverÉϵ÷ÊÔ³ÌÐòÁË¡£ GDBµÄÔÀíÍøÉÏÒ²ÓкܶàÎÄÕÂ˵£¬¿ÉÒÔËÑË÷Ï£¬µ«ÊÇÎÒÊdzõѧÕߣ¬¾Í²»È¥¿´ÄÇЩÄÚÈÝÁË¡£ÎªÁËÈôó¼Ò¸ü¼ÓÃ÷È·GDBºÍDDDµÄÇø±ð£¬ÎÒÃÇÏÈ¿´Ò»¸öGDBµÄµ÷ÊÔ ¹ý³Ì£º
ÎÒͨ¹ýÒÔÌ«Íøµ÷ÊÔ£¬±¾»úIPµØÖ·192.168.2.31£¬Ä¿±ê»ú£¨arm¿ª·¢°åIPµØÖ·192.168.2.223£©£¬±¾»úͨ¹ýnfs¹²Ïí¿ª·¢Ä¿Â¼lgraphics¡£
Ê×Ïȱ¾»úÉϱàÒ룺
lxz@lxzlinux:~/lgraphics> arm-linux-gcc lgraphics.c -o lg -g
Çл»µ½Ä¿±ê»ú£º
[root@(none) lgraphics]# gdbserver 192.168.2.31:2345 lg
Process lg created; pid = 402
Listening on port 2345
Çл»µ½±¾»ú£º
lxz@lxzlinux:~/lgraphics> arm-linux-gdb lg
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-linux"...
(gdb) target remote 192.168.2.223:23
Ïà¹ØÎĵµ£º
Linux µÄ Input Device ÊÇÖØÒªµÄÒ»個 subsystem£¬ÔÚ進ÐÐ實Àý½é紹ǰ£¬ÏÈ´óÂÔÁ˽âÒ»ÏÂÏà關µÄ API¡£input.cÊÇLinuxµÄÊäÈë驅動³Ìʽ£¬Ö÷ÒªÖ§Ô®鍵盤與»¬ÊóµÄ輸È룻input.c½éÃæÌØÊâµÄµØ·½ÊÇ採ÓÃÁËʼþ£¨event£©µ ......
alarm£¨ÉèÖÃÐźŴ«ËÍÄÖÖÓ£©
Ïà¹Øº¯Êý signal£¬sleep
±íÍ·Îļþ #include<unistd.h>
¶¨Ò庯Êý unsigned int alarm(unsigned int seconds);
º¯Êý˵Ã÷ alarm()ÓÃÀ´ÉèÖÃÐźÅSIGALRMÔÚ¾¹ý²ÎÊýsecondsÖ¸¶¨µÄÃëÊýºó´«Ë͸øÄ¿Ç°µÄ½ø³Ì¡£Èç¹û²ÎÊýseconds Ϊ0£ ......
Ò»¡¢POSIX Ïß³ÌÏê½â
1¡¢
Ò»ÖÖÖ§³ÖÄÚ´æ¹²ÏíµÄ¼ò½Ý¹¤¾ß
2¡¢³Æ×÷»¥³â¶ÔÏóµÄÐ¡ÍæÒâ
3¡¢Ê¹ÓÃÌõ¼þ±äÁ¿Ìá¸ßЧÂÊ
¶þ¡¢PosixÏ̱߳à³ÌÖ¸ÄÏ
1¡¢
Ï̴߳´½¨ÓëÈ¡Ïû
2¡¢
Ïß³Ì˽ÓÐÊý¾Ý
3¡¢Ïß³Ìͬ²½
4¡¢Ïß³ÌÖÕÖ¹
5¡¢ÔÓÏî
......