ãã®èšäºã§ã¯ãEmboxçµã¿èŸŒã¿OSã䜿çšããŠãstm32f4-discoveryã«åºã¥ãSIPé»è©±ãã©ã®ããã«äœæãããã説æããŸãã stm32f4-discoveryïŒ144MHzã192Kb RAMã1Mb ROMïŒã®ç¹æ§ã«ããããã®ãããªå®è£ ã®å¯èœæ§ã«ã€ããŠçåãçããå ŽåããããŸãã ç§ãã¡èªèº«ã¯ããŸããããã©ããçåã«æã£ãŠããŸããã çããšããŠããããªãèŠãããšãã§ããèšäºèªäœã§-æè¡çãªè©³çŽ°ã
ä»çµã¿
ãã®ããã€ã¹ã®ãœãããŠã§ã¢ã¯ãPJSIPãœãããã©ã³ãšåè¿°ã®Embox OSã§æ§æãããŠããŸãã PJSIPã¯ãSIPãããã³ã«ããµãŠã³ããã³ãŒãã®ãµããŒããæ åœããŸãã Emboxã¯ãPJSIPæšæºã©ã€ãã©ãªãpthreadã©ã€ãã©ãªããããã¯ãŒã¯ã¹ã¿ãã¯ããªãŒãã£ãªåºåçšãã©ã€ããŒãããã³OSæ©èœã®æ®ãã®ã»ãããæäŸããŸãã ãã®ããã«ãPOSIXã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšãããŸããããã«ãããUnixã®ãããªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããçµã¿èŸŒã¿ã·ã¹ãã ã«ãã»ãšãã©å€æŽãå ããããšãªãå¹ åºãã¯ã©ã¹ã®ã¢ããªã±ãŒã·ã§ã³ã転éã§ããŸãã PJSIPãEmboxã«ç§»æ€ããããšã¯ç°¡åã§ãããšæåŸ ãããŠããŸããããç¹å®ã®ããŒããŠã§ã¢ãã©ãããã©ãŒã ã§PJSIPãèµ·åããã®ã¯å°é£ã§ããã ãããã«ã€ããŠ-ããã«ã
ç§ãã¡ã®æåãç¹°ãè¿ããã人ã®ããã«ãç§ãã¡ã¯å°ããªæå°ãçšæããŸããã stm32f4discovery + stm32dis-bbãcom-portæ¥ç¶ïŒæ¡åŒµã«ãŒãäžïŒãLinuxãã¹ããã«ãŒããšãã¹ãéã®ã€ãŒãµãããæ¥ç¶ãå¿ èŠã§ãã
github.com/embox/pjsipãååŸããŠããã®ãã£ã¬ã¯ããªã«ç§»åããå¿ èŠããããŸãã 以äžã¯ããã¢ã®æºåã«äœ¿çšãããã«ãã¹ã¯ãªãããã¢ããªã±ãŒã·ã§ã³ãããã³ãã¡ã€ã«ã§ãã
æåã®ç°¡åãªæé ã¯ãæ€åºæã«Emboxãå®è¡ããããšã§ãã ELFãç»å圢åŒãšããŠäœ¿çšããŸãã
äºåã«çµã¿ç«ãŠãããç»åãemboxãã¡ã€ã«ãååŸã§ããŸãã
ãŸãã¯ãEmboxãèªåã§æ§ç¯ããããšãã§ããŸãã ãããè¡ãã«ã¯ïŒ
- github.com/embox/emboxã®ã¯ããŒã³ãäœæããŸã
- è¡ãããšã«ãããæ£ããæ§æãããŒãããŸã
make confload-platform/pjsip/stm32f4discovery
- ãã£ãŠçµã¿ç«ãŠã
make
- ã¿ãŒã²ããã€ã¡ãŒãžã¯ãã¹build / base / bin / emboxã«ãããŸã
ãã¡ãŒã ãŠã§ã¢ã®åŸãã·ãªã¢ã«ããŒããä»ããŠæ€åºã«æ¥ç¶ããã¿ãŒããã«ãšãã¥ã¬ãŒã¿ãæ¥ç¶ãã115200 8n1ã®èšå®ãèšå®ããå¿ èŠããããŸãã èµ·ååŸãã·ã¹ãã ã¯å°ããªã¹ããŒã¿ã¹æ å ±ã衚瀺ããèµ·åã¹ã¯ãªããã®ã³ãã³ãã衚瀺ããŠå®è¡ããã·ã§ã«ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã ããã«ããã¹ãŠã®ã³ãã³ãã¯æ€åºã³ã³ãœãŒã«ã§å®è¡ããå¿ èŠããããšæ³å®ãããŠããŸãã
- ããã©ã«ãã®IPã¢ãã¬ã¹ãèªåã«åããªãå Žåã¯ã
route del 192.168.1.0 dev eth0 ifconfig eth0 (ip-) netmask () up" route add () netmask () eth0
- pjsip_simpleuaãè¡ã
次ã«ããã¹ãã¯ã©ã€ã¢ã³ãããã«ãããŠå®è¡ããå¿ èŠããããŸãã ãã¹ãã®ã³ã³ãœãŒã«ã«æ»ããŸãã
- www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2ãããŠã³ããŒãããŠãçŸåšã®ãã£ã¬ã¯ããªïŒpjsipïŒã«é 眮ããŸãã
- PJSIPãã¹ãã©ã€ãã©ãªããã«ãããã«ã¯ãã³ãã³ã
./build_pjproject.sh
- ãã¹ãã¯ã©ã€ã¢ã³ããçŽæ¥æ§ç¯ããã«ã¯ãã³ãã³ã
make
- èµ°ã
simpleua sip:test@(ip- )
ããã¯ãªãã§ããïŒ
éåžžã®çµã¿èŸŒã¿ãã©ãããã©ãŒã ã§ã¯ãéåžžãšã¯ç°ãªãäœãããããã£ãã®ã§ãã ãã©ãããã©ãŒã ãéåžžã«äººæ°ãããå®äŸ¡ã§ããããšã¯æããã§ããããã®ããã8ãããã³ã³ãããŒã©ãŒã§ã¯ãªããã®ã¬ãã«ãRaspberryPiãBeagleboneã§ã¯ãªãstm32f4-discoveryãéžæããŸããã 圌ãã¯ãçºèŠããããã®ã«ç®ãåãå§ããŸããïŒã€ãŒãµãããã«å ããŠã圌ãã¯é³ãåºåããå¯èœæ§ã«æ³šæãåŒããŸããã
ãããŠãã¹ã¿ãŒãã¡ãéãŸããŸããããçŸå Žã§ãååãLinuxãæèŒããOMAP137ã§sipãã©ã³ãéçºããŠããŸããã ãããŠãç¹å¥ãªãœãããŠã§ã¢ãæžãããã«ãããçš®ã®èŠãã¿ããããŸãããããããã€ã¯ã¯ããããäœãã©ã®ããã«æ§ç¯ããããå°ãèããäœããã®çç±ã§ãããžã§ã¯ãããããã«ããããã®æšå¥šäºé ã§ãæåã®ã¢ã»ã³ããªã«ã¯æ°æéããããŸãã
ãããã£ãŠãç§ãã¡ã¯èªåãã¡ã«èª²é¡ãçšæããŸãããæ©èœãå¯èœãªéãéåžžã«åŒ±ãããŒããŠã§ã¢ã®é»è©±ã«ã§ããã ã䌌ãŠããSIPããã€ã¹ã§ãã
ãã®ã»ã¯ã·ã§ã³ã®è¿œå ã®ãã€ã³ãã¯Indemsys㮠解説㧠ãLinuxã®ã¿ã«æèŒãããã³ã³ãããŒã©ãŒïŒãã¢ã¡ã¿ã«ãŸãã¯ã¯ã©ã·ãã¯RTOSïŒã«æèŒãããŠããªããœãããŠã§ã¢ã«ã€ããŠè³ªåããŸããã
æºåãã
æåã®æ®µéã¯ãSIPãããã³ã«ãšããã«äŒŽãé³å£°äŒéããµããŒããããµãŒãããŒãã£ãœãããŠã§ã¢ã®éžæã§ãã Googleçºè¡ã®æåã®çµæã¯www.pjsip.orgã§ãã ãããã¯ãå¿ èŠãªãã¹ãŠãå®è¡ã§ãã倧èŠæš¡ã§ããŒã¿ãã«ãªaãšãã¡ã€ã«ã§ã®åŠçãå¯èœã«ããRAMã®èŠä»¶ãäœãïŒ150kbãšäž»åŒµïŒã
æåã«ãã¢ã»ã³ããªèšè¿°ãã¡ã€ã«ãäœæããå¿ èŠããããŸãã EmboxãåããŠèãã人ã®ããã«ïŒãã¢ãžã¥ãŒã«ãã®æŠå¿µã§åäœããç¬èªã®ãã«ãã·ã¹ãã ïŒ ããã«é¢ããèšäº ïŒã䜿çšããŸãã ãµãŒãããŒãã£ãœãããŠã§ã¢ã®ã¢ã»ã³ããªã容æã«ããããã«ãèªåããŠã³ããŒãããããã®é©çšãæ§æãã¢ã»ã³ããªãããã³ã€ã³ã¹ããŒã«ããµããŒãããæ¡åŒµæ©èœãå°å ¥ããŸããã
PJSIPã©ã€ãã©ãªã¯åãªãã¢ãžã¥ãŒã«ã§ãã ãã®ãããã¯ã§æåã«ã³ããããããã³ããã ã ããã§ã¯ãã¢ã»ã³ããªã®èª¬æããã¹ãã·ã¹ãã ã®ã¢ã»ã³ããªãšã©ã®ããã«ç°ãªãã
å°æ¥ããããã®ãã¡ã€ã«ã¯ãã¡ããå€æŽãããŸããããåºæ¬ã¯åããŸãŸã§ããã ããã«ãã¡ã¢ãªå ã®æ§é ã®ãµã€ãºãå°ããããããã³ãŒããã¯ãç¡å¹ã«ãããããããã«ããã¯ã宣èšãå¿ èŠã§ããã 説æã®çŸä»£çãªå€èŠ³ã¯ããã¿ãã¬ã®äžã§è©äŸ¡ããããšãã§ããŸãã
PJSIPã¢ãžã¥ãŒã«
package third_party.pjproject @Build(stage=2,script="$(EXTERNAL_MAKE)") @BuildDepends(third_party.STLport.core) module core { depends embox.net.lib.getifaddrs depends embox.compat.posix.pthreads depends embox.compat.posix.pthread_key depends embox.compat.posix.pthread_rwlock depends embox.compat.posix.semaphore depends embox.compat.posix.fs.fsop depends embox.compat.posix.idx.select depends embox.compat.posix.net.getaddrinfo depends embox.compat.posix.net.gethostbyname depends embox.compat.posix.util.gethostname depends embox.compat.posix.proc.pid depends embox.compat.posix.proc.exit depends embox.compat.libc.stdio.fseek depends embox.compat.libc.time depends third_party.STLport.core } @AutoCmd @Cmd(name="streamutil", help="", man="") @BuildDepends(core) @Build(stage=2,script="true") module streamutil { source "^BUILD/extbld/third_party/pjproject/core/install/streamutil.o" depends core } @AutoCmd @Cmd(name="pjsua", help="", man="") @BuildDepends(core) @Build(stage=2,script="true") module pjsua { source "^BUILD/extbld/third_party/pjproject/core/install/pjsua.o" depends core } @AutoCmd @Cmd(name="pjsip_simpleua", help="", man="") @BuildDepends(core) @Build(stage=2,script="true") module simpleua { source "^BUILD/extbld/third_party/pjproject/core/install/simpleua.o" depends core }
PJSIPãã«ãã®èª¬æ
PKG_NAME := pjproject PKG_VER := 2.2.1 PKG_SOURCES := http://www.pjsip.org/release/$(PKG_VER)/$(PKG_NAME)-$(PKG_VER).tar.bz2 PKG_MD5 := 6ed4bb7750c827dc1d881e209a3b62db include $(EXTBLD_LIB) PKG_PATCHES := pjproject.patch \ simpleua_default_loglevel.patch \ mutex_loglevel_increase.patch \ kmalloc.patch DISABLE_FEATURES := \ l16-codec \ ilbc-codec \ speex-codec \ speex-aec \ gsm-codec \ g722-codec \ g7221-codec \ #g711-codec PJPROJECT_ROOT := $(ROOT_DIR)/third-party/pjproject PJSIP_CPPFLAGS := -I$(PJPROJECT_ROOT)/include $(EMBOX_DEPS_CPPFLAGS) -I$(SRC_DIR)/compat/cxx/include BUILD_ROOT := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VER) $(CONFIGURE) : export EMBOX_GCC_LINK=full; \ cd $(BUILD_ROOT) && ( \ ./aconfigure \ CC=$(EMBOX_GCC) \ CXX=$(EMBOX_GXX) \ CPPFLAGS="$(PJSIP_CPPFLAGS)" \ --host=$(AUTOCONF_TARGET_TRIPLET) \ --target=$(AUTOCONF_TARGET_TRIPLET) \ --prefix=/ \ $(DISABLE_FEATURES:%=--disable-%) \ --with-external-pa; \ echo export CFLAGS+="$(PJSIP_CPPFLAGS)" > user.mak; \ echo export CXXFLAGS+="$(PJSIP_CPPFLAGS)" >> user.mak; \ ) cp ./config_site.h $(BUILD_ROOT)/pjlib/include/pj/config_site.h touch $@ $(BUILD) : cd $(BUILD_ROOT) && ( \ make -j1 dep; \ make -j1 MAKEFLAGS='$(EMBOX_IMPORTED_MAKEFLAGS)'; \ ) touch $@ $(INSTALL) : for f in $(BUILD_ROOT)/pjsip-apps/bin/samples/$(AUTOCONF_TARGET_TRIPLET)/*; do \ cp $$f $(PKG_INSTALL_DIR)/$$(basename $$f).o; \ done for f in $(BUILD_ROOT)/pjsip-apps/bin/*-$(AUTOCONF_TARGET_TRIPLET); do \ fn=$$(basename $$f); \ cp $$f $(PKG_INSTALL_DIR)/$${fn%-$(AUTOCONF_TARGET_TRIPLET)}.o; \ done touch $@
é³
ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ããã«ãæåã«ã¡ãã£ã¢ã¹ããªãŒã ã®ã¿ãéä¿¡ã§ããstreamutilãšåŒã°ããäŸã䜿çšããŸããã
ãã«ãã¹ã¯ãªãããè¿œå ããå°ããªãã¡ã€ã«ãæ¯ã£ãåŸãstreamutilã¯ããµãŠã³ããåºåããããã®ããã€ã¹ãèŠã€ãããªããšããã¡ãã»ãŒãžã§åæ¢ãå§ããŸããã æåãããåçã¯äžèŠã§ãããã¡ãŒã«ãŒã¯ãUSBãã©ãã·ã¥ãã©ã€ãããwavãã¡ã€ã«ãåçããããã®ãã¢ã¢ããªã±ãŒã·ã§ã³ãæäŸããŠããŸãã ãã®ã³ãŒãã¯ãå°æ¥ã®å®è£ ã®åºç€ãšãªããŸããã
äžæ¹ãåé¡ã¯ã€ã³ã¿ã©ã¯ã·ã§ã³ã«ã©ã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããšããããšã§ãããPJSIPçšã®ãµãŠã³ããã©ã°ã€ã³ãéçºããããäžè¬çãªãµãŠã³ãAPIã«æ¢åã®ãã©ã°ã€ã³ã®ããããã䜿çšã§ããŸãã ãã®äžã«ã¯ãããšãã°ALSA APIãããèããåçŽãªportaudioããããŸããã ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ãã©ã€ããŒã®å®è£ ãéå§ããŸããã
äžèšã§èšãã°ãã€ã³ã¿ãŒãã§ã€ã¹ã¯æ¬¡ã®ããã«èª¬æãããŠããŸããã³ãŒã«ããã¯ãç»é²ããŸããã³ãŒã«ããã¯ã¯ãå¿ èŠã«å¿ããŠããµãŠã³ãã«ãŒããããã¡ãŒã空ã«è¿ããšãã«åŒã³åºãããŸãã çŽ æŽãããã·ã³ãã«ãªAPIã¯ãã³ãŒã«ããã¯ãã©ã®ã³ã³ããã¹ãã§åŒã³åºãããããèŠå¶ãããå®éã®ã·ã¹ãã ã§ã¯ããã®ããã«åå¥ã®ã¹ã¬ãããèµ·åãããã»ãšãã©ã®æéã¹ãªãŒãããé©åãªã¿ã€ãã³ã°ã§ã³ãŒã«ããã¯ãå®è¡ããŸãã
ãã®ãããªã¹ããŒã ã«ã¯ãç©Žããæœè±¡åããªã©ã®åé¡ããããŸããPJSIPã¯æ瀺çã«å¥ã®ã¹ã¬ãããæ³å®ããŠããŸãã ã·ã°ãã«ã§ã³ãŒã«ããã¯ãåŒã³åºãããšãããšããããããã¯ãçºçããŸããã ã¹ã¬ããã䜿çšããŠããã¢ãã«ããã·ã¹ãã ã®ããã«ããå¿ èŠããããŸããã ãã®ãã§ãŒãºã®çµããã«ããã©ã€ããŒã¯æ¬¡ã®ããã«ãªãå§ããŸããã
å°æ¥çã«ã¯ãå¯èœã§ããã°ã ã©ã€ããããŒãåªå ããŠåŸæ¥ã®ãããŒã®äœ¿çšãæŸæ£ããäºå®ã§ãã 軜éã¹ã¬ããã®äž»ãªéãã¯ãç¬èªã®ã¹ã¿ãã¯ããªãããšã§ã;èšç®ã¯ãæåŸã«å®è¡ãããã¹ã¬ããã®ã¹ã¿ãã¯ã§å®è¡ãããŸãã 軜éã¹ã¬ããã®å Žåãå©çšå¯èœãªåæããŒã«ãåããpthreadäºæã€ã³ã¿ãŒãã§ã€ã¹ãæäŸãããŸãã çè«çã«ã¯ãããã«ãããããããportaudioã¹ããªãŒã ã®å®è£ ãšããŠäœ¿çšã§ããããã«ãªããã¡ã¢ãªæ¶è²»ãåæžãããŸãã
ã¡ã¢ãªãŒäžè¶³
ç§ãã¡ãèŠåŽããäž»ãªåé¡ã¯ãåçã¡ã¢ãªã®äžè¶³ã§ããã
ããã§ãã·ã¹ãã ã®åçå²ãåœãŠã«ã€ããŠèª¬æããå¿ èŠããããŸãã ç§ãã¡ã¯ããŒã«ã䜿çšããŸã-åºå®ãµã€ãºã®ãªããžã§ã¯ãã®åºå®æ°ã®ããã«éçã¡ã¢ãªã®äºçŽã»ã¯ã·ã§ã³ã ãã®æ¹æ³ã¯æãæè»ã§ã¯ãªããäžå®éã®ãã€ã©ãŒãã¬ãŒãã³ãŒããæžãããšãäœåãªããããŸããã代ããã«ãã¡ã¢ãªæ¶è²»ãå¶åŸ¡ããã³ã³ãã€ã«æ®µéã§æœåšçãªã¡ã¢ãªäžè¶³ããã£ããããæ©äŒãåŸãŸãã å®éãããŒã«ã®ãµã€ãºã®æ§æã¯ãèŠãããããã¯ããã«ç°¡åã§ãã
æåã«ããããã¯ã°ããŒãã«æ§æãã¡ã€ã«ã§èšå®ãããŸããããã«ã¯ããµãã·ã¹ãã ãã³ãã³ãã管çããªã·ãŒãªã©ãä»ã®ãã¹ãŠã®ã·ã¹ãã ãã©ã¡ãŒã¿ãŒãã¹ã±ãžã¥ãŒã©ãŒã«ãã£ãŠèšè¿°ãããŸãã ãã®ãã¡ã€ã«ã®ãµã€ãºã100è¡ãè¶ ããããšã¯ãã£ãã«ãããŸãããããã®æ°ã¯ã·ã¹ãã ã®æ§æã«å€§ããäŸåããŸãã
第äºã«ãããŒã«ãµã€ãºã¯å€ãã®å Žåèªç¶ãªèŠä»¶ã®çµæã§ããããšãã°ãstm32f4discoveryã§ã¯ããªã³ããŒãã€ãŒãµããããšã«ãŒãããã¯ã®2ã€ã®ãããã¯ãŒã¯ã¢ããã¿ãŒãã䜿çšã§ããŸããã é©ãã¹ãããšã«ããã®ç¢ºå®æ§ã¯ä»ã®ãµãã·ã¹ãã ã§èŠãããšãã§ããŸãïŒéããŠãããã¡ã€ã«ã®æ°ãã¹ã±ãžã¥ãŒã©ãŒã®åªå é äœãirqãã³ãã©ãŒã®æ°ãªã©-ããã¯ãã¹ãŠãçµã¿èŸŒã¿ã·ã¹ãã ã§ã®åæã«åœ¹ç«ã¡ãŸãã
PJSIPã«æ»ããšã圌ã¯ç¬èªã®ã©ã€ãã©ãªã䜿çšããŠåçã¡ã¢ãªå²ãåœãŠãè¡ããŸããããã¯ãæšæºã®malloc / freeåŒã³åºãã®äžã«å®è£ ãããŸãã streamtuilåçã¡ã¢ãªã®å¿ èŠæ§ãäºæž¬ããããšã¯éåžžã«å°é£ã§ãã ãã ããæå šäœãstreamutilã«ãã£ãŠæä»çã«äœ¿çšããããããã·ã¹ãã ããŒã«ã®ããã«ãµã€ãºãå¶åŸ¡ããæ¡åŒµã§ããŸãã
ã·ã¹ãã ã§æ倧ã®ããŒã«ã®1ã€ã¯ããããã¯ãŒã¯ãã±ãããããã¡ãŒã§ããã ãã®åŸãå°ããªããã¯ãè¡ããŸãããæ倧ãã±ãããµã€ãºãæšæºã®1514ãã€ããã214ã«å€æŽããŸããããæ倧ãã±ããæ°ãå¢ãããŸããã äºå®ããã¹ãã§ã¯æ¬¡ã®ããšã瀺ãããŸããïŒ214ãã€ã以äžã®ãã±ããã¯ã/ããstreamutilã«éãããããããã®ããªãã¯ã¯æ©èœããŸããã
ããŒããå¢ããã«ã¯äœåºŠãç¹°ãè¿ãå¿ èŠããããŸãããããã®åŸãstreamutilãã¯ãªã¢ãªãµãŠã³ããçæãå§ããŸããã
SIPãã©ã³
streamutilã¯ãå¿ èŠãªé»è©±ã«ããŸã䌌ãŠããªããã¢ã¢ããªã±ãŒã·ã§ã³ã§ããããšã¯æããã§ãã ãã£ãšæ©èœçãªãã®ããšãå¿ èŠããããŸããã é©åãªåè£ã¯ãPJSIPã®åç §sipé»è©±ã§ããpjsuaã§ãã å®è¡ãéå§ããä¿®æ£æžã¿ãã«ãã¹ã¯ãªããã ã¡ã¢ãªäžè¶³ã ããŠãããŒã«ã®ãµã€ãºãããã«åŒãç· ããŸããã ã¡ã¢ãªäžè¶³ã ãã®åŸãæŒ ç¶ãšããç念ãç§ãã¡ãèŠããå§ããŸããããååãšããŠãããžã¥ã¢ã®èŠæ±ãæºããããšã¯å¯èœã§ããïŒ
èŠã€ããæåã®è©Šã¿ã¯ããã¹ãäžã®malloc / freeãžã®pjsuaãªã¯ãšã¹ãããã¬ãŒã¹ããããšã§ããã ããããæšæºã©ã€ãã©ãªã§ã¯ãç¬èªã®ããŒãºïŒããšãã°ãæ¥ä»ãæååã«ãã©ãŒããããããªã©ïŒã«å¯ŸããŠåçãªå²ãåœãŠãå€ãããããããã¬ãŒã¹åºåãéåžžã«ä¹±éã§ããããšãå€æããŸããã
ç§ãã¡ã¯å¥ã®æ¹æ³ã§è¡ããŸãããæšæºã©ã€ãã©ãªã§ã¯malloc / freeã䜿çšããªãããããã©ãã¯ã¯ããæçã«ãªããŸãã ã¡ã¢ãªå²ãåœãŠã©ã€ãã©ãªã«ãã¬ãŒã¹ãè¿œå ããbeagleboardçšã«pjsuaã§emboxãã³ã³ãã€ã«ããqemuã§å®è¡ããŸããã çµæã¯å°ãæ··ä¹±ããŸãããæçåãšpjsuaéçã¡ã¢ãªãé€ããŠãããŒãããšã«200kbãå°ãè¶ ããçšåºŠã§ããã stm32f4ã®ãã®ãããªããªã¥ãŒã ã¯é©åããŸããã 2ã€ã®è§£æ±ºçããããŸããïŒpjsuaãçå£ã«å€æŽããããããç°¡åãªä»£æ¿æ段ãæ¢ããŸãã
幞ããªããšã«ãsimpleuaãã¢ã¢ããªã±ãŒã·ã§ã³ãšãã代æ¿æ段ãèŠã€ãããŸããã Simpleuaãã€ãããã¯ã¢ãã±ãŒã·ã§ã³ãã¬ãŒã¹ã¯ãçŽ110 kbã®æ倧ã©ã€ãããŒããµã€ãºã瀺ããŸããã .dataïŒã4kbïŒãš.bssïŒã25kbïŒã«è¿œå ãããšãã¡ã€ã³ã¹ã¿ãã¯ãšã¹ããªãŒã ããããã¯ãŒã¯ãã±ãããããã¡ãŒããªãŒãã£ãªã€ã³ã¿ãŒãã§ã€ã¹ã«ååãªã¹ããŒã¹ããããŸãã
å®è£ ããã»ã¹ã§ã¯ãããŒãçšã®ããã€ãã®ã¡ã¢ãªé åã®ãµããŒããè¿œå ãããã±ãããµã€ãºãå¢ããïŒ810ãã€ããå¿ èŠïŒããã®æ°ãæžããå¿ èŠããããŸããã
ãããªã§èŠãçµæã
ãããã«
ãã®èšäºã¯ãããŒã³ããæåãããšããã«æžãããŸããã å¯èœãªãã°ãèŠã€ããããšãã§ããªãã£ãããããããã«ééããå Žåã¯èŠåã衚瀺ãããŸãã ããããçå£ã«ãç§ãã¡ã¯ãã£ãŒãããã¯ãã³ã¡ã³ããåãã§ããŸãã ãæž èŽããããšãããããŸããïŒ