
		TOPPERS/ASPͥ
		Mac OS XåȰ¸ 桼ޥ˥奢

		бС: Release 1.9.1
		ǽ: 2014ǯ1117

ΥɥȤϡTOPPERS/ASPͥMac OS XåȰ¸
뤿ɬפʻΤǤ롥

----------------------------------------------------------------------
 TOPPERS/ASP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Advanced Standard Profile Kernel

 Copyright (C) 2008-2014 by Embedded and Real-Time Systems Laboratory
             Graduate School of Information Science, Nagoya Univ., JAPAN
 
 嵭Ԥϡʲ(1)(4)ξ˸¤ꡤܥեȥ
 ܥեȥѤΤޤࡥʲƱˤѡʣ
 ѡۡʰʲѤȸƤ֡ˤ뤳Ȥ̵ǵ롥
 (1) ܥեȥ򥽡ɤηѤˤϡ嵭
     ɽѾ浪Ӳ̵ݾڵ꤬Τޤޤηǥ
     ˴ޤޤƤ뤳ȡ
 (2) ܥեȥ򡤥饤֥ʤɡ¾Υեȥȯ˻
     ѤǤǺۤˤϡۤȼɥȡ
     ԥޥ˥奢ʤɡˤˡ嵭ɽѾ浪Ӳ
     ̵ݾڵǺܤ뤳ȡ
 (3) ܥեȥ򡤵Ȥ߹ʤɡ¾Υեȥȯ˻
     ѤǤʤǺۤˤϡΤ줫ξ
     ȡ
   (a) ۤȼɥȡѼԥޥ˥奢ʤɡˤˡ嵭
       ɽѾ浪Ӳ̵ݾڵǺܤ뤳ȡ
   (b) ۤη֤̤ˡˤäơTOPPERSץȤ
       𤹤뤳ȡ
 (4) ܥեȥѤˤľŪޤϴŪ뤤ʤ»
     ⡤嵭ԤTOPPERSץȤդ뤳ȡ
     ޤܥեȥΥ桼ޤϥɥ桼Τʤ
     ͳ˴Ťᤫ⡤嵭ԤTOPPERSץȤ
     դ뤳ȡ
 
 ܥեȥϡ̵ݾڤ󶡤ƤΤǤ롥嵭Ԥ
 TOPPERSץȤϡܥեȥ˴ؤơλŪ
 ФŬޤơʤݾڤԤʤޤܥեȥ
 ѤˤľŪޤϴŪʤ»˴ؤƤ⡤
 Ǥʤ
 
 $Id$
----------------------------------------------------------------------

ܼ

Mac OS XåȰ¸γ
	1.1 б륿åȥƥȥåά
	1.2 åȰ¸ι
	1.3 ¸Ƥ̥ѥåΥСֹ
	1.4 ȯĶưǧ
	1.5 ޥå
åε
	2.1 ǡ˴ؤ뵬
	2.2 ߽CPU㳰˴ؤ뵬
	2.3 ǽɾѥƥλȤ˴ؤ뵬
	2.4 ߥ塼ƥåǽĥΥݡȤ˴ؤ뵬
	2.5 Хϥɥ鵡ǽĥΥݡȤ˴ؤ뵬
	2.6 ͥٳĥΥݡȤ˴ؤ뵬
	2.7 󥿥ĥΥݡȤ˴ؤ뵬
	2.8 ưŪǽĥΥݡȤ˴ؤ뵬
	2.9 ¾»
ɥ饤дϢξ
	3.1 ޥɥ饤
	3.2 ꥢ륤󥿥եɥ饤
	3.3 ƥ٥
	3.4 Υ֥åI/Oݡȥ⥸塼
ƥ๽ۼȼ¹Լ
	4.1 ƥ๽ۤȼ¹
	4.2 ǥХåλˡ
;
	5.1 ΥåȤؤΥݡƥ
ե
	6.1 ǥ쥯ȥ깽ե빽
	6.2 С


Mac OS XåȰ¸γ

Mac OS XåȰ¸ϡTOPPERS/ASPͥIntelץåޤ
PowerPCץåưMac OS X1ĤΥץǥߥ졼
ưĶʤASPͥMac OS Xߥ졼Ķȸ
֡ˤ뤿ΤΤǤ롥Υߥ졼ĶǤϡASP
γƥץΥ桼٥륹åɤȤư롥

