ʹÓÃ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
Ïà¹ØÎĵµ£º
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º
£¨1£©ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔÀí£¨³õ²½¶¨Îªarm9£©
£¨2£©±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ£¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£©
£¨3£©±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ»¸öǶÈëʽÈí¼þÏîÄ¿¡£
´ÓÊÂǶÈëʽÈí¼þ¿ª·¢µÄºÃ´¦ÊÇ ......
µÚÒ»´ÎÔÚLinuxÉÏ°²×°OracleµÄʱºòÅöµ½Õâ¸öÎÊÌ⣬ºÇºÇ¡£Ö®Ç°ÔÚLinuxÉÏ°²×°Oracleʱ£¬Ò»°ã¶¼Ê¹ÓÃRedHatϵÁеÄLinux£¬ÔÚ°²×°¹ý³ÌÖУ¬ÐèÒª×ö´óÁ¿µÄ°²×°Ç°Öù¤×÷£¬Èç°²×°RPM°ü£¬´´½¨×éºÍÓû§£¬ÐÞ¸ÄÄں˲ÎÊý£¬Ð޸Ļ·¾³±äÁ¿µÈ¡£Õâ´ÎʹÓõÄÊÇRedFlagµÄAsianux 3£¬¶øÇÒ×Ô´øOracleµÄ°²×°¸¨Öú¹¤¾ßOrana ......
understanding linux usb ehci device driver£¨2£©
understanding linux usb ehci device driver(2)
lm_tom@163.com
2. linux ehci device driver(ehci hcd)
2.1. linux usb subsystem arch overview(host)
2.2. ehci_hcd
2.3. ehci ʵÏֵĽӿÚ
2.3.1. ehci_pci_setup() (hc_driver->reset)
2.3.2. ehci_run() ( ......
alarm£¨ÉèÖÃÐźŴ«ËÍÄÖÖÓ£©
Ïà¹Øº¯Êý signal£¬sleep
±íÍ·Îļþ #include<unistd.h>
¶¨Ò庯Êý unsigned int alarm(unsigned int seconds);
º¯Êý˵Ã÷ alarm()ÓÃÀ´ÉèÖÃÐźÅSIGALRMÔÚ¾¹ý²ÎÊýsecondsÖ¸¶¨µÄÃëÊýºó´«Ë͸øÄ¿Ç°µÄ½ø³Ì¡£Èç¹û²ÎÊýseconds Ϊ0£ ......