Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux MTD¼¼Êõ¼ò½é

MTD(memory technology deviceÄÚ´æ¼¼ÊõÉ豸)ÊÇÓÃÓÚ·ÃÎÊmemoryÉ豸£¨ROM¡¢flash£©µÄLinuxµÄ×Óϵͳ¡£MTDµÄÖ÷ҪĿµÄÊÇΪÁËʹеÄmemoryÉ豸µÄÇý¶¯¸ü¼Ó¼òµ¥£¬Îª´ËËüÔÚÓ²¼þºÍÉϲãÖ®¼äÌṩÁËÒ»¸ö³éÏóµÄ½Ó¿Ú¡£MTDµÄËùÓÐÔ´´úÂëÔÚ/drivers/mtd×ÓĿ¼Ï¡£ÎÒ½«CFI½Ó¿ÚµÄMTDÉ豸·ÖΪËIJ㣨´ÓÉ豸½ÚµãÖ±µ½µ×²ãÓ²¼þÇý¶¯£©£¬ÕâËIJã´ÓÉϵ½ÏÂÒÀ´ÎÊÇ£ºÉ豸½Úµã¡¢MTDÉ豸²ã¡¢MTDԭʼÉ豸²ãºÍÓ²¼þÇý¶¯²ã¡£
MTD×Ö·ûÇý¶¯³ÌÐòÔÊÐíÖ±½Ó·ÃÎÊflashÆ÷¼þ£¬Í¨³£ÓÃÀ´ÔÚflashÆÚ¼äÉÏ´´½¨Îļþϵͳ£¬Ò²¿ÉÒÔÓÃÀ´Ö±½Ó·ÃÎʲ»Æµ·±Ð޸ĵÄÊý¾Ý¡£
MTD¿éÉ豸Çý¶¯³ÌÐò¿ÉÒÔÈÃflashÆ÷¼þαװ³É¿éÉ豸£¬Êµ¼ÊÉÏËüͨ¹ý°ÑÕû¿éµÄerase block·Åµ½ramÀïÃæ½øÐзÃÎÊ£¬È»ºóÔÙ¸üе½flash£¬Óû§¿ÉÒÔÔÚÕâ¸ö¿éÉ豸ÉÏ´´½¨Í¨³£µÄÎļþϵͳ¡£
Ò»¡¢FlashÓ²¼þÇý¶¯²ã
Ó²¼þÇý¶¯²ã¸ºÔðÔÚinitʱÇý¶¯FlashÓ²¼þ£¬Linux MTDÉ豸µÄNOR¡¡FlashоƬÇý¶¯×ñÑ­CFI½Ó¿Ú±ê×¼£¬ÆäÇý¶¯³ÌÐòλÓÚdrivers/mtd/chips×ÓĿ¼Ï¡£NANDÐÍFlashµÄÇý¶¯³ÌÐòÔòλÓÚ/drivers/mtd/nand×ÓĿ¼ÏÂ
¶þ¡¢MTDԭʼÉ豸
ԭʼÉ豸²ãÓÐÁ½²¿·Ö×é³É£¬Ò»²¿·ÖÊÇMTDԭʼÉ豸µÄͨÓôúÂ룬ÁíÒ»²¿·ÖÊǸ÷¸öÌØ¶¨µÄFlashµÄÊý¾Ý£¬ÀýÈç·ÖÇø¡£
ÓÃÓÚÃèÊöMTDԭʼÉ豸µÄÊý¾Ý½á¹¹ÊÇmtd_info£¬ÕâÆäÖж¨ÒåÁË´óÁ¿¹ØÓÚMTDµÄÊý¾ÝºÍ²Ù×÷º¯Êý
struct mtd_info
{
u_char type; //ÄÚ´æ¼¼ÊõµÄÀàÐÍ
u_int32_t flags; //±ê־λ
u_int32_t size; //mtdÉ豸µÄ´óС
u_int32_t erasesize; //Ö÷ÒªµÄ²Á³ý¿é´óС£¨Í¬Ò»¸ö//mtdÉ豸¿ÉÄÜÓÐÊýÖÖ²»Í¬µÄerasesize£©
u_int32_t oobblock; // oob¿é´óС
u_int32_t oobsize; // oobÊý¾Ý´óС
u_int32_t ecctype; //eccÀàÐÍ
u_int32_t eccsize; //ecc¹¤×÷µÄ·¶Î§

}
ÓÃÓÚÃèÊöMTDԭʼÉ豸µÄÊý¾Ý½á¹¹ÊÇmtd_info£¬ÕâÆäÖж¨ÒåÁË´óÁ¿µÄ¹ØÓÚMTDµÄÊý¾ÝºÍ²Ù×÷º¯Êý¡£mtd_table£¨mtdcore.c£©ÔòÊÇËùÓÐMTDԭʼÉ豸µÄÁÐ±í£¬mtd_part£¨mtd_part.c£©ÊÇÓÃÓÚ±íʾMTDԭʼÉ豸·ÖÇøµÄ½á¹¹£¬ÆäÖаüº¬ÁËmtd_info£¬ÒòΪÿһ¸ö·ÖÇø¶¼ÊDZ»¿´³ÉÒ»¸öMTDԭʼÉ豸¼ÓÔÚmtd_tableÖеģ¬mtd_part.mtd_infoÖеĴ󲿷ÖÊý¾Ý¶¼´Ó¸Ã·ÖÇøµÄÖ÷·ÖÇømtd_part->masterÖлñµÃ¡£
ÔÚdrivers/mtd/maps/×ÓĿ¼Ï´æ·ÅµÄÊÇÌØ¶¨µÄflashµÄÊý¾Ý£¬Ã¿Ò»¸öÎļþ¶¼ÃèÊöÁËÒ»¿é°å×ÓÉϵÄflash¡£ÆäÖе÷ÓÃadd_mtd_device()¡¢del_mtd_device()½¨Á¢/ɾ³ýmtd_info½á¹¹²¢½«Æä¼ÓÈë/ɾ³ýmtd_table£¨»òÕßµ÷ÓÃadd_mtd_partition()¡¢del_mtd_partition()£¨mtdpart.c£©½¨Á¢/ɾ³ýmtd_part½á¹¹²¢½«mtd_part.mt


