#insmod ./driver_xx.ko
´Ëʱ#cat /proc/devices ÄÜ¿´µ½ driver_xx É豸
#mknod /dev/mygpio c 230 0 (230ÊÇÖ÷É豸ºÅ£¬0ÊÇ×ÓÉ豸ºÅ£©
{ÕâÀï¿ÉÒÔÐÞ¸ÄÉ豸Ãû³Æ,µ«ÊÇÒªºÍ²âÊÔ³ÌÐòÖÐÒ»Ö fd_pio = open(“/dev/mygpio”, O_RDWR);
×îºÃºÍregister_chrdev(MY_PIO_MAJOR, "mygpio", &my_pio_fops)ÖеÄÒ»ÖÂ}
ʹÓÃ#cd /dev
#ls
Äܹ»¿´µ½mygpio ½Úµã
ʹÓÃ#cat /proc/interrupts Äܹ»¿´µ½Ê¹ÓõÄÖжϺÅ
#chmod 777 a.out
#./a.out
#rmmod ./driver_xx.ko ......
ÔÚ struct mntent ÖеijÉÔ±Óë /etc/fstab ÎļþÖеÄÌõÄ¿ÊÇÖ±½Ó¶ÔÓ¦µÄ¡£ËüµÄÄÚÈÝÈçÏ£º
struct mntent {
char *mnt_fsname; /* ¹ÒÔØµÄÎļþϵͳµÄÃû×Ö */
char *mnt_dir; /* ¹ÒÔØµã */
char *mnt_type; /* ÎļþϵͳÀàÐÍ£ºufs¡¢nfs µÈ */
char *mnt_opts; /* Ñ¡ÏÒÔ¶ººÅΪ·Ö¸ô·û */
int mnt_freq; /* Dump µÄƵÂÊ(ÒÔÌìΪµ¥Î») */
int mnt_passno; /* fsck¼ì²éµÄ´ÎÐò */
};
FILE *setmntent(const char *filename, const char *type);
struct mntent *getmntent(FILE *filep);
int addmntent(FILE *filep, const struct mntent *mnt);
int endmntent(FILE *filep);
char *hasmntopt(const struct mntent *mnt, const char *opt);
setmntent() ÊÇ´ò¿ª°üº¬¹ÒÔØµãÏîÄ¿µÄÎļþ, ÆäÖÐµÄ filename ²ÎÊýÊÇÒª´ò¿ªµÄÎļþÃû, type ²ÎÊý¾ÍÏñ fopen() µÄµÚ¶þ¸ö²ÎÊý, ´ú±íÖ»¶Á¡¢Ö»Ð´, »ò¶Áд½Ô¿ÉµÄ´æÈ¡Ä£Ê½ ¡£·µ»ØFILE*¡£
getmntent() ÔòÊÇÑÐò¶ÁÈ¡Õû¸öµµ°¸£¬´«»ØÖ¸Ïò static struct mntent ½á¹¹µÄÖ¸Õ룬½á¹¹ÖлáÌîÈëÊʵ±µÄÖµ¡£
add ......
±¾ÎÄ·ÖÎöÁËlinux 2.4.xÄں˵ÄÍøÇŵÄʵÏÖ·½·¨£¬²¢ÇÒÃèÊöÁËÈçºÎʹÓÃ2.4ÖеÄÍøÇÅ¡£ÍøÇÅ£¬ÀàËÆÓÚÖÐ¼ÌÆ÷£¬Á¬½Ó¾ÖÓòÍøÖÐÁ½¸ö»òÕß¶à¸öÍø¶Î¡£ËüÓëÖÐ¼ÌÆ÷µÄ²»Í¬Ö®´¦¾ÍÔÚÓÚËüÄܹ»½âÎöËüÊÕ·¢µÄÊý¾Ý£¬¶ÁȡĿ±êµØÖ·ÐÅÏ¢£¨MAC£©£¬²¢¾ö¶¨ÊÇ·ñÏòËùÁ¬½ÓÍøÂçµÄÆäËûÍø¶Îת·¢Êý¾Ý°ü¡£ÎªÁËÄܹ»¾ö²ßÏòÄǸöÍø¶Î·¢ËÍÊý¾Ý°ü£¬ÍøÇÅѧϰ½ÓÊÕµ½Êý¾Ý°üµÄÔ´MACµØÖ·£¬ÔÚ±¾µØ½¨Á¢Ò»¸öÒÔMACºÍ¶Ë¿ÚΪ¼Ç¼ÏîµÄÐÅÏ¢Êý¾Ý¿â¡£
LinuxÄÚºËÍøÇŵÄʵÏÖ·ÖÎö
Linux Äں˷ֱðÔÚ2.2 ºÍ 2.4ÄÚºËÖÐʵÏÖÁËÍøÇÅ¡£µ«ÊÇ2.2 ÄÚºËºÍ 2.4Äں˵ÄʵÏÖÓкܴóµÄÇø±ð£¬2.4ÖеÄʵÏÖ¼¸ºõÊÇÈ«²¿ÖØÐ´ÁËËùÓеÄʵÏÖ´úÂë¡£±¾ÎÄÒÔ2.4.0Äں˰汾ΪÀý½øÐзÖÎö¡£
ÔÚ·ÖÎö¾ßÌåµÄʵÏÖ֮ǰ£¬ÏÈÃèÊö¼¸¸ö¸ÅÄÓÐÖúÓÚ¶ÔÍøÇŵŦÄܼ°ÊµÏÖÓиüÉîµÄÀí½â¡£
³åÍ»Óò
Ò»¸ö³åÍ»ÓòÓÉËùÓÐÄܹ»¿´µ½Í¬Ò»¸ö³åÍ»»òÕß±»¸Ã³åÍ»Éæ¼°µ½µÄÉ豸×é³É¡£ÒÔÌ«ÍøÊ¹ÓÃC S M A / C D£¨Carrier Sense Multiple Access with Collision Detection£¬´øÓгåÍ»¼à²âµÄÔØ²¨ÕìÌý¶àÖ··ÃÎÊ£©¼¼ÊõÀ´±£Ö¤Í¬Ò»Ê±¿Ì£¬Ö»ÓÐÒ»¸ö½ÚµãÄܹ»ÔÚ³åÍ»ÓòÄÚ´«ËÍÊý¾Ý¡£ÍøÇÅ»òÕß½»»»»ú£¬¹¹³ÉÁËÒ»¸ö³åÍ»ÓòµÄ±ß½ç¡£È±Ê¡Çé¿öÏ£¬ÍøÇÅÖеÄÿ¸ö¶Ë¿Úʵ¼ÊÉϾÍÊÇÒ»¸ö³åÍ»ÓòµÄ½áÊøµã¡£
¹ã²¥Óò
Ò»¸ö¹ã²¥ÓòÓÉËùÓÐÄܹ ......
1¡¢×ܽᱳ¾°
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not
found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²
ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾°¸Àý»ùÓÚRedHat AS4½²½â»·¾³±äÁ¿¶¨ÖƵÄÎÊÌâ¡£
2¡¢±äÁ¿¼ò½é
LinuxÊÇÒ»¸ö¶àÓû§µÄ²Ù×÷ϵͳ¡£Ã¿¸öÓû§µÇ¼ϵͳºó£¬¶¼»áÓÐÒ»¸öרÓõÄÔËÐл·¾³¡£Í¨³£Ã¿¸öÓû§Ä¬ÈϵĻ·¾³¶¼ÊÇÏàͬµÄ£¬Õâ¸öĬÈÏ»·¾³Êµ¼ÊÉϾÍÊÇÒ»
×é»·¾³±äÁ¿µÄ¶¨Òå¡£Óû§¿ÉÒÔ¶Ô×Ô¼ºµÄÔËÐл·¾³½øÐж¨ÖÆ£¬Æä·½·¨¾ÍÊÇÐÞ¸ÄÏàÓ¦µÄϵͳ»·¾³±äÁ¿¡£
3¡¢¶¨ÖÆ»·¾³±äÁ¿
»·¾³±äÁ¿ÊǺÍShell½ôÃÜÏà¹ØµÄ£¬Óû§µÇ¼ϵͳºó¾ÍÆô¶¯ÁËÒ»¸öShell¡£¶ÔÓÚLinuxÀ´ËµÒ»°ãÊÇbash£¬µ«Ò²¿ÉÒÔÖØÐÂÉ趨»òÇл»µ½ÆäËüµÄ
Shell£¨Ê¹ÓÃchshÃüÁ¡£
¸ù¾Ý·¢Ðа汾µÄÇé¿ö£¬bashÓÐÁ½¸ö»ù±¾µÄϵͳ¼¶ÅäÖÃÎļþ£º/etc/bashrcºÍ/etc/profile¡£ÕâЩÅäÖÃÎļþ°üº¬Á½×鲻ͬµÄ±ä
Á¿£ºshell±äÁ¿ºÍ»·¾³±äÁ¿¡£Ç°ÕßÖ»ÊÇÔÚÌØ¶¨µÄshellÖй̶¨£¨Èçbash£©£¬ºóÕßÔÚ²»Í¬shellÖй̶¨¡£ºÜÃ÷ÏÔ£¬shell±äÁ¿ÊǾֲ¿µÄ£¬¶ø»·¾³
±äÁ¿ÊÇÈ«¾ÖµÄ¡£»·¾³±äÁ¿ÊÇͨ¹ýShellÃüÁîÀ´ ......
1£ºsocket±à³ÌÖвÉÓõÄÐÒé×åÖ÷ÒªÓÐÁ½ÖÖ
£º
1>£ºÍøÂçÐÒé×å(ÐÎʽÈ磺AF_INET, PF_INETµÈ)
2>£º±¾µØunixÓò¸ñʽµÄÐÒé×å(ÐÎʽÈ磺AF_LOCAL, AF_UNIXµÈ)
×¢£ºÐÒé×åµÄÑ¡ÔñÌåÏÖÔÚ int socket(int domain, inst type, int protocol)º¯ÊýµÄµÚÒ»¸ö²ÎÊý´¦¡£
2£ºÕâÁ½ÖÖÐÒé×åµÄÇø±ð£º
1>£º±¾µØunixÓò¸ñʽµÄÐÒé×壬ֻÄÜÓÃÓÚ±¾»ú(¼´£¬¿Í»§¶ËºÍ·þÎñÆ÷¶ËÔÚͬһ̨»úÆ÷)£»¶øÍøÂçÐÒé×å
²»½ö¿ÉÒÔÓÃÓÚ±¾»úÒ²¿ÉÒÔ¿çÍøÂç
2>£º±¾»úÉϵĿͻ§¶ËºÍ·þÎñ¶ËÖ®¼äµÄͨѶ²ÉÓñ¾µØunixÓò¸ñʽµÄÐÒé×åÒª±È²ÉÓÃÍøÂçÐÒé×åµÄËÙ¶È¿ì
3>£º±¾µØunixÓò¸ñʽµÄÐÒé×åÓõÄÒ²±È½Ï¹ã·º£¬ÈçһЩ·þÎñÆ÷µÄÄ£¿é¼äµÄͨѶ(mysql)£¬ ÔÙ±ÈÈç¹ÜµÀµÈ¡£
3£ºsocketͨѶµÄ¼¸¸ö¹Ø¼üµÄº¯Êý
1>£ºsendº¯Êý£¬ÔÐÍ£¬ int send(SOCKET s, const char FAR *buf , int len, inf flags)¡£¸Ãº¯ÊýµÄÏêϸ½éÉÜ£º
²ÎÊýs£¬Ì×½Ó×ÖÃèÊö·û£» ²ÎÊýbuf£¬´æ·Å·¢ËÍÊý¾ÝµÄ»º³åÇø£» ²ÎÊýlen, ·¢ËÍÊý¾ÝµÄ³¤¶È£» ²ÎÊýflags£¬±êÖ¾£¬Ò»°ãΪ0£»
¸Ãº¯ÊýµÄÖ ......
ÓÉÓÚ¹¤×÷ÐèÒªÏÖÔÚ¿ªÊ¼´Óͷѧϰlinux£¬ÏÂÃæÏȼǼamlogic openlinux°²×°²½Öè¡££¨Ç°ÌáÊǰ²×°ÁËÐéÄâ»ú£©
Amlogic open linux ±àÒë»·¾³°²×°
Ò»¡¢gcc¹¤¾ßµÄ°²×°
1¡¢´ÓAmlogicÍøÕ¾ÉÏÏÂÔØgcc¹¤¾ß
ÔÚÏÂÃæÏÂÔØIndex of /download/linux/gnutools
gnutools-arc2.2-p4-ubuntu-9.04-2010-2-1.tar.bz2£¨»òÕß×îа汾£©
2¡¢ÔÚlinux²Ù×÷ϵͳÖнâѹËõ¹¤¾ßµ½ÏµÍ³¸ùĿ¼Ï¡££¨½âѹËõºó opt£©
ÃüÁsu ----½øÈ볬¼¶Óû§
cd ±£´æÏÂÔØÎļþµÄĿ¼
tar jxvf gnutools-arc2.2-p4-ubuntu-9.04-2010-2-1.tar.bz2 –C / ----½âѹËõµ½¸ùĿ¼
3¡¢ÉèÖû·¾³±äÁ¿
´´½¨/etc/profile.d/arc_gnutools.shÎļþ£¬ÔÚÎļþÖÐдÈëÏÂÁÐÄÚÈÝ
ÃüÁ
a¡¢gedit /etc/profile.d/arc_gnutools.sh
b¡¢ÔÚµ¯³öµÄÎļþ±à¼Æ÷ÀïдÈë
#!/bin/sh
SET_PATH=$( echo "$PATH" | grep elf32)
if [ "$SET_PATH" = "" ]; then
ARC_PREFIX=/opt/gnutools/arc2.2-p1 ----·¾¶
PATH=$PATH:${ARC_PREFIX}/elf3 ......