Linux¾²Ì¬¿âºÍ¶¯Ì¬¿â
¿â´Ó±¾ÖÊÉÏÀ´ËµÊÇÒ»ÖÖ¿ÉÖ´ÐдúÂëµÄ¶þ½øÖƸñʽ£¬¿ÉÒÔ±»ÔØÈëÄÚ´æÖÐÖ´ÐС£¿â·Ö¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£
¾²Ì¬¿âºÍ¶¯Ì¬¿âµÄÇø±ð
1. ¾²Ì¬º¯Êý¿â
ÕâÀà¿âµÄÃû×ÖÒ»°ãÊÇlibxxx.a£»ÀûÓþ²Ì¬º¯Êý¿â±àÒë³ÉµÄÎļþ±È½Ï´ó£¬ÒòΪÕû¸ö º¯Êý¿âµÄËùÓÐÊý¾Ý¶¼»á±»ÕûºÏ½øÄ¿±ê´úÂëÖУ¬ËûµÄÓŵã¾ÍÏÔ¶øÒ×¼ûÁË£¬¼´±àÒëºóµÄÖ´ÐгÌÐò²»ÐèÒªÍⲿµÄº¯Êý¿âÖ§³Ö£¬ÒòΪËùÓÐʹÓõĺ¯Êý¶¼ÒѾ±»±àÒë½øÈ¥ÁË¡£µ±È»ÕâÒ²»á³ÉΪËûµÄȱµã£¬ÒòΪÈç¹û¾²Ì¬º¯Êý¿â¸Ä±äÁË£¬ÄÇôÄãµÄ³ÌÐò±ØÐëÖØÐ±àÒë¡£
2. ¶¯Ì¬º¯Êý¿â
ÕâÀà¿âµÄÃû×ÖÒ»°ãÊÇlibxxx.so;Ïà¶ÔÓÚ¾²Ì¬º¯Êý¿â£¬¶¯Ì¬º¯Êý¿âÔÚ±àÒëµÄʱºò ²¢Ã»Óб»±àÒë½øÄ¿±ê´úÂëÖУ¬ÄãµÄ³ÌÐòÖ´Ðе½Ïà¹Øº¯Êýʱ²Åµ÷Óøú¯Êý¿âÀïµÄÏàÓ¦º¯Êý£¬Òò´Ë¶¯Ì¬º¯Êý¿âËù²úÉúµÄ¿ÉÖ´ÐÐÎļþ±È½ÏС¡£ÓÉÓÚº¯Êý¿âûÓб»ÕûºÏ½øÄãµÄ³ÌÐò£¬¶øÊdzÌÐòÔËÐÐʱ¶¯Ì¬µÄÉêÇë²¢µ÷Óã¬ËùÒÔ³ÌÐòµÄÔËÐл·¾³ÖбØÐëÌṩÏàÓ¦µÄ¿â¡£¶¯Ì¬º¯Êý¿âµÄ¸Ä±ä²¢²»Ó°ÏìÄãµÄ³ÌÐò£¬ËùÒÔ¶¯Ì¬º¯Êý¿âµÄÉý¼¶±È½Ï·½±ã¡£
linuxϵͳÓм¸¸öÖØÒªµÄĿ¼´æ·ÅÏàÓ¦µÄº¯Êý¿â£¬Èç/lib /usr/lib¡£
¾²Ì¬¿âµÄʹÓÃ
¾²Ì¬¿âµÄ²Ù×÷¹¤¾ß£ºgccºÍar ÃüÁî¡£
±àд¼°Ê¹Óþ²Ì¬¿â
(1)Éè¼Æ¿âÔ´Âë pr1.c ºÍ pr2.c
[root@billstone make_lib]# cat pr1.c
void print1()
{
printf("This is the first lib src!\n");
}
[root@billstone make_lib]# cat pr2.c
void print2()
{
printf("This is the second src lib!\n");
}
(2) ±àÒë.c Îļþ
[bill@billstone make_lib]$ cc -O -c pr1.c pr2.c
[bill@billstone make_lib]$ ls -l pr*.o
-rw-rw-r-- 1 bill bill 804 4 ÔÂ 15 11:11 pr1.o
-rw-rw-r-- 1 bill &nbs
Ïà¹ØÎĵµ£º
ÎÒÓõÄÊÇ×îÆÕͨµÄusbÉãÏñÍ·£¬Ö÷оƬΪÖÐÐÇ΢ZC0301P£¨¾Ý˵Êг¡Õ¼ÓÐÂÊ70£¥ÒÔÉÏ£©£¬COMS´«¸ÐÆ÷ΪhynixµÄhv7131e1,ÊÐÃæÉÏÄÜÂòµ½µÄ»ù±¾ÉÏÊÇÕâÖÖÅäÖá£
linuxÏÂÇý¶¯£¬ÎÒÖ±½ÓÒÆÖ²spca5xx£¬ÏÖÔÚ³öÁËspc5xx-le£¨Light-Edition for Linux Embedded£©¸ü·½±ã£¬Ö±½ÓÕë¶ÔǶÈëʽϵͳ×öÁËÓÅ»¯£¬¿ÉÒԲο¼ÕâÀïhttp://mxh ......
ÔÚÉ豸Çý¶¯·½Ã棬Linux2.6Ïà¶ÔÓÚLinux2.4ÓнϴóµÄ¸Ä¶¯£¬ÕâÖ÷Òª±íÏÖÔÚÄÚºËAPIÖÐÔö¼ÓÁ˲»ÉÙй¦ÄÜ£¨ÈçÄÚ´æ³Ø£©¡¢sysfsÎļþϵͳ¡¢ÄÚºËÄ£¿é´Ó.o±äΪ.ko¡¢Çý¶¯Ä£¿é±àÒ뷽ʽ¡¢Ä£¿éʹÓüÆÊý¡¢Ä£¿é¼ÓÔØºÍÐ¶ÔØº¯ÊýµÄ¶¨ÒåµÈ·½Ãæ
LinuxÄÚºËÖ÷ÒªÓнø³Ìµ÷¶È¡¢ÄÚ´æ¹ÜÀí¡¢ÐéÄâÎļþϵͳ¡¢ÍøÂç½Ó¿ÚºÍ½ø³Ì¼äͨÐŵÈ5¸ö×Óϵͳ×é³É£¬ÈçÏÂͼ£º
......
ÖÐ¶ÏÆÁ±ÎµÄʹÓ÷½·¨£º
local_irq_disable() //¹ØÖжÏ
local_irq_enable() //¿ªÖжÏ
ÕâÁ½¸öº¯Êý¶¼Ö»ÄܽûÖ¹ºÍʹÄܱ¾cpuÄÚµÄÖжϣ¬Òò´Ë£¬²¢²»Äܽâ¾öSMP¶àcpuÒý·¢µÄ¾ºÌ¬¡£Òò´Ë£¬µ¥¶ÀʹÓÃÖÐ¶ÏÆÁ±Îͨ³£²»ÊÇÒ»ÖÖÖµµÃÍÆ¼öµÄ±ÜÃ⾺̬µÄ·½·¨£¬ËüÊÊÒËÓë×ÔÐýËøÁªºÏʹÓÃ
ÁíÍ⣬local_irq_save(flags)³ýÁ˽øÐнûÖ¹ÖжϲÙ×÷ÒÔÍ⣬»¹± ......
ÖжϣºcpuÔÚÖ´ÐгÌÐòµÄ¹ý³ÌÖУ¬³öÏÖÁËijЩͻ·¢Ê¼þʱcpu±ØÐëÔÝÍ£Ö´Ðе±Ç°µÄ³ÌÐò£¬×ªÈ¥´¦ÀíÍ»·¢Ê¼þ£¬´¦ÀíÍê±ÏºócpuÓÖ·µ»ØÔ³ÌÐò±»ÖжϵÄλÖò¢¼ÌÐøÖ´ÐÐ
¸ù¾ÝÖжÏÈë¿ÚÌø×ª·½·¨µÄ²»Í¬£¬ÖжϷÖΪÏòÁ¿ÖжϺͷÇÏòÁ¿Öжϡ£
²ÉÓÃÏòÁ¿ÖжϵÄcpuͨ³£Îª²»Í¬µÄÖжϷÖÅ䲻ͬµÄÖжϺţ¬µ±¼ì²âµ½Ä³ÖжϺŵÄÖжϵ½À´ºó£¬¾Í×Ô¶¯Ì ......
Spca5xx ÉãÏñÍ·Çý¶¯ÒÆÖ²£¨For Linux 2.6.14£©
Ò»£®ÏÂÔØ²¢½âѹSpca5xxÇý¶¯£¬±¾ÎÄʹÓÃÁËgspcav1-20070508°æ±¾¡£
¶þ£®°æ±¾ËµÃ÷£ºÖ®Ç°³¢ÊÔ¹ýspca5xx*µÄ¶à¸ö°æ±¾£¬ËäÈ»ÒÆÖ²Ã»ÓÐÎÊÌ⣬µ«ÊÇÔÚ½øÐÐv4lÓ¦ÓÃʱ£¬³öÏֺܶàĪÃûÆäÃîµÄ´íÎ󣬱ÈÈçISOC data errorµÈ£¬ºóÀ´»»³ÉÁË×îеÄgspca°æ±¾£¬ÎÊÌâÈ«²¿½â¾ö¡£
Èý£®ÍêÕû±àÒëÒÆÖ²ºÃµÄLi ......