Ïà¹ØÎĵµ£º

linuxỊ̈߳¨×ª£©

 ³ÌÏà¹Øº¯Êý£º
     pthread_attr_init()
     pthread_attr_setschedpolicy()
     pthread_attr_setschedparam()
     pthread_attr_destroy()
¾ßÌåÓ¦ÓÃdemo£º
pthread_attr_init(&attr);
pthread_attr_setschedpolicy ......

linux¼òµ¥³£ÓÃÃüÁî(Ò»)

ÒÔϾÙÀýÖУºÀ¶É«×ÖÌåΪÃüÁîÊäÈ룬ºìÉ«×ÖÌåΪÖÕ¶ËÊä³ö¡£
1.1     ²é¿´ÎļþºÍĿ¼(ls)
lsÃüÁîÊÇlinux×î³£ÓõÄÃüÁÓÃÀ´ÏÔʾÎļþ»òÕßĿ¼µÄÏà¹ØÐÅÏ¢¡£Ò»°ã»á´îÅäÒÔϲÎÊý³£Óãº
-a£ºÏÔʾȫ²¿Îļþ£¬ÓëÒþ²ØÎļþ(¿ªÍ·Îª.µÄÎļþ)Ò»ÆðÁгöÀ´¡£
-l£ºÁгö³¤Êý¾Ý´®£¬°üÀ¨ÎļþÊôÐÔ¡£
-t£º°´Ê±¼äÅÅÐò¡£
-h£º ......

linux½ø³ÌͨÐÅѧϰ±Ê¼Ç


Linux½ø³Ì¼äͨÐŵķ½·¨
1¡¢¹ÜµÀ(pipe)
2¡¢ÓÐÃû¹ÜµÀ(named pipe)
3¡¢ÐźÅÁ¿
4¡¢ÏûÏ¢¶ÓÁÐ
5¡¢ÐźÅ
6¡¢¹²ÏíÄÚ´æ
7¡¢Ì×½Ó×Ö
-------------------------------------------------------------------------------
linux½ø³Ì¼äͨÐÅ
1. ¹ÜµÀ¡£
  ÄäÃûÒ»´ÎÐÔʹÓõ쬰ëË«¹¤¡£Ò»¸ö½ø³ÌÍùÊä³ö¶Ëд¹ÜµÀ£¬ÁíÒ»¸ö½ø³Ì´Ó ......

linuxµÄÅäÖÃ

1.ÅäÍøÂç
<1># vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO×Ô¶¯Îªdhcp¾²Ì¬¸ÄΪstatic
¼´£ºBOOTPROTO=static
IPADDR=?
NETMASK=?
GATEWAY=?
ÎÒµÄÅäÖÃÈçÏ£º
DEVICE=eth0
BOOTPROTO=static
IPADDR=10.10.19.234s
NETMASK=255.255.254.0
GETEWAY=10.10.18.254
ONBOOT=yes
TYPE=Ethernet
×¢£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