a5xx ÉãÏñÍ·Çý¶¯ÒÆÖ²£¨For Linux 2.6.14£©
Spca5xx ÉãÏñÍ·Çý¶¯ÒÆÖ²£¨For Linux 2.6.14£©
Ò»£®ÏÂÔØ²¢½âѹSpca5xxÇý¶¯£¬±¾ÎÄʹÓÃÁËgspcav1-20070508°æ±¾¡£
¶þ£®°æ±¾ËµÃ÷£ºÖ®Ç°³¢ÊÔ¹ýspca5xx*µÄ¶à¸ö°æ±¾£¬ËäÈ»ÒÆÖ²Ã»ÓÐÎÊÌ⣬µ«ÊÇÔÚ½øÐÐv4lÓ¦ÓÃʱ£¬³öÏֺܶàĪÃûÆäÃîµÄ´íÎ󣬱ÈÈçISOC data errorµÈ£¬ºóÀ´»»³ÉÁË×îеÄgspca°æ±¾£¬ÎÊÌâÈ«²¿½â¾ö¡£
Èý£®ÍêÕû±àÒëÒÆÖ²ºÃµÄLinux 2.6.14 for S3C2410Äںˣ¬ÖÁÓÚ¹ý³Ì£¬¿É²Î¿¼blogÀïµÄÁíһƪÄÚºËÒÆÖ²Îĵµ¡£
ËÄ£®ÐÞ¸ÄMakefile
£¨1£© Ð޸ıäÁ¿KERNELDIR := ~/linux-2.6.14
£¨2£© Ð޸ıäÁ¿MODULE_INSTALLDIR := $KERNELDIR/drivers/usb/media/
£¨3£© Ð޸ıäÁ¿MODULE_INSTALLDIR2 := $KERNELDIR/drivers/media/video/
£¨4£© Ôö¼Ó±äÁ¿CROSS_COMPILE_CC := /usr/local/arm/3.4.1/bin/arm-linux-gcc
£¨ÕâÀïʹÓõıàÒëÆ÷ÊÇarm-linux-gcc-3.4.1£©
£¨5£© ÐÞ¸ÄÃüÁ
Ô´´úÂ룺$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules
½« $(CC) ÐÞ¸ÄΪ $(CROSS_COMPILE_CC)
Î壮±àÒëGspca
#make clean
#make
Áù£®½á¹û
ÔÚGspcaÖ÷Ŀ¼Ï²úÉúgspca.ko
Ïà¹ØÎĵµ£º
ÖÐ¶ÏÆÁ±ÎµÄʹÓ÷½·¨£º
local_irq_disable() //¹ØÖжÏ
local_irq_enable() //¿ªÖжÏ
ÕâÁ½¸öº¯Êý¶¼Ö»ÄܽûÖ¹ºÍʹÄܱ¾cpuÄÚµÄÖжϣ¬Òò´Ë£¬²¢²»Äܽâ¾öSMP¶àcpuÒý·¢µÄ¾ºÌ¬¡£Òò´Ë£¬µ¥¶ÀʹÓÃÖÐ¶ÏÆÁ±Îͨ³£²»ÊÇÒ»ÖÖÖµµÃÍÆ¼öµÄ±ÜÃ⾺̬µÄ·½·¨£¬ËüÊÊÒËÓë×ÔÐýËøÁªºÏʹÓÃ
ÁíÍ⣬local_irq_save(flags)³ýÁ˽øÐнûÖ¹ÖжϲÙ×÷ÒÔÍ⣬»¹± ......
ÖжϣºcpuÔÚÖ´ÐгÌÐòµÄ¹ý³ÌÖУ¬³öÏÖÁËijЩͻ·¢Ê¼þʱcpu±ØÐëÔÝÍ£Ö´Ðе±Ç°µÄ³ÌÐò£¬×ªÈ¥´¦ÀíÍ»·¢Ê¼þ£¬´¦ÀíÍê±ÏºócpuÓÖ·µ»ØÔ³ÌÐò±»ÖжϵÄλÖò¢¼ÌÐøÖ´ÐÐ
¸ù¾ÝÖжÏÈë¿ÚÌø×ª·½·¨µÄ²»Í¬£¬ÖжϷÖΪÏòÁ¿ÖжϺͷÇÏòÁ¿Öжϡ£
²ÉÓÃÏòÁ¿ÖжϵÄcpuͨ³£Îª²»Í¬µÄÖжϷÖÅ䲻ͬµÄÖжϺţ¬µ±¼ì²âµ½Ä³ÖжϺŵÄÖжϵ½À´ºó£¬¾Í×Ô¶¯Ì ......
typedef void (*lpFunction) ();//¶¨ÒåÒ»¸öÎÞ²ÎÊý£¬ÎÞ·µ»ØÀàÐ͵ĺ¯ÊýÖ¸ÕëÀàÐÍ
//¶¨ÒåÒ»¸öº¯ÊýÖ¸Õ룬ָÏòcpuÆô¶¯ºóËùÖ´ÐеĵÚÒ»ÌõÖ¸ÁîµÄλÖÃ
lpFunction lpReset = (lpFunction)0xF000FFF0;
lpReset();//µ÷Óú¯Êý
MMUÍ£¹©ÐéÄâµØÖ·ºÍÎïÀíµØÖ·µÄÓ³Éä¡¢ÄÚ´æ·ÃÎÊȨÏÞ±£»¤ºÍCache»º´æ¿ØÖƵÈÓ²¼þÖ§³Ö¡£²Ù×÷ϵͳÄں˽èÖ ......
1.Ê×ÏÈldd²»ÊÇÒ»¸ö¿ÉÖ´ÐгÌÐò£¬¶øÖ»ÊÇÒ»¸öshell½Å±¾
2¡¢lddÄܹ»ÏÔʾ¿ÉÖ´ÐÐÄ£¿éµÄdependency£¬ÆäÔÀíÊÇͨ¹ýÉèÖÃһϵÁеĻ·¾³±äÁ¿£¬ÈçÏ£ºLD_TRACE_LOADED_OBJECTS¡¢LD_WARN¡¢LD_BIND_NOW¡¢LD_LIBRARY_VERSION¡¢
LD_VERBOSEµÈ¡£µ±LD_TRACE_LOADED_OBJECTS»·¾³±äÁ¿²»Îª¿Õʱ£¬ÈκοÉÖ´ÐгÌÐòÔÚÔËÐÐʱ£¬Ëü¶¼»áÖ»ÏÔʾģ ......
¶Ô±È£ºLinuxºÍWindowsϵͳÏ̼߳äµÄÇø±ð
ÊìϤWIN32±à³ÌµÄÈËÒ»¶¨ÖªµÀ£¬WIN32µÄ½ø³Ì¹ÜÀí·½Ê½ÓëLinuxÉÏÓÐןܴóÇø±ð£¬ÔÚUNIXÀֻÓнø³ÌµÄ¸ÅÄµ«ÔÚWIN32ÀïÈ´»¹ÓÐÒ»¸ö"Ïß³Ì"µÄ¸ÅÄÄÇôLinuxºÍWIN32ÔÚÕâÀ﾿¾¹ÓÐ×ÅÊ²Ã´Çø±ðÄØ£¿
WIN32ÀïµÄ½ø³Ì/Ïß³ÌÊǼ̳Ð×ÔOS/2µÄ¡£ÔÚWIN32À"½ø³Ì"ÊÇÖ¸Ò»¸ö³ÌÐò£¬¶ø"Ïß³Ì"ÊÇÒ ......