UCOS-II API ²Î¿¼ÊÖ²á ÏÂÔØ±¾ÎÄ

UCOS-II API ²Î¿¼ÊÖ²á

±¾ÕÂÌṩÁ˦ÌC/OS-¢òµÄÓû§Ö¸ÄÏ¡£Ã¿Ò»¸öÓû§¿ÉÒÔµ÷ÓõÄÄں˺¯Êý¶¼°´×Öĸ˳Ðò¼ÓÒÔ˵Ã÷£¬°üÀ¨£º

? º¯ÊýµÄ¹¦ÄÜÃèÊö ? º¯ÊýÔ­ÐÍ

? º¯ÊýÃû³Æ¼°Ô´´úÂë ? º¯ÊýʹÓõ½µÄ³£Á¿ ? º¯Êý²ÎÊý ? º¯Êý·µ»ØÖµ

? ÌØÊâ˵Ã÷ºÍ×¢Òâµã

OSInit( )

ËùÊôÎļþ OS_CORE.C Void OSInit(void);

µ÷ÓÃÕß ¿ª¹ØÁ¿ Æô¶¯´úÂë ÎÞ OSinit£¨£©³õʼ»¯¦ÌC/OS-¢ò£¬¶ÔÕâ¸öº¯ÊýµÄµ÷ÓñØÐëÔÚµ÷ÓÃOSStart£¨£©º¯Êý֮ǰ£¬¶øOSStart£¨£©º¯ÊýÕæÕý¿ªÊ¼ÔËÐжàÈÎÎñ¡£

²ÎÊý

ÎÞ

·µ»ØÖµ

ÎÞ

×¢Òâ/¾¯¸æ

±ØÐëÏÈÓÚOSStart£¨£©º¯ÊýµÄµ÷ÓÃ

·¶Àý£º

void main (void) {

.

OSInit(); /* ³õʼ»¯ uC/OS-II */ .

OSStart(); /*Æô¶¯¶àÈÎÎñÄÚºË */ }

¦ÌC/OS-II:ʵʱ²Ù×÷ϵͳÄÚºË

OSIntEnter( )

ËùÊôÎļþ OS_CORE.C Void OSIntEnter£¨void£©;

µ÷ÓÃÕß ¿ª¹ØÁ¿ ÖÐ¶Ï ÎÞ OSIntEnter£¨£©Í¨Öª¦ÌC/OS-¢òÒ»¸öÖжϴ¦Àíº¯ÊýÕýÔÚÖ´ÐУ¬ÕâÓÐÖúÓÚ¦ÌC/OS-¢òÕÆÎÕÖжÏǶÌ×µÄÇé¿ö¡£OSIntEnter£¨£©º¯Êýͨ³£ºÍOSIntExit£¨£©º¯ÊýÁªºÏʹÓá£

²ÎÊý

ÎÞ

·µ»ØÖµ

ÎÞ

×¢Òâ/¾¯¸æ

ÔÚÈÎÎñ¼¶²»Äܵ÷Óøú¯Êý¡£

Èç¹ûϵͳʹÓõĴ¦ÀíÆ÷Äܹ»Ö´ÐÐ×Ô¶¯µÄ¶ÀÁ¢Ö´ÐжÁÈ¡-ÐÞ¸Ä-дÈëµÄ²Ù×÷£¬ÄÇô¾Í¿ÉÒÔÖ±½ÓµÝÔöÖжÏǶÌײãÊý£¨OSIntNesting£©£¬ÕâÑù¿ÉÒÔ±ÜÃâµ÷Óú¯ÊýËù´øÀ´µÄ¶îÍâµÄ¿ªÏú¡£

·¶ÀýÒ»£º

£¨Intel 80x86µÄʵģʽ, ÔÚ´óģʽϱàÒ룬£¬real mode£¬large model£©

ISRx PROC FAR

PUSHA ; ±£´æÖжÏÏÖ³¡ PUSH ES PUSH DS ;

MOV AX, DGROUP ; ¶ÁÈëÊý¾Ý¶Î MOV DS, AX ;

CALL FAR PTR _OSIntEnter ; ֪ͨÄں˽øÈëÖÐ¶Ï . .

POP DS ; »Ö¸´ÖжÏÏÖ³¡ POP ES POPA

IRET ; ÖжϷµ»Ø ISRx ENDP

·¶Àý¶þ£º

£¨Intel 80x86µÄʵģʽ, ÔÚ´óģʽϱàÒ룬, real mode , large model£©

²Î¿¼ÊÖ²á

ISRx PROC FAR

PUSHA ; ±£´æÖжÏÏÖ³¡ PUSH ES PUSH DS ;

MOV AX, DGROUP ; ¶ÁÈëÊý¾Ý¶Î MOV DS, AX ;

INC BYTE PTR _OSIntNesting ; ֪ͨÄں˽øÈëÖÐ¶Ï . . .

POP DS ; »Ö¸´ÖжÏÏÖ³¡ POP ES POPA

IRET ; ÖжϷµ»Ø ISRx ENDP

¦ÌC/OS-II:ʵʱ²Ù×÷ϵͳÄÚºË

OSIntExit( )

ËùÊôÎļþ OS_CORE.C Void OSIntExit£¨void£©;

µ÷ÓÃÕß ¿ª¹ØÁ¿ ÖÐ¶Ï ÎÞ OSIntExit£¨£©Í¨Öª¦ÌC/OS-¢òÒ»¸öÖжϷþÎñÒÑÖ´ÐÐÍê±Ï£¬ÕâÓÐÖúÓÚ¦ÌC/OS-¢òÕÆÎÕÖжÏǶÌ×µÄÇé¿ö¡£Í¨³£OSIntExit£¨£©ºÍOSIntEnter£¨£©ÁªºÏʹÓᣵ±×îºóÒ»²ãǶÌ×µÄÖжÏÖ´ÐÐÍê±Ïºó£¬Èç¹ûÓиü¸ßÓÅÏȼ¶µÄÈÎÎñ×¼±¸¾ÍÐ÷£¬¦ÌC/OS-¢ò»áµ÷ÓÃÈÎÎñµ÷¶Èº¯Êý£¬ÔÚÕâÖÖÇé¿öÏ£¬ÖжϷµ»Øµ½¸ü¸ßÓÅÏȼ¶µÄÈÎÎñ¶ø²»ÊDZ»ÖжÏÁ˵ÄÈÎÎñ¡£

²ÎÊý

ÎÞ

·µ»ØÖµ

ÎÞ

×¢Òâ/¾¯¸æ

ÔÚÈÎÎñ¼¶²»Äܵ÷Óøú¯Êý¡£²¢ÇÒ¼´Ê¹Ã»Óе÷ÓÃOSIntEnter£¨£©¶øÊÇʹÓÃÖ±½ÓµÝÔöOSIntNestingµÄ·½·¨£¬Ò²±ØÐëµ÷ÓÃOSIntExit£¨£©º¯Êý¡£

·¶Àý£º

£¨Intel 80x86 µÄʵģʽ, ÔÚ´óģʽϱàÒ룬 real mode , large model£©

ISRx PROC FAR

PUSHA ; ±£´æÖжÏÏÖ³¡ PUSH ES PUSH DS . .

CALL FAR PTR _OSIntExit ; ֪ͨÄں˽øÈëÖÐ¶Ï POP DS ; »Ö¸´ÖжÏÏÖ³¡ POP ES POPA

IRET ; ÖжϷµ»Ø ISRx ENDP