1.1 б륿åȥƥȥåά

ưǧԤäåȥƥपOSΥСϼ̤ꡥ

	Intelץå
		ޥ̾MacBook Air
		ץå1.7GHz Intel Core i7
		OSMac OS X С 10.9.5

ʤǤϡIntelץå32ӥåȴĶIA-32ˤΤߤ򥵥ݡ
Ƥꡤ64ӥåȴĶx86-64ˤϥݡȤƤʤ64ӥåȴĶ
ݡȤ뤿κβϡȥS쥳ɥեޥåȤ64ӥå
ɥ쥹бƤʤȤǤ롥

ޤåάϼ̤ꡥ

	åάΡmacosx_gcc
	ƥάΡmacosx
	ȯĶάΡgcc

1.2 åȰ¸ι

Mac OS XåȰ¸λѤ륿åȰ¸targetǥ쥯ȥ
ӥåȰ¸ζarchǥ쥯ȥˤΥǥ쥯ȥϼ
̤ꡥʤMac OS XåȰ¸ϡPDICϻѤƤʤ

	target/
		macosx_gcc/		Mac OS XåȰ¸
	arch/
		gcc/			GCCȯĶ¸
		logtrace/		ȥ졼ϿΥץ륳

Xcode°CѥClangǤꡤGCCǤϤʤϰϤǤϸߴ
ǻȤ뤿ᡤGCCȯĶ¸ήѤƤ롥

1.3 ¸Ƥ̥ѥåΥСֹ

Mac OS XåȰ¸ʥС 1.9.1ˤθ̥ѥå¸
̥ѥåȡưǧԤäСϼ̤ꡥ

	̥ѥå̾	С	̥ѥåե̾
	------------------------------------------------------------------
	å¸		1.9.1		asp-1.9.1.tar.gz

1.4 ȯĶưǧ

ȯĶȤơXcode°CѥCCˤȡGNUХʥ桼ƥ
ƥbinutilsˤѤ롥ưǧԤäСϼ̤ꡥ

	Clang: Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
	GDB7.7
	binutilsobjcopyobjdumpˡ2.24

嵭CCϡXcode 6.0.1˴ޤޤΤǤ롥XcodeϡCommand Line
Tools򥤥󥹥ȡ뤹뤳ȡ

GDBbinutilsϡHomeBrewˤꥤ󥹥ȡ뤷ΤѤưǧ
HomeBrewϡbinutilsγƥץ"g"ǻϤޤ̾Τǥ󥹥ȡ뤹뤿
ᡤMakefile.targetǡnmobjcopy夨ơgnmgobjcopyѤ褦
ƤnmXcodeˤޤޤƤ뤬ưǧǤbinutils˴ޤޤƤ
nmѤˡ

1.5 ޥå

Mac OS Xߥ졼ĶǤϡTOPPERS/ASPͥ뤪ӥץꥱ
󥽥եȥMac OS X1ĤΥץư뤿ᡤޥå
ˤĤƤϡMac OS XΥץɸΰ˽


åε

2.1 ǡ˴ؤ뵬

åȰ¸ΥǡΥϼ̤ꡥ

	int_t			32ӥå
	long_t			32ӥå

	char			8ӥå
	int_least8_t	8ӥå
	void *			32ӥå
	intptr_t		32ӥå

åȰ¸Υǡ̵ͭϼ̤ꡥ

	int8_tuint8_t			
	int64_tuint64_t		
	int128_tuint128_t		ʤ
	float32_t				
	double64_t				

2.2 ߽CPU㳰˴ؤ뵬

Mac OS Xߥ졼ĶǤϡץФ륷ʥ򡤳ߤ
CPU㳰ȤưSIGKILLSIGSTOP2ĤΥʥϡ
Ф륷ʥϥɥϿǤʤᡤߤޤCPU㳰Ȥ
ȤǤʤޤSIGUSR2⡤Mac OS Xߥ졼Ķμ¸
Τ˻Ѥ뤿ᡤߤޤCPU㳰ȤưȤǤʤ

