linux±àÒë³öÏÖ´íÎó
ÒýÓãºhttp://blog.chinaunix.net/u/12207/showart_2061214.html
¹ØÓÚ2.6.31Óöµ½µÄÎÊÌâ
´íÎóÌáʾ1£º
drivers/built-in.o(.init.text+0x3bad): In function `con_init':
include/trace/events/kmem.h:47: undefined reference to `.L1452'
½â¾ö£º
vi /usr/src/linux/drivers/char/vt.c ÕÒµ½static int __init con_init(void)º¯ÊýÖУ¬ÒÔÏÂÓï¾ä
ɾ³ýÒÔÏÂÐÐ(µÚ2875ÐÐ)
vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
ÔÚÏàͬλÖÃÌí¼Ó£º
vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));
ͬʱ¼ÇµÃ¼ÓÉÏÍ·Îļþ #include <linux/bootmem.h>£¬·ñÔò»á³öÏÖµÚ2¸ö´íÎó¡£
´íÎóÌáʾ2£º
drivers/char/vt.c: In function `con_init':
drivers/char/vt.c:2875: error: implicit declaration of function `alloc_bootmem'
drivers/char/vt.c:2875: warning: assignment makes pointer from integer without a cast
ÔÒò£ºvt.cÖÐÒýÓÃÁËalloc_bootmem£¬µ«ÊÇÕÒ²»µ½Ïà¹Ø.h¶¨ÒåÎļþ»òûÓÐÔÚÏà¹ØµÄÍ·Îļþ.hÖж¨Òå
½â¾ö£º
# vi /usr/src/linux/drivers/char/vt.c£¬Ìí¼ÓÒÔÏÂÕâÐУº
#include <linux/bootmem.h>
´íÎóÌáʾ3£º
drivers/message/fusion/mptsas.c: In function `mptsas_port_delete':
drivers/message/fusion/mptsas.c:105: sorry, unimplemented: inlining failed in call to 'mptsas_set_rphy': function body not available
drivers/message/fusion/mptsas.c:467: sorry, unimplemented: called from here
ÔÒò£º
mptsas_port_deleteÖÐÒýÓÃÁËmptsas_set_rphy£¬µ«mptsas_set_rphyµÄ¶¨ÒåÈ´ÔÚmptsas_port_deleteÖ®ºó¡£
½â¾ö£º
vi /usr/src/linux/drivers/message/fusion/mptsas.c£¬½«mptsas_set_rphyµÄ¶¨Ò壨µÚ483ÐÐÆð£©Òƶ¯µ½mptsas_port_deleteµÄ¶¨Ò壨µÚ446ÐУ©Ç°Ãæ¼´¿É¡£
Ïà¹ØÎĵµ£º
Linux
Äں˱à³Ìѧϰ
³£³£ÓÐÈËÎÊ£ºÎÒÏëѧϰÄںˣ¬ÐèҪʲô»ù´¡Âð£¿Linus Torvalds
±¾ÈËÊÇÕâÑù»Ø´ðµÄ£ºÄã±ØÐëʹÓùý
Linux
¡£ Õâ¸ö
……
»¹ÊÇÓеãÌ«·ºÁ˰ɣ¬ÎÒÏëÏÂÃæ¼¸¸ö»ù´¡¿ÉÄÜ»¹ÊÇÐèÒªµÄ£¬¾¡¹Ü²»Ò»¶¨±ØÐ裺
1, ¹ØÓÚ²Ù×÷ϵͳÀíÂÛµÄ×î³õ¼¶µÄ֪ʶ¡£²»ÐèҪͨ¶Á²¢Àí½â¡¶²Ù×÷ϵͳ¸ÅÄ ......
Book Note: Linux Device Driver Dos and Don'ts
http://janitor.kernelnewbies.org/docs/driver-howto.html
what a hardened (robust) device
driver should mean and how it should be implemented and measured.
1.3 Robust device drivers
-Follows the Linux CodingStyle.
-Efficient in managing faults and ha ......
2010-3-8
Ò»¡¢gccµ÷ÊÔ£º
Èç¹û±àÒëʱ£¬Ê¹ÓÃÏÂÃæµÄÖ¸Áî(Ôö¼ÓÁ˲ÎÊý-g)£¬¾Í»áÉú³É´øÔ´´úÂëµ÷ÊÔ·ûºÅµÄ¿ÉÖ´ÐÐÎļþ¡£±àÒëÐγɵĿÉÖ´ÐÐÎļþÓÐ7KB¡£Ö®ËùÒÔÔö¼ÓÁË2KB£¬¾ÍÊÇÒòΪÔö¼ÓµÄµ÷ÊÔ·ûºÅ¡£
gcc -o calc calcutlator.c -g
½øÒ»²½µØ£¬¾Í¿ÉÒÔÖ´ÐÐÏÂÃæµÄÖ¸ÁîÆô¶¯µ÷ÊÔ¹¤¾ß½øÈëµ÷ÊÔ»·¾³¶Ô³ÌÐò½øÐе÷ÊÔÁË¡£
gdb calc
ÔÚµ÷ÊÔ»·¾³Ï ......
Linux I2CºËÐÄ¡¢×ÜÏßÓëÉ豸Çý¶¯
×¢:
ÔÚlinux2.6.32°æ±¾ÖÐÓÐÕâÑùµÄ´úÂëÓë×¢ÊÍ:
struct i2c_driver {
unsigned int class;
/* Notifies the driver that a new bus has appeared or is about to be
* removed. You should avoid using this if y ......
ǰÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
1.ÎļþµÄ´´½¨ºÍ¶Áд
2.ÎļþµÄ¸÷¸öÊôÐÔ
3.Ŀ¼ÎļþµÄ²Ù×÷
4.¹ÜµÀÎļþ
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
......