s3c2410 RTCÇý¶¯¿ò¼ÜlinuxÄÚºËÔ´Âë·ÖÎö
ʵÔÚÎÞÁÄÖоͽ«ÔÀ´µÄһЩ¶«Î÷ÕûÀíÁËһϣ¬×Ô¼ºÊǸö¼ÇÐÔ²»ºÃµÄÈË£¬¸ô¶Ïʱ¼äÕûÀí×Ô¼º£¬Í¬Ê±Ò²Ï£Íû¿ÉÒÔ·½±ãËûÈË¡£
----------------------------------------------------------------------------------------------------------------------------------------
/**//*********************************************************************************************************
* @Description:s3c2410µÄrtcÇý¶¯µÄʵÏÖ£¬rtc(real time clock)ʵʱʱÖÓµÄÇý¶¯ÊǸöºÜºÃµÄ
* Àí½âÈç¹û±àдÇý¶¯µÄÓ²¼þ£¬Ëü°üÀ¨ÁË×î»ù±¾µÄÓ²Öжϣ¬ÈíÖжϵĵײã»úÖÆ£»
* s3c2410µÄRTCÇý¶¯µÄʵÏÖ¸öÈËÈÏΪ¸üÊǶÔlinuxÉ豸Çý¶¯Ò»¸öºÜºÃµÄÀý×Ó£¬ËûÊÇͨ¹ý¶þ²ã½á¹¹À´
* ʵÏÖµÄÒ»¸öÇý¶¯£¬ÉϲãÊÇÒ»¸öarm commonµÄ¹«¹²²ã£¬¶ÔÉÏÌṩ±ê×¼µÄͨÓõÄRTC²Ù×÷½Ó¿Ú£¬Ï²ãÓÉ
* ÎÒÃÇÀ´ÊµÏÖÕë¶Ô×Ô¼ºµÄchipºÍ×Ô¼ºÒªÌṩµÄ¹¦ÄÜÀ´ÊµÏÖµÄÒ»²ãÇý¶¯£»
*
* @FileTree:
**********************************************************************************************************
linux-2.6.14.6
|
|--arch
| |
| |--arm
| | |--mach-s3c2410
| | | |-devs.c //°üº¬Á˶Ը÷¸ö²¿¼þµÄresourceµÄ·ÖÅäºÍ¶¨Ò壬ÔÚÕâ¿´rtcµÄ×ÊÔ´£»
| | |--common
| | | |-rtctime.c //Ò»¸öarmƽ̨µÄͨÓÃrtcº¯Êý²ã£¬Ëü¶ÔÉÏÒþ²ØÁ˸÷ÖÖsocµÄrtc driverµÄÇø±ð£»
| | |--kernel
| | | |-time.c //Äں˵ijõʼ»¯Àý³Ìtime_init()»áµ÷ÓõÄxxx_cmos_xxxº¯ÊýµÄʵÏÖ£»¶¨ÒåÁËÈ«¾Ö×ÔÐýËørtc_lockÓÃÀ´´®Ðл¯ËùÓÐCPU¶ÔRTCµÄ²Ù×÷
|
|--drivers
| |--char
| | |-s3c2410-rtc.c //¾ßÌåµÄs3c2410ÉϵÄrtc chipµÄÇý¶¯ÊµÏÖ,Èç¹ûÐèÒªÔÚarmƽ
Ïà¹ØÎĵµ£º
Ò»¡¢ÒýÑÔ£º
±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØͼ£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾Ñ飨Õâ¸ö»¹µ ......
Ò». ÔÚcÖзÖΪÕ⼸¸ö´æ´¢Çø
1.Õ» - ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å
2.¶Ñ - Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ
3.È«¾ÖÇø£¨¾²Ì¬Çø£©£¬È«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬Î´³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£- ³ÌÐò½áÊøÊÍ·Å
4.ÁíÍ ......
×î½ü×öµÄһЩ¹¤×÷ÐèÒªÓõ½Ï̳߳ؼ¼Êõ£¬Òò´Ë²Î¿¼ÁËһЩ×ÊÁϺÍÊé¼®£¬È硶0bug c/c++ÉÌÓù¤³ÌÖ®µÀ¡·¡£
Ϊ´ËÔÚlinuxƽ̨ÉÏÓô¿cдÁËÒ»¸öÏ̳߳صÄʵÏÖ¡£
ÔÚ´ËÁгöÁËÔ´úÂë¡£
Ö÷ÒªÓõ½µÄÊý¾Ý½á¹¹ÓÐ
1.struct thread_pool_t // thread pool µÄʵÏÖ´úÂë
2.struct thread_pool_token_t &nb ......
ÏÂÃæ˵µ½µÄCÓïÑÔÖеÄ֪ʶ£¬ÎÒÖ»ÊÇÔÚ¹¤×÷Öо³£¼ûµ½»òÓõ½£¬µ«´ÓδÉΪʲô£¬½ñÌì²ÅÈ´µÀÔÀ´¼ò¼òµ¥µ¥ÏÂÃæÔÐÓýÕâÎÞÇîµÄ֪ʶµãºÍÎÒµÄäµã£¬ÊǸñßѧϰ±ß¼Ç¼ÁË¡£
Ô¤´¦ÀíÆ÷£¨Preprocessor£©
1 . ÓÃÔ¤´¦ÀíÖ¸Áî#define ÉùÃ÷Ò»¸ö³£Êý£¬ÓÃÒÔ±íÃ÷1ÄêÖÐÓжàÉÙÃ루ºöÂÔÈòÄêÎÊÌ⣩
#define ......
; ±àÒëÁ´½Ó·½·¨
; (ld µÄ‘-s’Ñ¡ÏîÒâΪ“strip all”)
; gcc -c not link
;
; [root@XXX XXX]# nasm -f elf foo.asm -o foo.o
; [root@XXX XXX]# gcc -c bar.c -o bar.o
; [root@XXX XXX]# ld -s foo.o bar.o -o foobar
; [root@XXX XXX]# ./foobar
; the 2nd one
; [root@XXX XXX]#
exter ......