3ĤΥʥȡΥʥ⡤ߤȤư
⡤CPU㳰ȤưȤǤ롥ŪˤϡDEF_INHˤäƳߥ
ɥϿ뤫ATT_ISRˤäƳߥӥ롼Ͽ
ˤϡߤȤư졤DEF_EXCˤäCPU㳰ϥɥϿ
ˤϡCPU㳰Ȥư롥

ߥϥɥֹinhnoˡֹintnoˡCPU㳰ϥɥֹ
excnoˤͤϡ⡤ʥֹȰפƤ롥ʥ̾ȥ
ʥֹϡ/usr/include/sys/signal.hƤ롥ʤmacosx.h
餳Υإåե򥤥󥯥롼ɤƤ뤿ᡤʥ̾Ѥ
ˤϡmacosx.h򥤥󥯥롼ɤɤ

ͥ٤ȤƤϡ-7-17ʳ򥵥ݡȤƤ뤬-7NMI
ƤꡤͥγߤȤǤΤϡ-6-1ϰϤǤ롥ǥե
ȤǤϡtarget_kernel.hˤTMIN_INTPRI-6ꤷƤꡤϡ
NMIʳ˥ͥγߤߤʤȤ̣Ƥ롥ͤ
-5ѹȡNMI˲äơͥ٤-6γߤͥ
Ȥʤ롥ʤTMIN_INTPRIǤͤϡ-6-1ϰϤǤ롥

ߤ򥫡ͥγߤȤƻѤˤϡCFG_INTˤ
Ƴͥ٤TMIN_INTPRI⤤٥ͤȤƤϡ꾮͡ˤ
ꤷߥϥɥ°TA_NONKERNELꤷDEF_INHˤߥ
ɥФ褤ʥͥγߤФƳߥӥ롼
Ͽ뤳ȤϤǤʤΤաˡ

ͥγߥϥɥϡͥγ߽ͳ
˸ƤӽФ롥ʤͥγߥϥɥεˡϡ
Mac OS XΥʥϥɥƱǤ롥

dis_intena_intϡNMIʳγ׵饤ФƥݡȤƤ롥
դ˸ȡͥ٤-7NMIˤγ׵饤CPU㳰Ȥư
Ƥ륷ʥ롤°ꤵƤʤ׵饤Ф
dis_intena_intϡE_OBJ顼Ȥʤ롥

CFG_INTФ»Ȥơ٥ȥꥬݡȤƤ餺
°TA_EDGEꤷʤȡE_RSATR顼Ȥʤ롥ϡץ
Ф륷ʥϡåȥꥬƱͤ˿񤤡٥ȥꥬΤ褦˿
碌뤳ȤǤʤǤ롥

xsns_xpnФ»ϤʤΤȽꤵˡ

ʲ3ĤΥʥϡߤȤƤCPU㳰ȤƤⰷʤˡ
ʥޥˡɸŪʿ񤤤򤵤롥ϡǥХåưפ
뤿Ǥ㤨СSIGINTޥȡCTRL+Cǥץμ¹
ߤʤʤˡ

	SIGINT		ߡCTRL+C
	SIGBUS		Х顼
	SIGSEGV		ơȿ

2.3 ǽɾѥƥλȤ˴ؤ뵬

get_utm򥵥ݡȤƤ뤬ߥ졼Ķ¾塤Τǽɾ
˻Ѥ뤳ȤϤǤʤ

2.4 ߥ塼ƥåǽĥΥݡȤ˴ؤ뵬

ߥ塼ƥåǽĥѥå򥵥ݡȤƤ롥

2.5 Хϥɥ鵡ǽĥΥݡȤ˴ؤ뵬

Хϥɥ鵡ǽĥѥå򥵥ݡȤƤ뤬ߥ졼
Ķ¾塤ץå֤¬ˤϤʤθޤޤ롥ץ
֤˻Ǥͤ¤ϤʤʤĤޤꡤTMAX_OVRTIMULONG_MAXǤ
ˡ

2.6 ͥٳĥΥݡȤ˴ؤ뵬

ͥٳĥѥå򥵥ݡȤƤ롥

2.7 󥿥ĥΥݡȤ˴ؤ뵬

󥿥ĥѥå򥵥ݡȤƤ롥

2.8 ưŪǽĥΥݡȤ˴ؤ뵬

ưŪǽĥѥå򥵥ݡȤƤ롥

