ãŸãããæ£æã®ãç¥çŠããç¥ãç³ãäžããŸãã
ãã®èšäºã®ååã§ã STM32F4ã·ãªãŒãºã³ã³ãããŒã©ãŒçšã®RNDIS USBãã©ã€ããŒã®éçºãçºè¡šãããŸããã ãã以æ¥ãã©ã€ãã©ãªã¯åŸã ã«é²åããçŸåšã¯æåã®ãªãªãŒã¹ããŒãžã§ã³ã«æé·ããŠããŸãã LRNDISïŒLWIP + RNDISïŒãšåŒã°ããã©ã€ãã©ãªã«ãããSTM32F4ã³ã³ãããŒã©ãŒã«åºã¥ããŠãUSBã¢ãã ããã€ã¹ãšWebããŒã¹ã®å¶åŸ¡ãåããä»ã®ããã€ã¹ã®äž¡æ¹ãäœæã§ããŸãã Androidã¿ãã¬ããã®Webãã©ãŠã¶ãŒããstm32f4-discoveryããŒããå¶åŸ¡ããäŸããããªã«ç€ºããŸãã
ãããªããŒãžã«ã¯ããœãŒã¹ããŒããžã®ãªã³ã¯ãšãã£ã¹ã«ããªããŒãã®HEXãã¡ãŒã ãŠã§ã¢ãã¡ã€ã«ãå«ãŸããŠãããããã䜿çšããŠãã®å®éšãç¹°ãè¿ãããšãã§ããŸãã ãã®èšäºã§ã¯ãWEBã€ã³ã¿ãŒãã§ãŒã¹ãä»ããã¢ã¯ã»ã¹ãã¯ãããžãŒããã€ã©ã®ããã«åœ¹ç«ã€ããããã³LRNDISã©ã€ãã©ãªãSTM32F4ã³ã³ãããŒã©ãŒã«å¯ŸããŠã©ã®ããã«æ©èœãããã«ã€ããŠèª¬æããŠããŸãã USBããã³ããã€ã¹ã®ã€ãŒãµããããããã¯ãŒã¯ã®æäœã«é¢ãããã¬ãŒãã³ã°è³æããããŸãã
å³æžé€šã®èæ¯
ãããžã§ã¯ãã®èæ¯ã¯éåžžã«å žåçã§ãã
詳现
ãã¡ãŒã ãŠã§ã¢ã®éçºã«äŒŽããããã€ãã®VCPå¶åŸ¡ã³ãã³ããå°å
¥ãããŸããã ããã¯ãUSBããã€ã¹ãOSã«æ¥ç¶ããåŸãä»®æ³COMããŒããäœæãããããšãæå³ããŸãã ããã䜿çšããŠãå¶åŸ¡ããã³èšºæã³ãã³ãããŠãŒã¶ãŒç«¯æ«ããéä¿¡ãããŸããã å¿çãšããŠãããã€ã¹ã¯å®è¡ã¹ããŒã¿ã¹ãšãã®çŸåšã®ã¹ããŒã¿ã¹ãåãåããŸããã
ã·ã¹ãã ã¯ããµãŒãã¹ã®èŠ³ç¹ããéåžžã«å žåçã§ããã·ãªã¢ã«ããŒããšã管çããã³èšºæçšã®ã³ãã³ãã»ããããããŸãã
ãã¹ãŠãçæéã§å€åããŸããã 客芳çãªçç±ãããå¿ èŠãªããŒã ã®ã»ãããå¢ããŸããã åºåã®çžäºäœçšãå¿ èŠã§ããããã€ããã¯ã¹ã§è¡šç€ºããããã«ããã€ãã®ãã©ã¡ãŒã¿ãŒãå¿ èŠã«ãªããŸããã ããšãã°ã匷ç£æ§äœãééãããšãã®ç£æ°ã»ã³ãµãŒã®èªã¿åãå€ãšããŠã ãã®ãããè¿œå ã®ã³ãã³ããå°å ¥ãããŸããããããã®ã³ãã³ãã¯ã å¶åŸ¡ã·ãŒã±ã³ã¹ã§åäœãããŠãŒã¶ãŒç«¯æ«ã«é«é »åºŠã§æ å ±ãåºåããŸããã ããã«ãããå¿ èŠãªãªã¢ã«ã¿ã€ã 芳å¯ã®æèŠãçãŸããŸããã ã€ã³ã¿ã©ã¯ãã£ããªããŒã ã¯ãšã³ãžãã¢ã«ãšã£ãŠéåžžã«äŸ¿å©ã ã£ããããäžéšã®ããŒã ã¯åŸã«ã³ã³ã»ããã«åŸã£ãŠè¿œå ãããŸããã ãããŠãäºè£ããããŸããã ã€ã³ã¿ã©ã¯ãã£ãã蚺æãå¶åŸ¡ã³ãã³ããªã©ãããã€ãã®ã°ã«ãŒãã®ã³ãã³ããäžåºŠã«ãµããŒãããå¿ èŠããããŸããã åæã«ãã³ãŒãã®å®æçãªãªãã¡ã¯ã¿ãªã³ã°ã¯ãåŠçãããå€æ°ã®ã³ãã³ãã®æéã®ãããç·šéã«é¢é£ä»ããããŠããŸããã ããŒã ã®ãŠãŒã¶ãŒã°ã«ãŒãããŸã ååšããå¿ èŠãããããšãæããã«ãªããŸãã-䜿çšã®ããã®æ瀺ã«åŸãã ãã®è³æ Œã®ãªã人ã®ããã«ã 圌ãã«ãšã£ãŠããã¿ã³ãšãã©ã°ãåããã¯ã©ã€ã¢ã³ã端æ«ãæžããšããã¢ã€ãã¢ãçãŸããŸãã...ãããŠçåãçããŸããïŒæ©èœæ§ã«ããŸã泚æãæããã«ãµãŒãã¹éšåããã£ãŠããããšãæããã«ãªããŸããïŒ ãã ããã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒã§å®è¡ããããŠãŒã¶ãŒããã°ã©ã ã«ã¯ãã¯ãã¹ãã©ãããã©ãŒã ããã³LTSïŒãµããŒãæéïŒãšããç¬èªã®èŠä»¶ãå¿ èŠã§ãã
ããã€ã¹ãå®æããããªãªãŒã¹ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®åããŒãžã§ã³ã§ãŠãŒã¶ãŒãœãããŠã§ã¢ã移æ€ããã³ãã¹ãããå¿ èŠããããšããŸãã ãããŠã©ã®ãããïŒ
ããã§åé¡ãçãŸããŸãã-è¿œå ã®äººä»¶è²»ãã©ã®ããã«åãé€ãã®ã§ããïŒ
ã·ã¹ãã ã¯ããµãŒãã¹ã®èŠ³ç¹ããéåžžã«å žåçã§ããã·ãªã¢ã«ããŒããšã管çããã³èšºæçšã®ã³ãã³ãã»ããããããŸãã
ãã¹ãŠãçæéã§å€åããŸããã 客芳çãªçç±ãããå¿ èŠãªããŒã ã®ã»ãããå¢ããŸããã åºåã®çžäºäœçšãå¿ èŠã§ããããã€ããã¯ã¹ã§è¡šç€ºããããã«ããã€ãã®ãã©ã¡ãŒã¿ãŒãå¿ èŠã«ãªããŸããã ããšãã°ã匷ç£æ§äœãééãããšãã®ç£æ°ã»ã³ãµãŒã®èªã¿åãå€ãšããŠã ãã®ãããè¿œå ã®ã³ãã³ããå°å ¥ãããŸããããããã®ã³ãã³ãã¯ã å¶åŸ¡ã·ãŒã±ã³ã¹ã§åäœãããŠãŒã¶ãŒç«¯æ«ã«é«é »åºŠã§æ å ±ãåºåããŸããã ããã«ãããå¿ èŠãªãªã¢ã«ã¿ã€ã 芳å¯ã®æèŠãçãŸããŸããã ã€ã³ã¿ã©ã¯ãã£ããªããŒã ã¯ãšã³ãžãã¢ã«ãšã£ãŠéåžžã«äŸ¿å©ã ã£ããããäžéšã®ããŒã ã¯åŸã«ã³ã³ã»ããã«åŸã£ãŠè¿œå ãããŸããã ãããŠãäºè£ããããŸããã ã€ã³ã¿ã©ã¯ãã£ãã蚺æãå¶åŸ¡ã³ãã³ããªã©ãããã€ãã®ã°ã«ãŒãã®ã³ãã³ããäžåºŠã«ãµããŒãããå¿ èŠããããŸããã åæã«ãã³ãŒãã®å®æçãªãªãã¡ã¯ã¿ãªã³ã°ã¯ãåŠçãããå€æ°ã®ã³ãã³ãã®æéã®ãããç·šéã«é¢é£ä»ããããŠããŸããã ããŒã ã®ãŠãŒã¶ãŒã°ã«ãŒãããŸã ååšããå¿ èŠãããããšãæããã«ãªããŸãã-䜿çšã®ããã®æ瀺ã«åŸãã ãã®è³æ Œã®ãªã人ã®ããã«ã 圌ãã«ãšã£ãŠããã¿ã³ãšãã©ã°ãåããã¯ã©ã€ã¢ã³ã端æ«ãæžããšããã¢ã€ãã¢ãçãŸããŸãã...ãããŠçåãçããŸããïŒæ©èœæ§ã«ããŸã泚æãæããã«ãµãŒãã¹éšåããã£ãŠããããšãæããã«ãªããŸããïŒ ãã ããã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒã§å®è¡ããããŠãŒã¶ãŒããã°ã©ã ã«ã¯ãã¯ãã¹ãã©ãããã©ãŒã ããã³LTSïŒãµããŒãæéïŒãšããç¬èªã®èŠä»¶ãå¿ èŠã§ãã
ããã€ã¹ãå®æããããªãªãŒã¹ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®åããŒãžã§ã³ã§ãŠãŒã¶ãŒãœãããŠã§ã¢ã移æ€ããã³ãã¹ãããå¿ èŠããããšããŸãã ãããŠã©ã®ãããïŒ
ããã§åé¡ãçãŸããŸãã-è¿œå ã®äººä»¶è²»ãã©ã®ããã«åãé€ãã®ã§ããïŒ
é·æãµããŒããä¿èšŒãããæšæºã䜿çšããããšã決å®ãããŸããã çŸåšããã³æªæ¥ã®æå¶ã§æãå®å šãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã»ããã§ãµããŒããããã¯ã©ã€ã¢ã³ãããã€ã¹ç®¡çããã°ã©ã ãäœæã§ããããã«ããæšæºã æåã®ã«ããã«ã§ã¯ãââäžè¬çãªã¯ãã¹ãã©ãããã©ãŒã ãã¬ãŒã ã¯ãŒã¯ã®æ¬ ç¹ãèŠã€ãããŸããã
-javaïŒOSã§ã®JVMã®å¿ èŠæ§ãããã³åä»ãªä»®å®ããçããä»®æ³ãã·ã³ã®é åžã®å¿ èŠæ§
-qtïŒ ããŒãžã§ã³ç®¡çããã移æ€ã®å®æçãªå¿ èŠæ§ãšAndroid ã§ã®å®è¡ã®åŸ®åŠãªéã ã
ãããããããã®å°é£ã¯æããªãã¯ãã§ãã åé¡ã¯ããããããé·æçãªæ¯æŽã®èŠçŽ ãèæ ®ã«å ¥ããŠãç§ãã¡ãæã éå°è©äŸ¡ããŠããæéã ãã§ãã
ããã§ãããã€ã¹ãå¶åŸ¡ããããã®WEBã€ã³ã¿ãŒãã§ã€ã¹ãäœæãããšããã¢ã€ãã¢ãçãŸããŸããã ãµãŒãããŒãã£ã®ãœãããŠã§ã¢ãéçºããå¿ èŠã¯ãããŸãããã³ã³ãããŒã«ããŒãžã衚瀺ããããã®ãã©ãŠã¶ã¯ãã¹ãŠã®å¿ èŠãªOSã«ãããŸãã ã€ã³ã¿ãŒãã§ã€ã¹èšèšã®å¯èœæ§ã¯èšå€§ã§ãã http / html / jsæšæºã«é¢ãããµããŒãæéãçãã®äœå°ããããŸããã
èšç»ã«ãããšãçµå¶é£ã¯æ¬¡ã®ããã«æ©èœããã¯ãã§ããã
1. USBããã€ã¹ã¯ãããã¯ãŒã¯ã«ãŒãã§è¡šãããŸã
2.ã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒïŒPCãŸãã¯ã¬ãžã§ããïŒã¯ãããã€ã¹ã®ãããã¯ãŒã¯ã§äœæ¥ããããã®IPã¢ãã¬ã¹ãåãåããŸã
3.ã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒäžã®Webãã©ãŠã¶ãŒã®ãªã¯ãšã¹ãã§ãããã€ã¹ã¯ããŒãžãè¿ããŸã
4.ããŒãžã«ã¯ãçŸåšã®ç¶æ ãšäœ¿çšå¯èœãªã³ã³ãããŒã«ã«é¢ããæ å ±ãå«ãŸããŠããŸã
5.ã¯ã©ã€ã¢ã³ããã³ã³ãããŒã«ãã¢ã¯ãã£ãåãããšã察å¿ããHTTPèŠæ±ããã©ãŠã¶ãŒããéä¿¡ãããŸãã
å®éããã©ãŠã¶ãŒãšããã€ã¹ã®éã§ã¯ãåãããã¹ãã³ãã³ãã䜿çšãããŸãããHTTPãããã³ã«ã®åœ¢åŒã®ã¿ã§ãã
ããã¯ãèããããå€æ°ã®ãœãªã¥ãŒã·ã§ã³ã®éžæè¢ã®1ã€ã«ãããªãããšãç解ããå¿ èŠããããŸãã é·æãšçæããããŸãã äž»ã«çŽç²ã«ãããã¯ãŒã¯ããã€ã¹ã®ã¡ãŒã«ãŒãWebã€ã³ã¿ãŒãã§ã€ã¹ã®äœ¿çšã«é Œãããã«ãªã£ãã®ã§ãã¢ãã ãšã«ãŒã¿ãŒãã»ããã¢ããããŸããã ãã®èšäºã®ã¡ãã»ãŒãž-æ¬åœã«äŸ¿å©ãªãã®ãé©çšããŸãããã ãããŠãéäžã®å°é£ãæããªãã§ãã ãããä»ããããå æããããšã¯ãå°æ¥çã«ç§ãã¡ã«å€ãã®æéãç¯çŽããŸãïŒ
ã©ã€ãã©ãªã¹ã³ãŒã
æ®å¿µãªãããæåã®çºè¡šã¯å®å šã«ã¯æåããŸããã§ããã ã¹ã³ãŒãã«ã€ããŠã®è©±ã¯éããŸããã
å°ãè¿œãã€ããŠããã®ãããã¯ãæããã«ããŠã¿ãŸãããã
ããã€ã¹ã®ã·ã¹ãã èšèšã®æ®µéã«ããå Žåã次ã®èæ ®äºé ã«ãããWebããŒã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããã«ãªãå¯èœæ§ããããŸãïŒç©çãã£ãã«ãã€ãŒãµããããUSBã«é¢ä¿ãªãïŒã
1.ããã€ã¹ã«ã¯ãå¶åŸ¡ããã³/ãŸãã¯èšºæã€ã³ã¿ãŒãã§ãŒã¹ãå¿ èŠã§ã
2.ã³ã³ãããŒã«ã¯ãéçºæ®µéã ãã§ãªããéçšæ®µéã§ã䜿çšã§ããŸãïŒãŠãŒã¶ãŒãœãããŠã§ã¢ïŒã
3.ãŠãŒã¶ãŒã®è³æ Œãååã«é«ããªãå¯èœæ§ãããã䜿ãããã管çã€ã³ã¿ãŒãã§ã€ã¹ãå¿ èŠ
4.ã䜿ããããã管çæ¹æ³ã¯ãããŸããŸãªãã©ãããã©ãŒã ãšOSã§å©çšã§ããå¿ èŠããããŸãã
5.é©åãªããŒã«ãé·æéç¶æããå¿ èŠããããŸãã
è¿œå ã®åºæºã¯ãæåã«ãããã¯ãŒã¯ããã€ã¹ãéçºãããã©ããã§ãã ãŸãïŒïŒããã§ãªããã°ïŒãã¡ãŒã ãŠã§ã¢ã«ãããã¯ãŒã¯ã¹ã¿ãã¯ãšWebãµãŒããŒãè¿œå ããããšã¯ãããã€ã¹ã®æ©èœãããã»ã©è±å¯ã§ãªããšããèæ¯ã«å¯ŸããŠåé·ã§ãããã©ããã ã€ãŸããé»çã³ã³ãããŒã©ãŒã«Webã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ããããšã¯ãæããã«åé·ãªãœãªã¥ãŒã·ã§ã³ã§ãã
WebããŒã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ãä¿¡ããŠããå Žåã次ã®èæ ®äºé ãç©ççãªéä¿¡ãã£ãã«ã®éžæã«åœ¹ç«ã¡ãŸãïŒã€ãŒãµããããšUSBã®èŠ³ç¹ããïŒã
çš®é¡ | ã€ã³ãµãŒãããæ¥ç¶ | å žåçãªã¢ããªã±ãŒã·ã§ã³ |
ã€ãŒãµããã | ã€ãŒãµãããPHYã³ã³ãããŒã©ãŒ | -ç£æ¥æ©åš
-ãããã¯ãŒã¯æ©èœãåãã家é»è£œåãšè¿œå ã é£ã¹ç© |
USB | ULPIã³ã³ãããŒã©ãŒãŸãã¯MKãžã®çŽæ¥æ¥ç¶ | 家åºããã³ç£æ¥æ©åšã®äžéšã ç¹ã«ã次ã®å ŽåïŒ
-ããã€ã¹ã¯é»æºäŸçµŠãä¿èšŒããŠããŸããïŒããšãã°ããããªãŒé§åïŒ -USBã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ã§ãã¹ãã«æ¥ç¶ãããå¯èœæ§ã®ããããã€ã¹ïŒã¿ãã¬ãããªã©ïŒ -å°åããã€ã¹ã¯ã©ã¹ |
ç§ã¯èªåã§è¿œå ããŸã-ãã¹ãŠã®é åã«ãããããããä¿¡é Œæ§ãé«ããå¿ èŠãããç£æ¥ããŒãã§USBã䜿çšããããšã¯ãå§ãããŸãããå€ãã®å Žåããã€ãã¹ã®çµéšããããŸãã 代æ¿æ段ããªãå Žåãæç¶å¯èœæ§ã®åé¡ã培åºçã«ç 究ããå¿ èŠããããŸãã
äžèšã®ãã€ã³ãã«åºã¥ããŠãã©ã€ãã©ãªã®ç¯å²ãæ確ã«ãªããŸãã家åºããã³ç£æ¥çšæ©åšã®äžéšã§ã
-MK STM32F4ã«åºã¥ããŠäœæ¥ãã
-䜿ãããã管çã€ã³ã¿ãŒãã§ã€ã¹ãå¿ èŠã§ã
-ç°ãªãããŒããŠã§ã¢ããã³ãœãããŠã§ã¢ã¹ã€ãŒãã®äžãã管çããå¿ èŠããã
-ä¿èšŒãããé»æºããªãå ŽåããããŸã
-管çãœãããŠã§ã¢ã®é·æéã®ãµããŒããå¿ èŠ
çŽç²ãªãããã¯ãŒã¯ããã€ã¹ã®åé以å€ã§ãããã®æè¡ã䜿çšããå€ãã®å¯èœãªäŸããããŸãã
ããšãã°ãçŸæç¹ã§ã¯ãstm32f4-discoveryããããŒã¿ãã«ãªä¿¡å·çºçåš/ã¢ãã©ã€ã¶ãŒãšãªã·ãã¹ã³ãŒãã®æ©èœãåããã¢ããã¥ã¢éçºããŒã«ã«å€ããèšç»ããããŸãã ãã®ãããªã¢ã·ã¹ã¿ã³ããé»è©±ã«æ¥ç¶ããèå³ã®ããåè·¯ã§äœãèµ·ãã£ãŠãããããã€ããã¯ã¹ã§èª¿ã¹ãŸãã ç¡æã®ãã©ã¹ãã-ãœãããŠã§ã¢ãåéãŸãã¯ã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸããã HEXãã¡ã€ã«ããã©ãã·ã¥ããŠãã©ãŠã¶ãéãã ãã§ååã§ã-GUIã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¹ãŠã®é åãããã«ãããŸãã ç§ã®æ°é£ããå³ã®ããã«-ããªããå¿ èŠãªãã®ã ãã¡ããããã®ããŒã«ã¯å°éçãªéçºçšã§ã¯ãããŸããããç¹å®ã®é¢å¿ããããŸãã
ã ãããç§ã¯ãããæŽçããããšãé¡ã£ãŠããŸãã 次ã«ãã©ã€ãã©ãªã®åäœã«ã€ããŠèª¬æããŸãã
ä»çµã¿
ãã®è³ªåã«æ¥ãã§çããŸããã ãããã¯ãŒã¯ãšã®ããåãã®çµéšãå°ãªã人ã¯ãåœç¶ã®ããšãšããŠæ¥ãããããããããŸããã ãããã£ãŠã1ã€ãŸãã¯å¥ã®çžäºäœçšãããã³ã«ã«é¢ããŠããã®ã¬ãã«ã§ã®ç°¡åãªæè¡çãªèª¬æãè¡ããŸã...ç§èªèº«ããã€ãŠæ¬ ããŠããŸããã
æé 1. USBããã€ã¹ãæ¥ç¶ããŸãã
åè¿°ã®ããã«ããã®æç¹ã§ãããã€ã¹ã¯ãã¹ãã«ãç§ã¯ãããã¯ãŒã¯ã«ãŒãã§ãïŒããšäŒããŸãã
ãã¹ãïŒã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒïŒã¯ãã¯ã©ãããæ¥ç¶ããåŸããªã¯ãšã¹ãã®éä¿¡ãéå§ããŸãã
ãã¹ãã«ã¯æ¬¡ã®æ
å ±ãå¿
èŠã§ã
-補åãšã¯äœã§ãã
-補åã®VIDãšPIDã¯äœã§ããïŒè£œé æ¥è ãšè£œåã®èå¥åã ãªã¹ããåç § ïŒ
-ããã€ã¹ãå±ããã¯ã©ã¹ãšãµãã¯ã©ã¹
-亀æãããšã³ããã€ã³ããšãããã¯
ããŠããããŠããã€ãã®ä»ã®æ å ±ã ãã®å Žåãæ§æãã±ããã¯ãšã³ããã€ã³ã0ã§éä¿¡ãããŸããããèªäœã«é¢ããæ å ±ãå«ãããã€ã¹ããã®å¿çãã±ããã¯ãéåžžãUSBããã€ã¹èšè¿°åããšåŒã°ããŸãã
調æ»ããã»ã¹ïŒåæïŒã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
äžè¬çã«ãUSBãããã³ã«ã¯éåžžã«è±å¯ã§ã...æã«ã¯åé·ã§ããããã«ããæããŸãã ãã ãããã®è±å¯ãªæ©èœã«ãããçŸåšã§ã¯å®å šã«ç°ãªãããã€ã¹ãæ¥ç¶ã§ããã¢ã€ãœã¯ããã¹ã¹ããªãŒã ãããŒã¿ãããã¯ãå²ã蟌ã¿ã転éã§ããŸãã äžè¬çã«ãå¿ èŠãªãã®ã¯ãã¹ãŠãææ°ã®ããã€ã¹ãå¹ åºãå¿ èŠãšããå ŽåããããŸãã ã³ã€ã³ã®è£åŽã¯ãUSBããã€ã¹ã®éçºã«å ¥ãããã®é«ããããå€ã§ãã
-補åã®VIDãšPIDã¯äœã§ããïŒè£œé æ¥è ãšè£œåã®èå¥åã ãªã¹ããåç § ïŒ
-ããã€ã¹ãå±ããã¯ã©ã¹ãšãµãã¯ã©ã¹
-亀æãããšã³ããã€ã³ããšãããã¯
ããŠããããŠããã€ãã®ä»ã®æ å ±ã ãã®å Žåãæ§æãã±ããã¯ãšã³ããã€ã³ã0ã§éä¿¡ãããŸããããèªäœã«é¢ããæ å ±ãå«ãããã€ã¹ããã®å¿çãã±ããã¯ãéåžžãUSBããã€ã¹èšè¿°åããšåŒã°ããŸãã
調æ»ããã»ã¹ïŒåæïŒã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
äžè¬çã«ãUSBãããã³ã«ã¯éåžžã«è±å¯ã§ã...æã«ã¯åé·ã§ããããã«ããæããŸãã ãã ãããã®è±å¯ãªæ©èœã«ãããçŸåšã§ã¯å®å šã«ç°ãªãããã€ã¹ãæ¥ç¶ã§ããã¢ã€ãœã¯ããã¹ã¹ããªãŒã ãããŒã¿ãããã¯ãå²ã蟌ã¿ã転éã§ããŸãã äžè¬çã«ãå¿ èŠãªãã®ã¯ãã¹ãŠãææ°ã®ããã€ã¹ãå¹ åºãå¿ èŠãšããå ŽåããããŸãã ã³ã€ã³ã®è£åŽã¯ãUSBããã€ã¹ã®éçºã«å ¥ãããã®é«ããããå€ã§ãã
ããã€ã¹ã«é¢ããæ å ±ãåä¿¡ããåŸããã¹ãOSã¯å¯Ÿè©±ã«é©ãããã©ã€ããŒãæ€çŽ¢ããŸãã ãã©ãã·ã¥ãã©ã€ãïŒUSBã¯ã©ã¹MSCïŒãããŠã¹ä»ãããŒããŒãïŒHIDã¯ã©ã¹ïŒãªã©ã®å žåçãªã±ãŒã¹ã§ã¯ãã¯ã©ã¹ã®æšæºãã©ã€ããŒãããŒããããŸãã USBãããã¯ãŒã¯ã«ãŒãïŒRNDISãµãã¯ã©ã¹ãå«ãCDCã¯ã©ã¹ïŒã®ãããªãããé£ãããã±ãŒã¹ã§ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯è£éã«ä»»ãããŸãã
-OS linux / android / macã¯ãååãšããŠãæ£åžžãªäº€æã確ç«ããããšããŸã
-Windows OSã¯å€éšãã©ã€ããŒã®ã€ã³ã¹ããŒã«ãèŠæ±ããŸã
æåã®ã±ãŒã¹ã®ããã€ã¹ã¯ããã«åäœããŸãã
WindowsïŒåŸã®XPïŒã®å Žåã æšæºã®Microsoftãã©ã€ããŒãã€ã³ã¹ããŒã«ã§ããŸãã Windows XPã®å ŽåãLRNDISã©ã€ãã©ãªã®ãªããžããªã§å©çšå¯èœãªinfãã¡ã€ã«ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸã ã
ã¹ããã2.ãã©ã€ããŒã¯RNDISããã€ã¹ãåæåããŸã
ãã®å³ã¯ãRNDISããã€ã¹ïŒWindows OSïŒãšã®éä¿¡ã®åçã瀺ããŠããŸãã
ããªãã¯ããã«ã€ããŠãã£ãšããã§èªãããšãã§ããŸãã
ã€ãŸããRNDISãããã³ã«ã¯å€éšããã€ã¹çšã®NDISã®æ¡åŒµæ©èœã§ãã ãããã³ã«ã®åœ¹å²ã¯ãPnPãµããŒããšãããã¯ãŒã¯ãã±ãã亀æãæäŸããããšã§ãã æ¬è³ªçã«ãRNDISã¯ç¬ç«ãããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã§ããããã®æ å ±è² è·ã¯ãã£ãã«/ãããã¯ãŒã¯å±€ã®ãã¬ãŒã ïŒã€ãŒãµããããŸãã¯IPãã¬ãŒã ããªãã·ã§ã³ïŒã§ãã
äžèšã®å³ã§ã¯ãããã«ãããMiniport Remote NDISããã¥ãŒããå®è£ ããã次ã®åœ¹å²ãæãããŸãã
-éä¿¡ãµãŒãã¹ïŒMACã¢ãã¬ã¹ããã±ãããµã€ãºãé床ãªã©ããããã¯ãŒã¯ããã€ã¹ã«åãåãããŸãïŒ
-ãã¹ãã«ãã£ãŠéä¿¡ããããã¹ããã±ãããRNDISããããŒã§ã©ããããŸã
-ããã€ã¹ããåä¿¡ãããã±ããããããŒããã£ã¹ãããRNDISããããŒãã¹ããŒããŸã
MiniPort Remote NDIS USBãã¥ãŒãã¯ãUSBãã¹ãã©ã€ããŒã䜿çšããRNDISããã±ãŒãžã®è»¢éãæ åœããŸãã
STM32ã³ã³ãããŒã©ãŒåŽã§ã¯ãusbd_rndis_core.cãã¡ã€ã«ãRNDISãããã³ã«ããµããŒãããUSBã§åäœããŸãã ããããŒããªã¢ãŒãNDISãã¹ãã®ããã¥ãŒãããšåãããšãè¡ããŸã-ããããŒãæ¥ç/åºå®è§£é€ãããã©ã€ããŒã®è³ªåã«ãçããŸãã usbd_rndis_core.hãã¡ã€ã«ããMACã¢ãã¬ã¹ãé床ãªã©ã®åçãååŸããŸãã
RNDISã®åæåãæ£åžžã«å®äºãããšãWindowsãã©ã€ããŒã¯ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããŸãããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã¯ããã®åŸããããã¯ãŒã¯ã³ã³ãããŒã«ã»ã³ã¿ãŒãããã³ãã¬ã€ã€ã³ãžã±ãŒã¿ãŒé åã«è¡šç€ºãããŸãã
ã¹ããã3. IPã¢ãã¬ã¹ã®ååŸ
ããã§ããªãåçã¢ãã¬ã¹ãååŸããããã®ãµãŒãã¹ãå¿ èŠãªã®ã§ããããã ãã®ãµãŒãã¹ã¯DHCP ïŒåçãã¹ãæ§æãããã³ã«ïŒãšåŒã°ããŸã ã
ãã¹ããããã€ã¹ãåæåãããšããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãäœæãããŸãã
ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ïŒèª°ãç¥ããªãå ŽåïŒ
ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãç©çãããã¯ãŒã¯ãŸãã¯ä»®æ³ãããã¯ãŒã¯äžã®ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãæäŸãããœãããŠã§ã¢ãšã³ãã£ãã£ã§ãã
ã»ãšãã©ã®å Žåããã¹ãã®åãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã¯ç¹å®ã®ãããã¯ãŒã¯ã¢ããã¿ãŒã«å¯Ÿå¿ããŠããŸãã ããããããŒã«ã«ã«ãŒããä»®æ³ãã·ã³ãšã®ããåãã«åœ¹ç«ã€ã€ã³ã¿ãŒãã§ã€ã¹ãªã©ãä»ã«ãå€ãã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã 圌ãã®å Žåãä¿¡å·åœ¢åŒã§ã¯ããã¹ãããã¯äœãåºãŸãã-亀æã¯ããã°ã©ã ã§å®è¡ãããŸãã
åãã¹ããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯ãå°ãªããšã1ã€ã®IPã¢ãã¬ã¹ãé¢é£ä»ããããŠããå¿ èŠããããŸãã ããã«ãããšãããããã¯ãŒã¯ã®å± äœè ãã¯ãã¹ãã«é£çµ¡ã§ããŸãã
è€æ°ã®ãããã¯ãŒã¯ããã¯ã€ã€äžãã§ã¢ãã¬ã¹æå®ãããŠããå ŽåïŒããšãã°ãIPã¢ãã¬ã¹10.4.1.xxããã³192.168.1.xxã®ããã€ã¹ïŒã2ã€ã®ãå人çšãIPã¢ãã¬ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ã«å²ãåœãŠãããšãã§ããŸãã ãããã¯ã10.4.1.151ããã³192.168.1.200ã®ããã«ãªããŸãã Windowsã§ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ã®ã»ãããšé¢é£ããIPã¢ãã¬ã¹ã確èªããã«ã¯ãLinuxã§ipconfigã³ãã³ããšifconfigã䜿çšããŸãã
ãã¹ã¯ã¯ããããã¯ãŒã¯/ãµãããããèšè¿°ããããã«äœ¿çšãããŸãã ããšãã°ããããã¯ãŒã¯10.4.1.xxã®æ£ãã説æã¯ããããã¯ãŒã¯10.4.1.0ããã¹ã¯255.255.255.0ã§ãã ãŸãã¯ããã¹ã¯ã®4ãã€ãæ°ããã€ããªåœ¢åŒã§è¡šããå è¡ãŠãããã®æ°ãã«ãŠã³ããããšãå€24ãåŸãããŸãããããã¯ãŒã¯ã¯æ¬¡ã®ããã«èšè¿°ã§ããŸãïŒ10.4.1.0/24ã
é¢é£ãããœãŒã¹ã§ããã«ã€ããŠè©³ããèªãããšãã§ããŸã ã
ã»ãšãã©ã®å Žåããã¹ãã®åãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã¯ç¹å®ã®ãããã¯ãŒã¯ã¢ããã¿ãŒã«å¯Ÿå¿ããŠããŸãã ããããããŒã«ã«ã«ãŒããä»®æ³ãã·ã³ãšã®ããåãã«åœ¹ç«ã€ã€ã³ã¿ãŒãã§ã€ã¹ãªã©ãä»ã«ãå€ãã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã 圌ãã®å Žåãä¿¡å·åœ¢åŒã§ã¯ããã¹ãããã¯äœãåºãŸãã-亀æã¯ããã°ã©ã ã§å®è¡ãããŸãã
åãã¹ããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯ãå°ãªããšã1ã€ã®IPã¢ãã¬ã¹ãé¢é£ä»ããããŠããå¿ èŠããããŸãã ããã«ãããšãããããã¯ãŒã¯ã®å± äœè ãã¯ãã¹ãã«é£çµ¡ã§ããŸãã
è€æ°ã®ãããã¯ãŒã¯ããã¯ã€ã€äžãã§ã¢ãã¬ã¹æå®ãããŠããå ŽåïŒããšãã°ãIPã¢ãã¬ã¹10.4.1.xxããã³192.168.1.xxã®ããã€ã¹ïŒã2ã€ã®ãå人çšãIPã¢ãã¬ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ã«å²ãåœãŠãããšãã§ããŸãã ãããã¯ã10.4.1.151ããã³192.168.1.200ã®ããã«ãªããŸãã Windowsã§ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ã®ã»ãããšé¢é£ããIPã¢ãã¬ã¹ã確èªããã«ã¯ãLinuxã§ipconfigã³ãã³ããšifconfigã䜿çšããŸãã
ãã¹ã¯ã¯ããããã¯ãŒã¯/ãµãããããèšè¿°ããããã«äœ¿çšãããŸãã ããšãã°ããããã¯ãŒã¯10.4.1.xxã®æ£ãã説æã¯ããããã¯ãŒã¯10.4.1.0ããã¹ã¯255.255.255.0ã§ãã ãŸãã¯ããã¹ã¯ã®4ãã€ãæ°ããã€ããªåœ¢åŒã§è¡šããå è¡ãŠãããã®æ°ãã«ãŠã³ããããšãå€24ãåŸãããŸãããããã¯ãŒã¯ã¯æ¬¡ã®ããã«èšè¿°ã§ããŸãïŒ10.4.1.0/24ã
é¢é£ãããœãŒã¹ã§ããã«ã€ããŠè©³ããèªãããšãã§ããŸã ã
IPã¢ãã¬ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ã«å²ãåœãŠãã«ã¯ãäž»ã«2ã€ã®æŠç¥ããããŸããéçã¡ãœããïŒãŠãŒã¶ãŒãã€ã³ã¿ãŒãã§ã€ã¹ã®ã¢ãã¬ã¹ãæå®ããå ŽåïŒãšåçã¡ãœããïŒDHCPãµãŒãã¹ã䜿çšïŒã§ãã
åŸè ã¯ããã¹ãã§ã€ã³ã¿ãŒãã§ã€ã¹ãäœæãããšãã«ãDHCPã¯ã©ã€ã¢ã³ããµãŒãã¹ãã¢ã¯ãã£ãã«ãªãããšã§ãã DHCPãµãŒããŒããããã¯ãŒã¯ã«ååšããããšãæåŸ ããŠã UDPãããã³ã«ãä»ããŠãããã¯ãŒã¯ïŒæ§æã¯ãŸã äžæïŒã«ãããŒããã£ã¹ããã±ãããéä¿¡ãå§ããŸãã
DHCPãµãŒããŒã®äžè¬çãªæ©èœãç¹ã«ã³ã³ãããŒã©ãŒã®æ©èœã¯ãã¯ã©ã€ã¢ã³ãã«å¿çããããšã§ãã å¿çãšããŠãã³ã³ãããŒã©ãŒã¯ãèšããŸããïŒã¯ã©ã€ã¢ã³ããããªãã¯ãã®ãããªãããã¯ãŒã¯ã«ããŠããã®ãããªIPã¢ãã¬ã¹ãä¿æãããã®ãããªã¢ãã¬ã¹ãæã€DNSãµãŒããŒãæã£ãŠããŸãã
ãã®åŸããã¹ãã¯ã¯ããã«ãæãããŸããæå®ãããIPã¢ãã¬ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ã«å²ãåœãŠãDNSãµãŒããŒã®IPã¢ãã¬ã¹ãèšæ¶ããŸãã
åæåãçµäºããŸããããã¹ããã©ãŠã¶ãŒã§ããŒãžåïŒrun.stmïŒãå ¥åã§ããããã«ãªããŸããã
LRNDISã©ã€ãã©ãªã®åäœã¯ã«ã¹ã¿ãã€ãºå¯èœã§ãããšèšããªããã°ãªããŸããã DHCPãµãŒããŒãµãŒãã¹ã¯ãã¢ã»ã³ããªããé€å€ã§ããŸãã ãã®åŸããã¹ãã¯192.168.7ãïŒ2-254ïŒã®ç¯å²ã«å±ããã¢ãã¬ã¹ãç»é²ããå¿ èŠããããŸãã ãã®ãããªãããã¯ãŒã¯ã¯ããã©ã«ãã§äœæãããŸãã ãã©ã¡ãŒã¿ãŒïŒ192.168.7.0/24ïŒãæ§æå¯èœã§ãã ãã®äŸã§ã¯ãã¯ã©ã€ã¢ã³ãã¯192.168.7.2 ... 192.168.7.4ã®ç¯å²ã®ã¢ãã¬ã¹ã24æéã®ãªãŒã¹æéã§åãåããŸãã
ã©ã€ãã©ãªã®ã»ããã¢ããã®è©³çŽ°ã«ã€ããŠã¯ã åã®èšäºãåç §ããŠãã ãã ã
ã¹ããã4.ããŒãžãããŒããã
ããŒãžãããŠã³ããŒãããã«ã¯ããŠãŒã¶ãŒã¯ããã€ã¹192.168.7.1ã®ã¢ãã¬ã¹ãçŽæ¥å ¥åã§ããŸãã
ãã ããæ°åãèŠããŠããå¿ èŠã¯ãããŸããã DHCPãµãŒããŒã«å ããŠãDNSãµãŒããŒããµããŒãããã©ã€ãã©ãªãæ§ç¯ããããšãã§ããŸãããã®æ©èœã¯ãããã¯ãŒã¯åã解決ããããšã§ãã å ¬éãããäŸã§ã¯ãDNSãµãŒããŒã¯ãªãœãŒã¹åãrun.stmãã解決ããããã«ãã¬ãŒãã³ã°ãããŠããŸãã
ãããã£ãŠããã©ãŠã¶ã§run.stmãèšè¿°ãããšããã¹ããããã¯ãŒã¯ãµãŒãã¹ã¯DNSãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããããã«å¿çããŠããµãŒããŒãæçšã«éç¥ããŸãïŒãrun.stmããã¡ã€ã³åã¯IPã¢ãã¬ã¹192.168.7.1ã«å¯Ÿå¿ããŸãã 次ã«ãæ¢ç¥ã®ã¢ãã¬ã¹ã«ãããã¹ããã©ãŠã¶ãŒã¯ã HTTPèŠæ±ãéä¿¡ããŠã«ãŒãããŒãžãååŸããããã«TCPæ¥ç¶ã確ç«ããŸãã
Firefoxãã©ãŠã¶ãŒãšã³ã³ãããŒã©ãŒéã®èŠæ±ãšå¿çïŒ
ããŒãžèªã¿èŸŒã¿æã®ã¯ãšãªå±¥æŽïŒ
å±¥æŽãããã«ãŒãHTMLããã¥ã¡ã³ããèªã¿èŸŒãã åŸããã©ãŠã¶ãŒã¯ã³ã³ãããŒã©ãŒããä»ã®2ã€ã®ãã¡ã€ã«ãdiscovery.svgãšzepto.min.jsãããŠã³ããŒãããããšãããããŸãã 1ã€ç®ã¯ããã£ã¹ã«ããªãŒããŒãã®ç»åã§ãã SVG圢åŒãéžæãããŠããã®ã¯ããã¯ã¿ãŒã°ã©ãã£ãã¯ã¹ã®ã€ã¡ãŒãžã§ããããããã€ã¯ãã³ã³ãããŒã©ãŒã®ROMã®ã¹ããŒã¹ãã»ãšãã©å æããªãããã§ãã ã¹ã¯ãªãããã¡ã€ã«zepto.min.jsãå«ãŸããŠããŸãã ã¯æåãªJQUERYã®åçŽåãããã¢ããã°ã§ãã ROMã®ã¹ããŒã¹ã®çŽ°å¿ã®ç¯çŽã¯è¡ãããŠããªãããšã«æ³šæããŠãã ããã ãã¹ãŠã®éçãªãœãŒã¹ã«å¯ŸããŠ35 KBã®ç ç²ããããŸãããã³ã³ãããŒã©ãŒã®ã¡ã¢ãªã¯ãŸã ååã§ãã ããã«ãã€ã³ã¿ãŒãã§ã€ã¹ã®è€éããããã«å¢ããã®ãµã€ãºã¯ãèããé ããªãããšãçŽæããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ãå€§å¹ ã«æé·ããå Žå-åžžã«éçãªãœãŒã¹ãå§çž®åœ¢åŒã§ä¿åããã³æäŸããæ¹æ³ããããŸã-ãã¹ãŠã®æ¢ç¥ã®ãã©ãŠã¶ãŒã¯çŸåšããã®å Žã§è§£åããµããŒãããŸãã
ãã©ãŠã¶ãéä¿¡ããå¥ã®ãªã¯ãšã¹ãã¯ã/ state.cgiãªã¯ãšã¹ãã§ãã ããã¯ã1ç§ããã5åã®é »åºŠã§ãã«ãŒãHTMLããã¥ã¡ã³ãããã®ã¹ã¯ãªããã«ãã£ãŠåœ¢æãããŸãã ããã€ã¹ã®çŸåšã®ç¶æ ã®ãã€ããã¯ã¹ãååŸããèŠæ±ãå¿ èŠã§ãã
ãã®èŠæ±ãåä¿¡ãããšãã³ã³ãããŒã©ãŒã¯JSON圢åŒã§æ¬¡ã®è¡ãçæããŠå¿çããŸãã
{ "systick": 9528746, "button": 0, "acc": [54, -288, 936], "leds": { "g": 0, "o": 0, "r": 0 } }
ããã«ã¯ãããã€ã¹ã®çŸåšã®ç¶æ ã«é¢ãããã¹ãŠã®ããŒã¿ãå«ãŸããJavaScriptã³ãŒãã䜿çšããŠããŒãžã«è¡šç€ºãããŸãã
ããŠããããããã©ãŠã¶ãšéä¿¡ããæåŸã®ç¬éã¯ããã©ãŠã¶ãå¶åŸ¡ããæ¹æ³ã§ãã
ãã®äŸã§ã¯ã3ã€ã®LEDãå¶åŸ¡ãããŠããŸãã ããšãã°ãJavaScriptã䜿çšããŠèµ€è²ã®LEDãã©ã°ãã¯ãªãã¯ãããšããrããã©ã¡ãŒã¿ãŒãæž¡ãããå€ã0ãŸãã¯1ã®HTTP GETãªã¯ãšã¹ããéä¿¡ãããŸããå®å šãªãªã¯ãšã¹ãã¯æ¬¡ã®ããã«ãªããŸãã/ctl.cgi?r=1
äœããã®æ¹æ³ã§ãè«çç¶æ 0/1ãããã¹ããã£ãŒã«ãã®å€ããã¿ã³ã¯ãªãã¯ã®éç¥ãªã©ãããŒã¿ã»ããã転éã§ããŸãã ãã®ã¢ãããŒãã®å©ç¹ã¯ãå³å¯ã«åœ¢åŒåãããã³ã³ãããŒã«ã¡ãã»ãŒãžãåãåããããããã°ã©ã ããžãã¯ãã³ã³ãããŒã«ããŸã£ããèªèããªãå¯èœæ§ãããããšã«ãããŸãã ã€ã³ã¿ãŒãã§ã€ã¹ããŒãïŒHTML + JSïŒããã¹ãŠã®èšåã§ããŒã«ã«ã«å€æŽããã³ãããã°ãããã¡ãŒã ãŠã§ã¢ã®äžéšãšããŠã³ã³ãããŒã©ãŒã«äžåºŠã¢ããããŒãããããšãã§ããŸãã éèŠã§ã¯ãªãããŒã«ã«Webéçºã¯ãé©åãªå°é家ãåŠçã§ããŸãã
LWIPã¹ã¿ãã¯ã«ã€ããŠ
ã©ã€ãã©ãªã«çµã¿èŸŒãŸãããã®ãããã¯ãŒã¯ã¹ã¿ãã¯çšã§ãªãå Žåããããã¯ãŒã¯äº€æã¯æé ã§ããŸããã
ã©ã€ãã©ãªã¯ãã¢ã¡ã¿ã«ïŒOSããã³åçã¡ã¢ãªå²ãåœãŠãªãïŒã§åäœããããããœã±ããã¢ãã€ã³ã¯äœ¿çšã§ããŸããã ãããã£ãŠãæªå å·¥ã®APIã¹ã¿ãã¯ã䜿çšããŠãããã¯ãŒã¯ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã 幞ããªããšã«ããã®ãããã¯ã«é¢ããå€ãã®æ å ±ããããäžã«ãããŸãã
ãŸããããã±ãŒãžã®è²¢ç®ã«ã¯ãå€ãã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ããããŸãã ãããããHTTPãµãŒããŒã䜿çšãããŸããã
åã®èšäºã§ãã¹ã¿ãã¯ãšãã®èšå®ã«ã€ããŠç°¡åã«èª¬æããŸããã çŸæç¹ã§ã¯ããã¡ã€ã«å ã®ã¹ã¿ãã¯ã«ãšã£ãŠéèŠãªäžé£ã®å®çŸ©ãæŽç·ŽãããŠããŸãã
lwipopts.h
#define NO_SYS 1 #define MEM_ALIGNMENT 4 #define LWIP_RAW 1 #define LWIP_NETCONN 0 #define LWIP_SOCKET 0 #define LWIP_DHCP 0 #define LWIP_ICMP 1 #define LWIP_UDP 1 #define LWIP_TCP 1 #define ETH_PAD_SIZE 0 #define LWIP_IP_ACCEPT_UDP_PORT(p) ((p) == PP_NTOHS(67)) #define MEM_SIZE 10000 #define TCP_MSS (1500 /*mtu*/ - 20 /*iphdr*/ - 20 /*tcphhr*/) #define TCP_SND_BUF (2 * TCP_MSS) #define ETHARP_SUPPORT_STATIC_ENTRIES 1 #define LWIP_HTTPD_CGI 1 #define LWIP_HTTPD_SSI 1 #define LWIP_HTTPD_SSI_INCLUDE_TAG 0
mem_mallocã®åé¡ã解決ãããŸããã çŸåšã®ãã¡ãŒã ãŠã§ã¢ããŒãžã§ã³ã¯åçå²ãåœãŠã䜿çšããŸããããmem_mallocãåŒã³åºããšããŒããŠã§ã¢ãã¯ã©ãã·ã¥ããŸããã 以åã¯ç¡èŠãããŠããå®çŸ©MEM_ALIGNMENTãè¿œå ããããšã§èš±å¯ãããŸãã
åãçç±ã§ãã³ãã¥ããã£ã§ãµããŒããããŠããHTTPãµãŒããŒã¯çå®ã«æ©èœããŠãããããç¬èªã®ãã©ã³ãäœæããããšã¯ã§ããŸããã
æªè§£æ±ºã®åé¡
1.ä»ã®ãœãããŠã§ã¢ã«å«ããããã®ç¬èªã®æ¡ä»¶ããããããããªãlwipã¹ã¿ãã¯ã®åã©ã€ã»ã³ã¹ã®ãã¥ã¢ã³ã¹ã
2.ããã«ãã¯ãšãªããã±ãããåŠçããããã®DNSãµãŒããŒã®æçµåã
çµè«ã®ä»£ããã«
èªè ã®å¿èã«æè¬ãããã®èšäºã圌ã«ãšã£ãŠåœ¹ç«ã€ããšãé¡ã£ãŠããŸãã ãœãŒã¹ã³ãŒãã§å ¬éãããŠããLRNDISã©ã€ãã©ãªã¯ãMITã©ã€ã»ã³ã¹ã®æš©å©ã®äžã§äœ¿çšã§ããŸãã æ圢ã®æéãšäºååãæ§ããããäœåãä»ã®èª°ãã«ãšã£ãŠæçšã§ãããªãã°ãç§ã¯ããã泚ç®ã«å€ããŸãã ææªã®å ŽåããªãŒãã³ã©ã€ãã©ãªã䜿çšããªããšãããã¯æ©èœããŸããã
ã©ã€ãã©ãªã®ãµããŒãã¯çŸåšèšç»ãããŠããããã質åã«ã€ããŠã¯fsenok@gmail.comãŸã§ãåãåãããã ããã