ãã®èšäºã§ã¯ãRTOSã®ã¡ã¢ãªã»ã¯ã·ã§ã³ãåŒãç¶ã確èªããŸãã
Nucleus RTOSã«ã¯ãã¡ã¢ãªããŒãã£ã·ã§ã³ããŒã«ã«é¢é£ãããŠãŒãã£ãªãã£æ©èœãæäŸãã3ã€ã®APIã³ãŒã«ããããŸããããŒãã£ã·ã§ã³ããŒã«ã«é¢ããæ å ±ãè¿ããã¢ããªã±ãŒã·ã§ã³å ã®ããŒãã£ã·ã§ã³ããŒã«ã®æ°ãè¿ããã¢ããªã±ãŒã·ã§ã³å ã®ãã¹ãŠã®ããŒãã£ã·ã§ã³ããŒã«ãžã®ãã€ã³ã¿ãè¿ãã æåã®2ã€ã®èª²é¡ã¯Nucleus SEã«å®è£ ãããŠããŸãã
ã·ãªãŒãºã®ä»¥åã®èšäºïŒ
èšäºïŒ14ã ã¡ã¢ãªã®ã»ã¯ã·ã§ã³ïŒçŽ¹ä»ãšåºæ¬ãµãŒãã¹
èšäºïŒ13ã ã¿ã¹ã¯ããŒã¿æ§é ãšãµããŒããããŠããªãAPIåŒã³åºã
èšäºïŒ12ã ã¿ã¹ã¯ãæäœããããã®ãµãŒãã¹
èšäºïŒ11ã ã¿ã¹ã¯ïŒAPIã®æ§æãšçŽ¹ä»
èšäºïŒ10ã ã¹ã±ãžã¥ãŒã©ïŒé«åºŠãªæ©èœãšã³ã³ããã¹ãã®ä¿å
èšäºïŒ9ã ã¹ã±ãžã¥ãŒã©ïŒå®è£
èšäºïŒ8ã Nucleus SEïŒå éšèšèšãšå±é
èšäºïŒ7ã Nucleus SEïŒã¯ããã«
èšäºïŒ6ã ãã®ä»ã®RTOSãµãŒãã¹
èšäº5ã ã¿ã¹ã¯ã®çžäºäœçšãšåæ
èšäº4ã ã¿ã¹ã¯ãã³ã³ããã¹ãã®åãæ¿ããããã³å²ã蟌ã¿
èšäºïŒ3ã ã¿ã¹ã¯ãšèšç»
èšäºïŒ2ã RTOSïŒæ§é ãšãªã¢ã«ã¿ã€ã
èšäºïŒ1ã RTOSïŒã¯ããã«ã
ããŒãã£ã·ã§ã³ããŒã«æ å ±ã®ååŸ
ãã®ãµãŒãã¹åŒã³åºãã¯ãããŒãã£ã·ã§ã³ããŒã«ã«é¢ããéšåçãªæ å ±ãæäŸããŸãã Nucleus SEã®å®è£ ã¯ããªããžã§ã¯ãã®åœåãšäžæåæ¢èŠæ±ããµããŒããããŠããããã¿ã¹ã¯ãäžæåæ¢ã§ããªããããè¿ãããæ å ±ãå°ãªããšããç¹ã§Nucleus RTOSãšç°ãªããŸãã
Nucleus RTOSã§ã®ããŒãã£ã·ã§ã³ããŒã«æ å ±ã®åŒã³åºã
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NU_Partition_Pool_InformationïŒNU_PARTITION_POOL * poolãCHAR * nameãVOID ** start_addressãUNSIGNED * pool_sizeãUNSIGNED * partition_sizeãUNSIGNED * availableãUNSIGNED * allocateedãOPTION * suspend_typeãUNSIGNED * tasks_waiting ** first_task;æå
ãã©ã¡ãŒã¿ïŒ
pool-æ å ±ãèŠæ±ãããããŒãã£ã·ã§ã³ããŒã«ãžã®ãã€ã³ã¿ã
name-ããŒãã£ã·ã§ã³ããŒã«ã®ååã®8æåã®å®å é åãžã®ãã€ã³ã¿ãŒã ãŒããçµäºããå Žæãå«ãŸããŸãã
start_address-ããŒãã£ã·ã§ã³ããŒã«ã®ããŒã¿é åã®å é ãžã®ãã€ã³ã¿ãŒãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒã
pool_size-ããŒãã£ã·ã§ã³ããŒã«ã®ãµã€ãºïŒãã€ãåäœïŒãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒã
partition_size-ç¹å®ã®ããŒã«å ã®ããŒãã£ã·ã§ã³ã®ãµã€ãºãååŸããå€æ°ãžã®ãã€ã³ã¿ãŒã
available-ç¹å®ã®ããŒã«ã§çŸåšäœ¿çšå¯èœãªããŒãã£ã·ã§ã³ã®æ°ãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒã
å²ãåœãŠ -ç¹å®ã®ããŒã«ã§çŸåšäœ¿çšãããŠããããŒãã£ã·ã§ã³ã®æ°ãåãåãå€æ°ãžã®ãã€ã³ã¿ã
suspend_type-ã¿ã¹ã¯äžæã®ã¿ã€ããååŸããå€æ°ãžã®ãã€ã³ã¿ãŒã æå¹ãªãµã¹ãã³ã·ã§ã³ã¿ã€ãïŒ NU_FIFOããã³NU_PRIORITY ;
tasks_waiting-ãã®ããŒãã£ã·ã§ã³ããŒã«å ã®äžæãããã¿ã¹ã¯ã®æ°ãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒã
first_task-æåã«äžæãããã¿ã¹ã¯ã®ãã€ã³ã¿ãŒãé 眮ãããŠããã¿ã¹ã¯ãã€ã³ã¿ãŒãžã®ãã€ã³ã¿ãŒã
æ»ãå€ïŒ
NU_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NU_INVALID_POOL-ããŒãã£ã·ã§ã³ããŒã«ãžã®ç¡å¹ãªãã€ã³ã¿ãŒã
Nucleus SEã§ã®ããŒãã£ã·ã§ã³ããŒã«æ å ±ã®åŒã³åºã
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NUSE_Partition_Pool_InformationïŒNUSE_PARTITION_POOLããŒã«ãADDR * start_addressãU32 * pool_sizeãU16 * partition_sizeãU8 * availableãU8 *å²ãåœãŠæžã¿ãU8 * tasks_waitingãNUSE_TASK * first_taskïŒ
ãã©ã¡ãŒã¿ïŒ
pool-æ å ±ãèŠæ±ãããããŒãã£ã·ã§ã³ããŒã«ã®ã€ã³ããã¯ã¹ã
start_address-ããŒãã£ã·ã§ã³ããŒã«ã®ããŒã¿é åã®å é ãžã®ãã€ã³ã¿ãŒãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒã
pool_size-ããŒãã£ã·ã§ã³ããŒã«ã®ãµã€ãºïŒãã€ãåäœïŒãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒã
partition_size-ç¹å®ã®ããŒã«å ã®ããŒãã£ã·ã§ã³ã®ãµã€ãºãååŸããå€æ°ãžã®ãã€ã³ã¿ãŒã
available-ç¹å®ã®ããŒã«ã§çŸåšäœ¿çšå¯èœãªããŒãã£ã·ã§ã³ã®æ°ãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒã
å²ãåœãŠ -ç¹å®ã®ããŒã«ã§çŸåšäœ¿çšãããŠããããŒãã£ã·ã§ã³ã®æ°ãåãåãå€æ°ãžã®ãã€ã³ã¿ã
tasks_waiting-ãã®ããŒãã£ã·ã§ã³ããŒã«ã§äžæãããã¿ã¹ã¯ã®æ°ãåãåãå€æ°ãžã®ãã€ã³ã¿ãŒïŒã¿ã¹ã¯ã®äžæãç¡å¹ã«ãªã£ãŠããå Žåã0ãè¿ãããŸãïŒã
first_task-æåã«äžæãããã¿ã¹ã¯ã®ã€ã³ããã¯ã¹ãåãåãNUSE_TASKåã®å€æ°ãžã®ãã€ã³ã¿ãŒïŒã¿ã¹ã¯ã®äžæãç¡å¹ãªå Žåã0ãè¿ãããŸãïŒã
æ»ãå€ïŒ
NUSE_SUCCESS-åŒã³åºãã¯æ£åžžã«å®äºããŸããã
NUSE_INVALID_POOL-ç¡å¹ãªããŒãã£ã·ã§ã³ããŒã«ã€ã³ããã¯ã¹ã
NUSE_INVALID_POINTER-æž¡ããã 1ã€ä»¥äžã®ãã€ã³ã¿ãŒãç¡å¹ã§ãã
Nucleus SEã§ã®æ å ±æ€çŽ¢ãšããŒãã£ã·ã§ã³ããŒãªã³ã°ã®å®è£
ãã®ãããªAPIåŒã³åºãã®å®è£ ã¯ç°¡åã«å®è¡ã§ããŸãã
ãã®é¢æ°ã¯ãããŒãã£ã·ã§ã³ããŒã«ã®ã¹ããŒã¿ã¹ãè¿ããŸãã 次ã«ãAPIã³ãŒã«ããããã³ã°ãæå¹ã«ãªã£ãŠããå Žåãä¿çäžã®ã¿ã¹ã¯ã®æ°ãšæåã®ã¿ã¹ã¯ã®ã€ã³ããã¯ã¹ãè¿ãããŸãïŒãã以å€ã®å Žåããããã®ãã©ã¡ãŒã¿ãŒã¯0ã«èšå®ãããŸãïŒã
ããŒãã£ã·ã§ã³ããŒã«ã®æ°ãååŸãã
ãã®åŒã³åºãã¯ãã¢ããªã±ãŒã·ã§ã³ã§æ§æãããŠããããŒãã£ã·ã§ã³ããŒã«ã®æ°ã«é¢ããæ å ±ãè¿ããŸãã Nucleus RTOSã§ã¯ãã®æ°ã¯æéãšãšãã«å€åããæ»ãå€ã¯çŸåšã®ããŒã«æ°ãè¡šããŸãããNucleus SEã§ã¯æ»ãå€ã¯ã¢ã»ã³ããªäžã«èšå®ãããå€æŽãããŸããã
Nucleus RTOSã§ããŒãã£ã·ã§ã³ããŒã«ã®æ°ãååŸãã課é¡
ãã®åŒã³åºãã¯ãNucleus RTOS APIã®ã³ã¢æ©èœããµããŒãããŠããŸãã
ãããã¿ã€ããåŒã³åºãïŒ
UNSIGNED NU_Established_Partition_PoolsïŒVOIDïŒ;
ãã©ã¡ãŒã¿ïŒ
æ¬ åžããŠããŸãã
æ»ãå€ïŒ
ã¢ããªã±ãŒã·ã§ã³ã§äœæãããããŒãã£ã·ã§ã³ããŒã«ã®æ°ã
Nucleus SEã§ããŒãã£ã·ã§ã³ããŒã«ã®æ°ãååŸãããšãã課é¡
ãã®ãŠãŒãã£ãªãã£åŒã³åºãã¯ãNucleus RTOS APIã®ã³ã¢æ©èœããµããŒãããŠããŸãã
ãããã¿ã€ããåŒã³åºãïŒ
U8 NUSE_Partition_Pool_CountïŒvoidïŒ;
ãã©ã¡ãŒã¿ïŒ
æ¬ åž
æ»ãå€ïŒ
ã¢ããªã±ãŒã·ã§ã³ã§äœæãããããŒãã£ã·ã§ã³ããŒã«ã®æ°ã
å®è£
ãã®APIåŒã³åºãã®å®è£ ã¯éåžžã«ç°¡åã§ããNUSE_PARTITION_POOL_NUMBERã·ã³ãã«ã®#defineå€ãè¿ãããŸãã
ããŒã¿æ§é
ä»ã®ãã¹ãŠã®Nucleus SEãªããžã§ã¯ããšåæ§ã«ãããŒãã£ã·ã§ã³ããŒã«ã¯ROMãšRAMã®äž¡æ¹ã§æ§é é åã䜿çšããŸãããã®æ°ã¯ãèšå®ã§æå®ãããããŒã«ã®æ°ã«äŸåããŸãã
ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã¯ãçŽæ¥ã§ã¯ãªããAPIé¢æ°ãä»ããŠãã®ãããªããŒã¿æ§é ã«ã¢ã¯ã»ã¹ããããšã匷ããå§ãããŸãã ããã«ãããNucleus SEã®å°æ¥ã®ããŒãžã§ã³ãšã®éäºææ§ãæãŸãããªãå¯äœçšãåé¿ãããNucleus RTOSãžã®ã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€ãç°¡çŽ åãããŸãã 以äžã¯ããµãŒãã¹åŒã³åºãã³ãŒããšãããã°ã®ç解ã容æã«ããããã®ããŒã¿æ§é ã®è©³çŽ°ãªèª¬æã§ãã
RAMã«é 眮ãããã«ãŒãã«ããŒã¿ã®æ§é
ãã®ãããªããŒã¿æ§é ã«ã¯ä»¥äžãå«ãŸããŸãã
NUSE_Partition_Pool_Partition_Used [] -çŸåšäœ¿çšãããŠããããŒã«ã®ã«ãŠã³ã¿ãŒãå«ããæ§æãããããŒãã£ã·ã§ã³ããŒã«ããšã«1ã€ã®ãšã³ããªãæã€ãã¿ã€ãU8ã®é åã
NUSE_Partition_Pool_Blocking_Count [] -åããŒãã£ã·ã§ã³ããŒã«ã§ãããã¯ãããã¿ã¹ã¯ã®ã«ãŠã³ã¿ãŒãå«ãU8åã®é åã ãã®é åã¯ãAPIåŒã³åºãããããã¯ã§ããå Žåã«ååšããŸãã
ãã®ãããªããŒã¿æ§é ã¯ãNucleus SEã®èµ·åæã«NUSE_Init_ Partition_PoolïŒïŒã䜿çšããŠãŒãã«åæåãããŸãã ããã¯ãåããŒã«ã®åããŒãã£ã·ã§ã³ãæªäœ¿çšïŒç¡æïŒã«ãããããè«ççã§ãã 次ã®èšäºã§ã¯ãNucleus SEã®èµ·åæé ã«ã€ããŠè©³ãã説æããŸãã
以äžã¯ã nuse_init.cãã¡ã€ã«å ã®ããŒã¿æ§é ã®èª¬æã§ãã
RAMãŠãŒã¶ãŒããŒã¿
ãŠãŒã¶ãŒã¯ãåããŒãã£ã·ã§ã³ããŒã«ã®ããŒã¿ãä¿åããããã«ãRAMã«é åãå²ãåœãŠãå¿ èŠããããŸãã RAMã®ã¹ããŒã¹ã®éã¯ãæ§æãããããŒãã£ã·ã§ã³ã®ããªã¥ãŒã ã«å¯Ÿå¿ããå¿ èŠãããïŒä»¥äžã®ãROMã®ããŒã¿ããåç §ïŒãããŒã«å ã®åããŒãã£ã·ã§ã³ã«è¿œå ã®ãã€ããå¿ èŠã§ãã ããŒã¿é åã®åã»ã¯ã·ã§ã³ã®åã«ã¯ãã¹ããŒã¿ã¹ãã€ãã1ã€ãããŸãã
ROMããŒã¿
ãããã«ã¯ä»¥äžãå«ãŸããŸãã
NUSE_Partition_Pool_Data_Address []-ADDRã¿ã€ãã®é åãæ§æãããããŒãã£ã·ã§ã³ããŒã«ããšã«1ã€ã®ãšã³ããªããããããŒã¿ã¹ãã¬ãŒãžé åã®å é ã®ã¢ãã¬ã¹ãå«ãŸããŸãã
NUSE_Partition_Pool_Partition_Number [] -æ§æãããããŒãã£ã·ã§ã³ããŒã«ããšã«1ã€ã®ãšã³ããªãæã€ã¿ã€ãU8ã®é åãããŒã«å ã®ããŒãã£ã·ã§ã³ã®æ°ã«é¢ããæ å ±ãå«ãŸããŸãã
NUSE_Partition_Pool_Partition_Size [] -æ§æãããããŒãã£ã·ã§ã³ããŒã«ããšã«1ã€ã®ãšã³ããªãæã¡ãããŒã«ã®ããŒãã£ã·ã§ã³ã®ãµã€ãºãå«ãU16åã®é åã
ãã®ãããªããŒã¿æ§é ã¯ã nuse_config.c㧠ïŒéçã«ïŒå®£èšããã³åæåãããŸã ã
ããŒãã£ã·ã§ã³ããŒã«ã®ããŒã¿ãããããªã³ã
Nucleus SEã®ãã¹ãŠã®ã³ã¢ãªããžã§ã¯ããšåæ§ã«ãããŒãã£ã·ã§ã³ããŒã«ã«å¿ èŠãªã¡ã¢ãªéã¯äºæž¬å¯èœã§ãã
ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ããŒãã£ã·ã§ã³ããŒã«ã®ROMãµã€ãºïŒãã€ãåäœïŒã¯ã次ã®ããã«èšç®ã§ããŸãã
NUSE_PARTITION_POOL_NUMBER *ïŒsizeofïŒADDRïŒ+ 2ïŒ
APIåŒã³åºãã®ãããã¯ãã¢ã¯ãã£ãã«ãªã£ãŠããå Žåããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ããŒãã£ã·ã§ã³ããŒã«ã®RAMå ã®ã«ãŒãã«ããŒã¿ã®éã¯ãããŒãã£ã·ã§ã³ããŒã«ããšã«2ãã€ãã®ã¿ã§ããããã¯ãã¢ã¯ãã£ãã«ãªã£ãŠããªãå Žåã¯1ãã€ãã§ãã
RAMã«ãŠãŒã¶ãŒããŒã¿ãæ ŒçŽããããã®ã¡ã¢ãªã®éã¯ããŒãã£ã·ã§ã³ããŒã«ããšã«ç°ãªããŸãããæ¢ã«è¿°ã¹ãããã«ãã€ã³ããã¯ã¹nã®ããŒã«ã§ã¯æ¬¡ã®ããã«èšç®ã§ããŸãã
NUSE_Partition_Pool_Partition_Number [n] *
ïŒNUSE_Partition_Pool_Partition_Size [n] + 1ïŒ
æªå®çŸã®APIåŒã³åºã
Nucleus RTOSã«å®è£ ãããŠããããŒãã£ã·ã§ã³ããŒã«ã®3ã€ã®APIåŒã³åºãã¯ãNucleus SEã§ã¯ãµããŒããããŠããŸããã
ããŒãã£ã·ã§ã³ããŒã«ãäœæãã
ãã®APIåŒã³åºãã¯ãããŒãã£ã·ã§ã³ããŒã«ãäœæããŸãã ã¿ã¹ã¯ã¯éçã«äœæããããããNucleus SEã§ã¯å¿ èŠãããŸããã
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NU_Create_Partition_PoolïŒNU_PARTITION_POOL * poolãCHAR * nameãVOID * start_addressãUNSIGNED pool_sizeãUNSIGNED partition_sizeãOPTION suspend_typeïŒ;
ãã©ã¡ãŒã¿ïŒ
pool-ããŒãã£ã·ã§ã³ããŒã«ã管çããããã®ãŠãŒã¶ãŒãŠããããžã®ãã€ã³ã¿ã ä»ã®APIåŒã³åºãã§ããŒãã£ã·ã§ã³ããŒã«ãžã®ãã³ãã«ãšããŠäœ¿çšãããŸãã
name-ããŒãã£ã·ã§ã³ããŒã«ã®ååãžã®ãã€ã³ã¿ãçµäºãŒããå«ã7æåã®æååã
start_address-ããŒãã£ã·ã§ã³ããŒã«ã®ã¡ã¢ãªé åã®éå§ã¢ãã¬ã¹ãèšå®ããŸãã
pool_size-ãã€ãåäœã®ã¡ã¢ãªé åã®åèšéã
partition_sizeã¯ãããŒã«å ã®åããŒãã£ã·ã§ã³ã®ãã€ãåäœã®ã¡ã¢ãªéã§ãã ããã«ãåã»ã¯ã·ã§ã³ã«é¢é£ä»ããããè¿œå ã®å°éã®ã¡ã¢ãªãå²ãåœãŠãããŸããããã¯ã䜿çšããã2ã€ã®ããŒã¿ãã€ã³ã¿ã®ãããã§å®çŸãããŸãã
suspend_type-ããŒãã£ã·ã§ã³ããŒã«ã§ã¿ã¹ã¯ãäžæåæ¢ããæ¹æ³ã決å®ããŸãã æå¹ãªãã©ã¡ãŒã¿ãŒãªãã·ã§ã³ã¯NU_FIFOããã³NU_PRIORITYã§ãã
æ»ãå€ïŒ
NU_SUCCESS-åŒã³åºããæ£åžžã«å®äºããããšã瀺ããŸãã
NU_INVALID_POOL-ããŒãã£ã·ã§ã³ããŒã«ã³ã³ãããŒã«ãŠãããã®ãŒãå€ïŒ NULL ïŒã瀺ããŸãã
NU_INVALID_MEMORY - start_ address ïŒ NULL ïŒã§å®çŸ©ãããã¡ã¢ãªé åã®ãŒãå€ã瀺ããŸã ã
NU_INVALID_SIZE-ããŒãã£ã·ã§ã³ãµã€ãºã0ãŸãã¯ããŒãã£ã·ã§ã³ã«å²ãåœãŠãããã¡ã¢ãªãã倧ããããšã瀺ããŸãã
NU_INVALID_SUSPEND-ç¡å¹ãªsuspend_typeå€ã
ããŒãã£ã·ã§ã³ããŒã«ã®åé€
ãã®APIåŒã³åºãã¯ã以åã«äœæãããããŒãã£ã·ã§ã³ããŒã«ãåé€ããŸãã ãªããžã§ã¯ãã¯éçã«äœæãããåé€ã§ããªããããNucleus SEã§ã¯å¿ èŠãããŸããã
ãããã¿ã€ããåŒã³åºãïŒ
STATUS NU_Delete_Partition_PoolïŒNU_PARTITION_POOL *ããŒã«ïŒ;
ãã©ã¡ãŒã¿ïŒ
pool-ããŒãã£ã·ã§ã³ããŒã«ã³ã³ãããŒã«ãŠããããžã®ãã€ã³ã¿ã
æ»ãå€ïŒ
NU_SUCCESS-åŒã³åºããæ£åžžã«å®äºããããšã瀺ããŸãã
NU_INVALID_POOL-ããŒãã£ã·ã§ã³ããŒã«ãã€ã³ã¿ãŒã®ç¡å¹ãªå€ã瀺ããŸãã
ããŒãã£ã·ã§ã³ããŒã«ãã€ã³ã¿ãŒ
ãã®APIåŒã³åºãã¯ãã·ã¹ãã å ã®ãã¹ãŠã®ããŒãã£ã·ã§ã³ããŒã«ãžã®ãã€ã³ã¿ãŒã®é 次ãªã¹ããäœæããŸãã ãªããžã§ã¯ãã¯ãã€ã³ã¿ãŒã§ã¯ãªãã€ã³ããã¯ã¹ã«ãã£ãŠèå¥ããããããNucleus SEã§ã¯ããã¯å¿ èŠãããŸããã
ãããã¿ã€ããåŒã³åºãïŒ
UNSIGNED NU_Partition_Pool_PointersïŒNU_PARTITION_POOL ** pointer_listãUNSIGNED maximum_pointersïŒ;
ãã©ã¡ãŒã¿ïŒ
pointer_list-ãã€ã³ã¿ãŒã®é åãžã®ãã€ã³ã¿ãŒNU_PARTITION_POOL ; é åã«ã¯ãã·ã¹ãã å ã®æ§ææžã¿ããŒã«ãžã®ãã€ã³ã¿ãŒãå ¥ããŸãã
maximum_pointers-é åã«é 眮ã§ãããã€ã³ã¿ãŒã®æ倧æ°ã
æ»ãå€ïŒ
é åã«é 眮ãããNU_PARTITION_POOLãã€ã³ã¿ãŒã®æ°ã
Nucleus RTOSäºæ
Nucleus SEãéçºããéã®äž»ãªã¿ã¹ã¯ã®1ã€ã¯ãNucleus RTOSãšã®é«ã¬ãã«ã®ã³ãŒãäºææ§ã確ä¿ããããšã§ããã ããŒãã£ã·ã§ã³ããŒã«ãäŸå€ã§ã¯ãªããéçºè ã®èŠ³ç¹ããã¯ãNucleus RTOSãšã»ãŒåãæ¹æ³ã§å®è£ ãããŠããŸãã äºææ§ã®ãªãæ¢åã®é åãåãå ¥ããããŸãããæçµçãªã³ãŒãã®æ¹ãç解ãããããã¡ã¢ãªã®é¢ã§ããå¹ççã§ããããšãèæ ®ãã䟡å€ããããŸãã ãã ããNucleus RTOS APIåŒã³åºãã¯ãNucleus SEåŒã³åºããšããŠã»ãŒçŽæ¥äœ¿çšã§ããŸãã å°æ¥ãNucleus RTOSã®ãŠãŒã¶ãŒã«ããNucleus SEã®äœ¿çšã«é¢ããæ å ±ãå«ãèšäºãèšç»ãããŸãã
ãªããžã§ã¯ãèå¥å
Nucleus RTOSã§ã¯ããã¹ãŠã®ãªããžã§ã¯ãã¯ç¹å®ã®ã¿ã€ãã®ããŒã¿æ§é ïŒã³ã³ãããŒã«ãŠãããïŒã«ãã£ãŠèšè¿°ãããŸãã ãã®å¶åŸ¡ãããã¯ãžã®ãã€ã³ã¿ãŒã¯ãããŒãã£ã·ã§ã³ããŒã«ã®èå¥åãšããŠäœ¿çšãããŸãã Nucleus SEã§ã¯ãã¡ã¢ãªãããå¹ççã«äœ¿çšããããã«å¥ã®ã¢ãããŒããå¿ èŠã§ãããšå€æããŸããã ãã¹ãŠã®ã«ãŒãã«ãªããžã§ã¯ãã¯ãRAMããã³/ãŸãã¯ROMã®ããã€ãã®ããŒãã«ã§èšè¿°ãããŸãã ãããã®ããŒãã«ã®ãµã€ãºã¯ããã¹ãŠã®ãªããžã§ã¯ãã®æ§æå¯èœãªã¿ã€ãã®æ°ã«ãã£ãŠæ±ºãŸããŸãã ç¹å®ã®ãªããžã§ã¯ãã®èå¥åã¯ããããã®ããŒãã«ã®ã€ã³ããã¯ã¹ã§ãã ãããã£ãŠã NUSE_PARTITION_POOLã¯U8 ãšåçã§ãããšå€æããŸããããã®åŸããã®ã¿ã€ãã®å€æ°ïŒãã€ã³ã¿ãŒã§ã¯ãªãïŒãã¿ã¹ã¯ã®èå¥åãšããŠæ©èœããŸãã ãã®ããããªéäºææ§ã¯ãã³ãŒããNucleus RTOSãšã®éã§ç§»æ€ãããŠãããã©ãããç°¡åã«ææ¡ã§ããŸãã éåžžããªããžã§ã¯ãèå¥åã¯å€æŽãããã«ä¿åããã³éä¿¡ãããŸãã
Nucleus RTOSã¯ãããŒãã£ã·ã§ã³ããŒã«ã®åœåããµããŒãããŠããŸãã ãããã®ååã¯ããããã°ã«ã®ã¿äœ¿çšãããŸãã ã¡ã¢ãªãç¯çŽããããã«ãNucleus SEããããããé€å€ããŸããã
ã»ã¯ã·ã§ã³ã®æ°ãšãã®ããªã¥ãŒã
Nucleus RTOSã§ã¯ãããŒã«ã®åèšããªã¥ãŒã ãšããŒãã£ã·ã§ã³ã®ããªã¥ãŒã ïŒããã«2ã€ã®ãã€ã³ã¿ãŒãéã¶ïŒã«åºã¥ããŠãããŒãã£ã·ã§ã³ããŒã«ãæ§æãããŸãã ãããã®ãã©ã¡ãŒã¿ãŒã¯ãUNSIGNEDïŒçŽ32ãããïŒãšããŠå®çŸ©ãããŸãã Nucleus SEã§ã¯ãããŒãã£ã·ã§ã³ã®ãµã€ãºïŒè¿œå ãã€ããè¿œå ãããŠããïŒãšããŒãã£ã·ã§ã³ã®ç·æ°ã«åºã¥ããŠãããŒãã£ã·ã§ã³ããŒã«ãæ§æãããŸãã ãããã®ãã©ã¡ãŒã¿ãŒã¯ãããããU16ããã³U8ãšããŠå®çŸ©ãããŠããŸãã
æªå®çŸã®APIåŒã³åºã
Nucleus RTOSã¯ãããŒãã£ã·ã§ã³ããŒã«ãæäœããããã®7ã€ã®åŒã³åºãããµããŒãããŠããŸããããã®ãã¡3ã€ã¯Nucleus SEã«ã¯å®è£ ãããŠããŸããã ãããã®èª²é¡ã®è©³çŽ°ãšé€å€ã®çç±ã«ã€ããŠã¯ãäžèšã§æŠèª¬ããŠããŸãã
次ã®èšäºã¯ã·ã°ãã«ã«ã€ããŠã§ãã
èè ã«ã€ããŠïŒ Colin Wallsã¯é»åæ¥çã§30幎以äžåããŠãããã»ãšãã©ã®æéããã¡ãŒã ãŠã§ã¢ã«è²»ãããŠããŸãã çŸåšãMentor EmbeddedïŒMentor Graphicsã®äžéšéïŒã®ãã¡ãŒã ãŠã§ã¢ãšã³ãžãã¢ã§ãã Colin Wallsã¯ãã«ã³ãã¡ã¬ã³ã¹ãã»ãããŒãå€ãã®æè¡èšäºã®èè ããã¡ãŒã ãŠã§ã¢ã«é¢ãã2åã®æ¬ã§ãã話ããŸãã è±åœã«äœãã§ããŸãã Colinã®ãããã§ãã·ã§ãã«ããã° ãé»åã¡ãŒã«ïŒcolin_walls@mentor.comã