ưŪϡץ󥽡Υդ饤֥ǤTLSF
ˡɸˤƤ롥ΤᡤưŪǽĥѤˤϡ
TLSFΥѥå˴ޤޤtlsf.htlsf.c򡤥ͥӥɤǥ
ȥ꤫vpathǻꤵ줿ǥ쥯ȥ֤Ƥɬפ롥ޤ
MakefileKERNEL_COBJSˡʲΤ褦tlsf.oɲäɬפ롥

----------------------------------------
KERNEL_COBJS := $(KERNEL_COBJS) tlsf.o
----------------------------------------

ʤTLSFưǧϡVersion 2.4.6ˤϡʲΥ֥Ȥ
ɤ뤳ȤǤ롥

	http://rtportal.upv.es/rtmalloc/

2.9 ¾»

sil_dly_nseϡߥ졼ĶǤϰ̣ʤȤ顤⤷ʤ
饤ؿȤƤ롥


ɥ饤дϢξ

3.1 ޥɥ饤

ޥɥ饤ФϡMac OS XΥ󥿡Х륿޵ǽѤƤ롥
ᡤ󥿡Х륿ޤ̤ŪǻѤ뤳ȤϤǤʤ

ƥåμϡǥեȤǤ10ߥäȤƤ롥target_kernel.h
ƤTIC_NUMETIC_DENO񤭴뤳Ȥǡƥå
ѹ뤳ȤǤ롥

3.2 ꥢ륤󥿥եɥ饤

ꥢ륤󥿥եɥ饤ФǤϡꥢI/OݡȤ1ĤΤߥݡ
ƤꡤץɸϤФʸϤǼ¸Ƥ롥
ꥢ륤󥿥եɥ饤Фʸϡץɸ
Ϥ˽Ϥ졤ꥢ륤󥿥եɥ饤Фʸ褦Ȥ
ȡץɸϤϤ롥

ʣΥꥢI/OݡȤ򥵥ݡȤɸϰʳФʸ
ǽˤ뤳ȤθƥɤƤ뤬Ǥ̤ڤǤ
롥

3.3 ƥ٥

ƥ٥Ϥϡץɸ२顼ФʸϤ
ˡǼ¸Ƥ롥

3.4 Υ֥åI/Oݡȥ⥸塼

Mac OS Xߥ졼ĶǥΥ֥åI/OǽλѤ򥵥ݡȤ
⥸塼Ȥơunix_sigio.cfgunix_sigio.hѰդƤ롥

Υ֥åI/OǽѤȡI/Oξ֤Ѳäˡץ
ФSIGIOʥ뤬롥Υ֥åI/OǽѤ
⥸塼ϡSIGIOʥ뤬줿νѰդɬפ롥

Υݡȥ⥸塼Ѥ硤ץꥱϡSIGIOʥ뤬
줿νߥӥ롼ȤѰդATT_ISRˤ
ֹINTNO_SIGIOФϿ뤳ȤǡSIGIOʥ˸Ƥ
Ф褦ˤǤ롥

ʤꥢ륤󥿥եɥ饤ФϡεǽѤƼ¸Ƥ롥


ƥ๽ۼȼ¹Լ

4.1 ƥ๽ۤȼ¹

Mac OS Xߥ졼ĶۤϡTOPPERS/ASPͥ 桼
ޥ˥奢פΡ֣åȥɡפξϤ˵ҤƤ
̤Ǥ롥

ۤߥ졼Ķμ¹Ԥϡ¹ԷեȤ
asp¹ԤǤ褤

4.2 ǥХåλˡ

Τ褦ʼˤꡤGDBǥХåδMac OS Xߥ졼Ķ
¹Ԥ뤳ȤǤ롥ʤXcode 6.0.1ǤϡGDB夨LLDBɸ
ǥХåȤʤäƤ롥GDB򥤥󥹥ȡ뤹ΤݤǤ롥

	% gdb asp
	<GDBεưå>
	(gdb) handle SIGUSR2 nostop noprint
	(gdb) run

ǡhandle SIGUSR2 nostop noprintפϡSIGUSR2ˤäƥǥХå
ߤΤɤΥޥɤǤ롥ʤȡǥѥå٤
ǥХåߤƤޤޤץץsample1ˤ¹Ԥ
ݤˤϡCPU㳰ȤѤƤSIGINFOˤäƥǥХåߤ뤳Ȥ
ɤǤȤɬפǤ롥

	(gdb) handle SIGINFO nostop noprint

