ã¡ã¢ãªã®ã»ã¯ã·ã§ã³ã¯ã以åã®èšäºïŒïŒ6ïŒã®ããããã§ä»¥åã«èšåãããŠãããC mallocïŒïŒèšèªã®æšæºæ©èœãšæ¯èŒãããŸããã ããŒãã£ã·ã§ã³ã¯ãããŒãã£ã·ã§ã³ããŒã«ïŒã¡ã¢ãªããŒã«ïŒããååŸããã¡ã¢ãªã®é åã§ãã ã¡ã¢ãªã®å ±æã¯ãã¡ââã¢ãªã確å®ãã€æ±ºå®çã«å²ãåœãŠã解æŸããããã®æè»ãªæ¹æ³ãæäŸããŸãã
ã·ãªãŒãºã®ä»¥åã®èšäºïŒ
èšäºïŒ13ã ã¿ã¹ã¯ããŒã¿æ§é ãšãµããŒããããŠããªãAPIåŒã³åºã
èšäºïŒ12ã ã¿ã¹ã¯ãæäœããããã®ãµãŒãã¹
èšäºïŒ11ã ã¿ã¹ã¯ïŒAPIã®æ§æãšçŽ¹ä»
èšäºïŒ10ã ã¹ã±ãžã¥ãŒã©ïŒé«åºŠãªæ©èœãšã³ã³ããã¹ãã®ä¿å
èšäºïŒ9ã ã¹ã±ãžã¥ãŒã©ïŒå®è£
èšäºïŒ8ã Nucleus SEïŒå éšèšèšãšå±é
èšäºïŒ7ã Nucleus SEïŒã¯ããã«
èšäºïŒ6ã ãã®ä»ã®RTOSãµãŒãã¹
èšäº5ã ã¿ã¹ã¯ã®çžäºäœçšãšåæ
èšäº4ã ã¿ã¹ã¯ãã³ã³ããã¹ãã®åãæ¿ããããã³å²ã蟌ã¿
èšäºïŒ3ã ã¿ã¹ã¯ãšèšç»
èšäºïŒ2ã RTOSïŒæ§é ãšãªã¢ã«ã¿ã€ã
èšäºïŒ1ã RTOSïŒã¯ããã«ã
ã»ã¯ã·ã§ã³ã䜿çšãã
Nucleus SEã§ã¯ãäœææã«ããŒãã£ã·ã§ã³ããŒã«ãèšå®ãããŸãã 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã«æ倧16åã®ããŒãã£ã·ã§ã³ããŒã«ãå«ããããšãã§ããŸãã ããããæ§æãããŠããªãå Žåããããã®ããŒã«ã«é¢é£ããããŒã¿æ§é ãšãµãŒãã¹åŒã³åºãã¯ã¢ããªã±ãŒã·ã§ã³ã«å«ãŸããŸããã
ããŒãã£ã·ã§ã³ããŒã«ã¯ãäžå®ãµã€ãºã®äžå®æ°ã®ãããã¯ã«åå²ãããã¡ã¢ãªé åã§ãã éçºè ã¯ãåããŒã«ã®ããŒãã£ã·ã§ã³ã®ãµã€ãºãšæ°ãå®å šã«å¶åŸ¡ããŸãã ã¿ã¹ã¯ã¯ãã¡ã¢ãªã®å²ãåœãŠãããã»ã¯ã·ã§ã³ãèŠæ±ããã¹ãã¬ãŒãžé åãžã®ãã€ã³ã¿ãåãåãããšãã§ããå²ãåœãŠãããã»ã¯ã·ã§ã³ã®å€éšã«ããŒã¿ãæžã蟌ãã¹ãã§ã¯ãããŸããã APIé¢æ°ã«ãã€ã³ã¿ãŒãæž¡ããšãã©ã®ã¿ã¹ã¯ã§ãã»ã¯ã·ã§ã³ã解æŸã§ããŸãã 空ãããŒãã£ã·ã§ã³ããªããšãã«ããŒãã£ã·ã§ã³ãå²ãåœãŠãèŠæ±ã¯ãéžæããAPIåŒã³åºããã©ã¡ãŒã¿ãŒãšNucleus SEã®æ§æã«ãã£ãŠã¯ããšã©ãŒãŸãã¯èŠæ±ã®äžæåæ¢ã«ã€ãªããå¯èœæ§ããããŸãã
ã¡ã¢ãªããŒãã£ã·ã§ã³ã®ã»ããã¢ãã
ããŒãã£ã·ã§ã³ããŒã«ã®æ°
ã»ãšãã©ã®Nucleus SEãªããžã§ã¯ããšåæ§ã«ãããŒãã£ã·ã§ã³ããŒã«ã®æ§æã¯ãäž»ã«nuse_config.hã® #defineãã£ã¬ã¯ãã£ãã䜿çšããŠè¡ãããŸãã ã¡ã€ã³ãã©ã¡ãŒã¿ãŒã¯NUSE_PARTITION_POOL_NUMBER㧠ãããã¯ã¢ããªã±ãŒã·ã§ã³ã§å®çŸ©ãããŠããããŒãã£ã·ã§ã³ããŒã«ã®æ°ã決å®ããŸãã ããã©ã«ãå€ã¯0ã§ãïŒã€ãŸããããŒãã£ã·ã§ã³ããŒã«ã¯äœ¿çšãããŸããïŒãéçºè ã¯0ã16ã®ä»»æã®å€ãèšå®ã§ããŸãããã®ä»ã®å€ã¯ã nuse_config_check.h ïŒ nuse_config.cã«å«ãŸããŸãïŒã§æ€èšŒäžã«æ€åºãããã³ã³ãã€ã«ãšã©ãŒã«ã€ãªãããŸãã ããããã£ãŠããã®ã¢ãžã¥ãŒã«ã§ã³ã³ãã€ã«ããŸãïŒã ïŒerrorãã£ã¬ã¯ãã£ãã®ã³ã³ãã€ã«ã«ã€ãªãããŸãã
ãŒã以å€ã®å€ãéžæããããšã¯ãããŒãã£ã·ã§ã³ããŒã«ãã¢ã¯ãã£ãã«ããåªå çãªæ¹æ³ã§ãã ããã«ãããããŒã¿æ§é ã®å®çŸ©ãšé©åãªãµã€ãºã®å²ãåœãŠãè¡ãããŸãã ROMã®ããŒã¿æ§é ã¯ãåããŒãã£ã·ã§ã³ããŒã«ãèšè¿°ããé©åãªå€ã§åæåããå¿ èŠããããŸãã ããŒã¿æ§é ã®è©³çŽ°ã«ã€ããŠã¯ã次ã®èšäºã§èª¬æããŸãã ãã®éžæã«ãããAPIèšå®ãã¢ã¯ãã£ãã«ãªããŸãã
APIåŒã³åºããã¢ã¯ãã£ãã«ãã
Nucleus SEã®åAPIé¢æ°ïŒãŠãŒãã£ãªãã£åŒã³åºãïŒã¯ã nuse_config.hã® #defineãã£ã¬ã¯ãã£ãã«ãã£ãŠã¢ã¯ãã£ãã«ãããŸã ã ããŒãã£ã·ã§ã³ããŒã«ã®å Žåã次ã®ãã®ãå«ãŸããŸãã
NUSE_PARTITION_ALLOCATE
NUSE_PARTITION_DEALLOCATE
NUSE_PARTITION_POOL_INFORMATION
NUSE_PARTITION_POOL_COUNT
ããã©ã«ãã§ã¯ããããã¯ãã¹ãŠFALSEã«èšå®ãããŠãããããåãµãŒãã¹åŒã³åºããç¡å¹ã«ãªããå®è£ ã³ãŒããå«ãŸããªããªããŸãã ã¢ããªã±ãŒã·ã§ã³ã§ããŒãã£ã·ã§ã³ããŒã«ãæ§æããã«ã¯ãå¿ èŠãªAPIåŒã³åºããéžæãã察å¿ãããã£ã¬ã¯ãã£ããTRUEã«èšå®ããå¿ èŠããããŸãã
以äžã¯ãããã©ã«ãã®nuse_config.hãã¡ã€ã«ããã®æç²ã§ãã
Partition Pools APIé¢æ°ãã¢ã¯ãã£ãã«ãªã£ãŠããããããŒã«ãæ§æãããŠããªãå Žåãã³ã³ãã€ã«ãšã©ãŒãçºçããŸãïŒåžžã«æå¹ã«ãªã£ãŠããNUSE_Partition_Pool_CountïŒïŒãé€ãïŒã ã¢ã¯ãã£ãåãããŠããªãAPIåŒã³åºããã³ãŒãã§äœ¿çšãããšãã¢ããªã±ãŒã·ã§ã³ã«å®è£ ã³ãŒããå«ãŸããŠããªãã£ããããã¬ã€ã¢ãŠããšã©ãŒãçºçããŸãã
ããŒãã£ã·ã§ã³ããŒã«ãŠãŒãã£ãªãã£ã®åŒã³åºã
Nucleus RTOSã¯ãããŒãã£ã·ã§ã³ããŒã«ã«é¢é£ãã7ã€ã®ãŠãŒãã£ãªãã£ã³ãŒã«ããµããŒããã次ã®æ©èœãæäŸããŸãã
æ©èœèª¬æ | Nucleus RTOS | Nucleus SE |
---|---|---|
ã»ã¯ã·ã§ã³éžæ | NU_Allocate_PartitionïŒïŒ | NUSE_Partition_AllocateïŒïŒ |
ã»ã¯ã·ã§ã³ãªãªãŒã¹ | NU_Deallocate_PartitionïŒïŒ | NUSE_Partition_DeallocateïŒïŒ |
æ
å ±æäŸ
ç¹å®ã®ããŒãã£ã·ã§ã³ããŒã«ã«ã€ã㊠| NU_Partition_Pool_InformationïŒïŒ | NUSE_Partition_Pool_InformationïŒïŒ |
ïŒçŸåšïŒèšå®ãããŠããæ°éã®å€ãè¿ããŸã
ã¢ããªã±ãŒã·ã§ã³ããŒã« | NU_Established_Partition_PoolsïŒïŒ | NUSE_Partition_Pool_CountïŒïŒ |
æ°ããããŒãã£ã·ã§ã³ããŒã«ãã¢ããªã±ãŒã·ã§ã³ã«è¿œå ïŒäœæïŒãã | NU_Create_Partition_PoolïŒïŒ | å®è£ ãããŠããŸããã |
ã¢ããªã±ãŒã·ã§ã³ããããŒãã£ã·ã§ã³ããŒã«ãå€æŽïŒåé€ïŒãã | NU_Delete_Partition_PoolïŒïŒ | å®è£ ãããŠããŸããã |
ã¢ããªã±ãŒã·ã§ã³ã«çŸåšååšãããã¹ãŠã®ããŒãã£ã·ã§ã³ããŒã«ãžã®ãã€ã³ã¿ãŒãè¿ã | NU_Partition_Pool_PointersïŒïŒ | å®è£ ãããŠããŸããã |
ååŒã³åºãã®å®è£ ã«ã€ããŠè©³ãã説æããŸãã
Nucleus RTOSãNucleus SEã«ãåèµ·åæ©èœããªãããšã«æ³šæããŠãã ããã ããã¯æå³çã«è¡ãããŸãã éåžžã«å€ãã®å Žåã1ã€ã®ã¿ã¹ã¯ãã»ã¯ã·ã§ã³ãå²ãåœãŠãå¥ã®ã¿ã¹ã¯ã«ãã€ã³ã¿ãŒãæž¡ããŸãïŒåŸã§è§£æŸãããå ŽåããããŸãïŒã ããŒãã£ã·ã§ã³ããŒã«ããªããŒããããšããã¹ãŠã®ããŒãã£ã·ã§ã³ãæªäœ¿çšãšããŠããŒã¯ãããŸãããããŒãã£ã·ã§ã³ã䜿çšã§ãããã¹ãŠã®ã¿ã¹ã¯ãç£èŠããã³éç¥ããã¡ã«ããºã ã¯ãããŸããã
ããŒãã£ã·ã§ã³ããã³ç¡æãµãŒãã¹
ããŒãã£ã·ã§ã³ããŒã«ã®åºæ¬çãªæäœã¯ãããŒã«å ã®ããŒãã£ã·ã§ã³ã®å²ãåœãŠïŒã€ãŸããããŒãã£ã·ã§ã³ã䜿çšæžã¿ãšããŠããŒã¯ãããã®ã¢ãã¬ã¹ãè¿ãïŒãšãããŒãã£ã·ã§ã³ã解æŸããïŒã€ãŸããããŒãã£ã·ã§ã³ãæªäœ¿çšãšããŠããŒã¯ãããïŒã§ãã Nucleus RTOSããã³Nucleus SEã¯ããããã®æäœã«å¯ŸããŠ2ã€ã®åºæ¬çãªAPIåŒã³åºããæäŸããŸãããããã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã
ã»ã¯ã·ã§ã³éžæ
ããŒãã£ã·ã§ã³ãå²ãåœãŠãNucleus RTOS APIã³ãŒã«ã¯éåžžã«æè»æ§ããããéçºè ã¯ããã¹ãŠã®ããŒãã£ã·ã§ã³ãæ¢ã«åæ£ãããŠããããŒã«ããããŒãã£ã·ã§ã³ãå²ãåœãŠãããšããå Žåãªã©ãæäœãããã«å®äºã§ããªãå Žåã«ãç¡æéãŸãã¯ã¿ã€ã ã¢ãŠããªãã§ã¿ã¹ã¯ãäžæåæ¢ã§ããŸãã Nucleus SEã¯åããµãŒãã¹ãæäŸãããã®äžã®ã¿ã¹ã¯ã®äžæåæ¢ã®ã¿ããªãã·ã§ã³ã§ãããã¿ã€ã ã¢ãŠãã¯å®è£ ãããŠããŸããã
Nucleus RTOS APIã®ããŒãã£ã·ã§ã³ãžã®åŒã³åºã
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NU_Allocate_PartitionïŒNU_PARTITION_POOL *ããŒã«ãç¡å¹** return_pointerãæªçœ²åã®äžæåæ¢ïŒ;
æ»ãå€ïŒ
NU_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NU_NO_PARTITION-å©çšå¯èœãªã»ã¯ã·ã§ã³ã¯ãããŸããã
NU_INVALID_POOL-ç¡å¹ãªããŒãã£ã·ã§ã³ããŒã«ãã€ã³ã¿ãŒã
NU_INVALID_POINTER-è¿ãããããŒã¿ã«NULLãã€ã³ã¿ãŒãæž¡ããŸããïŒ NULL ïŒã
NU_INVALID_SUSPEND-ã¿ã¹ã¯ã«é¢é£ä»ããããŠããªãã¹ã¬ããããã¿ã¹ã¯ãäžæããããšããŸããã
NU_TIMEOUT-æå®ãããåŸ æ©æéã®äžæã®åŸã§ãã䜿çšå¯èœãªããŒãã£ã·ã§ã³ã¯ãããŸããã
NU_POOL_DELETED-ã¿ã¹ã¯ãäžæããããšãã«ããŒãã£ã·ã§ã³ããŒã«ãåé€ãããŸããã
ããŒãã£ã·ã§ã³ã匷調衚瀺ããNucleus SE APIåŒã³åºã
ãã®APIã³ãŒã«ã¯ãNucleus RTOS APIã®ã³ã¢æ©èœããµããŒãããŠããŸãã
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NUSE_Partition_AllocateïŒNUSE_PARTITION_POOLããŒã«ãADDR * return_pointerãU8ãµã¹ãã³ãïŒ;
ãã©ã¡ãŒã¿ïŒ
pool-䜿çšãããŠããããŒãã£ã·ã§ã³ããŒã«ã®ã€ã³ããã¯ã¹ïŒIDïŒã
return_pointer-éžæããã»ã¯ã·ã§ã³ã®ã¢ãã¬ã¹ãååŸããADDRåã®å€æ°ãžã®ãã€ã³ã¿ãŒã
suspend-ã¿ã¹ã¯ãäžæåæ¢ããããã®ãã©ã¡ãŒã¿ãŒ;å€ã¯NUSE_NO_SUSPENDãŸãã¯NUSE_SUSPENDãåãããšãã§ããŸãã
æ»ãå€ïŒ
NUSE_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NUSE_NO_PARTITION-å©çšå¯èœãªã»ã¯ã·ã§ã³ã¯ãããŸããã
NUSE_INVALID_POOL-ç¡å¹ãªããŒãã£ã·ã§ã³ããŒã«ã€ã³ããã¯ã¹ã
NUSE_INVALID_POINTER-è¿ãããããŒã¿ã«NULLãã€ã³ã¿ãŒãæž¡ããŸããïŒ NULL ïŒã
NUSE_INVALID_SUSPEND âã¿ã¹ã¯ã«é¢é£ä»ããããŠããªãã¹ã¬ããããããŸãã¯ããã¯APIãç¡å¹ã«ããããšãã«ãã¿ã¹ã¯ãäžæããããšããŸããã
Nucleus SEã§ã®ããŒãã£ã·ã§ã³å²ãåœãŠã®å®è£
APIé¢æ°ã³ãŒãNUSE_Partition_Allocateã¯ããããã¯ã®APIåŒã³åºãïŒã¿ã¹ã¯ã®äžæïŒãã¢ã¯ãã£ãã«ãªã£ãŠãããã©ããã«å¿ããŠããã©ã¡ãŒã¿ãŒã確èªããåŸãæ¡ä»¶ä»ãã³ã³ãã€ã«ã«ãã£ãŠéžæãããŸãã 以äžã§ã¯ãããã2ã€ã®ãªãã·ã§ã³ãåå¥ã«æ€èšããŸãã
ããããã³ã°åŒã³åºããç¡å¹ã«ãªã£ãŠããå ŽåãAPIåŒã³åºãã¯éåžžã«ç°¡åã§ãã
æåã«ã空ãããŒãã£ã·ã§ã³ã®å¯çšæ§ããã§ãã¯ãããŸãã ãã®ãããªããŒãã£ã·ã§ã³ããªãå Žåããšã©ãŒãè¿ãããŸãïŒ NUSE_NO_PARTITION ïŒã 次ã«ãã»ã¯ã·ã§ã³ã®åæãããããã®éã«æåã®ãã€ãã®ãŒãå€ããã§ãã¯ãããŸãïŒã»ã¯ã·ã§ã³ã䜿çšãããŠããªãããšã瀺ããŸãïŒã ãã®ãããªããŒãã£ã·ã§ã³ãèŠã€ãããšãããŒãã£ã·ã§ã³ããŒã«ã®ã€ã³ããã¯ã¹ãå«ãã䜿çšæžã¿ããã©ã°ãå²ãåœãŠããïŒä»¥äžã®ãããŒãã£ã·ã§ã³ã解æŸããããåç §ïŒã次ã®ãã€ãïŒå®ããŒã¿é åã®å é ïŒãžã®ãã€ã³ã¿ãè¿ãããŸãã ããŒãã£ã·ã§ã³ããŒã«ã®ããŒã¿æ§é ã«é¢ãã説æã¯ãããŒã¿æ§é ã»ã¯ã·ã§ã³ã®æ¬¡ã®èšäºã§èª¬æããŸãã
ããã¯ãæå¹ã«ãªã£ãŠããå Žåããã®APIåŒã³åºãã®ã³ãŒãã¯ããå°ãè€éã«ãªããŸãã
ã³ãŒãã¯do ... whileã«ãŒãã§å²ãŸããŠããŸãããã®ã«ãŒãã¯ãpauseãã©ã¡ãŒã¿ãŒãNUSE_SUSPENDã§ããéãå®è¡ãç¶ããŸãã
䜿çšå¯èœãªããŒãã£ã·ã§ã³ããªããpauseãã©ã¡ãŒã¿ãNUSE_NO_SUSPENDã®å ŽåãAPIåŒã³åºãã¯åæ¢ãã NUSE_NO_PARTITIONãè¿ããŸãã pauseãã©ã¡ãŒã¿ãŒãNUSE_SUSPENDã«èšå®ãããŠããå Žåãã¿ã¹ã¯ã¯äžæåæ¢ããŸãã æ»ããšãïŒããšãã°ãã¿ã¹ã¯ãåéãããšãïŒã NUSE_SUCCESSã®æ»ãå€ã¯ãã¡ã¢ãªã»ã¯ã·ã§ã³ã解æŸãããã³ãŒããã«ãŒãã®å é ã«æ»ããããã¿ã¹ã¯ãåéãããããšã瀺ããŸãã ããŒãã£ã·ã§ã³ããŒã«ããªããŒãããããã®APIé¢æ°ã¯ãªããããä»ã®çç±ã§ã¿ã¹ã¯ãåéããããšã¯ã§ããŸããããä»ã®çš®é¡ã®ãªããžã§ã¯ãããããã¯ããå®å®æ§ã®ããã NUSE_Task_Blocking_Return []ãã§ãã¯ããã»ã¹ã¯ä¿åãããŸãã
ã»ã¯ã·ã§ã³ãªãªãŒã¹
Nucleus RTOSããã³Nucleus SEã®ã»ã¯ã·ã§ã³ã®ãªãªãŒã¹ã«ãããåã³å©çšå¯èœã«ãªããŸããã ãªãªãŒã¹åã¯ããã®ã»ã¯ã·ã§ã³ãã¿ã¹ã¯ã«ãã£ãŠäœ¿çšãããŠãããã©ããã¯ãã§ãã¯ãããŸãããã¢ããªã±ãŒã·ã§ã³ããã°ã©ãããããæ åœããŸãã ã»ã¯ã·ã§ã³ã解æŸããã«ã¯ãããŒã¿é åãžã®ãã€ã³ã¿ã®ã¿ãå¿ èŠã§ãã
Nucleus RTOS APIã³ãŒã«ã«ãã空ãããŒãã£ã·ã§ã³
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NU_Deallocate_PartitionïŒVOID * partitionïŒ;
ãã©ã¡ãŒã¿ïŒ
partition-解æŸãããããŒãã£ã·ã§ã³ã®ããŒã¿é åïŒ NU_Allocate_PartitionïŒïŒé¢æ°ã«ãã£ãŠè¿ãããïŒãžã®ãã€ã³ã¿ã
æ»ãå€ïŒ
NU_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NU_INVALID_POINTER-ã»ã¯ã·ã§ã³ãã€ã³ã¿ãŒãNULLã§ãããã䜿çšãããŠããæå¹ãªã»ã¯ã·ã§ã³ã瀺ããŠããŸããã
Nucleus SE APIã®ç¡æã»ã¯ã·ã§ã³ã®åŒã³åºã
ãã®APIã³ãŒã«ã¯ãNucleus RTOS APIã®ã³ã¢æ©èœããµããŒãããŠããŸãã
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NUSE_Partition_DeallocateïŒADDRããŒãã£ã·ã§ã³ïŒ;
ãã©ã¡ãŒã¿ïŒ
partition-解æŸãããããŒãã£ã·ã§ã³ã®ããŒã¿é åïŒ NUSE_Partition_AllocateïŒïŒé¢æ°ã«ãã£ãŠè¿ãããïŒãžã®ãã€ã³ã¿
æ»ãå€ïŒ
NUSE_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NUSE_INVALID_POINTER-ã»ã¯ã·ã§ã³ãã€ã³ã¿ãŒãnullïŒ NULL ïŒã§ãããã䜿çšãããŠããæå¹ãªã»ã¯ã·ã§ã³ã瀺ããŠããªã
å®è£
ããããã³ã°ããã³ãã³ããããã³ã°APIé¢æ°ã䜿çšããŠå®è£ ãã代ããã«ã NUSE_Partition_DeallocateïŒïŒé¢æ°ã«ã¯ãã¿ã¹ã¯ã®ããã¯è§£é€ãè¡ãæ¡ä»¶ä»ãã§ã³ã³ãã€ã«ãããã»ã¯ã·ã§ã³ãå«ãŸããŠããŸãã ãã®ã³ãŒãã¯ãã»ã¯ã·ã§ã³ã®è§£æŸãå®è£ ããŸãã
æåã«ãã»ã¯ã·ã§ã³ã€ã³ããã¯ã¹ãã¹ããŒã¿ã¹ãã€ãããååŸãããŸãã 次ã«ãããŒãã£ã·ã§ã³ã®ç¶æ ããæªäœ¿çšãã«å€ããã䜿çšæžã¿ããŒãã£ã·ã§ã³ã®ã«ãŠã³ã¿ãŒãæžå°ããé¢æ°ã¯æäœãæ£åžžã«å®äºããããšãå ±åããŸãã
ããã¯ãã¢ã¯ãã£ãã«ãªã£ãŠããå Žåã次ã®ã³ãŒãã䜿çšããŠã䜿çšå¯èœãªããŒãã£ã·ã§ã³ããŒã«ãåŸ æ©ããŠããã¿ã¹ã¯ãåéããŸãã
ãã®ããŒã«ã§ããŒãã£ã·ã§ã³ãå²ãåœãŠããšãã«ã¿ã¹ã¯ããããã¯ãããå Žåãæåã®ããŒãã«ãåéãããŸãã
次ã®èšäºã§ã¯ãã¡ã¢ãªããŒãã£ã·ã§ã³ã«é¢é£ããè¿œå ã®APIåŒã³åºããšãé¢é£ããããŒã¿æ§é ã«çŠç¹ãåœãŠãŸãã
èè ã«ã€ããŠïŒ Colin Wallsã¯é»åæ¥çã§30幎以äžåããŠãããã»ãšãã©ã®æéããã¡ãŒã ãŠã§ã¢ã«è²»ãããŠããŸãã çŸåšãMentor EmbeddedïŒMentor Graphicsã®äžéšéïŒã®ãã¡ãŒã ãŠã§ã¢ãšã³ãžãã¢ã§ãã Colin Wallsã¯ãã«ã³ãã¡ã¬ã³ã¹ãã»ãããŒãå€ãã®æè¡èšäºã®èè ããã¡ãŒã ãŠã§ã¢ã«é¢ãã2åã®æ¬ã§ãã話ããŸãã è±åœã«äœãã§ããŸãã