Changeset 364 for asp3_tinet_ecnl_rx


Ignore:
Timestamp:
Feb 1, 2019, 9:57:09 PM (5 years ago)
Author:
coas-nagasima
Message:

TINETとSocket APIなどを更新

Location:
asp3_tinet_ecnl_rx/trunk
Files:
20 added
149 edited

Legend:

Unmodified
Added
Removed
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/.cproject

    r345 r364  
    2222                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    2323                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    24                                 <option id="toolchain.version" value="4.8.4.201703"/>
     24                                <option id="toolchain.version" value="4.8.4.201803"/>
    2525                        </storageModule>
    2626                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    3737                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.43669503" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    3838                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1762358251" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    39                                                         <builder buildPath="${workspace_loc:/app1_usb_watt_meter}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.464862236" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     39                                                        <builder buildPath="${workspace_loc:/app1_usb_watt_meter}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.464862236" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    4040                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1229888266" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    4141                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1883557018" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    9191                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    9292                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    93                                 <option id="toolchain.version" value="4.8.4.201703"/>
     93                                <option id="toolchain.version" value="4.8.4.201803"/>
    9494                        </storageModule>
    9595                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    106106                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1468234416" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    107107                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1984029138" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    108                                                         <builder buildPath="${workspace_loc:/app1_usb_watt_meter}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1277953315" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     108                                                        <builder buildPath="${workspace_loc:/app1_usb_watt_meter}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1277953315" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    109109                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.70642658" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    110110                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1213984969" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    160160                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    161161                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    162                                 <option id="toolchain.version" value="4.8.4.201703"/>
     162                                <option id="toolchain.version" value="4.8.4.201803"/>
    163163                        </storageModule>
    164164                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    175175                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.748885427" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    176176                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1713664515" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    177                                                         <builder buildPath="${workspace_loc:/app1_usb_watt_meter}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1421742244" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     177                                                        <builder buildPath="${workspace_loc:/app1_usb_watt_meter}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1421742244" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    178178                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.899711517" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    179179                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.898818532" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    224224        <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
    225225        <storageModule moduleId="refreshScope" versionNumber="2">
     226                <configuration configurationName="DebugEther"/>
    226227                <configuration configurationName="DebugCitrus">
    227228                        <resource resourceType="PROJECT" workspacePath="/app1_usb_watt_meter"/>
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/Debug/Makefile

    r342 r364  
    170170        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    171171endif
    172 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     172CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    173173INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    174174        -I$(SRCDIR)/../btstack/include \
     
    184184        -I$(SRCDIR)/../curl-7.57.0 \
    185185        $(INCLUDES)
    186 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     186LDFLAGS := $(LDFLAGS) -L.
    187187LIBS := $(LIBS) $(CXXLIBS)
    188188CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    206206APPL_ASMOBJS :=
    207207ifdef USE_CXX
    208         APPL_CXXOBJS := main.o ntshell_main.o echonet_main.o client.o
     208        APPL_CXXOBJS := main.o ntshell_main.o echonet_main.o client.o jsonsl.o
    209209        APPL_COBJS := $(APPL_COBJS)
    210210else
    211         APPL_COBJS := $(APPL_COBJS) main.o ntshell_main.o echonet_main.o client.o
     211        APPL_COBJS := $(APPL_COBJS) main.o ntshell_main.o echonet_main.o client.o jsonsl.o
    212212endif
    213213APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
     
    218218endif
    219219
    220 
    221 #
    222 #  ネットワークサービスの定義
    223 #
    224 NO_USE_TINET_LIBRARY = true
    225 
    226 #  ネットワークインタフェースの選択、何れか一つ選択する。
    227 NET_IF = ether
    228 
    229 #  イーサネット・ディバイスドライバの選択
    230 NET_DEV = if_btusb
    231 
    232 #  ネットワーク層の選択
    233 #SUPPORT_INET6 = true
    234 SUPPORT_INET4 = true
    235 
    236 #  API に組込む機能の選択
    237 #API_CFG_IP4MAPPED_ADDR = true
    238 
    239 #  トランスポート層の選択
    240 SUPPORT_TCP = true
    241 SUPPORT_UDP = true
    242 
    243 # IGMPを有効に設定
    244 SUPPORT_IGMP = true
    245 
    246 #
    247 #  ネットワークサービスの Makefile のインクルード
    248 #
    249 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     220ifdef TINETDIR
     221        #
     222        #  ネットワークサービスの定義
     223        #
     224        NO_USE_TINET_LIBRARY = true
     225
     226        #  ネットワークインタフェースの選択、何れか一つ選択する。
     227        NET_IF = ether
     228
     229        #  イーサネット・ディバイスドライバの選択
     230        NET_DEV = if_btusb
     231
     232        #  ネットワーク層の選択
     233        #SUPPORT_INET6 = true
     234        SUPPORT_INET4 = true
     235
     236        #  API に組込む機能の選択
     237        #API_CFG_IP4MAPPED_ADDR = true
     238
     239        #  トランスポート層の選択
     240        SUPPORT_TCP = true
     241        SUPPORT_UDP = true
     242
     243        # IGMPを有効に設定
     244        SUPPORT_IGMP = true
     245
     246        #
     247        #  ネットワークサービスの Makefile のインクルード
     248        #
     249        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     250endif
    250251
    251252#
     
    267268all: tecs | $(DEPDIR)
    268269#       @$(MAKE) check
    269         @$(MAKE) check $(OBJNAME).bin
     270#       @$(MAKE) check $(OBJNAME).bin
    270271#       @$(MAKE) check $(OBJNAME).srec
     272        @$(MAKE) check $(OBJNAME).mot
    271273else
    272274#all: check
    273 all: check $(OBJNAME).bin
     275#all: check $(OBJNAME).bin
    274276#all: check $(OBJNAME).srec
     277all: check $(OBJNAME).mot
    275278endif
    276279
     
    280283#  コンフィギュレータに関する定義
    281284#
    282 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    283 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     285ifndef TINETDIR
     286  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     287  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     288                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     289else
     290  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     291  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    284292                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    285293                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    287295                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    288296                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     297endif
    289298CFG_ASMOBJS := $(CFG_ASMOBJS)
    290299CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    432441
    433442#
     443#  並列makeのための依存関係の定義
     444#
     445$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     446$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     447                                                                                                                | offset.timestamp
     448
     449#
    434450#  特別な依存関係の定義
    435451#
     
    440456#
    441457$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    442         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     458        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    443459                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    444460                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    469485$(OBJNAME).srec: $(OBJFILE)
    470486        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     487
     488$(OBJNAME).mot: $(OBJFILE)
     489        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    471490
    472491#
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/DebugCitrus/Makefile

    r342 r364  
    170170        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    171171endif
    172 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     172CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    173173INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    174174        -I$(SRCDIR)/../btstack/include \
     
    184184        -I$(SRCDIR)/../curl-7.57.0 \
    185185        $(INCLUDES)
    186 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     186LDFLAGS := $(LDFLAGS) -L.
    187187LIBS := $(LIBS) $(CXXLIBS)
    188188CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    206206APPL_ASMOBJS :=
    207207ifdef USE_CXX
    208         APPL_CXXOBJS := main.o ntshell_main.o echonet_main.o client.o
     208        APPL_CXXOBJS := main.o ntshell_main.o echonet_main.o client.o jsonsl.o
    209209        APPL_COBJS := $(APPL_COBJS)
    210210else
    211         APPL_COBJS := $(APPL_COBJS) main.o ntshell_main.o echonet_main.o client.o
     211        APPL_COBJS := $(APPL_COBJS) main.o ntshell_main.o echonet_main.o client.o jsonsl.o
    212212endif
    213213APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
     
    218218endif
    219219
    220 
    221 #
    222 #  ネットワークサービスの定義
    223 #
    224 NO_USE_TINET_LIBRARY = true
    225 
    226 #  ネットワークインタフェースの選択、何れか一つ選択する。
    227 NET_IF = ether
    228 
    229 #  イーサネット・ディバイスドライバの選択
    230 NET_DEV = if_btusb
    231 
    232 #  ネットワーク層の選択
    233 #SUPPORT_INET6 = true
    234 SUPPORT_INET4 = true
    235 
    236 #  API に組込む機能の選択
    237 #API_CFG_IP4MAPPED_ADDR = true
    238 
    239 #  トランスポート層の選択
    240 SUPPORT_TCP = true
    241 SUPPORT_UDP = true
    242 
    243 # IGMPを有効に設定
    244 SUPPORT_IGMP = true
    245 
    246 #
    247 #  ネットワークサービスの Makefile のインクルード
    248 #
    249 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     220ifdef TINETDIR
     221        #
     222        #  ネットワークサービスの定義
     223        #
     224        NO_USE_TINET_LIBRARY = true
     225
     226        #  ネットワークインタフェースの選択、何れか一つ選択する。
     227        NET_IF = ether
     228
     229        #  イーサネット・ディバイスドライバの選択
     230        NET_DEV = if_btusb
     231
     232        #  ネットワーク層の選択
     233        #SUPPORT_INET6 = true
     234        SUPPORT_INET4 = true
     235
     236        #  API に組込む機能の選択
     237        #API_CFG_IP4MAPPED_ADDR = true
     238
     239        #  トランスポート層の選択
     240        SUPPORT_TCP = true
     241        SUPPORT_UDP = true
     242
     243        # IGMPを有効に設定
     244        SUPPORT_IGMP = true
     245
     246        #
     247        #  ネットワークサービスの Makefile のインクルード
     248        #
     249        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     250endif
    250251
    251252#
     
    267268all: tecs | $(DEPDIR)
    268269#       @$(MAKE) check
    269         @$(MAKE) check $(OBJNAME).bin
     270#       @$(MAKE) check $(OBJNAME).bin
    270271#       @$(MAKE) check $(OBJNAME).srec
     272        @$(MAKE) check $(OBJNAME).mot
    271273else
    272274#all: check
    273 all: check $(OBJNAME).bin
     275#all: check $(OBJNAME).bin
    274276#all: check $(OBJNAME).srec
     277all: check $(OBJNAME).mot
    275278endif
    276279
     
    280283#  コンフィギュレータに関する定義
    281284#
    282 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    283 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     285ifndef TINETDIR
     286  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     287  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     288                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     289else
     290  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     291  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    284292                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    285293                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    287295                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    288296                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     297endif
    289298CFG_ASMOBJS := $(CFG_ASMOBJS)
    290299CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    432441
    433442#
     443#  並列makeのための依存関係の定義
     444#
     445$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     446$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     447                                                                                                                | offset.timestamp
     448
     449#
    434450#  特別な依存関係の定義
    435451#
     
    440456#
    441457$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    442         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     458        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    443459                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    444460                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    469485$(OBJNAME).srec: $(OBJFILE)
    470486        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     487
     488$(OBJNAME).mot: $(OBJFILE)
     489        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    471490
    472491#
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/DebugEther/Makefile

    r342 r364  
    170170        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    171171endif
    172 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     172CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    173173INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    174174        -I$(SRCDIR)/../btstack/include \
     
    184184        -I$(SRCDIR)/../curl-7.57.0 \
    185185        $(INCLUDES)
    186 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     186LDFLAGS := $(LDFLAGS) -L.
    187187LIBS := $(LIBS) $(CXXLIBS)
    188188CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    206206APPL_ASMOBJS :=
    207207ifdef USE_CXX
    208         APPL_CXXOBJS := main.o ntshell_main.o echonet_main.o client.o
     208        APPL_CXXOBJS := main.o ntshell_main.o echonet_main.o client.o jsonsl.o
    209209        APPL_COBJS := $(APPL_COBJS)
    210210else
    211         APPL_COBJS := $(APPL_COBJS) main.o ntshell_main.o echonet_main.o client.o
     211        APPL_COBJS := $(APPL_COBJS) main.o ntshell_main.o echonet_main.o client.o jsonsl.o
    212212endif
    213213APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
     
    218218endif
    219219
    220 
    221 #
    222 #  ネットワークサービスの定義
    223 #
    224 NO_USE_TINET_LIBRARY = true
    225 
    226 #  ネットワークインタフェースの選択、何れか一つ選択する。
    227 NET_IF = ether
    228 
    229 #  イーサネット・ディバイスドライバの選択
     220ifdef TINETDIR
     221        #
     222        #  ネットワークサービスの定義
     223        #
     224        NO_USE_TINET_LIBRARY = true
     225
     226        #  ネットワークインタフェースの選択、何れか一つ選択する。
     227        NET_IF = ether
     228
     229        #  イーサネット・ディバイスドライバの選択
    230230        NET_DEV = if_rx62n
    231231
    232 #  ネットワーク層の選択
    233 #SUPPORT_INET6 = true
    234 SUPPORT_INET4 = true
    235 
    236 #  API に組込む機能の選択
    237 #API_CFG_IP4MAPPED_ADDR = true
    238 
    239 #  トランスポート層の選択
    240 SUPPORT_TCP = true
    241 SUPPORT_UDP = true
    242 
    243 # IGMPを有効に設定
    244 SUPPORT_IGMP = true
    245 
    246 #
    247 #  ネットワークサービスの Makefile のインクルード
    248 #
    249 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     232        #  ネットワーク層の選択
     233        #SUPPORT_INET6 = true
     234        SUPPORT_INET4 = true
     235
     236        #  API に組込む機能の選択
     237        #API_CFG_IP4MAPPED_ADDR = true
     238
     239        #  トランスポート層の選択
     240        SUPPORT_TCP = true
     241        SUPPORT_UDP = true
     242
     243        # IGMPを有効に設定
     244        SUPPORT_IGMP = true
     245
     246        #
     247        #  ネットワークサービスの Makefile のインクルード
     248        #
     249        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     250endif
    250251
    251252#
     
    267268all: tecs | $(DEPDIR)
    268269#       @$(MAKE) check
    269         @$(MAKE) check $(OBJNAME).bin
     270#       @$(MAKE) check $(OBJNAME).bin
    270271#       @$(MAKE) check $(OBJNAME).srec
     272        @$(MAKE) check $(OBJNAME).mot
    271273else
    272274#all: check
    273 all: check $(OBJNAME).bin
     275#all: check $(OBJNAME).bin
    274276#all: check $(OBJNAME).srec
     277all: check $(OBJNAME).mot
    275278endif
    276279
     
    280283#  コンフィギュレータに関する定義
    281284#
    282 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    283 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     285ifndef TINETDIR
     286  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     287  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     288                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     289else
     290  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     291  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    284292                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    285293                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    287295                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    288296                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     297endif
    289298CFG_ASMOBJS := $(CFG_ASMOBJS)
    290299CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    432441
    433442#
     443#  並列makeのための依存関係の定義
     444#
     445$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     446$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     447                                                                                                                | offset.timestamp
     448
     449#
    434450#  特別な依存関係の定義
    435451#
     
    440456#
    441457$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    442         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     458        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    443459                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    444460                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    469485$(OBJNAME).srec: $(OBJFILE)
    470486        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     487
     488$(OBJNAME).mot: $(OBJFILE)
     489        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    471490
    472491#
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/client.c

    r350 r364  
    11/*
    22 *  TOPPERS ECHONET Lite Communication Middleware
    3  * 
     3 *
    44 *  Copyright (C) 2016 Cores Co., Ltd. Japan
    5  * 
     5 *
    66 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    77 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2626 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    2727 *      免責すること.
    28  * 
     28 *
    2929 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3030 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3232 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3333 *  の責任を負わない.
    34  * 
     34 *
    3535 *  @(#) $Id$
    3636 */
     
    4848#include "ff.h"
    4949#include "util/ntstdio.h"
     50#include "client.h"
     51#include "jsonsl.h"
    5052
    5153#define SKIP_PEER_VERIFICATION
    5254//#define SKIP_HOSTNAME_VERIFICATION
     55
     56const char SCOPE_DRIVE_FILE[] = "https://www.googleapis.com/auth/drive.file";
     57const char GRANT_TYPE_DEVICE[] = "http://oauth.net/grant_type/device/1.0";
     58
    5359char response[80];
    54 extern ntstdio_t ntstdio;
     60char errbuf[CURL_ERROR_SIZE];
     61
     62google_drive_t google_drive;
     63
     64void curl_setopt_common(CURL *curl);
     65int google_drive_error_callback(jsonsl_t jsn, jsonsl_error_t err,
     66        struct jsonsl_state_st *state, char *errat);
     67void google_drive_state_callback(jsonsl_t jsn, jsonsl_action_t action,
     68        struct jsonsl_state_st *state, const char *buf);
    5569
    5670void client_init(void)
    5771{
     72        google_drive_t *gd = &google_drive;
     73        jsonsl_t jsn;
     74
     75        memset(gd, 0, sizeof(google_drive_t));
     76        memcpy(gd->fname, "1:/log/20160101000000.log", sizeof(gd->fname));
     77
     78        jsn = gd->jsn = jsonsl_new(3);
     79        jsn->data = gd;
     80        jsn->error_callback = google_drive_error_callback;
     81        jsn->action_callback = google_drive_state_callback;
     82        jsonsl_enable_all_callbacks(jsn);
     83
    5884        //uITRON4_minit(ITRON_POOL_SIZE);
    5985
     
    6187}
    6288
    63 size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
    64 {
    65         int rest = size * nmemb;
     89size_t write_callback(void *buffer, size_t size, size_t nmemb, void *arg)
     90{
     91        google_drive_t *gd = (google_drive_t *)arg;
     92        jsonsl_t jsn = gd->jsn;
     93        size_t len = size * nmemb, pos;
     94        jsonsl_char_t data;
     95
     96        for (pos = 0; pos < len; pos++) {
     97                data = *((jsonsl_char_t *)&((uint8_t *)buffer)[pos]);
     98
     99                if ((gd->jsn_buf_pos >= 0) && (gd->jsn_buf_pos < sizeof(gd->jsn_buf)))
     100                        gd->jsn_buf[gd->jsn_buf_pos++] = data;
     101                jsonsl_feed(jsn, &data, 1);
     102        }
     103
     104        return len;
     105}
     106
     107void get_device_id_state_start(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     108{
     109        switch (gd->state) {
     110        case psRoot:
     111                if (state->level != 2) {
     112                        break;
     113                }
     114                else if (strcmp(buf, "device_code") == 0) {
     115                        gd->state = psDeviceCode;
     116                }
     117                else if (strcmp(buf, "user_code") == 0) {
     118                        gd->state = psUserCode;
     119                }
     120                else if (strcmp(buf, "expires_in") == 0) {
     121                        gd->state = psExpiresIn;
     122                }
     123                else if (strcmp(buf, "interval") == 0) {
     124                        gd->state = psInterval;
     125                }
     126                else if (strcmp(buf, "verification_url") == 0) {
     127                        gd->state = psVerificationUrl;
     128                }
     129                else if (strcmp(buf, "error") == 0) {
     130                        gd->state = psError;
     131                }
     132                else if (strcmp(buf, "error_description") == 0) {
     133                        gd->state = psErrorDescription;
     134                }
     135                break;
     136        case psDeviceCode:
     137                if (state->type == JSONSL_T_STRING) {
     138                        strlcpy(gd->credential.device_code, buf, sizeof(gd->credential.device_code));
     139                        gd->state = psRoot;
     140                }
     141                break;
     142        case psUserCode:
     143                if (state->type == JSONSL_T_STRING) {
     144                        strlcpy(gd->credential.user_code, buf, sizeof(gd->credential.user_code));
     145                        gd->state = psRoot;
     146                }
     147                break;
     148        case psExpiresIn:
     149                if (state->type == JSONSL_T_SPECIAL) {
     150                        gd->credential.expires_in = atoi(buf);
     151                        gd->state = psRoot;
     152                }
     153                break;
     154        case psInterval:
     155                if (state->type == JSONSL_T_SPECIAL) {
     156                        gd->credential.interval = atoi(buf);
     157                        gd->state = psRoot;
     158                }
     159                break;
     160        case psVerificationUrl:
     161                if (state->type == JSONSL_T_STRING) {
     162                        strlcpy(gd->credential.verification_url, buf, sizeof(gd->credential.verification_url));
     163                        gd->state = psRoot;
     164                }
     165                break;
     166        case psError:
     167                if (state->type == JSONSL_T_STRING) {
     168                        strlcpy(gd->error.error, buf, sizeof(gd->error.error));
     169                        gd->state = psRoot;
     170                }
     171                break;
     172        case psErrorDescription:
     173                if (state->type == JSONSL_T_STRING) {
     174                        strlcpy(gd->error.error_description, buf, sizeof(gd->error.error_description));
     175                        gd->state = psRoot;
     176                }
     177                break;
     178        }
     179}
     180
     181void get_device_id_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     182{
     183}
     184
     185int get_device_id(google_drive_t *gd, const char *scope)
     186{
     187        client_info_t *client_info = &gd->client_info;
     188        credential_t *credential = &gd->credential;
     189        CURLcode ret;
     190        CURL *curl;
     191        struct curl_slist *slist1;
     192        size_t len;
     193        char *postdata;
     194        jsonsl_t jsn = gd->jsn;
     195
     196        gd->jsn_buf_pos = -1;
     197
     198        jsonsl_reset(jsn);
     199        gd->start = get_device_id_state_start;
     200        gd->end = get_device_id_state_end;
     201
     202        slist1 = NULL;
     203        slist1 = curl_slist_append(slist1, "Content-Type: application/x-www-form-urlencoded");
     204
     205        curl = curl_easy_init();
     206
     207        char *client_id = curl_easy_escape(curl, client_info->client_id, strnlen(client_info->client_id, sizeof(client_info->client_id)));
     208        char *esc_scope = curl_easy_escape(curl, scope, strlen(scope));
     209
     210        len = sizeof("client_id=") + strlen(client_id) + sizeof("scope=") + strlen(esc_scope);
     211        postdata = malloc(len);
     212        snprintf(postdata, len, "client_id=%s&scope=%s", client_id, esc_scope);
     213
     214        curl_free(client_id);
     215        curl_free(esc_scope);
     216
     217        curl_easy_setopt(curl, CURLOPT_URL, "https://accounts.google.com/o/oauth2/device/code");
     218        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
     219        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, (curl_off_t)strnlen(postdata, len));
     220        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist1);
     221        curl_setopt_common(curl);
     222
     223        curl_easy_setopt(curl, CURLOPT_WRITEDATA, gd);
     224        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
     225
     226        ret = curl_easy_perform(curl);
     227
     228        free(postdata);
     229
     230        curl_easy_cleanup(curl);
     231        curl = NULL;
     232        curl_slist_free_all(slist1);
     233        slist1 = NULL;
     234
     235        return (int)ret;
     236}
     237
     238void get_access_token_state_start(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     239{
     240        switch (gd->state) {
     241        case psRoot:
     242                if (state->level != 2) {
     243                        break;
     244                }
     245                else if (strcmp(buf, "access_token") == 0) {
     246                        gd->state = psAccessToken;
     247                }
     248                else if (strcmp(buf, "expires_in") == 0) {
     249                        gd->state = psExpiresIn;
     250                }
     251                else if (strcmp(buf, "refresh_token") == 0) {
     252                        gd->state = psRefreshToken;
     253                }
     254                else if (strcmp(buf, "scope") == 0) {
     255                        gd->state = psScope;
     256                }
     257                else if (strcmp(buf, "token_type") == 0) {
     258                        gd->state = psTokenType;
     259                }
     260                else if (strcmp(buf, "error") == 0) {
     261                        gd->state = psError;
     262                }
     263                else if (strcmp(buf, "error_description") == 0) {
     264                        gd->state = psErrorDescription;
     265                }
     266                break;
     267        case psAccessToken:
     268                if (state->type == JSONSL_T_STRING) {
     269                        strlcpy(gd->credential.access_token, buf, sizeof(gd->credential.access_token));
     270                        gd->state = psRoot;
     271                }
     272                break;
     273        case psExpiresIn:
     274                if (state->type == JSONSL_T_SPECIAL) {
     275                        gd->credential.expires_in = atoi(buf);
     276                        gd->state = psRoot;
     277                }
     278                break;
     279        case psRefreshToken:
     280                if (state->type == JSONSL_T_STRING) {
     281                        strlcpy(gd->credential.refresh_token, buf, sizeof(gd->credential.refresh_token));
     282                        gd->state = psRoot;
     283                }
     284                break;
     285        case psScope:
     286                if (state->type == JSONSL_T_STRING) {
     287                        strlcpy(gd->credential.scope, buf, sizeof(gd->credential.scope));
     288                        gd->state = psRoot;
     289                }
     290                break;
     291        case psTokenType:
     292                if (state->type == JSONSL_T_STRING) {
     293                        strlcpy(gd->credential.token_type, buf, sizeof(gd->credential.token_type));
     294                        gd->state = psRoot;
     295                }
     296                break;
     297        case psError:
     298                if (state->type == JSONSL_T_STRING) {
     299                        strlcpy(gd->error.error, buf, sizeof(gd->error.error));
     300                        gd->state = psRoot;
     301                }
     302                break;
     303        case psErrorDescription:
     304                if (state->type == JSONSL_T_STRING) {
     305                        strlcpy(gd->error.error_description, buf, sizeof(gd->error.error_description));
     306                        gd->state = psRoot;
     307                }
     308                break;
     309        }
     310}
     311
     312void get_access_token_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     313{
     314}
     315
     316int get_access_token(google_drive_t *gd)
     317{
     318        client_info_t *client_info = &gd->client_info;
     319        credential_t *credential = &gd->credential;
     320        CURLcode ret;
     321        CURL *curl;
     322        struct curl_slist *slist1;
     323        size_t len;
     324        char *postdata;
     325        jsonsl_t jsn = gd->jsn;
     326
     327        gd->jsn_buf_pos = -1;
     328
     329        jsonsl_reset(jsn);
     330        gd->start = get_access_token_state_start;
     331        gd->end = get_access_token_state_end;
     332
     333        slist1 = NULL;
     334        slist1 = curl_slist_append(slist1, "Content-Type: application/x-www-form-urlencoded");
     335
     336        curl = curl_easy_init();
     337
     338        char *client_id = curl_easy_escape(curl, client_info->client_id, strnlen(client_info->client_id, sizeof(client_info->client_id)));
     339        char *client_secret = curl_easy_escape(curl, client_info->client_secret, strnlen(client_info->client_secret, sizeof(client_info->client_secret)));
     340        char *grant_type = curl_easy_escape(curl, GRANT_TYPE_DEVICE, strnlen(GRANT_TYPE_DEVICE, sizeof(GRANT_TYPE_DEVICE)));
     341
     342        len = sizeof("client_id=") + strlen(client_id) + sizeof("client_secret=") + strlen(client_secret)
     343                + sizeof("code=") + strlen(credential->device_code) + sizeof("grant_type=") + strlen(grant_type);
     344        postdata = malloc(len);
     345        snprintf(postdata, len, "client_id=%s&client_secret=%s&code=%s&grant_type=%s",
     346                client_id, client_secret, credential->device_code, grant_type);
     347
     348        curl_free(client_id);
     349        curl_free(client_secret);
     350        curl_free(grant_type);
     351
     352        curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/oauth2/v4/token");
     353        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
     354        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, (curl_off_t)strnlen(postdata, len));
     355        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist1);
     356        curl_setopt_common(curl);
     357
     358        curl_easy_setopt(curl, CURLOPT_WRITEDATA, gd);
     359        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
     360
     361        ret = curl_easy_perform(curl);
     362
     363        free(postdata);
     364
     365        curl_easy_cleanup(curl);
     366        curl = NULL;
     367        curl_slist_free_all(slist1);
     368        slist1 = NULL;
     369
     370        return (int)ret;
     371}
     372
     373void update_access_token_state_start(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     374{
     375        switch (gd->state) {
     376        case psRoot:
     377                if (state->level != 2) {
     378                        break;
     379                }
     380                else if (strcmp(buf, "access_token") == 0) {
     381                        gd->state = psAccessToken;
     382                }
     383                else if (strcmp(buf, "expires_in") == 0) {
     384                        gd->state = psExpiresIn;
     385                }
     386                else if (strcmp(buf, "scope") == 0) {
     387                        gd->state = psScope;
     388                }
     389                else if (strcmp(buf, "token_type") == 0) {
     390                        gd->state = psTokenType;
     391                }
     392                else if (strcmp(buf, "error") == 0) {
     393                        gd->state = psError;
     394                }
     395                else if (strcmp(buf, "error_description") == 0) {
     396                        gd->state = psErrorDescription;
     397                }
     398                break;
     399        case psAccessToken:
     400                if (state->type == JSONSL_T_STRING) {
     401                        strlcpy(gd->credential.access_token, buf, sizeof(gd->credential.access_token));
     402                        gd->state = psRoot;
     403                }
     404                break;
     405        case psExpiresIn:
     406                if (state->type == JSONSL_T_SPECIAL) {
     407                        gd->credential.expires_in = atoi(buf);
     408                        gd->state = psRoot;
     409                }
     410                break;
     411        case psScope:
     412                if (state->type == JSONSL_T_STRING) {
     413                        strlcpy(gd->credential.scope, buf, sizeof(gd->credential.scope));
     414                        gd->state = psRoot;
     415                }
     416                break;
     417        case psTokenType:
     418                if (state->type == JSONSL_T_STRING) {
     419                        strlcpy(gd->credential.token_type, buf, sizeof(gd->credential.token_type));
     420                        gd->state = psRoot;
     421                }
     422                break;
     423        case psError:
     424                if (state->type == JSONSL_T_STRING) {
     425                        strlcpy(gd->error.error, buf, sizeof(gd->error.error));
     426                        gd->state = psRoot;
     427                }
     428                break;
     429        case psErrorDescription:
     430                if (state->type == JSONSL_T_STRING) {
     431                        strlcpy(gd->error.error_description, buf, sizeof(gd->error.error_description));
     432                        gd->state = psRoot;
     433                }
     434                break;
     435        }
     436}
     437
     438void update_access_token_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     439{
     440}
     441
     442int update_access_token(google_drive_t *gd)
     443{
     444        client_info_t *client_info = &gd->client_info;
     445        credential_t *credential = &gd->credential;
     446        CURLcode ret;
     447        CURL *curl;
     448        struct curl_slist *slist1;
     449        size_t len;
     450        char *postdata;
     451        jsonsl_t jsn = gd->jsn;
     452
     453        gd->jsn_buf_pos = -1;
     454
     455        jsonsl_reset(jsn);
     456        gd->start = update_access_token_state_start;
     457        gd->end = update_access_token_state_end;
     458
     459        slist1 = NULL;
     460        slist1 = curl_slist_append(slist1, "Content-Type: application/x-www-form-urlencoded");
     461
     462        curl = curl_easy_init();
     463
     464        char *client_id = curl_easy_escape(curl, client_info->client_id, strnlen(client_info->client_id, sizeof(client_info->client_id)));
     465        char *client_secret = curl_easy_escape(curl, client_info->client_secret, strnlen(client_info->client_secret, sizeof(client_info->client_secret)));
     466
     467        len = sizeof("client_id=") + strlen(client_id) + sizeof("client_secret=") + strlen(client_secret)
     468                + sizeof("refresh_token=") + strlen(credential->refresh_token);
     469        postdata = malloc(len);
     470        snprintf(postdata, len, "client_id=%s&client_secret=%s&code=%s&grant_type=refresh_token",
     471                client_id, client_secret, credential->refresh_token);
     472
     473        curl_free(client_id);
     474        curl_free(client_secret);
     475
     476        curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/oauth2/v4/token");
     477        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
     478        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, (curl_off_t)strnlen(postdata, len));
     479        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist1);
     480        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
     481        curl_setopt_common(curl);
     482
     483        curl_easy_setopt(curl, CURLOPT_WRITEDATA, gd);
     484        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
     485
     486        ret = curl_easy_perform(curl);
     487
     488        free(postdata);
     489
     490        curl_easy_cleanup(curl);
     491        curl = NULL;
     492        curl_slist_free_all(slist1);
     493        slist1 = NULL;
     494
     495        return (int)ret;
     496}
     497
     498void revoke_device_state_start(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     499{
     500}
     501
     502void revoke_device_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     503{
     504}
     505
     506int revoke_device(google_drive_t *gd)
     507{
     508        client_info_t *client_info = &gd->client_info;
     509        credential_t *credential = &gd->credential;
     510        CURLcode ret;
     511        CURL *curl;
     512        size_t len;
     513        struct curl_slist *slist1;
     514        char *postdata;
     515        jsonsl_t jsn = gd->jsn;
     516
     517        gd->jsn_buf_pos = -1;
     518
     519        jsonsl_reset(jsn);
     520        gd->start = revoke_device_state_start;
     521        gd->end = revoke_device_state_end;
     522
     523        slist1 = NULL;
     524        slist1 = curl_slist_append(slist1, "Content-Type: application/x-www-form-urlencoded");
     525
     526        curl = curl_easy_init();
     527
     528        len = sizeof("token=") + strlen(credential->access_token);
     529        postdata = malloc(len);
     530        snprintf(postdata, len, "token=%s", credential->access_token);
     531
     532        curl_easy_setopt(curl, CURLOPT_URL, "https://accounts.google.com/o/oauth2/revoke");
     533        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
     534        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, (curl_off_t)strnlen(postdata, len));
     535        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist1);
     536        curl_setopt_common(curl);
     537
     538        curl_easy_setopt(curl, CURLOPT_WRITEDATA, gd);
     539        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
     540
     541        ret = curl_easy_perform(curl);
     542
     543        free(postdata);
     544
     545        curl_easy_cleanup(curl);
     546        curl = NULL;
     547        curl_slist_free_all(slist1);
     548        slist1 = NULL;
     549
     550        return (int)ret;
     551}
     552
     553void upload_file_state_start(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     554{
     555        switch (gd->state) {
     556        case psRoot:
     557                if (state->level != 2) {
     558                        break;
     559                }
     560                else if (strcmp(buf, "kind") == 0) {
     561                        gd->state = psKind;
     562                }
     563                else if (strcmp(buf, "id") == 0) {
     564                        gd->state = psId;
     565                }
     566                else if (strcmp(buf, "name") == 0) {
     567                        gd->state = psName;
     568                }
     569                else if (strcmp(buf, "mimeType") == 0) {
     570                        gd->state = psMimeType;
     571                }
     572                else if (strcmp(buf, "error") == 0) {
     573                        gd->state = psError;
     574                }
     575                else if (strcmp(buf, "error_description") == 0) {
     576                        gd->state = psErrorDescription;
     577                }
     578                break;
     579        case psKind:
     580                if (state->type == JSONSL_T_STRING) {
     581                        strlcpy(gd->file.kind, buf, sizeof(gd->file.kind));
     582                        gd->state = psRoot;
     583                }
     584                break;
     585        case psId:
     586                if (state->type == JSONSL_T_STRING) {
     587                        strlcpy(gd->file.id, buf, sizeof(gd->file.id));
     588                        gd->state = psRoot;
     589                }
     590                break;
     591        case psName:
     592                if (state->type == JSONSL_T_STRING) {
     593                        strlcpy(gd->file.name, buf, sizeof(gd->file.name));
     594                        gd->state = psRoot;
     595                }
     596                break;
     597        case psMimeType:
     598                if (state->type == JSONSL_T_STRING) {
     599                        strlcpy(gd->file.mimeType, buf, sizeof(gd->file.mimeType));
     600                        gd->state = psRoot;
     601                }
     602                break;
     603        case psError:
     604                if (state->type == JSONSL_T_STRING) {
     605                        strlcpy(gd->error.error, buf, sizeof(gd->error.error));
     606                        gd->state = psRoot;
     607                }
     608                break;
     609        case psErrorDescription:
     610                if (state->type == JSONSL_T_STRING) {
     611                        strlcpy(gd->error.error_description, buf, sizeof(gd->error.error_description));
     612                        gd->state = psRoot;
     613                }
     614                break;
     615        }
     616}
     617
     618void upload_file_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf)
     619{
     620}
     621
     622size_t read_callback(char *buffer, size_t size, size_t nitems, void *arg)
     623{
     624        FIL *file = (FIL *)arg;
     625        UINT ret = 0;
     626        FRESULT res;
     627
     628        res = f_read(file, buffer, size * nitems, &ret);
     629        if (res != FR_OK)
     630                return 0;
     631
     632        int rest = ret;
    66633        int len;
    67634
     
    76643                response[len] = '\0';
    77644
    78                 ntstdio_printf(&ntstdio, response);
    79 
    80                 dly_tsk(100 * 1000);
     645                printf(response);
     646
     647                dly_tsk(100);
    81648
    82649                rest -= len;
     
    84651        }
    85652
    86         return size * nmemb;
    87 }
    88 
    89 size_t read_data(char *buffer, size_t size, size_t nitems, void *instream)
    90 {
    91         FIL *file = (FIL *)instream;
    92         UINT ret = 0;
    93         FRESULT res;
    94 
    95         res = f_read(file, buffer, size * nitems, &ret);
    96         if (res != FR_OK)
    97                 return 0;
    98 
    99         int rest = ret;
    100         int len;
    101 
    102         while (rest > 0) {
    103                 len = rest;
    104                 if (len > (sizeof(response) - 1)) {
    105                         len = sizeof(response) - 1;
    106                 }
    107 
    108                 memcpy(response, buffer, len);
    109 
    110                 response[len] = '\0';
    111 
    112                 ntstdio_printf(&ntstdio, response);
    113 
    114                 dly_tsk(100);
    115 
    116                 rest -= len;
    117                 buffer = (char *)buffer + len;
    118         }
    119 
    120653        return ret;
    121654}
    122655
    123 char errbuf[CURL_ERROR_SIZE];
     656int seek_callback(void *arg, curl_off_t offset, int origin)
     657{
     658        FIL *file = (FIL *)arg;
     659        BYTE mode;
     660        FRESULT ret;
     661
     662        switch (origin) {
     663        case SEEK_SET:
     664                mode = F_SEEK_SET;
     665                break;
     666        case SEEK_CUR:
     667                mode = F_SEEK_CUR;
     668                break;
     669        case SEEK_END:
     670                mode = F_SEEK_END;
     671                break;
     672        default:
     673                return CURL_SEEKFUNC_FAIL;
     674        }
     675
     676        ret = f_seek(file, offset, mode);
     677        if (ret != F_OK)
     678                return CURL_SEEKFUNC_FAIL;
     679
     680        return CURL_SEEKFUNC_OK;
     681}
     682
     683int upload_file(google_drive_t *gd, const char *filename, const char *localfilepath)
     684{
     685        CURLcode ret;
     686        CURL *curl;
     687        curl_mime *mime;
     688        curl_mimepart *part;
     689        struct curl_slist *slist1;
     690        size_t len;
     691        char *postdata, *authorization;
     692        static const char buf[] = "Expect:";
     693        jsonsl_t jsn = gd->jsn;
     694        FIL file;
     695        FRESULT fret;
     696
     697        gd->jsn_buf_pos = -1;
     698
     699        jsonsl_reset(jsn);
     700        gd->start = upload_file_state_start;
     701        gd->end = upload_file_state_end;
     702
     703        fret = f_open(&file, localfilepath, FA_READ);
     704        if (fret != FR_OK) {
     705                printf("log file open error %d\n", fret);
     706                return -1;
     707        }
     708
     709        len = sizeof("{\"name\":\"\"}") + strlen(filename);
     710        postdata = malloc(len);
     711        snprintf(postdata, len, "{\"name\":\"%s\"}", filename);
     712
     713        curl = curl_easy_init();
     714
     715        mime = curl_mime_init(curl);
     716        part = curl_mime_addpart(mime);
     717        curl_mime_name(part, "metadata");
     718        curl_mime_type(part, "application/json;charset=utf-8");
     719        curl_mime_data(part, postdata, CURL_ZERO_TERMINATED);
     720        free(postdata);
     721
     722        part = curl_mime_addpart(mime);
     723        curl_mime_name(part, "file");
     724        curl_mime_type(part, "application/json");
     725        curl_mime_data_cb(part, file.fsize, read_callback, seek_callback, NULL, &file);
     726
     727        len = sizeof("Authorization: Bearer ") + strnlen(gd->credential.access_token, sizeof(gd->credential.access_token));
     728        authorization = malloc(len);
     729        snprintf(authorization, len, "Authorization: Bearer %s", gd->credential.access_token);
     730        slist1 = NULL;
     731        slist1 = curl_slist_append(slist1, authorization);
     732        free(authorization);
     733
     734        slist1 = curl_slist_append(slist1, buf);
     735
     736        curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart");
     737        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
     738        curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
     739        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist1);
     740        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
     741        curl_setopt_common(curl);
     742
     743        curl_easy_setopt(curl, CURLOPT_WRITEDATA, gd);
     744        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
     745
     746        ret = curl_easy_perform(curl);
     747
     748        curl_easy_cleanup(curl);
     749        curl = NULL;
     750        curl_mime_free(mime);
     751        mime = NULL;
     752        curl_slist_free_all(slist1);
     753        slist1 = NULL;
     754
     755        f_close(&file);
     756
     757        return (int)ret;
     758}
     759
     760int google_drive_error_callback(jsonsl_t jsn, jsonsl_error_t err,
     761        struct jsonsl_state_st *state, char *errat)
     762{
     763        return 0;
     764}
     765
     766void google_drive_state_callback(jsonsl_t jsn, jsonsl_action_t action,
     767        struct jsonsl_state_st *state, const char *buf)
     768{
     769        google_drive_t *gd = (google_drive_t *)jsn->data;
     770
     771        switch (action) {
     772        case JSONSL_ACTION_PUSH:
     773                switch (state->type) {
     774                case JSONSL_T_SPECIAL:
     775                        gd->jsn_buf[0] = *buf;
     776                        gd->jsn_buf_pos = 1;
     777                        break;
     778                case JSONSL_T_STRING:
     779                case JSONSL_T_HKEY:
     780                        gd->jsn_buf_pos = 0;
     781                        break;
     782                default:
     783                        gd->jsn_buf_pos = -1;
     784                }
     785                break;
     786        case JSONSL_ACTION_POP:
     787                switch (state->type) {
     788                case JSONSL_T_SPECIAL:
     789                case JSONSL_T_STRING:
     790                case JSONSL_T_HKEY:
     791                        gd->jsn_buf_pos--;
     792                        if (gd->jsn_buf_pos < sizeof(gd->jsn_buf)) {
     793                                gd->jsn_buf[gd->jsn_buf_pos] = '\0';
     794                        }
     795                        gd->start(gd, state, gd->jsn_buf);
     796                        break;
     797                default:
     798                        gd->jsn_buf[0] = '\0';
     799                        break;
     800                }
     801                gd->jsn_buf_pos = -1;
     802                break;
     803        default:
     804                gd->jsn_buf_pos = -1;
     805                break;
     806        }
     807}
    124808
    125809static void get_logfname(char *fname)
     
    185869        ret = f_open(&file, fname, FA_CREATE_ALWAYS | FA_WRITE);
    186870        if (ret != FR_OK) {
    187                 ntstdio_printf(&ntstdio, "not open a upload file %d\n", ret);
     871                printf("not open a upload file %d\n", ret);
    188872                return ret;
    189873        }
     
    232916        f_putc('}', &file);
    233917
    234 file_close:
    235918        f_close(&file);
    236919
     
    238921}
    239922
    240 void client_task(intptr_t exinf)
    241 {
    242         CURL *curl;
     923void curl_setopt_common(CURL *curl)
     924{
    243925        CURLcode res;
    244         int error = 0;
    245         //const char *data = "{\"value\":\"data post\"}";
    246         struct curl_slist *list = NULL;
    247         FIL file;
    248         FRESULT ret;
    249         char fname[] = {"1:/log/20160101000000.log"};
    250 
    251         get_logfname(fname);
    252 
    253         ret = write_log(fname);
    254         if (ret != FR_OK) {
    255                 ntstdio_printf(&ntstdio, "log file write error %d\n", ret);
    256                 return;
    257         }
    258 
    259         ret = f_open(&file, fname, FA_READ);
    260         if (ret != FR_OK) {
    261                 ntstdio_printf(&ntstdio, "log file open error %d\n", ret);
    262                 return;
    263         }
    264 
    265         ntstdio_printf(&ntstdio, "cURL start\n");
    266 
    267         curl = curl_easy_init();
    268         if (curl == NULL) {
    269                 ntstdio_printf(&ntstdio, "curl_easy_init() failed\n");
    270                 goto file_close;
    271         }
    272926
    273927        /* ask libcurl to show us the verbose output */
    274         curl_easy_setopt(curl, CURLOPT_VERBOSE, true);
    275 
    276         res = curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
     928        res = curl_easy_setopt(curl, CURLOPT_VERBOSE, true);
    277929        if (res != CURLE_OK)
    278                 ntstdio_printf(&ntstdio, "CURLOPT_URL failed: %s\n",
     930                printf("CURLOPT_VERBOSE failed: %s\n",
    279931                        curl_easy_strerror(res));
    280932
     
    283935
    284936        /* provide a buffer to store errors in */
    285         curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
     937        res = curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
     938        if (res != CURLE_OK)
     939                printf("CURLOPT_ERRORBUFFER failed: %s\n",
     940                        curl_easy_strerror(res));
    286941
    287942#ifdef SKIP_PEER_VERIFICATION
     
    298953        res = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
    299954        if (res != CURLE_OK)
    300                 ntstdio_printf(&ntstdio, "CURLOPT_SSL_VERIFYPEER failed: %s\n",
     955                printf("CURLOPT_SSL_VERIFYPEER failed: %s\n",
    301956                        curl_easy_strerror(res));
    302957#else
    303958        res = curl_easy_setopt(curl, CURLOPT_CAINFO, "0:/certs/ca-cert.pem");
    304959        if (res != CURLE_OK)
    305                 ntstdio_printf(&ntstdio, "CURLOPT_CAINFO failed: %s\n",
     960                printf("CURLOPT_CAINFO failed: %s\n",
    306961                        curl_easy_strerror(res));
    307962
    308963        res = curl_easy_setopt(curl, CURLOPT_SSLCERT, "0:/certs/client-cert.pem");
    309964        if (res != CURLE_OK)
    310                 ntstdio_printf(&ntstdio, "CURLOPT_SSLCERT failed: %s\n",
     965                printf("CURLOPT_SSLCERT failed: %s\n",
    311966                        curl_easy_strerror(res));
    312967
    313968        res = curl_easy_setopt(curl, CURLOPT_SSLKEY, "0:/certs/client-key.pem");
    314969        if (res != CURLE_OK)
    315                 ntstdio_printf(&ntstdio, "CURLOPT_SSLKEY failed: %s\n",
     970                printf("CURLOPT_SSLKEY failed: %s\n",
    316971                        curl_easy_strerror(res));
    317972#endif
     
    326981        res = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
    327982        if (res != CURLE_OK)
    328                 ntstdio_printf(&ntstdio, "CURLOPT_SSL_VERIFYHOST failed: %s\n",
     983                printf("CURLOPT_SSL_VERIFYHOST failed: %s\n",
    329984                        curl_easy_strerror(res));
    330985#endif
     
    332987        /*res = curl_easy_setopt(curl, CURLOPT_PROXY, "https://proxy.example.com:8080");
    333988        if (res != CURLE_OK)
    334                 ntstdio_printf(&ntstdio, "CURLOPT_PROXY failed: %s\n",
     989                printf("CURLOPT_PROXY failed: %s\n",
    335990                        curl_easy_strerror(res));*/
    336991
    337         curl_easy_setopt(curl, CURLOPT_POST, 1);
    338 
    339         /* size of the POST data */
    340         //curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(data));
    341         curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, file.fsize);
    342 
    343         /* pass in a pointer to the data - libcurl will not copy */
    344         //curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
    345 
    346         list = curl_slist_append(list, "Content-Type: application/json");
    347 
    348         curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
    349 
    350         curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&error);
    351 
    352         curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
    353 
    354         /* now specify which file to upload */
    355         curl_easy_setopt(curl, CURLOPT_READDATA, &file);
    356 
    357         /* we want to use our own read function */
    358         curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_data);
    359 
    360         ntstdio_printf(&ntstdio, "cURL perform the request\n");
    361         tslp_tsk(100 * 1000);
    362 
    363         /* Perform the request, res will get the return code */
    364         res = curl_easy_perform(curl);
    365         /* Check for errors */
    366         if (res != CURLE_OK) {
    367                 ntstdio_printf(&ntstdio, "curl_easy_perform() failed: %s\n",
     992        res = curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L);
     993        if (res != CURLE_OK)
     994                printf("CURLOPT_NOPROGRESS failed: %s\n",
    368995                        curl_easy_strerror(res));
    369                 ntstdio_printf(&ntstdio, errbuf);
    370         }
    371 
    372         /* always cleanup */
    373         curl_easy_cleanup(curl);
    374 
    375         ntstdio_printf(&ntstdio, "cURL end\n");
    376 
    377 file_close:
    378         f_close(&file);
    379 }
    380 
    381 void client_fin(void)
    382 {
     996
     997        res = curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 50L);
     998        if (res != CURLE_OK)
     999                printf("CURLOPT_MAXREDIRS failed: %s\n",
     1000                        curl_easy_strerror(res));
     1001
     1002        res = curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);
     1003        if (res != CURLE_OK)
     1004                printf("CURLOPT_TCP_KEEPALIVE failed: %s\n",
     1005                        curl_easy_strerror(res));
     1006}
     1007
     1008void client_set_client_id(const char *client_id)
     1009{
     1010        google_drive_t *gd = &google_drive;
     1011
     1012        strlcpy(gd->client_info.client_id, client_id, sizeof(gd->client_info.client_id));
     1013}
     1014
     1015void client_set_client_secret(const char *client_secret)
     1016{
     1017        google_drive_t *gd = &google_drive;
     1018
     1019        strlcpy(gd->client_info.client_secret, client_secret, sizeof(gd->client_info.client_secret));
     1020}
     1021
     1022int client_get_device_id(int argc, char **argv)
     1023{
     1024        google_drive_t *gd = &google_drive;
     1025        int ret;
     1026
     1027        ret = get_device_id(gd, SCOPE_DRIVE_FILE);
     1028        if (ret == 0) {
     1029                printf("Device was registered. Enter the code at the following URL\n");
     1030                printf("url:  %s\n", gd->credential.verification_url);
     1031                printf("code: %s\n", gd->credential.user_code);
     1032        }
     1033        else {
     1034                printf("Device register failed! %d\n", ret);
     1035        }
     1036
     1037        return ret;
     1038}
     1039
     1040int client_get_access_token(int argc, char **argv)
     1041{
     1042        google_drive_t *gd = &google_drive;
     1043        int ret;
     1044
     1045        ret = get_access_token(gd);
     1046        if (ret == 0) {
     1047                printf("Access token was give\n");
     1048                printf("Refresh token: %s\n", gd->credential.refresh_token);
     1049                printf("Access token: %s\n", gd->credential.access_token);
     1050        }
     1051        else {
     1052                printf("Access token gain failed. %d\n", ret);
     1053        }
     1054
     1055        return ret;
     1056}
     1057
     1058int client_update_access_token(int argc, char **argv)
     1059{
     1060        google_drive_t *gd = &google_drive;
     1061        int ret;
     1062
     1063        ret = update_access_token(gd);
     1064        if (ret == 0) {
     1065                printf("Access token was update\n");
     1066                printf("Access token: %s\n", gd->credential.access_token);
     1067        }
     1068        else {
     1069                printf("Access token update failed. %d\n", ret);
     1070        }
     1071
     1072        return ret;
     1073}
     1074
     1075int client_revoke(int argc, char **argv)
     1076{
     1077        google_drive_t *gd = &google_drive;
     1078        int ret;
     1079
     1080        ret = revoke_device(gd);
     1081        if (ret == 0) {
     1082                printf("Device was revoked.\n");
     1083        }
     1084        else {
     1085                printf("Device revoke failed. %d\n", ret);
     1086        }
     1087
     1088        return ret;
     1089}
     1090
     1091int client_upload_file(int argc, char **argv)
     1092{
     1093        google_drive_t *gd = &google_drive;
     1094        int ret;
     1095        FRESULT fret;
     1096        char fname[] = { "1:/log/20160101000000.log" };
     1097
     1098        get_logfname(fname);
     1099
     1100        fret = write_log(fname);
     1101        if (fret != FR_OK) {
     1102                printf("log file write error %d\n", fret);
     1103                return (int)fret;
     1104        }
     1105
     1106        ret = upload_file(gd, &fname[7], fname);
     1107        if (ret == 0) {
     1108                printf("%s was uploaded.\n", &fname[7]);
     1109        }
     1110        else {
     1111                printf("%s upload failed. %d\n", &fname[7], ret);
     1112        }
     1113
     1114        return ret;
     1115}
     1116
     1117void client_final(void)
     1118{
     1119        google_drive_t *gd = &google_drive;
     1120        jsonsl_t jsn = gd->jsn;
     1121
    3831122        curl_global_cleanup();
    384 }
     1123        jsonsl_destroy(jsn);
     1124}
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/client.h

    r337 r364  
    3939#define _CLIENT_H_
    4040
    41 #include <kernel.h>
    42 #include "target_kernel_impl.h"
     41typedef struct client_info_t {
     42        char client_id[80];
     43        char client_secret[32];
     44} client_info_t;
    4345
    44 #define CLIENT_PRIORITY         4               /* クライアントタスクの優先度 */
     46typedef struct credential_t {
     47        char device_code[100];
     48        char user_code[12];
     49        int expires_in;
     50        int interval;
     51        char verification_url[32];
     52        char access_token[132];
     53        char refresh_token[64];
     54        char scope[64];
     55        char token_type[16];
     56} credential_t;
    4557
    46 #define CLIENT_STACK_SIZE       6144    /* スタック領域のサイズ */
     58typedef struct error_response_t {
     59        char error[64];
     60        char error_description[64];
     61} error_response_t;
    4762
    48 extern void client_init(void);
    49 extern void client_task(intptr_t exinf);
    50 extern void client_fin(void);
     63typedef struct drive_file_t {
     64        char kind[32];
     65        char id[36];
     66        char name[256];
     67        char mimeType[40];
     68} drive_file_t;
     69
     70typedef enum google_drive_parse_state_t {
     71        psRoot,
     72        psDeviceCode,
     73        psUserCode,
     74        psExpiresIn,
     75        psInterval,
     76        psVerificationUrl,
     77        psAccessToken,
     78        psRefreshToken,
     79        psScope,
     80        psTokenType,
     81        psKind,
     82        psId,
     83        psName,
     84        psMimeType,
     85        psError,
     86        psErrorDescription,
     87} google_drive_parse_state_t;
     88
     89struct jsonsl_st;
     90typedef struct jsonsl_st *jsonsl_t;
     91
     92typedef void (*parser_callback_t)(struct google_drive_t *gd, struct jsonsl_state_st *state, const char *buf);
     93
     94typedef struct google_drive_t {
     95        client_info_t client_info;
     96        credential_t credential;
     97        drive_file_t file;
     98        error_response_t error;
     99        jsonsl_t jsn;
     100        google_drive_parse_state_t state;
     101        char fname[sizeof("1:/log/20160101000000.log")];
     102        char jsn_buf[256];
     103        int jsn_buf_pos;
     104        parser_callback_t start;
     105        parser_callback_t end;
     106} google_drive_t;
     107
     108extern google_drive_t google_drive;
     109
     110void client_init(void);
     111void client_final(void);
     112
     113void client_set_client_id(const char *client_id);
     114void client_set_client_secret(const char *client_secret);
     115int client_get_device_id(int argc, char **argv);
     116int client_get_access_token(int argc, char **argv);
     117int client_update_access_token(int argc, char **argv);
     118int client_revoke(int argc, char **argv);
     119int client_upload_file(int argc, char **argv);
    51120
    52121#endif /* _CLIENT_H_ */
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/echonet_main.c

    r351 r364  
    11/*
    22 *  TOPPERS ECHONET Lite Communication Middleware
    3  * 
     3 *
    44 *  Copyright (C) 2016-2018 Cores Co., Ltd. Japan
    5  * 
     5 *
    66 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    77 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2626 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    2727 *      免責すること.
    28  * 
     28 *
    2929 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3030 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3232 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3333 *  の責任を負わない.
    34  * 
     34 *
    3535 *  @(#) $Id$
    3636 */
    3737
    38 /* 
     38/*
    3939 *  サンプルプログラム(1)の本体
    4040 */
     
    152152{
    153153        /* サイズが1以外は受け付けない */
    154         if(size != 1)
     154        if (size != 1)
    155155                return 0;
    156156
    157157        *anno = *((uint8_t*)item->exinf) != *((uint8_t*)src);
    158158
    159         switch(*(uint8_t *)src){
     159        switch (*(uint8_t *)src) {
    160160        /* ONの場合 */
    161161        case 0x30:
     
    184184{
    185185        /* サイズが1以外は受け付けない */
    186         if(size != 1)
     186        if (size != 1)
    187187                return 0;
    188188
    189189        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    190190
    191         switch(*(uint8_t *)src){
     191        switch (*(uint8_t *)src) {
    192192        /* 異常発生ありの場合 */
    193193        case 0x41:
     
    288288
    289289        /* サイズが4以外は受け付けない */
    290         if(size != 4)
     290        if (size != 4)
    291291                return 0;
    292292
     
    308308
    309309        len = 48 - meter->current_pos;
    310         if(len > 0)
     310        if (len > 0)
    311311                memcpy(dst, &meter->integral_electric_energy_measurement_log[meter->current_pos], sizeof(uint32_t) * len);
    312312        dst = &((uint8_t *)dst)[len];
     
    367367
    368368        ret2 = get_tim(&now);
    369         if (ret2 != E_OK){
     369        if (ret2 != E_OK) {
    370370                syslog(LOG_ERROR, "get_tim");
    371371                return;
    372372        }
    373373
    374         for(;;){
     374        for (;;) {
    375375                prev = now;
    376376
     
    380380                /* 応答電文待ち */
    381381                ret = ecn_trcv_esv(&esv, timer);
    382                 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)){
     382                if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {
    383383                        syslog(LOG_ERROR, "ecn_trcv_esv");
    384384                        break;
     
    386386
    387387                ret2 = get_tim(&now);
    388                 if (ret2 != E_OK){
     388                if (ret2 != E_OK) {
    389389                        syslog(LOG_ERROR, "get_tim");
    390390                        break;
     
    401401                        /* 領域解放 */
    402402                        ret = ecn_rel_esv(esv);
    403                         if (ret != E_OK){
     403                        if (ret != E_OK) {
    404404                                syslog(LOG_ERROR, "ecn_rel_esv");
    405405                                break;
     
    410410                        /* 応答電文待ちの割り込みデータ取得 */
    411411                        ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len);
    412                         if (ret != E_OK){
     412                        if (ret != E_OK) {
    413413                                syslog(LOG_ERROR, "ecn_get_brk_dat");
    414414                                break;
     
    420420                        /* 領域解放 */
    421421                        ret = ecn_rel_esv(esv);
    422                         if (ret != E_OK){
     422                        if (ret != E_OK) {
    423423                                syslog(LOG_ERROR, "ecn_rel_esv");
    424424                                break;
     
    431431}
    432432
    433 bool_t started = false;
    434 
    435433void echonet_change_netif_link(uint8_t link_up, uint8_t up)
    436434{
     
    440438                return;
    441439
    442         if (up && !started) {
    443                 started = true;
    444 
    445                 /* ECHONETミドルウェアを起動 */
    446                 ret = ecn_sta_svc();
    447                 if (ret != E_OK)
    448                         return;
    449 
    450                 /* ECHONETミドルウェアを起動するのを待つ */
    451                 dly_tsk(100);
     440        if (up) {
     441                /* インスタンスリスト通知の送信 */
     442                ret = ecn_ntf_inl();
     443                if (ret != E_OK) {
     444                        syslog(LOG_ERROR, "ecn_ntf_inl");
     445                }
    452446        }
    453447
     
    463457}
    464458
    465 enum main_state_t{
     459enum main_state_t {
     460        main_state_start,
    466461        main_state_idle,
    467462};
    468463
    469464int main_timer = TMO_FEVR;
    470 enum main_state_t main_state = main_state_idle;
    471 int main_led_timer = TMO_FEVR;
     465enum main_state_t main_state = main_state_start;
     466int main_lcd_timer = TMO_FEVR;
    472467int main_adv_timer = TMO_FEVR;
    473468int main_whm_counter;
     
    508503
    509504        /* 3ms後に7SEG表示を更新 */
    510         main_led_timer = 3 * 1000;
    511 
    512         /* 10ms後にボタン状態を確認 */
    513         main_timer = 10 * 1000;
     505        main_lcd_timer = 3 * 1000;
     506
     507        /* ECHONETミドルウェアを起動するのを待つ */
     508        main_state = main_state_start;
     509        main_timer = 1000 * 1000;
    514510
    515511        /* 12bitADC初期化 */
     
    526522        main_adv_timer = 1000 * 1000;
    527523
     524        /* メインタスクを起動 */
    528525        ER ret = act_tsk(MAIN_TASK);
    529526        if (ret != E_OK) {
     
    539536        int result = main_timer;
    540537
    541         if((result == TMO_FEVR)
    542                 || ((main_led_timer != TMO_FEVR) && (main_led_timer < result))){
    543                 result = main_led_timer;
     538        if ((result == TMO_FEVR)
     539                || ((main_lcd_timer != TMO_FEVR) && (main_lcd_timer < result))) {
     540                result = main_lcd_timer;
    544541        }
    545542
     
    557554static void main_progress(int interval)
    558555{
    559         if(main_timer != TMO_FEVR){
     556        if (main_timer != TMO_FEVR) {
    560557                main_timer -= interval;
    561                 if(main_timer < 0){
     558                if (main_timer < 0) {
    562559                        main_timer = 0;
    563560                }
    564561        }
    565562
    566         if(main_led_timer != TMO_FEVR){
    567                 main_led_timer -= interval;
    568                 if(main_led_timer < 0){
    569                         main_led_timer = 0;
     563        if (main_lcd_timer != TMO_FEVR) {
     564                main_lcd_timer -= interval;
     565                if (main_lcd_timer < 0) {
     566                        main_lcd_timer = 0;
    570567                }
    571568        }
     
    591588
    592589        ret = ecn_itr_ini(&enm, esv);
    593         if(ret != E_OK){
     590        if (ret != E_OK) {
    594591                syslog(LOG_ERROR, "ecn_itr_ini");
    595592                return;
    596593        }
    597594
    598         for(;;) {
    599                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     595        for (;;) {
     596                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    600597                        switch (epc) {
    601598                        case 0x80:
     
    605602                        }
    606603                }
    607                 if(ret != E_BOVR){
     604                if (ret != E_BOVR) {
    608605                        syslog(LOG_ERROR, "ecn_itr_nxt");
    609606                        break;
    610607                }
    611                 if(enm.is_eof)
     608                if (enm.is_eof)
    612609                        break;
    613610        }
     
    619616static void main_break_wait(uint8_t *brkdat, int32_t len)
    620617{
    621         switch(main_state){
     618        switch (main_state) {
    622619        case main_state_idle:
    623620                if (len == 0)
     
    638635
    639636static void main_ontimer();
    640 static void main_led_ontimer();
     637static void main_lcd_ontimer();
    641638static void main_adv_ontimer();
    642639
     
    646643static void main_timeout()
    647644{
    648         if(main_timer == 0){
     645        if (main_timer == 0) {
    649646                main_ontimer();
    650647        }
    651648
    652         if(main_led_timer == 0){
    653                 main_led_ontimer();
     649        if (main_lcd_timer == 0) {
     650                main_lcd_ontimer();
    654651        }
    655652
     
    664661const uint8_t led_disp[] = { 0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE4, 0xFE, 0xF6, 0xEE, 0x3E, 0x1A, 0x7A, 0x9E, 0x8E };
    665662
    666 static void main_led_ontimer()
     663static void main_lcd_ontimer()
    667664{
    668665        /* 7Seg表示 */
     
    697694
    698695        /* 3ms後に7SEG表示を更新 */
    699         main_led_timer = 3 * 1000;
     696        main_lcd_timer = 3 * 1000;
    700697}
    701698
     
    727724static void main_ontimer()
    728725{
     726        ER ret;
    729727        uint8_t btn;
    730728        uint16_t ad_value;
    731729
    732         switch(main_state){
     730        switch (main_state) {
     731        case main_state_start:
     732                /* ECHONETミドルウェアを起動 */
     733                ret = ecn_sta_svc();
     734                if (ret != E_OK) {
     735                        syslog(LOG_ERROR, "ecn_sta_svc");
     736                }
     737
     738                /* 10ms後にボタン状態を確認 */
     739                main_state = main_state_idle;
     740                main_timer = 10 * 1000;
     741                break;
    733742        case main_state_idle:
    734743                /* 10ms後にボタン状態を確認 */
     
    736745
    737746                /* ADCの変換結果取得 */
    738                 if((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0){
     747                if ((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0) {
    739748                        for (int i = 0; i < main_ad_count; i++) {
    740749                                main_ad_avelage[i] -= main_ad_table[i][main_ad_pos];
     
    776785
    777786                /* ボタン1の処理 */
    778                 if(((btn & 0x20) != 0) && !main_btn1_state){
     787                if (((btn & 0x20) != 0) && !main_btn1_state) {
    779788                        main_btn1_count++;
    780                         if(main_btn1_count > 10){
     789                        if (main_btn1_count > 10) {
    781790                                main_btn1_count = 0;
    782791                                main_btn1_state = true;
     
    785794                        }
    786795                }
    787                 else if(((btn & 0x20) == 0) && main_btn1_state){
     796                else if (((btn & 0x20) == 0) && main_btn1_state) {
    788797                        main_btn1_count++;
    789                         if(main_btn1_count > 10){
     798                        if (main_btn1_count > 10) {
    790799                                main_btn1_count = 0;
    791800                                main_btn1_state = false;
     
    796805
    797806                /* ボタン2の処理 */
    798                 if(((btn & 0x80) != 0) && !main_btn2_state){
     807                if (((btn & 0x80) != 0) && !main_btn2_state) {
    799808                        main_btn2_count++;
    800                         if(main_btn2_count > 10){
     809                        if (main_btn2_count > 10) {
    801810                                main_btn2_count = 0;
    802811                                main_btn2_state = true;
     
    805814                        }
    806815                }
    807                 else if(((btn & 0x80) == 0) && main_btn2_state){
     816                else if (((btn & 0x80) == 0) && main_btn2_state) {
    808817                        main_btn2_count++;
    809                         if(main_btn2_count > 10){
     818                        if (main_btn2_count > 10) {
    810819                                main_btn2_count = 0;
    811820                                main_btn2_state = false;
     
    829838{
    830839        /* 押されて戻った時に処理する */
    831         if(push)
     840        if (push)
    832841                return;
    833842
    834843        /* 表示ポート番号 */
    835         if(!main_rev){
     844        if (!main_rev) {
    836845                main_port_no--;
    837                 if(main_port_no < 1){
     846                if (main_port_no < 1) {
    838847                        main_port_no = 1;
    839848                        main_rev = true;
     
    841850                }
    842851        }
    843         else{
     852        else {
    844853                main_port_no++;
    845                 if(main_port_no > main_ad_count){
     854                if (main_port_no > main_ad_count) {
    846855                        main_port_no = main_ad_count;
    847856                        main_rev = false;
     
    857866{
    858867        /* 押されて戻った時に処理する */
    859         if(push)
     868        if (push)
    860869                return;
    861870
     
    866875
    867876        /* 表示ポート番号 */
    868         if(!main_rev){
     877        if (!main_rev) {
    869878                main_port_no++;
    870                 if(main_port_no > main_ad_count){
     879                if (main_port_no > main_ad_count) {
    871880                        main_port_no = main_ad_count;
    872881                        main_rev = false;
     
    874883                }
    875884        }
    876         else{
     885        else {
    877886                main_port_no--;
    878                 if(main_port_no < 1){
     887                if (main_port_no < 1) {
    879888                        main_port_no = 1;
    880889                        main_rev = true;
     
    893902
    894903        main_port_no++;
    895         if(main_port_no > main_ad_count)
     904        if (main_port_no > main_ad_count)
    896905                main_port_no = 1;
    897906
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/main.c

    r359 r364  
    4545#include <sil.h>
    4646#include <setjmp.h>
     47#include <stdlib.h>
    4748#include <string.h>
    4849#include "syssvc/serial.h"
     
    8081
    8182ID ws_api_mailboxid = MAIN_DATAQUEUE;
     83#ifndef NOUSE_MPF_NET_BUF
    8284ID ws_mempoolid = MPF_NET_BUF_256;
    83 
     85#endif
    8486#ifdef IF_ETHER_BTUSB
    8587extern int bt_bnep_mode;
    8688/* PANU向けリモートアドレス */
    8789bd_addr_t remote_addr = {0x00,0x1B,0xDC,0x09,0x27,0x26};
     90bool_t dhcp_enable = false;
     91#else
     92bool_t dhcp_enable = true;
    8893#endif
    8994
    9095uint8_t mac_addr[6] = {0x12, 0x34, 0x56, 0x78, 0x9A, 0x01};
    91 bool_t dhcp_enable = true;
    9296PRI main_task_priority = MAIN_PRIORITY + 1;
    9397
     
    112116static void main_timeout();
    113117
     118extern int ntshell_exit;
     119
    114120int uart_read(char *buf, int cnt, void *extobj)
    115121{
    116         return serial_rea_dat(SIO_PORTID, (char *)buf, cnt);
     122        struct main_t *obj = (struct main_t *)extobj;
     123        int result;
     124        ER ret;
     125        int timer;
     126
     127        obj->prev = obj->now;
     128
     129        /* タイマー取得 */
     130        timer = main_get_timer();
     131
     132        /* 待ち */
     133        ret = serial_trea_dat(SIO_PORTID, buf, cnt, timer);
     134        if ((ret < 0) && (ret != E_OK) && (ret != E_TMOUT)) {
     135                syslog(LOG_NOTICE, "tslp_tsk ret: %s %d", itron_strerror(ret), timer);
     136                ntshell_exit = 1;
     137                return -1;
     138        }
     139        result = (int)ret;
     140
     141        ret = get_tim(&obj->now);
     142        if (ret != E_OK) {
     143                syslog(LOG_NOTICE, "get_tim ret: %s", itron_strerror(ret));
     144                ntshell_exit = 1;
     145                return -1;
     146        }
     147
     148                        /* 時間経過 */
     149        int elapse = obj->now - obj->prev;
     150        main_progress(elapse);
     151
     152        /* タイムアウト処理 */
     153        main_timeout();
     154
     155        return result;
    117156}
    118157
     
    120159{
    121160        return serial_wri_dat(SIO_PORTID, buf, cnt);
    122 }
    123 
    124 unsigned char ntstdio_xi(struct ntstdio_t *handle)
    125 {
    126         char buf[1];
    127         if(serial_rea_dat(SIO_PORTID, buf, 1) != 1)
    128                 return -EIO;
    129         return buf[0];
    130 }
    131 
    132 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c)
    133 {
    134         char buf[1];
    135         buf[0] = c;
    136         serial_wri_dat(SIO_PORTID, buf, 1);
    137161}
    138162
     
    151175        main_initialize();
    152176
    153         ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);
     177        ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj);
    154178        ntshell_set_prompt(&ntshell, "NTShell>");
    155179        ntshell_execute(&ntshell);
     
    171195        ER ret;
    172196
     197#ifdef TOPPERS_OMIT_TECS
     198        serial_opn_por(SIO_PORTID);
     199#endif
     200        serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
     201
    173202        //wolfSSL_Debugging_ON();
    174203
    175         ntshell_task_init();
     204        ntshell_task_init(uart_read, uart_write, &main_obj);
    176205
    177206        main_obj.timer = TMO_FEVR;
     
    308337}
    309338
     339int cmd_creid(int argc, char **argv)
     340{
     341        if (argc != 2) {
     342                printf("creid {client_id}\n");
     343                return 0;
     344        }
     345
     346        client_set_client_id(argv[1]);
     347
     348        return 0;
     349}
     350
     351int cmd_secret(int argc, char **argv)
     352{
     353        if (argc != 2) {
     354                printf("secret {client_secret}\n");
     355                return 0;
     356        }
     357
     358        client_set_client_secret(argv[1]);
     359
     360        return 0;
     361}
     362
    310363int cmd_logupload(int argc, char **argv)
    311364{
    312         client_task(0);
    313         return 0;
     365        return client_upload_file(argc, argv);
    314366}
    315367
     
    330382        {"dnsc", "DNS client", usrcmd_dnsc },
    331383        {"ntpc", "NTP client", usrcmd_ntpc },
     384        {"creid", "Regster device", cmd_creid},
     385        {"secret", "Regster device", cmd_secret},
     386        {"gdi", "get_device_id", client_get_device_id},
     387        {"gat", "get_access_token", client_get_access_token},
     388        {"uat", "update_access_token", client_update_access_token},
     389        {"rd", "revoke device", client_revoke},
     390        {"uf", "upload_file", client_upload_file},
    332391        {"logupload", "Upload log to server", cmd_logupload},
    333392        {"info", "This is a description text string for info command.", usrcmd_info},
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/main.cfg

    r342 r364  
    5454INCLUDE("tinet/tinet_asp.cfg");
    5555INCLUDE("tinet_main.cfg");
    56 INCLUDE("netinet/ip_igmp.cfg");
    5756
    5857/* DHCP クライアント */
     
    7776INCLUDE("ffarch.cfg");
    7877
     78/* mbed */
     79INCLUDE("mbed_api.cfg");
     80
    7981#ifdef IF_ETHER_BTUSB
    8082INCLUDE("usb_hbth.cfg");
  • asp3_tinet_ecnl_rx/trunk/app2_light/.cproject

    r345 r364  
    2222                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    2323                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    24                                 <option id="toolchain.version" value="4.8.4.201703"/>
     24                                <option id="toolchain.version" value="4.8.4.201803"/>
    2525                        </storageModule>
    2626                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    3737                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.600758211" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    3838                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.142996787" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    39                                                         <builder buildPath="${workspace_loc:/app2_light}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.97137747" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     39                                                        <builder buildPath="${workspace_loc:/app2_light}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.97137747" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    4040                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.997660944" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    4141                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.8394158" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    9191                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    9292                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    93                                 <option id="toolchain.version" value="4.8.4.201703"/>
     93                                <option id="toolchain.version" value="4.8.4.201803"/>
    9494                        </storageModule>
    9595                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    106106                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.146362706" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    107107                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.469418392" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    108                                                         <builder buildPath="${workspace_loc:/app2_light}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.689708596" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     108                                                        <builder buildPath="${workspace_loc:/app2_light}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.689708596" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    109109                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.916652973" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    110110                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1633571990" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    160160                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    161161                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    162                                 <option id="toolchain.version" value="4.8.4.201703"/>
     162                                <option id="toolchain.version" value="4.8.4.201803"/>
    163163                        </storageModule>
    164164                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    175175                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.112867740" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    176176                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1193943945" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    177                                                         <builder buildPath="${workspace_loc:/app2_light}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1539657579" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     177                                                        <builder buildPath="${workspace_loc:/app2_light}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1539657579" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    178178                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.197625944" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    179179                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1906553995" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    224224        <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
    225225        <storageModule moduleId="refreshScope" versionNumber="2">
     226                <configuration configurationName="DebugEther"/>
    226227                <configuration configurationName="DebugCitrus">
    227228                        <resource resourceType="PROJECT" workspacePath="/app2_light"/>
     
    234235                </configuration>
    235236        </storageModule>
     237        <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
    236238</cproject>
  • asp3_tinet_ecnl_rx/trunk/app2_light/Debug/Makefile

    r342 r364  
    167167        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168168endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     169CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    170170INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171171        -I$(SRCDIR)/../btstack/include \
     
    175175        -I$(SRCDIR)/../usbhost/src \
    176176        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     177LDFLAGS := $(LDFLAGS) -L.
    178178LIBS := $(LIBS) $(CXXLIBS)
    179179CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    209209endif
    210210
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     211ifdef TINETDIR
     212        #
     213        #  ネットワークサービスの定義
     214        #
     215        NO_USE_TINET_LIBRARY = true
     216
     217        #  ネットワークインタフェースの選択、何れか一つ選択する。
     218        NET_IF = ether
     219
     220        #  イーサネット・ディバイスドライバの選択
     221        NET_DEV = if_btusb
     222
     223        #  ネットワーク層の選択
     224        #SUPPORT_INET6 = true
     225        SUPPORT_INET4 = true
     226
     227        #  API に組込む機能の選択
     228        #API_CFG_IP4MAPPED_ADDR = true
     229
     230        #  トランスポート層の選択
     231        SUPPORT_TCP = true
     232        SUPPORT_UDP = true
     233
     234        # IGMPを有効に設定
     235        SUPPORT_IGMP = true
     236
     237        #
     238        #  ネットワークサービスの Makefile のインクルード
     239        #
     240        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     241endif
    241242
    242243#
     
    258259all: tecs | $(DEPDIR)
    259260#       @$(MAKE) check
    260         @$(MAKE) check $(OBJNAME).bin
     261#       @$(MAKE) check $(OBJNAME).bin
    261262#       @$(MAKE) check $(OBJNAME).srec
     263        @$(MAKE) check $(OBJNAME).mot
    262264else
    263265#all: check
    264 all: check $(OBJNAME).bin
     266#all: check $(OBJNAME).bin
    265267#all: check $(OBJNAME).srec
     268all: check $(OBJNAME).mot
    266269endif
    267270
     
    271274#  コンフィギュレータに関する定義
    272275#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     276ifndef TINETDIR
     277  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     278  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     279                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     280else
     281  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     282  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275283                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276284                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278286                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279287                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     288endif
    280289CFG_ASMOBJS := $(CFG_ASMOBJS)
    281290CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423432
    424433#
     434#  並列makeのための依存関係の定義
     435#
     436$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     437$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     438                                                                                                                | offset.timestamp
     439
     440#
    425441#  特別な依存関係の定義
    426442#
     
    431447#
    432448$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     449        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434450                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435451                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    460476$(OBJNAME).srec: $(OBJFILE)
    461477        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     478
     479$(OBJNAME).mot: $(OBJFILE)
     480        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    462481
    463482#
  • asp3_tinet_ecnl_rx/trunk/app2_light/DebugCitrus/Makefile

    r342 r364  
    167167        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168168endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     169CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    170170INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171171        -I$(SRCDIR)/../btstack/include \
     
    175175        -I$(SRCDIR)/../usbhost/src \
    176176        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     177LDFLAGS := $(LDFLAGS) -L.
    178178LIBS := $(LIBS) $(CXXLIBS)
    179179CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    209209endif
    210210
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     211ifdef TINETDIR
     212        #
     213        #  ネットワークサービスの定義
     214        #
     215        NO_USE_TINET_LIBRARY = true
     216
     217        #  ネットワークインタフェースの選択、何れか一つ選択する。
     218        NET_IF = ether
     219
     220        #  イーサネット・ディバイスドライバの選択
     221        NET_DEV = if_btusb
     222
     223        #  ネットワーク層の選択
     224        #SUPPORT_INET6 = true
     225        SUPPORT_INET4 = true
     226
     227        #  API に組込む機能の選択
     228        #API_CFG_IP4MAPPED_ADDR = true
     229
     230        #  トランスポート層の選択
     231        SUPPORT_TCP = true
     232        SUPPORT_UDP = true
     233
     234        # IGMPを有効に設定
     235        SUPPORT_IGMP = true
     236
     237        #
     238        #  ネットワークサービスの Makefile のインクルード
     239        #
     240        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     241endif
    241242
    242243#
     
    258259all: tecs | $(DEPDIR)
    259260#       @$(MAKE) check
    260         @$(MAKE) check $(OBJNAME).bin
     261#       @$(MAKE) check $(OBJNAME).bin
    261262#       @$(MAKE) check $(OBJNAME).srec
     263        @$(MAKE) check $(OBJNAME).mot
    262264else
    263265#all: check
    264 all: check $(OBJNAME).bin
     266#all: check $(OBJNAME).bin
    265267#all: check $(OBJNAME).srec
     268all: check $(OBJNAME).mot
    266269endif
    267270
     
    271274#  コンフィギュレータに関する定義
    272275#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     276ifndef TINETDIR
     277  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     278  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     279                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     280else
     281  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     282  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275283                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276284                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278286                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279287                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     288endif
    280289CFG_ASMOBJS := $(CFG_ASMOBJS)
    281290CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423432
    424433#
     434#  並列makeのための依存関係の定義
     435#
     436$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     437$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     438                                                                                                                | offset.timestamp
     439
     440#
    425441#  特別な依存関係の定義
    426442#
     
    431447#
    432448$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     449        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434450                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435451                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    460476$(OBJNAME).srec: $(OBJFILE)
    461477        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     478
     479$(OBJNAME).mot: $(OBJFILE)
     480        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    462481
    463482#
  • asp3_tinet_ecnl_rx/trunk/app2_light/DebugEther/Makefile

    r342 r364  
    165165        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    166166endif
    167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     167CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    168168INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    169169        -I$(SRCDIR)/../btstack/include \
     
    173173        -I$(SRCDIR)/../usbhost/src \
    174174        $(INCLUDES)
    175 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     175LDFLAGS := $(LDFLAGS) -L.
    176176LIBS := $(LIBS) $(CXXLIBS)
    177177CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    207207endif
    208208
    209 
    210 #
    211 #  ネットワークサービスの定義
    212 #
    213 NO_USE_TINET_LIBRARY = true
    214 
    215 #  ネットワークインタフェースの選択、何れか一つ選択する。
    216 NET_IF = ether
    217 
    218 #  イーサネット・ディバイスドライバの選択
     209ifdef TINETDIR
     210        #
     211        #  ネットワークサービスの定義
     212        #
     213        NO_USE_TINET_LIBRARY = true
     214
     215        #  ネットワークインタフェースの選択、何れか一つ選択する。
     216        NET_IF = ether
     217
     218        #  イーサネット・ディバイスドライバの選択
    219219        NET_DEV = if_rx62n
    220220
    221 #  ネットワーク層の選択
    222 #SUPPORT_INET6 = true
    223 SUPPORT_INET4 = true
    224 
    225 #  API に組込む機能の選択
    226 #API_CFG_IP4MAPPED_ADDR = true
    227 
    228 #  トランスポート層の選択
    229 SUPPORT_TCP = true
    230 SUPPORT_UDP = true
    231 
    232 # IGMPを有効に設定
    233 SUPPORT_IGMP = true
    234 
    235 #
    236 #  ネットワークサービスの Makefile のインクルード
    237 #
    238 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     221        #  ネットワーク層の選択
     222        #SUPPORT_INET6 = true
     223        SUPPORT_INET4 = true
     224
     225        #  API に組込む機能の選択
     226        #API_CFG_IP4MAPPED_ADDR = true
     227
     228        #  トランスポート層の選択
     229        SUPPORT_TCP = true
     230        SUPPORT_UDP = true
     231
     232        # IGMPを有効に設定
     233        SUPPORT_IGMP = true
     234
     235        #
     236        #  ネットワークサービスの Makefile のインクルード
     237        #
     238        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     239endif
    239240
    240241#
     
    256257all: tecs | $(DEPDIR)
    257258#       @$(MAKE) check
    258         @$(MAKE) check $(OBJNAME).bin
     259#       @$(MAKE) check $(OBJNAME).bin
    259260#       @$(MAKE) check $(OBJNAME).srec
     261        @$(MAKE) check $(OBJNAME).mot
    260262else
    261263#all: check
    262 all: check $(OBJNAME).bin
     264#all: check $(OBJNAME).bin
    263265#all: check $(OBJNAME).srec
     266all: check $(OBJNAME).mot
    264267endif
    265268
     
    269272#  コンフィギュレータに関する定義
    270273#
    271 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    272 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     274ifndef TINETDIR
     275  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     276  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     277                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     278else
     279  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     280  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    273281                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    274282                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    276284                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    277285                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     286endif
    278287CFG_ASMOBJS := $(CFG_ASMOBJS)
    279288CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    421430
    422431#
     432#  並列makeのための依存関係の定義
     433#
     434$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     435$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     436                                                                                                                | offset.timestamp
     437
     438#
    423439#  特別な依存関係の定義
    424440#
     
    429445#
    430446$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    431         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     447        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    432448                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    433449                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    458474$(OBJNAME).srec: $(OBJFILE)
    459475        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     476
     477$(OBJNAME).mot: $(OBJFILE)
     478        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    460479
    461480#
  • asp3_tinet_ecnl_rx/trunk/app2_light/src/echonet_main.c

    r351 r364  
    11/*
    22 *  TOPPERS ECHONET Lite Communication Middleware
    3  * 
     3 *
    44 *  Copyright (C) 2014-2018 Cores Co., Ltd. Japan
    5  * 
     5 *
    66 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    77 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2626 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    2727 *      免責すること.
    28  * 
     28 *
    2929 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3030 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3232 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3333 *  の責任を負わない.
    34  * 
     34 *
    3535 *  @(#) $Id$
    3636 */
    3737
    38 /* 
     38/*
    3939 *  サンプルプログラム(1)の本体
    4040 */
     
    116116{
    117117        /* サイズが1以外は受け付けない */
    118         if(size != 1)
     118        if (size != 1)
    119119                return 0;
    120120
    121121        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    122122
    123         switch(*(uint8_t *)src){
     123        switch (*(uint8_t *)src) {
    124124        /* ONの場合 */
    125125        case 0x30:
     
    152152{
    153153        /* サイズが1以外は受け付けない */
    154         if(size != 1)
     154        if (size != 1)
    155155                return 0;
    156156
    157157        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    158158
    159         switch(*(uint8_t *)src){
     159        switch (*(uint8_t *)src) {
    160160        /* 異常発生ありの場合 */
    161161        case 0x41:
     
    180180
    181181        /* サイズが1以外は受け付けない */
    182         if(size != 1)
    183                 return 0;
    184 
    185         switch(*(uint8_t *)src){
     182        if (size != 1)
     183                return 0;
     184
     185        switch (*(uint8_t *)src) {
    186186        /* 自動の場合 */
    187187        case 0x41:
     
    224224        uint8_t data[2];
    225225
    226         if(size != 1)
    227                 return 0;
    228 
    229         switch(*(uint8_t *)src){
     226        if (size != 1)
     227                return 0;
     228
     229        switch (*(uint8_t *)src) {
    230230        /* 人体検出ありの場合 */
    231231        case 0x41:
     
    236236                data[1] = *(uint8_t *)src;
    237237                ret = ecn_brk_wai(data, sizeof(data));
    238                 if(ret != E_OK){
     238                if (ret != E_OK) {
    239239                        syslog(LOG_ERROR, "ecn_brk_wai");
    240240                        return 1;
     
    249249                data[1] = *(uint8_t *)src;
    250250                ret = ecn_brk_wai(data, sizeof(data));
    251                 if(ret != E_OK){
     251                if (ret != E_OK) {
    252252                        syslog(LOG_ERROR, "ecn_brk_wai");
    253253                        return 1;
     
    269269        uint8_t *p_src;
    270270
    271         if(size != 2)
     271        if (size != 2)
    272272                return 0;
    273273
     
    288288        uint8_t *p_dst;
    289289
    290         if(size != 2)
     290        if (size != 2)
    291291                return 0;
    292292
     
    306306        uint8_t *p_src;
    307307
    308         if(size != 4)
     308        if (size != 4)
    309309                return 0;
    310310
     
    326326        uint8_t *p_dst;
    327327
    328         if(size != 4)
     328        if (size != 4)
    329329                return 0;
    330330
     
    361361
    362362        ret2 = get_tim(&now);
    363         if (ret2 != E_OK){
     363        if (ret2 != E_OK) {
    364364                syslog(LOG_ERROR, "get_tim");
    365365                return;
    366366        }
    367367
    368         for(;;){
     368        for (;;) {
    369369                prev = now;
    370370
     
    374374                /* 応答電文待ち */
    375375                ret = ecn_trcv_esv(&esv, timer);
    376                 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)){
     376                if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {
    377377                        syslog(LOG_ERROR, "ecn_trcv_esv");
    378378                        break;
     
    380380
    381381                ret2 = get_tim(&now);
    382                 if (ret2 != E_OK){
     382                if (ret2 != E_OK) {
    383383                        syslog(LOG_ERROR, "get_tim");
    384384                        break;
     
    395395                        /* 領域解放 */
    396396                        ret = ecn_rel_esv(esv);
    397                         if (ret != E_OK){
     397                        if (ret != E_OK) {
    398398                                syslog(LOG_ERROR, "ecn_rel_esv");
    399399                                break;
     
    404404                        /* 応答電文待ちの割り込みデータ取得 */
    405405                        ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len);
    406                         if (ret != E_OK){
     406                        if (ret != E_OK) {
    407407                                syslog(LOG_ERROR, "ecn_get_brk_dat");
    408408                                break;
     
    414414                        /* 領域解放 */
    415415                        ret = ecn_rel_esv(esv);
    416                         if (ret != E_OK){
     416                        if (ret != E_OK) {
    417417                                syslog(LOG_ERROR, "ecn_rel_esv");
    418418                                break;
     
    425425}
    426426
    427 bool_t started = false;
    428 
    429427void echonet_change_netif_link(uint8_t link_up, uint8_t up)
    430428{
     
    434432                return;
    435433
    436         if (up && !started) {
    437                 started = true;
    438 
    439                 /* ECHONETミドルウェアを起動 */
    440                 ret = ecn_sta_svc();
    441                 if (ret != E_OK)
    442                         return;
    443 
    444                 /* ECHONETミドルウェアを起動するのを待つ */
    445                 dly_tsk(100);
     434        if (up) {
     435                /* インスタンスリスト通知の送信 */
     436                ret = ecn_ntf_inl();
     437                if (ret != E_OK) {
     438                        syslog(LOG_ERROR, "ecn_ntf_inl");
     439                }
    446440        }
    447441
     
    457451}
    458452
    459 enum main_state_t{
     453enum main_state_t {
     454        main_state_start,
    460455        main_state_idle,
    461456        main_state_search,
     
    464459int main_timer = TMO_FEVR;
    465460int main_btn_timer = TMO_FEVR;
    466 enum main_state_t main_state = main_state_idle;
     461enum main_state_t main_state = main_state_start;
    467462bool_t main_btn1_state;
    468463int main_btn1_count = 0;
     
    480475        sil_wrb_mem((uint8_t *)0x0008C02A, 0x00);
    481476
    482         /* 1秒後に人体検知センサを検索 */
    483         main_state = main_state_search;
     477        /* ECHONETミドルウェアを起動するのを待つ */
     478        main_state = main_state_start;
    484479        main_timer = 1000 * 1000;
    485480
     
    490485        btn1 = sil_reb_mem((uint8_t *)0x0008C04A);
    491486        /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/
    492         btn2 = sil_reb_mem((uint8_t *) 0x0008C040);
     487        btn2 = sil_reb_mem((uint8_t *)0x0008C040);
    493488        main_btn1_state = (btn1 & 0x80/*0x0x20*/) != 0;
    494489        main_btn2_state = (btn2 & 0x80) != 0;
    495490
     491        /* メインタスクを起動 */
    496492        ER ret = act_tsk(MAIN_TASK);
    497493        if (ret != E_OK) {
     
    507503        int result = main_timer;
    508504
    509         if((result == TMO_FEVR)
    510                 || ((main_btn_timer != TMO_FEVR) && (main_btn_timer < result))){
     505        if ((result == TMO_FEVR)
     506                || ((main_btn_timer != TMO_FEVR) && (main_btn_timer < result))) {
    511507                result = main_btn_timer;
    512508        }
     
    520516static void main_progress(int interval)
    521517{
    522         if(main_timer != TMO_FEVR){
     518        if (main_timer != TMO_FEVR) {
    523519                main_timer -= interval;
    524                 if(main_timer < 0){
     520                if (main_timer < 0) {
    525521                        main_timer = 0;
    526522                }
    527523        }
    528524
    529         if(main_btn_timer != TMO_FEVR){
     525        if (main_btn_timer != TMO_FEVR) {
    530526                main_btn_timer -= interval;
    531                 if(main_btn_timer < 0){
     527                if (main_btn_timer < 0) {
    532528                        main_btn_timer = 0;
    533529                }
     
    548544
    549545        eobjid = ecn_get_eobj(esv);
    550         if(eobjid == EOBJ_NULL){
     546        if (eobjid == EOBJ_NULL) {
    551547                syslog(LOG_ERROR, "ecn_get_eobj");
    552548        }
    553549
    554550        ret = ecn_itr_ini(&enm, esv);
    555         if(ret != E_OK){
     551        if (ret != E_OK) {
    556552                syslog(LOG_ERROR, "ecn_itr_ini");
    557553                return;
    558554        }
    559555
    560         for(;;) {
    561                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     556        for (;;) {
     557                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    562558                        switch (epc) {
    563559                        case 0xD6:
    564                                 switch(main_state){
     560                                switch (main_state) {
    565561                                case main_state_search:
    566562                                        if (eobjid == HUMAN_DETECTION_SENSER_ENOD) {
     
    574570                        }
    575571                }
    576                 if(ret != E_BOVR){
     572                if (ret != E_BOVR) {
    577573                        syslog(LOG_ERROR, "ecn_itr_nxt");
    578574                        break;
    579575                }
    580                 if(enm.is_eof)
     576                if (enm.is_eof)
    581577                        break;
    582578        }
     
    592588        ER ret;
    593589
    594         switch(main_state){
     590        switch (main_state) {
    595591        case main_state_idle:
    596592                if (len < 2)
     
    616612static void main_timeout()
    617613{
    618         if(main_timer == 0){
     614        if (main_timer == 0) {
    619615                main_ontimer();
    620616        }
    621617
    622         if(main_btn_timer == 0){
     618        if (main_btn_timer == 0) {
    623619                main_btn_ontimer();
    624620        }
     
    629625static void main_ontimer()
    630626{
    631         switch(main_state){
     627        ER ret;
     628
     629        switch (main_state) {
     630        case main_state_start:
     631                /* ECHONETミドルウェアを起動 */
     632                ret = ecn_sta_svc();
     633                if (ret != E_OK) {
     634                        syslog(LOG_ERROR, "ecn_sta_svc");
     635                }
     636
     637                /* 1秒後に人体検知センサを検索 */
     638                main_state = main_state_search;
     639                main_timer = 1000 * 1000;
     640                break;
    632641        case main_state_search:
    633642                /* 人体検知センサ再検索 */
     
    646655        /* 人体検知センサ検索 */
    647656        ret = ecn_esv_inf_req(&esv, EOBJ_NULL, 0xD6);
    648         if(ret != E_OK){
     657        if (ret != E_OK) {
    649658                syslog(LOG_ERROR, "ecn_esv_inf_req");
    650659                return;
     
    653662        /* 電文送信 */
    654663        ret = ecn_snd_esv(esv);
    655         if(ret != E_OK){
     664        if (ret != E_OK) {
    656665                syslog(LOG_ERROR, "ecn_snd_esv");
    657666        }
     
    674683        btn1 = sil_reb_mem((uint8_t *)0x0008C04A);
    675684        /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/
    676         btn2 = sil_reb_mem((uint8_t *) 0x0008C040);
     685        btn2 = sil_reb_mem((uint8_t *)0x0008C040);
    677686
    678687        /* ボタン1の処理 */
    679         if(((btn1 & 0x80/*0x20*/) != 0) && !main_btn1_state){
     688        if (((btn1 & 0x80/*0x20*/) != 0) && !main_btn1_state) {
    680689                main_btn1_count++;
    681                 if(main_btn1_count > 10){
     690                if (main_btn1_count > 10) {
    682691                        main_btn1_count = 0;
    683692                        main_btn1_state = true;
     
    686695                }
    687696        }
    688         else if(((btn1 & 0x80/*0x20*/) == 0) && main_btn1_state){
     697        else if (((btn1 & 0x80/*0x20*/) == 0) && main_btn1_state) {
    689698                main_btn1_count++;
    690                 if(main_btn1_count > 10){
     699                if (main_btn1_count > 10) {
    691700                        main_btn1_count = 0;
    692701                        main_btn1_state = false;
     
    697706
    698707        /* ボタン2の処理 */
    699         if(((btn2 & 0x80) != 0) && !main_btn2_state){
     708        if (((btn2 & 0x80) != 0) && !main_btn2_state) {
    700709                main_btn2_count++;
    701                 if(main_btn2_count > 10){
     710                if (main_btn2_count > 10) {
    702711                        main_btn2_count = 0;
    703712                        main_btn2_state = true;
     
    706715                }
    707716        }
    708         else if(((btn2 & 0x80) == 0) && main_btn2_state){
     717        else if (((btn2 & 0x80) == 0) && main_btn2_state) {
    709718                main_btn2_count++;
    710                 if(main_btn2_count > 10){
     719                if (main_btn2_count > 10) {
    711720                        main_btn2_count = 0;
    712721                        main_btn2_state = false;
     
    717726}
    718727
    719 enum lighting_mode_t{
     728enum lighting_mode_t {
    720729        lighting_mode_auto,             /* 自動の場合 */
    721730        lighting_mode_normal,   /* 通常灯の場合 */
     
    736745
    737746        /* 押されて戻った時に処理する */
    738         if(push)
     747        if (push)
    739748                return;
    740749
     
    745754        /* プロパティ設定電文作成 */
    746755        ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0x80, 1, p_edt);
    747         if(ret != E_OK){
     756        if (ret != E_OK) {
    748757                syslog(LOG_ERROR, "ecn_esv_setc");
    749758                return;
     
    764773
    765774        /* 押されて戻った時に処理する */
    766         if(push)
     775        if (push)
    767776                return;
    768777
    769778        /* 点灯モードの切り替え */
    770         switch(main_mode){
     779        switch (main_mode) {
    771780        /* 自動の場合 */
    772781        case lighting_mode_auto:
     
    798807        /* プロパティ設定電文作成 */
    799808        ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0xB6, 1, p_edt);
    800         if(ret != E_OK){
     809        if (ret != E_OK) {
    801810                syslog(LOG_ERROR, "ecn_esv_setc");
    802811                return;
     
    814823
    815824        /* 照明がOFFで人体検出ありの場合 */
    816         if(!main_on && state == 0x41){
     825        if (!main_on && state == 0x41) {
    817826                /* 照明をON */
    818827                main_on = true;
    819828        }
    820829        /* 照明がOFFで人体検出ありの場合 */
    821         else if(main_on && state == 0x42){
     830        else if (main_on && state == 0x42) {
    822831                /* 照明をOFF */
    823832                main_on = false;
     
    830839        /* プロパティ設定電文作成 */
    831840        ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0x80, 1, p_edt);
    832         if(ret != E_OK){
     841        if (ret != E_OK) {
    833842                syslog(LOG_ERROR, "ecn_esv_setc");
    834843                return;
  • asp3_tinet_ecnl_rx/trunk/app2_light/src/main.c

    r359 r364  
    7979
    8080ID ws_api_mailboxid = MAIN_DATAQUEUE;
     81#ifndef NOUSE_MPF_NET_BUF
    8182ID ws_mempoolid = MPF_NET_BUF_256;
     83#endif
    8284
    8385#ifdef IF_ETHER_BTUSB
     
    111113static void main_timeout();
    112114
     115extern int ntshell_exit;
     116
    113117int uart_read(char *buf, int cnt, void *extobj)
    114118{
    115         return serial_rea_dat(SIO_PORTID, (char *)buf, cnt);
     119        struct main_t *obj = (struct main_t *)extobj;
     120        int result;
     121        ER ret;
     122        int timer;
     123
     124        obj->prev = obj->now;
     125
     126        /* タイマー取得 */
     127        timer = main_get_timer();
     128
     129        /* 待ち */
     130        ret = serial_trea_dat(SIO_PORTID, buf, cnt, timer);
     131        if ((ret < 0) && (ret != E_OK) && (ret != E_TMOUT)) {
     132                syslog(LOG_NOTICE, "tslp_tsk ret: %s %d", itron_strerror(ret), timer);
     133                ntshell_exit = 1;
     134                return -1;
     135        }
     136        result = (int)ret;
     137
     138        ret = get_tim(&obj->now);
     139        if (ret != E_OK) {
     140                syslog(LOG_NOTICE, "get_tim ret: %s", itron_strerror(ret));
     141                ntshell_exit = 1;
     142                return -1;
     143        }
     144
     145                        /* 時間経過 */
     146        int elapse = obj->now - obj->prev;
     147        main_progress(elapse);
     148
     149        /* タイムアウト処理 */
     150        main_timeout();
     151
     152        return result;
    116153}
    117154
     
    119156{
    120157        return serial_wri_dat(SIO_PORTID, buf, cnt);
    121 }
    122 
    123 unsigned char ntstdio_xi(struct ntstdio_t *handle)
    124 {
    125         char buf[1];
    126         if(serial_rea_dat(SIO_PORTID, buf, 1) != 1)
    127                 return -EIO;
    128         return buf[0];
    129 }
    130 
    131 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c)
    132 {
    133         char buf[1];
    134         buf[0] = c;
    135         serial_wri_dat(SIO_PORTID, buf, 1);
    136158}
    137159
     
    150172        main_initialize();
    151173
    152         ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);
     174        ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj);
    153175        ntshell_set_prompt(&ntshell, "NTShell>");
    154176        ntshell_execute(&ntshell);
     
    168190        ER ret;
    169191
    170         ntshell_task_init();
     192#ifdef TOPPERS_OMIT_TECS
     193        serial_opn_por(SIO_PORTID);
     194#endif
     195        serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
     196
     197        ntshell_task_init(uart_read, uart_write, &main_obj);
    171198
    172199        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app2_light/src/main.cfg

    r342 r364  
    5454INCLUDE("tinet/tinet_asp.cfg");
    5555INCLUDE("tinet_main.cfg");
    56 INCLUDE("netinet/ip_igmp.cfg");
    5756
    5857/* DHCP クライアント */
     
    7776INCLUDE("ffarch.cfg");
    7877
     78/* mbed */
     79INCLUDE("mbed_api.cfg");
     80
    7981#ifdef IF_ETHER_BTUSB
    8082INCLUDE("usb_hbth.cfg");
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/.cproject

    r345 r364  
    2222                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    2323                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    24                                 <option id="toolchain.version" value="4.8.4.201703"/>
     24                                <option id="toolchain.version" value="4.8.4.201803"/>
    2525                        </storageModule>
    2626                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    3737                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.662973646" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    3838                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.2124219093" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    39                                                         <builder buildPath="${workspace_loc:/app3_human_detec}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1092580250" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     39                                                        <builder buildPath="${workspace_loc:/app3_human_detec}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1092580250" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    4040                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1251407918" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    4141                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.2042319788" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    9191                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    9292                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    93                                 <option id="toolchain.version" value="4.8.4.201703"/>
     93                                <option id="toolchain.version" value="4.8.4.201803"/>
    9494                        </storageModule>
    9595                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    106106                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1786209800" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    107107                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1889588517" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    108                                                         <builder buildPath="${workspace_loc:/app3_human_detec}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.343570643" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     108                                                        <builder buildPath="${workspace_loc:/app3_human_detec}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.343570643" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    109109                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.40641547" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    110110                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.339929456" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    160160                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    161161                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    162                                 <option id="toolchain.version" value="4.8.4.201703"/>
     162                                <option id="toolchain.version" value="4.8.4.201803"/>
    163163                        </storageModule>
    164164                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    175175                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1389820086" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    176176                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.2042065519" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    177                                                         <builder buildPath="${workspace_loc:/app3_human_detec}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.153011758" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     177                                                        <builder buildPath="${workspace_loc:/app3_human_detec}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.153011758" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    178178                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1795526657" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    179179                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.247280969" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    224224        <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
    225225        <storageModule moduleId="refreshScope" versionNumber="2">
     226                <configuration configurationName="DebugEther"/>
     227                <configuration configurationName="DebugCitrus"/>
    226228                <configuration configurationName="Debug">
    227229                        <resource resourceType="PROJECT" workspacePath="/app3_human_detec"/>
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/Debug/Makefile

    r342 r364  
    167167        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168168endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     169CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    170170INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171171        -I$(SRCDIR)/../btstack/include \
     
    175175        -I$(SRCDIR)/../usbhost/src \
    176176        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     177LDFLAGS := $(LDFLAGS) -L.
    178178LIBS := $(LIBS) $(CXXLIBS)
    179179CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    209209endif
    210210
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     211ifdef TINETDIR
     212        #
     213        #  ネットワークサービスの定義
     214        #
     215        NO_USE_TINET_LIBRARY = true
     216
     217        #  ネットワークインタフェースの選択、何れか一つ選択する。
     218        NET_IF = ether
     219
     220        #  イーサネット・ディバイスドライバの選択
     221        NET_DEV = if_btusb
     222
     223        #  ネットワーク層の選択
     224        #SUPPORT_INET6 = true
     225        SUPPORT_INET4 = true
     226
     227        #  API に組込む機能の選択
     228        #API_CFG_IP4MAPPED_ADDR = true
     229
     230        #  トランスポート層の選択
     231        SUPPORT_TCP = true
     232        SUPPORT_UDP = true
     233
     234        # IGMPを有効に設定
     235        SUPPORT_IGMP = true
     236
     237        #
     238        #  ネットワークサービスの Makefile のインクルード
     239        #
     240        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     241endif
    241242
    242243#
     
    258259all: tecs | $(DEPDIR)
    259260#       @$(MAKE) check
    260         @$(MAKE) check $(OBJNAME).bin
     261#       @$(MAKE) check $(OBJNAME).bin
    261262#       @$(MAKE) check $(OBJNAME).srec
     263        @$(MAKE) check $(OBJNAME).mot
    262264else
    263265#all: check
    264 all: check $(OBJNAME).bin
     266#all: check $(OBJNAME).bin
    265267#all: check $(OBJNAME).srec
     268all: check $(OBJNAME).mot
    266269endif
    267270
     
    271274#  コンフィギュレータに関する定義
    272275#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     276ifndef TINETDIR
     277  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     278  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     279                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     280else
     281  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     282  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275283                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276284                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278286                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279287                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     288endif
    280289CFG_ASMOBJS := $(CFG_ASMOBJS)
    281290CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423432
    424433#
     434#  並列makeのための依存関係の定義
     435#
     436$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     437$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     438                                                                                                                | offset.timestamp
     439
     440#
    425441#  特別な依存関係の定義
    426442#
     
    431447#
    432448$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     449        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434450                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435451                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    460476$(OBJNAME).srec: $(OBJFILE)
    461477        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     478
     479$(OBJNAME).mot: $(OBJFILE)
     480        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    462481
    463482#
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/DebugCitrus/Makefile

    r342 r364  
    167167        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168168endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     169CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    170170INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171171        -I$(SRCDIR)/../btstack/include \
     
    175175        -I$(SRCDIR)/../usbhost/src \
    176176        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     177LDFLAGS := $(LDFLAGS) -L.
    178178LIBS := $(LIBS) $(CXXLIBS)
    179179CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    209209endif
    210210
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     211ifdef TINETDIR
     212        #
     213        #  ネットワークサービスの定義
     214        #
     215        NO_USE_TINET_LIBRARY = true
     216
     217        #  ネットワークインタフェースの選択、何れか一つ選択する。
     218        NET_IF = ether
     219
     220        #  イーサネット・ディバイスドライバの選択
     221        NET_DEV = if_btusb
     222
     223        #  ネットワーク層の選択
     224        #SUPPORT_INET6 = true
     225        SUPPORT_INET4 = true
     226
     227        #  API に組込む機能の選択
     228        #API_CFG_IP4MAPPED_ADDR = true
     229
     230        #  トランスポート層の選択
     231        SUPPORT_TCP = true
     232        SUPPORT_UDP = true
     233
     234        # IGMPを有効に設定
     235        SUPPORT_IGMP = true
     236
     237        #
     238        #  ネットワークサービスの Makefile のインクルード
     239        #
     240        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     241endif
    241242
    242243#
     
    258259all: tecs | $(DEPDIR)
    259260#       @$(MAKE) check
    260         @$(MAKE) check $(OBJNAME).bin
     261#       @$(MAKE) check $(OBJNAME).bin
    261262#       @$(MAKE) check $(OBJNAME).srec
     263        @$(MAKE) check $(OBJNAME).mot
    262264else
    263265#all: check
    264 all: check $(OBJNAME).bin
     266#all: check $(OBJNAME).bin
    265267#all: check $(OBJNAME).srec
     268all: check $(OBJNAME).mot
    266269endif
    267270
     
    271274#  コンフィギュレータに関する定義
    272275#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     276ifndef TINETDIR
     277  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     278  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     279                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     280else
     281  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     282  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275283                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276284                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278286                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279287                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     288endif
    280289CFG_ASMOBJS := $(CFG_ASMOBJS)
    281290CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423432
    424433#
     434#  並列makeのための依存関係の定義
     435#
     436$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     437$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     438                                                                                                                | offset.timestamp
     439
     440#
    425441#  特別な依存関係の定義
    426442#
     
    431447#
    432448$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     449        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434450                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435451                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    460476$(OBJNAME).srec: $(OBJFILE)
    461477        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     478
     479$(OBJNAME).mot: $(OBJFILE)
     480        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    462481
    463482#
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/DebugEther/Makefile

    r342 r364  
    165165        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    166166endif
    167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     167CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    168168INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    169169        -I$(SRCDIR)/../btstack/include \
     
    173173        -I$(SRCDIR)/../usbhost/src \
    174174        $(INCLUDES)
    175 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     175LDFLAGS := $(LDFLAGS) -L.
    176176LIBS := $(LIBS) $(CXXLIBS)
    177177CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    207207endif
    208208
    209 
    210 #
    211 #  ネットワークサービスの定義
    212 #
    213 NO_USE_TINET_LIBRARY = true
    214 
    215 #  ネットワークインタフェースの選択、何れか一つ選択する。
    216 NET_IF = ether
    217 
    218 #  イーサネット・ディバイスドライバの選択
     209ifdef TINETDIR
     210        #
     211        #  ネットワークサービスの定義
     212        #
     213        NO_USE_TINET_LIBRARY = true
     214
     215        #  ネットワークインタフェースの選択、何れか一つ選択する。
     216        NET_IF = ether
     217
     218        #  イーサネット・ディバイスドライバの選択
    219219        NET_DEV = if_rx62n
    220220
    221 #  ネットワーク層の選択
    222 #SUPPORT_INET6 = true
    223 SUPPORT_INET4 = true
    224 
    225 #  API に組込む機能の選択
    226 #API_CFG_IP4MAPPED_ADDR = true
    227 
    228 #  トランスポート層の選択
    229 SUPPORT_TCP = true
    230 SUPPORT_UDP = true
    231 
    232 # IGMPを有効に設定
    233 SUPPORT_IGMP = true
    234 
    235 #
    236 #  ネットワークサービスの Makefile のインクルード
    237 #
    238 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     221        #  ネットワーク層の選択
     222        #SUPPORT_INET6 = true
     223        SUPPORT_INET4 = true
     224
     225        #  API に組込む機能の選択
     226        #API_CFG_IP4MAPPED_ADDR = true
     227
     228        #  トランスポート層の選択
     229        SUPPORT_TCP = true
     230        SUPPORT_UDP = true
     231
     232        # IGMPを有効に設定
     233        SUPPORT_IGMP = true
     234
     235        #
     236        #  ネットワークサービスの Makefile のインクルード
     237        #
     238        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     239endif
    239240
    240241#
     
    256257all: tecs | $(DEPDIR)
    257258#       @$(MAKE) check
    258         @$(MAKE) check $(OBJNAME).bin
     259#       @$(MAKE) check $(OBJNAME).bin
    259260#       @$(MAKE) check $(OBJNAME).srec
     261        @$(MAKE) check $(OBJNAME).mot
    260262else
    261263#all: check
    262 all: check $(OBJNAME).bin
     264#all: check $(OBJNAME).bin
    263265#all: check $(OBJNAME).srec
     266all: check $(OBJNAME).mot
    264267endif
    265268
     
    269272#  コンフィギュレータに関する定義
    270273#
    271 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    272 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     274ifndef TINETDIR
     275  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     276  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     277                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     278else
     279  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     280  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    273281                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    274282                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    276284                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    277285                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     286endif
    278287CFG_ASMOBJS := $(CFG_ASMOBJS)
    279288CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    421430
    422431#
     432#  並列makeのための依存関係の定義
     433#
     434$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     435$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     436                                                                                                                | offset.timestamp
     437
     438#
    423439#  特別な依存関係の定義
    424440#
     
    429445#
    430446$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    431         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     447        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    432448                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    433449                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    458474$(OBJNAME).srec: $(OBJFILE)
    459475        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     476
     477$(OBJNAME).mot: $(OBJFILE)
     478        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    460479
    461480#
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/src/echonet_main.c

    r351 r364  
    11/*
    22 *  TOPPERS ECHONET Lite Communication Middleware
    3  * 
     3 *
    44 *  Copyright (C) 2014-2018 Cores Co., Ltd. Japan
    5  * 
     5 *
    66 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    77 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2626 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    2727 *      免責すること.
    28  * 
     28 *
    2929 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3030 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3232 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3333 *  の責任を負わない.
    34  * 
     34 *
    3535 *  @(#) $Id$
    3636 */
    3737
    38 /* 
     38/*
    3939 *  サンプルプログラム(1)の本体
    4040 */
     
    8585{
    8686        /* サイズが1以外は受け付けない */
    87         if(size != 1)
     87        if (size != 1)
    8888                return 0;
    8989
    9090        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    9191
    92         switch(*(uint8_t *)src){
     92        switch (*(uint8_t *)src) {
    9393        /* ONの場合 */
    9494        case 0x30:
     
    117117{
    118118        /* サイズが1以外は受け付けない */
    119         if(size != 1)
     119        if (size != 1)
    120120                return 0;
    121121
    122122        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    123123
    124         switch(*(uint8_t *)src){
     124        switch (*(uint8_t *)src) {
    125125        /* 異常発生ありの場合 */
    126126        case 0x41:
     
    143143{
    144144        /* サイズが1以外は受け付けない */
    145         if(size != 1)
    146                 return 0;
    147 
    148         if((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)){
     145        if (size != 1)
     146                return 0;
     147
     148        if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)) {
    149149                *((uint8_t *)item->exinf) = *((uint8_t *)src);
    150150        }
    151151        /* 上記以外は受け付けない */
    152         else{
     152        else {
    153153                return 0;
    154154        }
     
    171171
    172172        /* サイズが1以外は受け付けない */
    173         if(size != 1)
     173        if (size != 1)
    174174                return 0;
    175175
    176176        *anno = false;
    177177
    178         if((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)){
     178        if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)) {
    179179                /* 以前の検知レベルを保存 */
    180180                prev_state = eobj->state;
     
    185185
    186186                /* 人体検知状態に変化があった場合 */
    187                 if((prev_state < eobj->threshold) != (eobj->state < eobj->threshold))
    188                 {
     187                if ((prev_state < eobj->threshold) != (eobj->state < eobj->threshold)) {
    189188                        /* プロパティ通知 */
    190189                        *anno = true;
     
    192191        }
    193192        /* 上記以外は受け付けない */
    194         else{
     193        else {
    195194                return 0;
    196195        }
     
    199198}
    200199
    201 /* 
     200/*
    202201 * 人体検知状態取得関数
    203202 */
     
    207206
    208207        /* 閾値より検知レベルが低い場合 */
    209         if(eobj->state < eobj->threshold){
     208        if (eobj->state < eobj->threshold) {
    210209                /* 人体検知なし */
    211210                ((uint8_t *)dst)[0] = 0x42;
    212211        }
    213212        /* 閾値より検知レベルが高い場合 */
    214         else{
     213        else {
    215214                /* 人体検知あり */
    216215                ((uint8_t *)dst)[0] = 0x41;
     
    243242
    244243        ret2 = get_tim(&now);
    245         if (ret2 != E_OK){
     244        if (ret2 != E_OK) {
    246245                syslog(LOG_ERROR, "get_tim");
    247246                return;
    248247        }
    249248
    250         for(;;){
     249        for (;;) {
    251250                prev = now;
    252251
     
    256255                /* 応答電文待ち */
    257256                ret = ecn_trcv_esv(&esv, timer);
    258                 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)){
     257                if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {
    259258                        syslog(LOG_ERROR, "ecn_trcv_esv");
    260259                        break;
     
    262261
    263262                ret2 = get_tim(&now);
    264                 if (ret2 != E_OK){
     263                if (ret2 != E_OK) {
    265264                        syslog(LOG_ERROR, "get_tim");
    266265                        break;
     
    277276                        /* 領域解放 */
    278277                        ret = ecn_rel_esv(esv);
    279                         if (ret != E_OK){
     278                        if (ret != E_OK) {
    280279                                syslog(LOG_ERROR, "ecn_rel_esv");
    281280                                break;
     
    286285                        /* 応答電文待ちの割り込みデータ取得 */
    287286                        ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len);
    288                         if (ret != E_OK){
     287                        if (ret != E_OK) {
    289288                                syslog(LOG_ERROR, "ecn_get_brk_dat");
    290289                                break;
     
    296295                        /* 領域解放 */
    297296                        ret = ecn_rel_esv(esv);
    298                         if (ret != E_OK){
     297                        if (ret != E_OK) {
    299298                                syslog(LOG_ERROR, "ecn_rel_esv");
    300299                                break;
     
    307306}
    308307
    309 bool_t started = false;
    310 
    311308void echonet_change_netif_link(uint8_t link_up, uint8_t up)
    312309{
     
    316313                return;
    317314
    318         if (up && !started) {
    319                 started = true;
    320 
    321                 /* ECHONETミドルウェアを起動 */
    322                 ret = ecn_sta_svc();
    323                 if (ret != E_OK)
    324                         return;
    325 
    326                 /* ECHONETミドルウェアを起動するのを待つ */
    327                 dly_tsk(100);
     315        if (up) {
     316                /* インスタンスリスト通知の送信 */
     317                ret = ecn_ntf_inl();
     318                if (ret != E_OK) {
     319                        syslog(LOG_ERROR, "ecn_ntf_inl");
     320                }
    328321        }
    329322
     
    339332}
    340333
    341 enum main_state_t{
     334enum main_state_t {
     335        main_state_start,
    342336        main_state_idle,
    343337};
    344338
    345339int main_timer = TMO_FEVR;
    346 enum main_state_t main_state = main_state_idle;
     340enum main_state_t main_state = main_state_start;
    347341bool_t main_btn1_state;
    348342int main_btn1_count = 0;
     
    368362        sil_wrb_mem((uint8_t *)0x0008C02A, 0x00);
    369363
    370         /* 10ms後にボタン状態を確認 */
    371         main_timer = 10 * 1000;
     364        /* ECHONETミドルウェアを起動するのを待つ */
     365        main_state = main_state_start;
     366        main_timer = 1000 * 1000;
    372367
    373368        /* 12bitADC初期化 */
     
    382377        main_btn2_state = (btn2 & 0x80) != 0;
    383378
     379        /* メインタスクを起動 */
    384380        ER ret = act_tsk(MAIN_TASK);
    385381        if (ret != E_OK) {
     
    401397static void main_progress(int interval)
    402398{
    403         if(main_timer == TMO_FEVR)
     399        if (main_timer == TMO_FEVR)
    404400                return;
    405401
    406402        main_timer -= interval;
    407         if(main_timer < 0){
     403        if (main_timer < 0) {
    408404                main_timer = 0;
    409405        }
     
    422418
    423419        ret = ecn_itr_ini(&enm, esv);
    424         if(ret != E_OK){
     420        if (ret != E_OK) {
    425421                syslog(LOG_ERROR, "ecn_itr_ini");
    426422                return;
    427423        }
    428424
    429         for(;;) {
    430                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     425        for (;;) {
     426                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    431427                        switch (epc) {
    432428                        case 0x80:
     
    436432                        }
    437433                }
    438                 if(ret != E_BOVR){
     434                if (ret != E_BOVR) {
    439435                        syslog(LOG_ERROR, "ecn_itr_nxt");
    440436                        break;
    441437                }
    442                 if(enm.is_eof)
     438                if (enm.is_eof)
    443439                        break;
    444440        }
     
    450446static void main_break_wait(uint8_t *brkdat, int32_t len)
    451447{
    452         switch(main_state){
     448        switch (main_state) {
    453449        case main_state_idle:
    454450                break;
     
    472468static void main_timeout()
    473469{
     470        ER ret;
    474471        uint8_t btn1, btn2;
    475472        uint16_t ad_value;
    476473        uint8_t ad_level;
    477474
    478         if(main_timer != 0)
    479                 return;
    480 
    481         switch(main_state){
     475        if (main_timer != 0)
     476                return;
     477
     478        switch (main_state) {
     479        case main_state_start:
     480                /* ECHONETミドルウェアを起動 */
     481                ret = ecn_sta_svc();
     482                if (ret != E_OK) {
     483                        syslog(LOG_ERROR, "ecn_sta_svc");
     484                }
     485
     486                /* 10ms後にボタン状態を確認 */
     487                main_state = main_state_idle;
     488                main_timer = 10 * 1000;
     489                break;
    482490        case main_state_idle:
    483491                /* 10ms後にボタン状態を確認 */
     
    485493
    486494                /* ADCの変換結果取得 */
    487                 if((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0){
     495                if ((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0) {
    488496                        main_ad_avelage -= main_ad_table[main_ad_pos];
    489497                        ad_value = sil_reh_mem((uint16_t *)S12AD_ADDR0_ADDR);
     
    492500
    493501                        main_ad_pos++;
    494                         if(main_ad_pos >= main_ad_table_count){
     502                        if (main_ad_pos >= main_ad_table_count) {
    495503                                main_ad_pos = 0;
    496504                        }
    497505
    498506                        ad_level = (((main_ad_avelage / main_ad_table_count) >> 9) & 0x7) + 1;
    499                         if(main_ad_level != ad_level){
     507                        if (main_ad_level != ad_level) {
    500508                                /* 1秒変化が続いたら */
    501                                 if(main_count < 100){
     509                                if (main_count < 100) {
    502510                                        main_count++;
    503511                                }
    504                                 else{
     512                                else {
    505513                                        main_ad_level = ad_level;
    506514
     
    509517                                }
    510518                        }
    511                         else{
     519                        else {
    512520                                main_count = 0;
    513521                        }
     
    518526
    519527                /* ボタン状態読み込み */
    520                 btn1 = sil_reb_mem((uint8_t *) 0x0008C04A);
    521                 btn2 = sil_reb_mem((uint8_t *) 0x0008C040);
     528                btn1 = sil_reb_mem((uint8_t *)0x0008C04A);
     529                btn2 = sil_reb_mem((uint8_t *)0x0008C040);
    522530
    523531                /* ボタン1の処理 */
    524                 if(((btn1 & 0x80) != 0) && !main_btn1_state){
     532                if (((btn1 & 0x80) != 0) && !main_btn1_state) {
    525533                        main_btn1_count++;
    526                         if(main_btn1_count > 10){
     534                        if (main_btn1_count > 10) {
    527535                                main_btn1_count = 0;
    528536                                main_btn1_state = true;
     
    531539                        }
    532540                }
    533                 else if(((btn1 & 0x80) == 0) && main_btn1_state){
     541                else if (((btn1 & 0x80) == 0) && main_btn1_state) {
    534542                        main_btn1_count++;
    535                         if(main_btn1_count > 10){
     543                        if (main_btn1_count > 10) {
    536544                                main_btn1_count = 0;
    537545                                main_btn1_state = false;
     
    542550
    543551                /* ボタン2の処理 */
    544                 if(((btn2 & 0x80) != 0) && !main_btn2_state){
     552                if (((btn2 & 0x80) != 0) && !main_btn2_state) {
    545553                        main_btn2_count++;
    546                         if(main_btn2_count > 10){
     554                        if (main_btn2_count > 10) {
    547555                                main_btn2_count = 0;
    548556                                main_btn2_state = true;
     
    551559                        }
    552560                }
    553                 else if(((btn2 & 0x80) == 0) && main_btn2_state){
     561                else if (((btn2 & 0x80) == 0) && main_btn2_state) {
    554562                        main_btn2_count++;
    555                         if(main_btn2_count > 10){
     563                        if (main_btn2_count > 10) {
    556564                                main_btn2_count = 0;
    557565                                main_btn2_state = false;
     
    577585        /* プロパティ設定電文作成 */
    578586        ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt);
    579         if(ret != E_OK){
     587        if (ret != E_OK) {
    580588                syslog(LOG_ERROR, "ecn_esv_setc");
    581589                return;
     
    599607
    600608        /* 押されて戻った時に処理する */
    601         if(push)
     609        if (push)
    602610                return;
    603611
    604612        /* 人体検知状態 */
    605         if(!main_rev){
     613        if (!main_rev) {
    606614                main_level--;
    607                 if(main_level < 1){
     615                if (main_level < 1) {
    608616                        main_level = 1;
    609617                        main_rev = true;
    610618                }
    611619        }
    612         else{
     620        else {
    613621                main_level++;
    614                 if(main_level > 8){
     622                if (main_level > 8) {
    615623                        main_level = 8;
    616624                        main_rev = false;
     
    622630        /* プロパティ設定電文作成 */
    623631        ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt);
    624         if(ret != E_OK){
     632        if (ret != E_OK) {
    625633                syslog(LOG_ERROR, "ecn_esv_setc");
    626634                return;
     
    641649
    642650        /* 押されて戻った時に処理する */
    643         if(push)
     651        if (push)
    644652                return;
    645653
    646654        /* 人体検知状態 */
    647         if(!main_rev){
     655        if (!main_rev) {
    648656                main_level++;
    649                 if(main_level > 8){
     657                if (main_level > 8) {
    650658                        main_level = 8;
    651659                        main_rev = false;
    652660                }
    653661        }
    654         else{
     662        else {
    655663                main_level--;
    656                 if(main_level < 1){
     664                if (main_level < 1) {
    657665                        main_level = 1;
    658666                        main_rev = true;
     
    664672        /* プロパティ設定電文作成 */
    665673        ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt);
    666         if(ret != E_OK){
     674        if (ret != E_OK) {
    667675                syslog(LOG_ERROR, "ecn_esv_setc");
    668676                return;
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/src/main.c

    r359 r364  
    7979
    8080ID ws_api_mailboxid = MAIN_DATAQUEUE;
     81#ifndef NOUSE_MPF_NET_BUF
    8182ID ws_mempoolid = MPF_NET_BUF_256;
     83#endif
    8284
    8385#ifdef IF_ETHER_BTUSB
     
    111113static void main_timeout();
    112114
     115extern int ntshell_exit;
     116
    113117int uart_read(char *buf, int cnt, void *extobj)
    114118{
    115         return serial_rea_dat(SIO_PORTID, (char *)buf, cnt);
     119        struct main_t *obj = (struct main_t *)extobj;
     120        int result;
     121        ER ret;
     122        int timer;
     123
     124        obj->prev = obj->now;
     125
     126        /* タイマー取得 */
     127        timer = main_get_timer();
     128
     129        /* 待ち */
     130        ret = serial_trea_dat(SIO_PORTID, buf, cnt, timer);
     131        if ((ret < 0) && (ret != E_OK) && (ret != E_TMOUT)) {
     132                syslog(LOG_NOTICE, "tslp_tsk ret: %s %d", itron_strerror(ret), timer);
     133                ntshell_exit = 1;
     134                return -1;
     135        }
     136        result = (int)ret;
     137
     138        ret = get_tim(&obj->now);
     139        if (ret != E_OK) {
     140                syslog(LOG_NOTICE, "get_tim ret: %s", itron_strerror(ret));
     141                ntshell_exit = 1;
     142                return -1;
     143        }
     144
     145                        /* 時間経過 */
     146        int elapse = obj->now - obj->prev;
     147        main_progress(elapse);
     148
     149        /* タイムアウト処理 */
     150        main_timeout();
     151
     152        return result;
    116153}
    117154
     
    119156{
    120157        return serial_wri_dat(SIO_PORTID, buf, cnt);
    121 }
    122 
    123 unsigned char ntstdio_xi(struct ntstdio_t *handle)
    124 {
    125         char buf[1];
    126         if(serial_rea_dat(SIO_PORTID, buf, 1) != 1)
    127                 return -EIO;
    128         return buf[0];
    129 }
    130 
    131 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c)
    132 {
    133         char buf[1];
    134         buf[0] = c;
    135         serial_wri_dat(SIO_PORTID, buf, 1);
    136158}
    137159
     
    150172        main_initialize();
    151173
    152         ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);
     174        ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj);
    153175        ntshell_set_prompt(&ntshell, "NTShell>");
    154176        ntshell_execute(&ntshell);
     
    168190        ER ret;
    169191
    170         ntshell_task_init();
     192#ifdef TOPPERS_OMIT_TECS
     193        serial_opn_por(SIO_PORTID);
     194#endif
     195        serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
     196
     197        ntshell_task_init(uart_read, uart_write, &main_obj);
    171198
    172199        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/src/main.cfg

    r342 r364  
    5454INCLUDE("tinet/tinet_asp.cfg");
    5555INCLUDE("tinet_main.cfg");
    56 INCLUDE("netinet/ip_igmp.cfg");
    5756
    5857/* DHCP クライアント */
     
    7776INCLUDE("ffarch.cfg");
    7877
     78/* mbed */
     79INCLUDE("mbed_api.cfg");
     80
    7981#ifdef IF_ETHER_BTUSB
    8082INCLUDE("usb_hbth.cfg");
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/.cproject

    r345 r364  
    2222                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    2323                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    24                                 <option id="toolchain.version" value="4.8.4.201703"/>
     24                                <option id="toolchain.version" value="4.8.4.201803"/>
    2525                        </storageModule>
    2626                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    3737                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.415917897" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    3838                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1411531115" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    39                                                         <builder buildPath="${workspace_loc:/app4_aircon}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.414701081" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     39                                                        <builder buildPath="${workspace_loc:/app4_aircon}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.414701081" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    4040                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.164426586" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    4141                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.2048565838" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    9191                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    9292                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    93                                 <option id="toolchain.version" value="4.8.4.201703"/>
     93                                <option id="toolchain.version" value="4.8.4.201803"/>
    9494                        </storageModule>
    9595                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    106106                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1916252483" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    107107                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.2125057454" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    108                                                         <builder buildPath="${workspace_loc:/app4_aircon}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1414769322" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     108                                                        <builder buildPath="${workspace_loc:/app4_aircon}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1414769322" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    109109                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.431256842" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    110110                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1885500969" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    160160                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    161161                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    162                                 <option id="toolchain.version" value="4.8.4.201703"/>
     162                                <option id="toolchain.version" value="4.8.4.201803"/>
    163163                        </storageModule>
    164164                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    175175                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1958295650" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    176176                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1394526678" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    177                                                         <builder buildPath="${workspace_loc:/app4_aircon}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1946140985" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     177                                                        <builder buildPath="${workspace_loc:/app4_aircon}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1946140985" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    178178                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.284884303" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    179179                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1809039592" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    224224        <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
    225225        <storageModule moduleId="refreshScope" versionNumber="2">
     226                <configuration configurationName="DebugEther"/>
     227                <configuration configurationName="DebugCitrus"/>
    226228                <configuration configurationName="Debug">
    227229                        <resource resourceType="PROJECT" workspacePath="/app4_aircon"/>
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/Debug/Makefile

    r342 r364  
    155155
    156156#
     157#  gdicサービスの定義
     158#
     159
     160include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    167173        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168174endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     175CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    170176INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171177        -I$(SRCDIR)/../btstack/include \
     
    175181        -I$(SRCDIR)/../usbhost/src \
    176182        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     183LDFLAGS := $(LDFLAGS) -L.
    178184LIBS := $(LIBS) $(CXXLIBS)
    179185CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186192APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     193APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
     194APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
     195APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT
    187196
    188197#
     
    209218endif
    210219
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     220ifdef TINETDIR
     221        #
     222        #  ネットワークサービスの定義
     223        #
     224        NO_USE_TINET_LIBRARY = true
     225
     226        #  ネットワークインタフェースの選択、何れか一つ選択する。
     227        NET_IF = ether
     228
     229        #  イーサネット・ディバイスドライバの選択
     230        NET_DEV = if_btusb
     231
     232        #  ネットワーク層の選択
     233        #SUPPORT_INET6 = true
     234        SUPPORT_INET4 = true
     235
     236        #  API に組込む機能の選択
     237        #API_CFG_IP4MAPPED_ADDR = true
     238
     239        #  トランスポート層の選択
     240        SUPPORT_TCP = true
     241        SUPPORT_UDP = true
     242
     243        # IGMPを有効に設定
     244        SUPPORT_IGMP = true
     245
     246        #
     247        #  ネットワークサービスの Makefile のインクルード
     248        #
     249        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     250endif
    241251
    242252#
     
    271281#  コンフィギュレータに関する定義
    272282#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     283ifndef TINETDIR
     284  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     285  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     286                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     287else
     288  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     289  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275290                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276291                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278293                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279294                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     295endif
    280296CFG_ASMOBJS := $(CFG_ASMOBJS)
    281297CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423439
    424440#
     441#  並列makeのための依存関係の定義
     442#
     443$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     444$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     445                                                                                                                | offset.timestamp
     446
     447#
    425448#  特別な依存関係の定義
    426449#
     
    431454#
    432455$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     456        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434457                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435458                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/DebugCitrus/Makefile

    r342 r364  
    155155
    156156#
     157#  gdicサービスの定義
     158#
     159
     160include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    167173        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168174endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     175CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    170176INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171177        -I$(SRCDIR)/../btstack/include \
     
    175181        -I$(SRCDIR)/../usbhost/src \
    176182        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     183LDFLAGS := $(LDFLAGS) -L.
    178184LIBS := $(LIBS) $(CXXLIBS)
    179185CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186192APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     193APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
     194APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
     195APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT
    187196
    188197#
     
    209218endif
    210219
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     220ifdef TINETDIR
     221        #
     222        #  ネットワークサービスの定義
     223        #
     224        NO_USE_TINET_LIBRARY = true
     225
     226        #  ネットワークインタフェースの選択、何れか一つ選択する。
     227        NET_IF = ether
     228
     229        #  イーサネット・ディバイスドライバの選択
     230        NET_DEV = if_btusb
     231
     232        #  ネットワーク層の選択
     233        #SUPPORT_INET6 = true
     234        SUPPORT_INET4 = true
     235
     236        #  API に組込む機能の選択
     237        #API_CFG_IP4MAPPED_ADDR = true
     238
     239        #  トランスポート層の選択
     240        SUPPORT_TCP = true
     241        SUPPORT_UDP = true
     242
     243        # IGMPを有効に設定
     244        SUPPORT_IGMP = true
     245
     246        #
     247        #  ネットワークサービスの Makefile のインクルード
     248        #
     249        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     250endif
    241251
    242252#
     
    271281#  コンフィギュレータに関する定義
    272282#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     283ifndef TINETDIR
     284  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     285  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     286                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     287else
     288  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     289  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275290                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276291                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278293                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279294                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     295endif
    280296CFG_ASMOBJS := $(CFG_ASMOBJS)
    281297CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423439
    424440#
     441#  並列makeのための依存関係の定義
     442#
     443$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     444$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     445                                                                                                                | offset.timestamp
     446
     447#
    425448#  特別な依存関係の定義
    426449#
     
    431454#
    432455$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     456        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434457                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435458                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/DebugEther/Makefile

    r342 r364  
    153153
    154154#
     155#  gdicサービスの定義
     156#
     157
     158include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
     
    165171        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    166172endif
    167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     173CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
    168174INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    169175        -I$(SRCDIR)/../btstack/include \
     
    173179        -I$(SRCDIR)/../usbhost/src \
    174180        $(INCLUDES)
    175 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     181LDFLAGS := $(LDFLAGS) -L.
    176182LIBS := $(LIBS) $(CXXLIBS)
    177183CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    183189APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    184190APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     191APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
     192APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
     193APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT
    185194
    186195#
     
    207216endif
    208217
    209 
    210 #
    211 #  ネットワークサービスの定義
    212 #
    213 NO_USE_TINET_LIBRARY = true
    214 
    215 #  ネットワークインタフェースの選択、何れか一つ選択する。
    216 NET_IF = ether
    217 
    218 #  イーサネット・ディバイスドライバの選択
     218ifdef TINETDIR
     219        #
     220        #  ネットワークサービスの定義
     221        #
     222        NO_USE_TINET_LIBRARY = true
     223
     224        #  ネットワークインタフェースの選択、何れか一つ選択する。
     225        NET_IF = ether
     226
     227        #  イーサネット・ディバイスドライバの選択
    219228        NET_DEV = if_rx62n
    220229
    221 #  ネットワーク層の選択
    222 #SUPPORT_INET6 = true
    223 SUPPORT_INET4 = true
    224 
    225 #  API に組込む機能の選択
    226 #API_CFG_IP4MAPPED_ADDR = true
    227 
    228 #  トランスポート層の選択
    229 SUPPORT_TCP = true
    230 SUPPORT_UDP = true
    231 
    232 # IGMPを有効に設定
    233 SUPPORT_IGMP = true
    234 
    235 #
    236 #  ネットワークサービスの Makefile のインクルード
    237 #
    238 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     230        #  ネットワーク層の選択
     231        #SUPPORT_INET6 = true
     232        SUPPORT_INET4 = true
     233
     234        #  API に組込む機能の選択
     235        #API_CFG_IP4MAPPED_ADDR = true
     236
     237        #  トランスポート層の選択
     238        SUPPORT_TCP = true
     239        SUPPORT_UDP = true
     240
     241        # IGMPを有効に設定
     242        SUPPORT_IGMP = true
     243
     244        #
     245        #  ネットワークサービスの Makefile のインクルード
     246        #
     247        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     248endif
    239249
    240250#
     
    269279#  コンフィギュレータに関する定義
    270280#
    271 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    272 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     281ifndef TINETDIR
     282  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     283  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     284                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     285else
     286  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     287  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    273288                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    274289                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    276291                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    277292                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     293endif
    278294CFG_ASMOBJS := $(CFG_ASMOBJS)
    279295CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    421437
    422438#
     439#  並列makeのための依存関係の定義
     440#
     441$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     442$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     443                                                                                                                | offset.timestamp
     444
     445#
    423446#  特別な依存関係の定義
    424447#
     
    429452#
    430453$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    431         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     454        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    432455                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    433456                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/src/echonet_main.c

    r351 r364  
    11/*
    22 *  TOPPERS ECHONET Lite Communication Middleware
    3  * 
    4  *  Copyright (C) 2014 Cores Co., Ltd. Japan
    5  * 
     3 *
     4 *  Copyright (C) 2014-2018 Cores Co., Ltd. Japan
     5 *
    66 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    77 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2626 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    2727 *      免責すること.
    28  * 
     28 *
    2929 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3030 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3232 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3333 *  の責任を負わない.
    34  * 
     34 *
    3535 *  @(#) $Id$
    3636 */
    3737
    38 /* 
     38/*
    3939 *  サンプルプログラム(1)の本体
    4040 */
     
    5151#include "echonet_cfg.h"
    5252#include "target_kernel_impl.h"
     53#include "adafruit_ssd1306.h"
     54#include "draw_font.h"
    5355
    5456/* TODO: メーカーコードを設定 */
     
    180182
    181183        /* サイズが1以外は受け付けない */
    182         if(size != 1)
     184        if (size != 1)
    183185                return 0;
    184186
    185187        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    186188
    187         switch(*(uint8_t *)src){
     189        switch (*(uint8_t *)src) {
    188190        /* ONの場合 */
    189191        case 0x30:
     
    194196                data[0] = 0x80;
    195197                ret = ecn_brk_wai(data, sizeof(data));
    196                 if(ret != E_OK){
     198                if (ret != E_OK) {
    197199                        syslog(LOG_ERROR, "ecn_brk_wai");
    198200                        return 2;
     
    213215{
    214216        /* サイズが1以外は受け付けない */
    215         if(size != 1)
     217        if (size != 1)
    216218                return 0;
    217219
    218220        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    219221
    220         switch(*(uint8_t *)src){
     222        switch (*(uint8_t *)src) {
    221223        /* 異常発生ありの場合 */
    222224        case 0x41:
     
    242244
    243245        /* サイズが1以外は受け付けない */
    244         if(size != 1)
     246        if (size != 1)
    245247                return 0;
    246248
    247         switch(*(uint8_t *)src){
     249        switch (*(uint8_t *)src) {
    248250        /* 自動の場合 */
    249251        case 0x41:
     
    262264                data[0] = 0xB0;
    263265                ret = ecn_brk_wai(data, sizeof(data));
    264                 if(ret != E_OK){
     266                if (ret != E_OK) {
    265267                        syslog(LOG_ERROR, "ecn_brk_wai");
    266268                        return 2;
     
    284286
    285287        /* サイズが1以外は受け付けない */
    286         if(size != 1)
     288        if (size != 1)
    287289                return 0;
    288290
    289291        /* 0℃~50℃ */
    290         if((*(uint8_t *)src >= 0x00) && (*(uint8_t *)src <= 0x32)){
     292        if ((*(uint8_t *)src >= 0x00) && (*(uint8_t *)src <= 0x32)) {
    291293                *((uint8_t *)item->exinf) = *((uint8_t *)src);
    292294                /* メインタスクに通知 */
    293295                data[0] = 0xB3;
    294296                ret = ecn_brk_wai(data, sizeof(data));
    295                 if(ret != E_OK){
     297                if (ret != E_OK) {
    296298                        syslog(LOG_ERROR, "ecn_brk_wai");
    297299                        return 2;
     
    299301        }
    300302        /* 上記以外は受け付けない */
    301         else{
     303        else {
    302304                return 0;
    303305        }
     
    329331
    330332        ret2 = get_tim(&now);
    331         if (ret2 != E_OK){
     333        if (ret2 != E_OK) {
    332334                syslog(LOG_ERROR, "get_tim");
    333335                return;
    334336        }
    335337
    336         for(;;){
     338        for (;;) {
    337339                prev = now;
    338340
     
    342344                /* 応答電文待ち */
    343345                ret = ecn_trcv_esv(&esv, timer);
    344                 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)){
     346                if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {
    345347                        syslog(LOG_ERROR, "ecn_trcv_esv");
    346348                        break;