Υޥɤ.gdbinitꤷƤǤ롥

ޤդ֥졼ݥȤȤȡΥΥɥ쥹
¹ԤˤΤ߼¹Ԥߤ뤳ȤǤ롥֥졼
Ҥˤϡͥ¤ΤäƤ뤳ȤɬפǤ롥


;

5.1 ΥåȤؤΥݡƥ

Max OS XΥͥϡBSD UNIX١ǤꡤMac OS XåȰ¸
Ƥ⡤Mac OS XͭεǽϤۤȤɻѤƤʤΤᡤ¾
BSD UNIX١OS䡤LinuxؤΥݡƥ󥰤ǽȻפ롥

餫OSץå˰¸ʬȤơεư˥
Υᥤ롼ʬ뤿ˡjmp_buf¤ΤPCSPľꤷ
longjmpƤ륳ɤ롥jmp_buf¤ΤPCSPΰ֤ϥץ
OSʸ̩ˤϥ饤֥ˤˤäưۤʤ뤷ץåˤäƤ¾
쥸ꤷʤФʤʤ礬롥


ե

6.1 ǥ쥯ȥ깽ե빽

	target/macosx_gcc/
		E_PACKAGE				ʰץѥåΥեꥹ
		MANIFEST				̥ѥåΥեꥹ
		Makefile.target			MakefileΥåȰ¸
		macosx.h				åȤΥϡɥ񸻤
		target.tf				kernel.tfΥåȰ¸
		target_cfg1_out.h		cfg1_out.cΥ󥯤ɬפʥ֤
		target_check.tf			kernel_check.tfΥåȰ¸
		target_config.c			ͥΥåȰ¸Ϣ
		target_config.h			ͥΥåȰ¸
		target_def.csv			kernel_def.csvΥåȰ¸
		target_kernel.h			kernel.hΥåȰ¸
		target_rename.def		åȰ¸̾Υ͡
		target_rename.h			åȰ¸̾Υ͡
		target_serial.c			serial.cΥåȰ¸
		target_serial.cfg		serial.cfgΥåȰ¸
		target_serial.h			serial.hΥåȰ¸
		target_sil.h			sil.hΥåȰ¸
		target_stddef.h			t_stddef.hΥåȰ¸
		target_syssvc.h			ƥॵӥΥåȰ¸
		target_test.h			ƥȥץΥåȰ¸
		target_timer.c			ޥɥ饤
		target_timer.cfg		ޥɥ饤ФΥե졼ե
		target_timer.h			ޥɥ饤ФѤ뤿
		target_unrename.h		åȰ¸̾Υ͡
		target_user.txt			åȰ¸Υ桼ޥ˥奢
		unix_sigio.cfg			Υ֥åI/Oݡȥ⥸塼Υ
								ե졼ե
		unix_sigio.h			Υ֥åI/Oݡȥ⥸塼

6.2 С

	2006ǯ1029	Release	1.A.0		ǽΥ꡼
	2007ǯ220	Release	1.A.1
	2007ǯ220	Release	1.A.2
	2007ǯ712	Release	1.B.0
	2007ǯ712	Release	1.B.1
	2007ǯ716	Release	1.B.2
	2007ǯ721	Release	1.B.3		ǥ쥯ȥ깽ѹ
	2007ǯ820	Release	1.B.4
	2007ǯ1016	Release 1.B.5
	2007ǯ1115	Release 1.0.0		ǤΥ꡼
	2007ǯ1223	Release 1.1.0
	2008ǯ319	Release 1.2.0
	2008ǯ321	Release 1.2.1
	2008ǯ412	Release 1.3.0
	2008ǯ513	Release 1.3.1		ǽΰ̸
	2008ǯ821	Release 1.3.2
	2009ǯ511	Release 1.4.0
	2010ǯ722	Release 1.5.0		ĥѥå̸
	2010ǯ81	Release 1.6.0		cfg-1.6б
	2011ǯ59	Release 1.7.0		ưŪǽĥѥåɲ
	2012ǯ1226	Release 1.8.0
	2014ǯ16	Release 1.9.0		åХåեǽĥɲ
	2014ǯ1117	Release 1.9.1

ʾ
