£¨1£©ÈýÐǵĴ¥ÃþÆÁÇý¶¯s3c-ts.c£º
s3c_ts_init-¡·platform_driver_register(&s3c_ts_driver)£»
static struct platform_driver s3c_ts_driver = {
.probe = s3c_ts_probe,
.driver = {
.owner = THIS_MODULE,
.name = "s3c-ts",},
};
ͨ¹ý"s3c-ts"×Ö·û´®Óëdev-ts.cµÄs3c_device_tsÖеÄname×Ö´®Æ¥Å䣬ʵÏÖ×¢²á¡£
static int __init s3c_ts_probe(struct platform_device *pdev)
{
platform_get_resource(pdev, IORESOURCE_MEM, 0); //»ñµÃMEM×ÊÔ´
request_mem_region(res->start, size, pdev->name); //»ñµÃMEM×ÊÔ´´óС
ioremap(res->start, size); //¶ÔMEM×ÊÔ´ÖØÐÂIO
clk_enable(ts_clock); &n ......
ÕâÒ»²¿·ÖµÄÌá³öÊÇΪÁË·Àֹʧ¿ØµÄ½ø³ÌÆÆ»µÏµÍ³µÄÐÔÄÜ
nuixºÍLinux¸ú×Ù½ø³ÌʹÓõĴ󲿷Ö×ÊÔ´£¬ÔÊÐíÓû§ºÍϵͳ¹ÜÀíԱʹÓöԽø³ÌµÄ×ÊÔ´ÏÞÖÆ
ÉèÖõÄÏÞÖÆÓÐÁ½ÖÖ£º Ó²ÏÞÖÆºÍÈíÏÞÖÆ
Ó²ÏÞÖÆÊÇ¿ÉÒÔÔÚÈκÎʱºòÈκνø³ÌÖÐÉèÖà µ«Ó²ÏÞÖÆÖ»ÄÜÓɳ¬¼¶Óû§ÌáÆð
ÈíÏÞÖÆÊÇÄÚºËʵ¼ÊÖ´ÐеÄÏÞÖÆ£¬Èκνø³Ì¶¼¿ÉÒÔ½«ÈíÏÞÖÆÉèÖÃΪÈÎÒâСÓÚµÈÓÚ¶Ô½ø³ÌÏÞÖÆµÄÓ²ÏÞÖÆµÄÖµ
———————ÒÔÏÂÄÚÈÝÎª×ªÔØ£¨Í»È»·¢ÏÖÕâ·½ÃæÓкÃ×ÊÔ´±ãÖ±½ÓÒýÓÃÁË£©—————————
getrlimitºÍsetrlimitº¯Êý
¡¡¡¡Ã¿¸ö½ø³Ì¶¼ÓÐÒ»×é×ÊÔ´ÏÞÖÆ£¬ÆäÖÐijһЩ¿ÉÒÔÓÃgetrlimitºÍsetrlimitº¯Êý²éѯºÍ¸ü¸Ä¡£
#include
#include
int getrlimit(int resource,struct rlimit *rlptr);
int setrlimit(int resource,const struct rlimit rlptr);
Both return: 0 if OK,nonzero on errorÁ½¸öº¯Êý
¡¡¡¡·µ»Ø£ºÈô³É¹¦Îª0£¬³ö´íΪ·Ç0
¡¡¡¡¶ÔÕâÁ½¸öº¯ÊýµÄÿһ´Îµ÷Óö¼Ö¸¶¨Ò»¸ö×ÊÔ´ÒÔ¼°Ò»¸öÖ¸ÏòÏÂÁнṹµÄÖ¸Õë¡£
struct rlimit{
rlim rlim ur;/* ÈíÏÞÖÆ£ºµ±Ç°ÏÞÖÆ */
rlim rlim ax;£¯* Ó²ÏÞÖÆ£ºrlimcurµÄ×î´óÖµ */
}£»
¡¡¡¡ÕâÁ ......
ÕâÊÇÍøÉÏÌṩµÄ·½·¨£º
¡¡¡¡.Tar.gz
¡¡¡¡½âѹ£ºTar zxvf FileName.Tar.gz
¡¡¡¡Ñ¹Ëõ£ºTar zcvf FileName.Tar.gz DirName
´óÖÂ×ܽáÁËÒ»ÏÂLinuxϸ÷ÖÖ¸ñʽµÄѹËõ°üµÄѹËõ¡¢½âѹ·½·¨¡£µ«ÊDz¿·Ö·½·¨ÎÒûÓÐÓõ½£¬Ò²¾Í²»È«£¬Ï£Íû´ó¼Ò°ïÎÒ²¹³ä£¬ÎÒ½«ËæÊ±ÐÞ¸ÄÍêÉÆ£¬Ð»Ð»£¡
¡¡¡¡.Tar
¡¡¡¡½â°ü£ºTar xvf FileName.Tar
¡¡¡¡´ò°ü£ºTar cvf FileName.Tar DirName
¡¡¡¡£¨×¢£ºTarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
¡¡¡¡---------------------------------------------
¡¡¡¡.gz
¡¡¡¡½âѹ1£ºgunzip FileName.gz
¡¡¡¡½âѹ2£ºgzip -d FileName.gz
¡¡¡¡Ñ¹Ëõ£ºgzip FileName
¡¡¡¡.Tar.gz ºÍ .tgz
¡¡¡¡½âѹ£ºTar zxvf FileName.Tar.gz
¡¡¡¡Ñ¹Ëõ£ºTar zcvf FileName.Tar.gz DirName
¡¡¡¡---------------------------------------------
¡¡¡¡.bz2
¡¡¡¡½âѹ1£ºbzip2 -d FileName.bz2
¡¡¡¡½âѹ2£ºbunzip2 FileName.bz2
¡¡¡¡Ñ¹Ëõ£º bzip2 -z FileName
¡¡¡¡.Tar.bz2
¡¡¡¡½âѹ£ºTar jxvf FileName.Tar.bz2
¡¡¡¡Ñ¹Ëõ£ºTar jcvf FileName.Tar.bz2 DirName
¡¡¡¡---------------------------------------------
¡¡¡¡.bz
¡¡¡¡½âѹ1£ºbzip2 -d FileName.bz
¡¡¡¡ ......
·¢²¼µÄ 2.6.23 ÄÚºËÖаüº¬ÁËÒ»¸öÖØÒªµÄ±ä»¯£¬ÓÃCFSÌæ´úÁËÒÔǰµÄµ÷¶ÈÆ÷¡£CFS ±»ºÏ²¢µ½ mainline ֮ǰ£¬¹ØÓÚÄں˵÷¶ÈÆ÷»¹ÓÐÒ»¸öÖØÒªµÄ patch£ºRSDL¡£×îÖÕ 2.6.23 ¾ö¶¨½« CFS ºÏ²¢µ½ mainline ¶ø·ÅÆúÁË RSDL¡£ÎªÊ²Ã´ÒªÒýÈëеĵ÷¶ÈÆ÷£¬CFS ºÍ RSDL ÓÐʲôÁªÏµºÍÇø±ð£¿±¾ÎÄÊÔͼ¶ÔÄں˵÷¶ÈËã·¨µÄ·¢Õ¹ÀúÊ·×öÒ»¸ö¼òÒª½éÉÜ£¬Ï£ÍûÄܶÔÉÏÊöÎÊÌâµÄÀí½âÓÐËù°ïÖú¡£
ÒýÑÔ
½ø³Ìµ÷¶ÈÊDzÙ×÷ϵͳµÄºËÐŦÄÜ¡£µ÷¶ÈÆ÷Ö»ÊÇÊǵ÷¶È¹ý³ÌÖеÄÒ»²¿·Ö£¬½ø³Ìµ÷¶ÈÊǷdz£¸´ÔӵĹý³Ì£¬ÐèÒª¶à¸öϵͳÐͬ¹¤×÷Íê³É¡£±¾ÎÄËù¹Ø×¢µÄ½öΪµ÷¶ÈÆ÷£¬ËüµÄÖ÷Òª¹¤×÷ÊÇÔÚËùÓÐ RUNNING ½ø³ÌÖÐÑ¡Ôñ×îºÏÊʵÄÒ»¸ö¡£×÷Ϊһ¸öͨÓòÙ×÷ϵͳ£¬Linux µ÷¶ÈÆ÷½«½ø³Ì·ÖΪÈýÀࣺ
½»»¥Ê½½ø³Ì
´ËÀà½ø³ÌÓдóÁ¿µÄÈË»ú½»»¥£¬Òò´Ë½ø³Ì²»¶ÏµØ´¦ÓÚ˯Ãß״̬£¬µÈ´ýÓû§ÊäÈë¡£µäÐ͵ÄÓ¦ÓñÈÈç±à¼Æ÷ vi¡£´ËÀà½ø³Ì¶ÔϵͳÏìӦʱ¼äÒªÇó±È½Ï¸ß£¬·ñÔòÓû§»á¸Ð¾õϵͳ·´Ó¦³Ù»º¡£
Åú´¦Àí½ø³Ì
´ËÀà½ø³Ì²»ÐèÒªÈË»ú½»»¥£¬ÔÚºǫ́ÔËÐУ¬ÐèÒªÕ¼ÓôóÁ¿µÄϵͳ×ÊÔ´¡£µ«ÊÇÄܹ»ÈÌÊÜÏìÓ¦ÑÓ³Ù¡£±ÈÈç±àÒëÆ÷¡£
ʵʱ½ø³Ì
ʵʱ¶Ôµ÷¶ÈÑÓ³ÙµÄÒªÇó×î¸ß£¬ÕâЩ½ø³ÌÍùÍùÖ´Ðзdz£ÖØÒªµÄ²Ù×÷£¬ÒªÇóÁ¢¼´ÏìÓ¦²¢Ö´ÐС£±ÈÈçÊÓÆµ²¥·ÅÈí¼þ»ò·É»ú·ÉÐпØÖÆÏµÍ³£¬ºÜÃ÷ÏÔÕâÀà³ÌÐò²»Ä ......
×¼±¸¹¤×÷
qt-everywhere-opensource-src-4.6.2.tar
½âѹ tar xvzf qt-everywhere-opensource-src-4.6.2.tar
ÅäÖÃ:
./configure -prefix /home/hyk/Qt_self_compiled/Qt_4_6_2
£¨Ö»ÊǸıäÁ˰²×°Ä¿Â¼£©
gmake
(ÖØÅäÖÃ gmake confclean , configure)
ÖÐÎç12µã2·Ö¿ªÊ¼±àÒ룬ȥ³Ô·¹£¬µÈ´ý±àÒëÍê³É
1µã52 »ØÀ´¿´ £¬±àÒëÒѾÍê³É
gmake install
Íê³É°²×° ......
linuxÉ豸Çý¶¯¿ª·¢Ïê½â——globalmem
ÊÕ²Ø
³£¼ûµÄÁ½ÖÖ´íÎó£º
1.ÔÚ²åÈëÄ£¿éµÄʱºò³öÏÖÈçÏÂÎÊÌ⣺
# insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1
Device or resource busy
ANSWER:Ö÷É豸ºÅ±»Õ¼ÓÃÁË£¬»»ÁíÒ»¸ö¡£ Äã°Ñglobalmem.cÎļþÀïÃæµÄºê¶¨ÒåÄÇÀï¸ÄΪ226»òÆäËû£¬È»ºóÔÙ±àÒë¾Í¿ÉÒÔ²åÈëÁË£¡
ÌØ±ð×¢Ò⣺ Èç¹û»»ÁËÖ÷É豸ºÅÒÔºó£¬ÏÂÃæ½Ó×Å´´½¨½ÚµãµÄʱºòÒ²Òª¸Ã£¬·ñÔò³öÏÖÏÂÃæ´íÎó£º
# mknod /dev/globalmem c 254 0 /*ÕâÀïµÄ254¸úÒÑÐ޸ĵÄÖ÷É豸ºÅ228²»Ò»ÖÂ*/
# echo
'hello world' > /dev/globalmem
/bin/sh: can't create
/dev/globalmem: No such device or address
½â¾ö°ì·¨£º
# rm /dev/globalmem
# mknod /dev/globalmem c 226 0
# echo
'hello world' > /dev/globalmem
written 12 bytes(s) from 0
2.¼ÓÔØºÍ´´½¨É豸½Úµã¶¼Êdzɹ¦µÄ£®µ«¾ÍÊÇÓÃcatÃüÁî²é¿´Ê±£¬ËäÈ»¶Á³öÁËÕýÈ·µÄ×Ö·û£¬È´×ÜÊÇÔÚ×îºó»¹Òª¼ÓÉÏÒ»¾äÌáʾ£¢ÕÒ²»µ½É豸»òµØ ......