ãã®èšäºã§ã¯ãNucleus SEã®ã¿ã¹ã¯éã®çžäºäœçšã®ããã®æãåçŽãªã¡ã«ããºã ã§ããã·ã°ãã«ã«ã€ããŠèª¬æããŸãã ãããã¯ãã¿ã¹ã¯éã§ç°¡åãªã¡ãã»ãŒãžã転éããããã®äœã³ã¹ãã®æ¹æ³ãæäŸããŸãã
ã·ãªãŒãºã®ä»¥åã®èšäºïŒ
èšäºïŒ15ã ã¡ã¢ãªããŒãã£ã·ã§ã³ïŒãµãŒãã¹ãšããŒã¿æ§é
èšäºïŒ14ã ã¡ã¢ãªã®ã»ã¯ã·ã§ã³ïŒçŽ¹ä»ãšåºæ¬ãµãŒãã¹
èšäºïŒ13ã ã¿ã¹ã¯ããŒã¿æ§é ãšãµããŒããããŠããªãAPIåŒã³åºã
èšäºïŒ12ã ã¿ã¹ã¯ãæäœããããã®ãµãŒãã¹
èšäºïŒ11ã ã¿ã¹ã¯ïŒAPIã®æ§æãšçŽ¹ä»
èšäºïŒ10ã ã¹ã±ãžã¥ãŒã©ïŒé«åºŠãªæ©èœãšã³ã³ããã¹ãã®ä¿å
èšäºïŒ9ã ã¹ã±ãžã¥ãŒã©ïŒå®è£
èšäºïŒ8ã Nucleus SEïŒå éšèšèšãšå±é
èšäºïŒ7ã Nucleus SEïŒã¯ããã«
èšäºïŒ6ã ãã®ä»ã®RTOSãµãŒãã¹
èšäº5ã ã¿ã¹ã¯ã®çžäºäœçšãšåæ
èšäº4ã ã¿ã¹ã¯ãã³ã³ããã¹ãã®åãæ¿ããããã³å²ã蟌ã¿
èšäºïŒ3ã ã¿ã¹ã¯ãšèšç»
èšäºïŒ2ã RTOSïŒæ§é ãšãªã¢ã«ã¿ã€ã
èšäºïŒ1ã RTOSïŒã¯ããã«ã
ä¿¡å·ã䜿çšãã
ã·ã°ãã«ã¯ãèªåŸçã§ã¯ãªããšããç¹ã§ä»ã®ãã¹ãŠã®ã¿ã€ãã®ã«ãŒãã«ãªããžã§ã¯ããšç°ãªããŸããã·ã°ãã«ã¯ã¿ã¹ã¯ã«é¢é£ä»ããããŠãããã¿ã¹ã¯ãªãã§ã¯ååšã§ããŸããã ã¢ããªã±ãŒã·ã§ã³ãã·ã°ãã«ã䜿çšããããã«æ§æãããŠããå Žåãåã¿ã¹ã¯ã«ã¯8ã€ã®ã·ã°ãã«ãã©ã°ã®ã»ããããããŸãã
ã©ã®ã¿ã¹ã¯ã§ããå¥ã®ã¿ã¹ã¯ã®ã·ã°ãã«ãèšå®ã§ããŸãã ã·ã°ãã«ã¯ãã·ã°ãã«ã®ææè ã®ã¿ãèªã¿åãããšãã§ããŸãã èªã¿åãäžãä¿¡å·ã¯ãªã»ãããããŸãã ã¿ã¹ã¯ã¯ãä»ã®ã¿ã¹ã¯ããä¿¡å·ãèªã¿åã£ãããªã»ãããããããããšã¯ã§ããŸããã
Nucleus RTOSã«ã¯ãå¥ã®ã¿ã¹ã¯ã1ã€ä»¥äžã®ä¿¡å·ãã©ã°ãèšå®ãããšãã«å®è¡ãããæ©èœãã¿ã¹ã¯ãå²ãåœãŠãããšãã§ããããŒã«ããããŸãã ããã¯ãå²ã蟌ã¿åŠçã«ãŒãã³ã«äŒŒãŠããŸãã ãã®æ©èœã¯Nucleus SEã§ã¯ãµããŒããããŠããŸãã;ããã§ã¯ãã¿ã¹ã¯ã¯ã·ã°ãã«ãã©ã°ãæ瀺çã«èŠæ±ããå¿ èŠããããŸãã
ä¿¡å·èšå®
ã»ãšãã©ã®Nucleus SEãªããžã§ã¯ããšåæ§ã«ãä¿¡å·ã®ãã¥ãŒãã³ã°ã¯nuse_config.hã® #defineãã£ã¬ã¯ãã£ãã«ãã£ãŠæ±ºå®ãããŸã ã äž»ãªãã©ã¡ãŒã¿ãŒã¯NUSE_SIGNAL_SUPPORT㧠ãæ©èœãµããŒããã¢ã¯ãã£ãã«ããŸãïŒã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®ã¿ã¹ã¯ã«å¯ŸããŠïŒã ã·ã°ãã«ã®æ°ã瀺ãåé¡ã¯äŸ¡å€ããããŸãããåã¿ã¹ã¯ã«8ã€ã®ãã©ã°ãå²ãåœãŠãããŸãã
ãã®æå¹åãã©ã¡ãŒã¿ãèšå®ãããšãã¡ã€ã³ä¿¡å·ã¢ã¯ãã£ããŒã¿ãšããŠæ©èœããŸãã ããã«ãããé©åãªãµã€ãºã®æ確ã«å®çŸ©ãããããŒã¿æ§é ãæäŸãããŸãã ããã«ããã®ãªãã·ã§ã³ã¯APIèšå®ãã¢ã¯ãã£ãã«ããŸãã
APIåŒã³åºããã¢ã¯ãã£ãã«ãã
Nucleus SEã®åAPIé¢æ°ïŒãŠãŒãã£ãªãã£åŒã³åºãïŒã¯ã nuse_config.hã® #defineãã£ã¬ã¯ãã£ãã«ãã£ãŠã¢ã¯ãã£ãã«ãããŸã ã ä¿¡å·ã®å Žåã次ã®ãã®ãå«ãŸããŸãã
NUSE_SIGNALS_SEND NUSE_SIGNALS_RECEIVE
ããã©ã«ãã§ã¯ããããã¯FALSEã«èšå®ãããŠãããããåãµãŒãã¹åŒã³åºããç¡å¹ã«ãªããããããå®è£ ããã³ãŒãããªã³ã«ãªããŸããã ã¢ããªã±ãŒã·ã§ã³ã§ä¿¡å·ãæ§æããã«ã¯ãå¿ èŠãªAPIåŒã³åºããéžæãã察å¿ãããã£ã¬ã¯ãã£ããTRUEã«èšå®ããå¿ èŠããããŸãã
以äžã¯ãããã©ã«ãã®nuse_config.hãã¡ã€ã«ããã®æç²ã§ãã
#define NUSE_SIGNAL_SUPPORT FALSE /* Enables support for signals */ #define NUSE_SIGNALS_SEND FALSE /* Service call enabler */ #define NUSE_SIGNALS_RECEIVE FALSE /* Service call enabler */
ã·ã°ããªã³ã°ãµããŒãããªãã«ããŠã¢ã¯ãã£ãåãããAPIé¢æ°ã¯ãã³ã³ãã€ã«ãšã©ãŒã«ãªããŸãã ã¢ã¯ãã£ãåãããŠããªãAPIåŒã³åºããã³ãŒãã§äœ¿çšãããšãã¢ããªã±ãŒã·ã§ã³ã«å®è£ ã³ãŒããå«ãŸããŠããªãã£ããããã¬ã€ã¢ãŠããšã©ãŒãçºçããŸãã ãã¡ããã2ã€ã®APIé¢æ°ãå«ããå¿ èŠã¯ãããŸããããããã®APIããªãå Žåãä¿¡å·ãµããŒããã¢ã¯ãã£ãåããŠãæå³ããªãããã§ãã ä»ã®Nucleus SEæ©èœãšã®äºææ§ã®ããã«ãã¢ã¯ãã£ããŒã¿ãŒãè¿œå ãããŸããã
åŒã³åºãä¿¡å·
Nucleus RTOSã¯ã次ã®æ©èœãæäŸãã4ã€ã®ä¿¡å·é¢é£ã®ãªãŒããŒãããã³ãŒã«ããµããŒãããŠããŸãã
- ç¹å®ã®ã¿ã¹ã¯ã«ä¿¡å·ãéä¿¡ããŸãã Nucleus SEã¯NUSE_Signals_SendïŒïŒé¢æ°ã«å®è£ ãããŠããŸãã
- ä¿¡å·ã®åä¿¡ã Nucleus SEã¯NUSE_Signals_ReceiveïŒïŒé¢æ°ã«å®è£ ãããŠããŸãã
- ã·ã°ãã«ãã³ãã©ãŒã®ç»é²ã Nucleus SEã«ã¯å®è£ ãããŠããŸããã
- ä¿¡å·ããªã³/ãªãïŒå¶åŸ¡ïŒããŸãã Nucleus SEã«ã¯å®è£ ãããŠããŸããã
ãããã®å課é¡ã®å®è£ ã«ã€ããŠã以äžã§è©³ãã説æããŸãã
ã·ã°ããªã³ã°ããã³åä¿¡ãµãŒãã¹
äžé£ã®ã¿ã¹ã¯ä¿¡å·ã§å®è¡ã§ããåºæ¬çãªæäœã¯ãããŒã¿ã®éä¿¡ïŒä»»æã®ã¿ã¹ã¯ã§å®è¡å¯èœïŒããã³ããŒã¿ã®èªã¿åãïŒãããã£ãŠãããŒã¿ã®ã¯ãªã¢ã¯ææè ã¿ã¹ã¯ã®ã¿ã§å®è¡å¯èœïŒã§ãã Nucleus RTOSããã³Nucleus SEã¯ããããã®æäœã®ããã®2ã€ã®åºæ¬çãªAPIåŒã³åºããæäŸããŸããããã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã
ä¿¡å·ã¯ãããã§ããããã2é²æ°ãšããŠèŠèŠåããã®ãæé©ã§ãã æŽå²çã«æšæºCã¯ãã€ããªå®æ°ïŒ8é²ããã³16 é²ã®ã¿ ïŒã®è¡šçŸããµããŒãããŠããªããããNucleus SEã«ã¯äŸ¿å©ãªããããŒãã¡ã€ã«nuse_binary.hããã ã256åã®8ãããå€ãã¹ãŠã«b01010101ã®ãããª#defineæåãå«ãŸããŠããŸãã 以äžã¯ã nuse_binary.hãã¡ã€ã«ããã®æç²ã§ãã
#define b00000000 ((U8) 0x00) #define b00000001 ((U8) 0x01) #define b00000010 ((U8) 0x02) #define b00000011 ((U8) 0x03) #define b00000100 ((U8) 0x04) #define b00000101 ((U8) 0x05)
ä¿¡å·ãéã
ã©ã®ã¿ã¹ã¯ã§ããã¢ããªã±ãŒã·ã§ã³å ã®ä»ã®ã¿ã¹ã¯ã«ä¿¡å·ãéä¿¡ã§ããŸãã ä¿¡å·ã®éä¿¡ã«ã¯ã1ã€ä»¥äžã®ä¿¡å·ãã©ã°ã®èšå®ãå«ãŸããŸãã ããã¯ã以åã«èšå®ããããã©ã°ã«åœ±é¿ãäžããªãORæäœã§ãã
Nucleus RTOSã«ã·ã°ãã«ãéä¿¡ããããã®åŒã³åºã
ãµãŒãã¹ã³ãŒã«ã®ãããã¿ã€ãïŒ
STATUS NU_Send_SignalsïŒNU_TASK *ã¿ã¹ã¯ãUNSIGNEDã·ã°ãã«ïŒ;
ãã©ã¡ãŒã¿ïŒ
task-èšå®ãããä¿¡å·ãã©ã°ãå±ããã¿ã¹ã¯å¶åŸ¡ãŠããããžã®ãã€ã³ã¿ãŒã
ã·ã°ãã« -èšå®ãããã·ã°ãã«ãã©ã°ã®å€ã
æ»ãå€ïŒ
NU_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NU_INVALID_TASK-ã¿ã¹ã¯ãžã®ç¡å¹ãªãã€ã³ã¿ãŒã
Nucleus SEã«ä¿¡å·ãéä¿¡ããããã®åŒã³åºã
ãã®APIã³ãŒã«ã¯ãNucleus RTOS APIã®ã³ã¢æ©èœããµããŒãããŠããŸãã
ãµãŒãã¹ã³ãŒã«ã®ãããã¿ã€ãïŒ
STATUS_NUSE_Signals_SendïŒNUSE_TASKã¿ã¹ã¯ãU8ã·ã°ãã«ïŒ;
ãã©ã¡ãŒã¿ïŒ
task-èšå®ãããã·ã°ãã«ãã©ã°ãå±ããã¿ã¹ã¯ã®ã€ã³ããã¯ã¹ïŒIDïŒã
ã·ã°ãã« -èšå®ãããã·ã°ãã«ãã©ã°ã®å€ã
æ»ãå€ïŒ
NUSE_SUCCESS-ãµãŒãã¹åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NUSE_INVALID_TASK-ç¡å¹ãªã¿ã¹ã¯ã€ã³ããã¯ã¹ã
Nucleus SEã§ã®ã·ã°ããªã³ã°ã®å®è£
以äžã¯ãNUSE_Signals_SendïŒïŒé¢æ°ã®å®å šãªã³ãŒãã§ãã
STATUS NUSE_Signals_Send(NUSE_TASK task, U8 signals) { #if NUSE_API_PARAMETER_CHECKING if (task >= NUSE_TASK_NUMBER) { return NUSE_INVALID_TASK; } #endif NUSE_CS_Enter(); NUSE_Task_Signal_Flags[task] |= signals; NUSE_CS_Exit(); return NUSE_SUCCESS; }
ã³ãŒãã¯éåžžã«ç°¡åã§ãã ãã©ã¡ãŒã¿ã®æ€èšŒåŸãä¿¡å·å€ã¯æå®ãããã¿ã¹ã¯ã®ä¿¡å·ãã©ã°ã®ORæŒç®ãééããŸãã ã¿ã¹ã¯ãããã¯ããŠãä¿¡å·ã«ã¯åœ±é¿ããŸããã
ä¿¡å·ãåä¿¡ãã
ã¿ã¹ã¯ã¯ãç¬èªã®ã·ã°ãã«ãã©ã°ã»ããã®ã¿ãèªã¿åãããšãã§ããŸãã èªã¿åãäžããã©ã°å€ã¯ãªã»ãããããŸãã
Nucleus RTOSã§ã·ã°ãã«ãåä¿¡ããããã®åŒã³åºã
ãµãŒãã¹ã³ãŒã«ã®ãããã¿ã€ãïŒ
UNSIGNED NU_Receive_SignalsïŒVOIDïŒ;
ãã©ã¡ãŒã¿ïŒãªãã
æ»ãå€ïŒ
ä¿¡å·ãã©ã°å€ã
Nucleus SEã§ã·ã°ãã«ãåä¿¡ããããã®åŒã³åºã
ãã®APIã³ãŒã«ã¯ãNucleus RTOS APIã®ã³ã¢æ©èœããµããŒãããŠããŸãã
ãµãŒãã¹ã³ãŒã«ã®ãããã¿ã€ãïŒ
U8 NUSE_Signals_ReceiveïŒvoidïŒ;
ãã©ã¡ãŒã¿ïŒãªãã
æ»ãå€ïŒ
ä¿¡å·ãã©ã°å€ã
Nucleus SEä¿¡å·åä¿¡ã®å®è£
以äžã¯ã NUSE_Signals_ReceiveïŒïŒé¢æ°ã®å®å šãªã³ãŒãã§ãã
U8 NUSE_Signals_Receive(void) { U8 signals; NUSE_CS_Enter(); Signals = NUSE_Task_Signal_Flags[NUSE_Task_Active]; NUSE_Task_Signal_Flags[NUSE_Task_Active] = 0; NUSE_CS_Exit(); return signals; }
ã³ãŒãã¯éåžžã«ç°¡åã§ãã ãã©ã°ã®å€ãã³ããŒãããåæå€ããªã»ãããããAPIé¢æ°ã«ãã£ãŠã³ããŒãè¿ãããŸãã ã¿ã¹ã¯ãããã¯ããŠãä¿¡å·ã«ã¯åœ±é¿ããŸããã
ããŒã¿æ§é
ä¿¡å·ã¯ç¬ç«ãããªããžã§ã¯ãã§ã¯ãªããããã¡ã¢ãªã®äœ¿çšã¯ããããå±ããã¿ã¹ã¯ã«äŸåããŸãã 以äžã¯å®å šãªç解ã®ããã®æ å ±ã§ãã ã·ã°ãã«ã¯ã1ã€ã®ããŒã¿æ§é ïŒRAMå ïŒã䜿çšããŸããããã¯ãä»ã®Nucleus SEãªããžã§ã¯ããšåæ§ã«ãã¢ããªã±ãŒã·ã§ã³å ã®ã¿ã¹ã¯ã®æ°ã«å¯Ÿå¿ãã次å ãæã€ããŒãã«ã§ãã ãã®ããŒã¿æ§é ã¯ãä¿¡å·ãµããŒããæå¹ãªå Žåã«ã®ã¿äœ¿çšãããŸãã
ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã¯ãã®ããŒã¿æ§é ã«çŽæ¥ã¢ã¯ã»ã¹ãããå©çšå¯èœãªAPIé¢æ°ã䜿çšããããšã匷ããå§ãããŸãã ããã«ãããNucleus SEã®å°æ¥ã®ããŒãžã§ã³ãšã®éäºææ§ãæãŸãããªãå¯äœçšãåé¿ãããNucleus RTOSãžã®ã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€ãç°¡çŽ åãããŸãã ãµãŒãã¹æ§é ã®ç解ãšãããã°ã®ååãç°¡åã«ããããã«ãããŒã¿æ§é ã«ã€ããŠä»¥äžã§è©³ãã説æããŸãã
RAMã«é 眮ãããããŒã¿ã®æ§é
ããŒã¿æ§é ïŒ
NUSE_Task_Signal_Flags [] -æ§æãããã¿ã¹ã¯ããšã«1ã€ã®ãšã³ããªãæã€ã¿ã€ãU8ã®é åãä¿¡å·ãã©ã°ã¯ãã®é åã«æ ŒçŽãããŸãã
ãã®ããŒã¿æ§é ã¯ãNucleus SEã®ããŒãæã«NUSE_Init_TaskïŒïŒé¢æ°ã«ãã£ãŠãŒãã«åæåãããŸãã
ROMã«é 眮ãããããŒã¿ã®æ§é
ä¿¡å·ã«ã¯ãROMã®ããŒã¿æ§é ããããŸããã
ä¿¡å·ããŒã¿ãä¿åããããã®ã¡ã¢ãªé
ãã¹ãŠã®Nucleus SEã³ã¢ãªããžã§ã¯ããšåæ§ã«ãä¿¡å·ã«å¿ èŠãªã¡ã¢ãªéã¯äºæž¬å¯èœã§ãã
ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®ä¿¡å·ã®ROMã®ããŒã¿éã¯0ã§ãã
ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®ä¿¡å·ã®ããŒã¿ãRAMã«ä¿åããããã®ã¡ã¢ãªã®éïŒãã€ãåäœïŒã¯ãæ§æãããã¿ã¹ã¯ã®æ°ïŒ NUSE_TASK_NUMBER ïŒãšåãã§ãã ãããå®éã«ã¯ããã®ããŒã¿ã¯ã¿ã¹ã¯ã«å±ããã¿ã¹ã¯ã«é¢ããåã®èšäºã§èª¬æãããŠããŸãã
æªå®çŸã®APIåŒã³åºã
Nucleus SEã«ã¯2ã€ã®Nucleus RTOS APIã·ã°ããªã³ã°ã³ãŒã«ãå®è£ ãããŠããŸããã
ã·ã°ãã«ãã³ãã©ãŒç»é²
ãã®APIåŒã³åºãã¯ãçŸåšã®ã¿ã¹ã¯ã®ä¿¡å·åŠçæé ïŒé¢æ°ïŒãèšå®ããŸãã Nucleus SEã§ã¯ãã·ã°ãã«ãã³ãã©ããµããŒããããŠããªããããããã¯å¿ èŠãããŸããã
ãµãŒãã¹ã³ãŒã«ã®ãããã¿ã€ãïŒ
STATUS NU_Register_Signal_HandlerïŒVOIDïŒ* signal_handlerïŒïŒUNSIGNEDïŒïŒ;
ãã©ã¡ãŒã¿ïŒ
signal_handler-ã·ã°ãã«ãåä¿¡ãããšãã«åŒã³åºãå¿ èŠãããé¢æ°
æ»ãå€ïŒ
NU_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NU_INVALID_POINTER-ã·ã°ãã«ãã³ãã©ãŒãžã®NULLãã€ã³ã¿ãŒïŒ NULL ïŒ
ä¿¡å·ã®å¶åŸ¡ïŒæå¹å/ç¡å¹åïŒ
ãã®ãµãŒãã¹ã¯ãçŸåšã®ã¿ã¹ã¯ã®ã·ã°ãã«ãã¢ã¯ãã£ãåããã³/ãŸãã¯éã¢ã¯ãã£ãåããŸãã ã¿ã¹ã¯ããšã«32ã®ä¿¡å·ã䜿çšã§ããŸãã åä¿¡å·ã¯ã signal_enable_maskã®ãããã§è¡šãããŸãã signal_enable_maskã«ããããè¿œå ãããšã察å¿ããä¿¡å·ãæå¹ã«ãªããããããåé€ãããšç¡å¹ã«ãªããŸãã
ãµãŒãã¹ã³ãŒã«ã®ãããã¿ã€ãïŒ
UNSIGNED NU_Control_SignalsïŒUNSIGNED enable_signal_maskïŒ;
ãã©ã¡ãŒã¿ïŒ
enable_signal_mask-æ£ããä¿¡å·ãè¡šãããããã¿ãŒã³ã
æ»ãå€ïŒ
åã®ä¿¡å·ãæå¹/ç¡å¹ã«ãããã¹ã¯ã
Nucleus RTOSäºæ
Nucleus SEãéçºãããšããç§ã®ç®æšã¯ã³ãŒãã¬ãã«ãNucleus RTOSãšã®äºææ§ãä¿ã€ããšã§ããã ã·ã°ãã«ãäŸå€ã§ã¯ãªããéçºè ã®èŠ³ç¹ããã¯ãNucleus RTOSãšã»ãŒåãæ¹æ³ã§å®è£ ãããŸãã æçµçãªã³ãŒãã®æ¹ãã¯ããã«ç解ãããããã¡ã¢ãªãããå¹ççã«äœ¿çšã§ããããšãèãããšã劥åœãšæãããéäºææ§ãããã€ããããŸãã ãã以å€ã®å ŽåãNucleus RTOS APIã³ãŒã«ã¯ã»ãŒçŽæ¥Nucleus SEã³ãŒã«ã«è»¢éã§ããŸãã
ã·ã°ãã«ãã³ãã©ãŒ
Nucleus SEã§ã¯ãæ§é å šäœãç°¡çŽ åããããã®ã·ã°ãã«ãã³ãã©ã¯å®è£ ãããŠããŸããã
ä¿¡å·ã®å¯çšæ§ãšé
Nucleus RTOSã§ã¯ãã¿ã¹ã¯ã«32åã®ã·ã°ãã«ãã©ã°ãèšå®ã§ããŸãã Nucleus SEã§ã¯ãæ°ã8ã«æžããããšã«ããŸãããããã¯ãããåçŽãªã¢ããªã±ãŒã·ã§ã³ã«ã¯ååã§ãããRAMãªãœãŒã¹ãç¯çŽã§ããããã§ãã å¿ èŠã«å¿ããŠãä¿¡å·ãå®å šã«ãªãã«ããããšãã§ããŸãã
æªå®çŸã®APIåŒã³åºã
Nucleus RTOSã¯ã4ã€ã®ã·ã°ããªã³ã°ãµãŒãã¹ã³ãŒã«ããµããŒãããŠããŸãã ãããã®ãã¡ã2ã€ã¯Nucleus SEã«ã¯å®è£ ãããŠããŸããã ãããã®èª¬æã¯ãäžèšã®ãUnrealized API Callsãã»ã¯ã·ã§ã³ã«ãããŸãã
èè ã«ã€ããŠïŒ Colin Wallsã¯é»åæ¥çã§30幎以äžåããŠãããã»ãšãã©ã®æéããã¡ãŒã ãŠã§ã¢ã«è²»ãããŠããŸãã çŸåšãMentor EmbeddedïŒMentor Graphicsã®äžéšéïŒã®ãã¡ãŒã ãŠã§ã¢ãšã³ãžãã¢ã§ãã Colin Wallsã¯ãã«ã³ãã¡ã¬ã³ã¹ãã»ãããŒãå€ãã®æè¡èšäºã®èè ããã¡ãŒã ãŠã§ã¢ã«é¢ãã2åã®æ¬ã§ãã話ããŸãã è±åœã«äœãã§ããŸãã Colinã®ãããã§ãã·ã§ãã«ããã° ãé»åã¡ãŒã«ïŒcolin_walls@mentor.comã