Changeset 364 for asp3_tinet_ecnl_rx
- Timestamp:
- Feb 1, 2019, 9:57:09 PM (5 years ago)
- 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 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <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"/> 38 38 <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"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1229888266" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <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"/> … … 91 91 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 92 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>93 <option id="toolchain.version" value="4.8.4.201803"/> 94 94 </storageModule> 95 95 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 106 <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"/> 107 107 <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"/> 109 109 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.70642658" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 110 <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"/> … … 160 160 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 161 161 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 162 <option id="toolchain.version" value="4.8.4.201 703"/>162 <option id="toolchain.version" value="4.8.4.201803"/> 163 163 </storageModule> 164 164 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 175 175 <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"/> 176 176 <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"/> 178 178 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.899711517" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 179 179 <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"/> … … 224 224 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> 225 225 <storageModule moduleId="refreshScope" versionNumber="2"> 226 <configuration configurationName="DebugEther"/> 226 227 <configuration configurationName="DebugCitrus"> 227 228 <resource resourceType="PROJECT" workspacePath="/app1_usb_watt_meter"/> -
asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/Debug/Makefile
r342 r364 170 170 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 171 171 endif 172 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start172 CDEFS := $(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 173 173 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 174 174 -I$(SRCDIR)/../btstack/include \ … … 184 184 -I$(SRCDIR)/../curl-7.57.0 \ 185 185 $(INCLUDES) 186 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.186 LDFLAGS := $(LDFLAGS) -L. 187 187 LIBS := $(LIBS) $(CXXLIBS) 188 188 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 206 206 APPL_ASMOBJS := 207 207 ifdef 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 209 209 APPL_COBJS := $(APPL_COBJS) 210 210 else 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 212 212 endif 213 213 APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o … … 218 218 endif 219 219 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 220 ifdef 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 250 endif 250 251 251 252 # … … 267 268 all: tecs | $(DEPDIR) 268 269 # @$(MAKE) check 269 @$(MAKE) check $(OBJNAME).bin270 # @$(MAKE) check $(OBJNAME).bin 270 271 # @$(MAKE) check $(OBJNAME).srec 272 @$(MAKE) check $(OBJNAME).mot 271 273 else 272 274 #all: check 273 all: check $(OBJNAME).bin275 #all: check $(OBJNAME).bin 274 276 #all: check $(OBJNAME).srec 277 all: check $(OBJNAME).mot 275 278 endif 276 279 … … 280 283 # コンフィギュレータに関する定義 281 284 # 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 \ 285 ifndef 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) 289 else 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 \ 284 292 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 285 293 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 287 295 --symval-table ../../ntshell/echonet/echonet_sym.def \ 288 296 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 297 endif 289 298 CFG_ASMOBJS := $(CFG_ASMOBJS) 290 299 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 432 441 433 442 # 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 # 434 450 # 特別な依存関係の定義 435 451 # … … 440 456 # 441 457 $(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 \ 443 459 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 444 460 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 469 485 $(OBJNAME).srec: $(OBJFILE) 470 486 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 487 488 $(OBJNAME).mot: $(OBJFILE) 489 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 471 490 472 491 # -
asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/DebugCitrus/Makefile
r342 r364 170 170 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 171 171 endif 172 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start172 CDEFS := $(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 173 173 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 174 174 -I$(SRCDIR)/../btstack/include \ … … 184 184 -I$(SRCDIR)/../curl-7.57.0 \ 185 185 $(INCLUDES) 186 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.186 LDFLAGS := $(LDFLAGS) -L. 187 187 LIBS := $(LIBS) $(CXXLIBS) 188 188 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 206 206 APPL_ASMOBJS := 207 207 ifdef 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 209 209 APPL_COBJS := $(APPL_COBJS) 210 210 else 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 212 212 endif 213 213 APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o … … 218 218 endif 219 219 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 220 ifdef 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 250 endif 250 251 251 252 # … … 267 268 all: tecs | $(DEPDIR) 268 269 # @$(MAKE) check 269 @$(MAKE) check $(OBJNAME).bin270 # @$(MAKE) check $(OBJNAME).bin 270 271 # @$(MAKE) check $(OBJNAME).srec 272 @$(MAKE) check $(OBJNAME).mot 271 273 else 272 274 #all: check 273 all: check $(OBJNAME).bin275 #all: check $(OBJNAME).bin 274 276 #all: check $(OBJNAME).srec 277 all: check $(OBJNAME).mot 275 278 endif 276 279 … … 280 283 # コンフィギュレータに関する定義 281 284 # 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 \ 285 ifndef 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) 289 else 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 \ 284 292 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 285 293 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 287 295 --symval-table ../../ntshell/echonet/echonet_sym.def \ 288 296 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 297 endif 289 298 CFG_ASMOBJS := $(CFG_ASMOBJS) 290 299 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 432 441 433 442 # 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 # 434 450 # 特別な依存関係の定義 435 451 # … … 440 456 # 441 457 $(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 \ 443 459 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 444 460 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 469 485 $(OBJNAME).srec: $(OBJFILE) 470 486 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 487 488 $(OBJNAME).mot: $(OBJFILE) 489 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 471 490 472 491 # -
asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/DebugEther/Makefile
r342 r364 170 170 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 171 171 endif 172 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DHAVE_CONFIG_H -DWOLFSSL_USER_SETTINGS -DRamDisk=binary_______ntshell_src_rom_fs_bin_start172 CDEFS := $(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 173 173 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 174 174 -I$(SRCDIR)/../btstack/include \ … … 184 184 -I$(SRCDIR)/../curl-7.57.0 \ 185 185 $(INCLUDES) 186 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.186 LDFLAGS := $(LDFLAGS) -L. 187 187 LIBS := $(LIBS) $(CXXLIBS) 188 188 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 206 206 APPL_ASMOBJS := 207 207 ifdef 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 209 209 APPL_COBJS := $(APPL_COBJS) 210 210 else 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 212 212 endif 213 213 APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o … … 218 218 endif 219 219 220 221 #222 # ネットワークサービスの定義223 #224 NO_USE_TINET_LIBRARY = true225 226 # ネットワークインタフェースの選択、何れか一つ選択する。227 NET_IF = ether228 229 # イーサネット・ディバイスドライバの選択220 ifdef TINETDIR 221 # 222 # ネットワークサービスの定義 223 # 224 NO_USE_TINET_LIBRARY = true 225 226 # ネットワークインタフェースの選択、何れか一つ選択する。 227 NET_IF = ether 228 229 # イーサネット・ディバイスドライバの選択 230 230 NET_DEV = if_rx62n 231 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 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 250 endif 250 251 251 252 # … … 267 268 all: tecs | $(DEPDIR) 268 269 # @$(MAKE) check 269 @$(MAKE) check $(OBJNAME).bin270 # @$(MAKE) check $(OBJNAME).bin 270 271 # @$(MAKE) check $(OBJNAME).srec 272 @$(MAKE) check $(OBJNAME).mot 271 273 else 272 274 #all: check 273 all: check $(OBJNAME).bin275 #all: check $(OBJNAME).bin 274 276 #all: check $(OBJNAME).srec 277 all: check $(OBJNAME).mot 275 278 endif 276 279 … … 280 283 # コンフィギュレータに関する定義 281 284 # 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 \ 285 ifndef 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) 289 else 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 \ 284 292 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 285 293 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 287 295 --symval-table ../../ntshell/echonet/echonet_sym.def \ 288 296 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 297 endif 289 298 CFG_ASMOBJS := $(CFG_ASMOBJS) 290 299 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 432 441 433 442 # 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 # 434 450 # 特別な依存関係の定義 435 451 # … … 440 456 # 441 457 $(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 \ 443 459 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 444 460 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 469 485 $(OBJNAME).srec: $(OBJFILE) 470 486 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 487 488 $(OBJNAME).mot: $(OBJFILE) 489 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 471 490 472 491 # -
asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/client.c
r350 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 3 * 4 4 * Copyright (C) 2016 Cores Co., Ltd. Japan 5 * 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ … … 48 48 #include "ff.h" 49 49 #include "util/ntstdio.h" 50 #include "client.h" 51 #include "jsonsl.h" 50 52 51 53 #define SKIP_PEER_VERIFICATION 52 54 //#define SKIP_HOSTNAME_VERIFICATION 55 56 const char SCOPE_DRIVE_FILE[] = "https://www.googleapis.com/auth/drive.file"; 57 const char GRANT_TYPE_DEVICE[] = "http://oauth.net/grant_type/device/1.0"; 58 53 59 char response[80]; 54 extern ntstdio_t ntstdio; 60 char errbuf[CURL_ERROR_SIZE]; 61 62 google_drive_t google_drive; 63 64 void curl_setopt_common(CURL *curl); 65 int google_drive_error_callback(jsonsl_t jsn, jsonsl_error_t err, 66 struct jsonsl_state_st *state, char *errat); 67 void google_drive_state_callback(jsonsl_t jsn, jsonsl_action_t action, 68 struct jsonsl_state_st *state, const char *buf); 55 69 56 70 void client_init(void) 57 71 { 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 58 84 //uITRON4_minit(ITRON_POOL_SIZE); 59 85 … … 61 87 } 62 88 63 size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp) 64 { 65 int rest = size * nmemb; 89 size_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 107 void 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 181 void get_device_id_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf) 182 { 183 } 184 185 int 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 238 void 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 312 void get_access_token_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf) 313 { 314 } 315 316 int 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 373 void 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 438 void update_access_token_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf) 439 { 440 } 441 442 int 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 498 void revoke_device_state_start(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf) 499 { 500 } 501 502 void revoke_device_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf) 503 { 504 } 505 506 int 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 553 void 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 618 void upload_file_state_end(google_drive_t *gd, struct jsonsl_state_st *state, const char *buf) 619 { 620 } 621 622 size_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; 66 633 int len; 67 634 … … 76 643 response[len] = '\0'; 77 644 78 ntstdio_printf(&ntstdio,response);79 80 dly_tsk(100 * 1000);645 printf(response); 646 647 dly_tsk(100); 81 648 82 649 rest -= len; … … 84 651 } 85 652 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 120 653 return ret; 121 654 } 122 655 123 char errbuf[CURL_ERROR_SIZE]; 656 int 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 683 int 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 760 int 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 766 void 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 } 124 808 125 809 static void get_logfname(char *fname) … … 185 869 ret = f_open(&file, fname, FA_CREATE_ALWAYS | FA_WRITE); 186 870 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); 188 872 return ret; 189 873 } … … 232 916 f_putc('}', &file); 233 917 234 file_close:235 918 f_close(&file); 236 919 … … 238 921 } 239 922 240 void client_task(intptr_t exinf) 241 { 242 CURL *curl; 923 void curl_setopt_common(CURL *curl) 924 { 243 925 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 }272 926 273 927 /* 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); 277 929 if (res != CURLE_OK) 278 ntstdio_printf(&ntstdio, "CURLOPT_URLfailed: %s\n",930 printf("CURLOPT_VERBOSE failed: %s\n", 279 931 curl_easy_strerror(res)); 280 932 … … 283 935 284 936 /* 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)); 286 941 287 942 #ifdef SKIP_PEER_VERIFICATION … … 298 953 res = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); 299 954 if (res != CURLE_OK) 300 ntstdio_printf(&ntstdio,"CURLOPT_SSL_VERIFYPEER failed: %s\n",955 printf("CURLOPT_SSL_VERIFYPEER failed: %s\n", 301 956 curl_easy_strerror(res)); 302 957 #else 303 958 res = curl_easy_setopt(curl, CURLOPT_CAINFO, "0:/certs/ca-cert.pem"); 304 959 if (res != CURLE_OK) 305 ntstdio_printf(&ntstdio,"CURLOPT_CAINFO failed: %s\n",960 printf("CURLOPT_CAINFO failed: %s\n", 306 961 curl_easy_strerror(res)); 307 962 308 963 res = curl_easy_setopt(curl, CURLOPT_SSLCERT, "0:/certs/client-cert.pem"); 309 964 if (res != CURLE_OK) 310 ntstdio_printf(&ntstdio,"CURLOPT_SSLCERT failed: %s\n",965 printf("CURLOPT_SSLCERT failed: %s\n", 311 966 curl_easy_strerror(res)); 312 967 313 968 res = curl_easy_setopt(curl, CURLOPT_SSLKEY, "0:/certs/client-key.pem"); 314 969 if (res != CURLE_OK) 315 ntstdio_printf(&ntstdio,"CURLOPT_SSLKEY failed: %s\n",970 printf("CURLOPT_SSLKEY failed: %s\n", 316 971 curl_easy_strerror(res)); 317 972 #endif … … 326 981 res = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); 327 982 if (res != CURLE_OK) 328 ntstdio_printf(&ntstdio,"CURLOPT_SSL_VERIFYHOST failed: %s\n",983 printf("CURLOPT_SSL_VERIFYHOST failed: %s\n", 329 984 curl_easy_strerror(res)); 330 985 #endif … … 332 987 /*res = curl_easy_setopt(curl, CURLOPT_PROXY, "https://proxy.example.com:8080"); 333 988 if (res != CURLE_OK) 334 ntstdio_printf(&ntstdio,"CURLOPT_PROXY failed: %s\n",989 printf("CURLOPT_PROXY failed: %s\n", 335 990 curl_easy_strerror(res));*/ 336 991 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", 368 995 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 1008 void 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 1015 void 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 1022 int 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 1040 int 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 1058 int 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 1075 int 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 1091 int 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 1117 void client_final(void) 1118 { 1119 google_drive_t *gd = &google_drive; 1120 jsonsl_t jsn = gd->jsn; 1121 383 1122 curl_global_cleanup(); 384 } 1123 jsonsl_destroy(jsn); 1124 } -
asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/client.h
r337 r364 39 39 #define _CLIENT_H_ 40 40 41 #include <kernel.h> 42 #include "target_kernel_impl.h" 41 typedef struct client_info_t { 42 char client_id[80]; 43 char client_secret[32]; 44 } client_info_t; 43 45 44 #define CLIENT_PRIORITY 4 /* クライアントタスクの優先度 */ 46 typedef 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; 45 57 46 #define CLIENT_STACK_SIZE 6144 /* スタック領域のサイズ */ 58 typedef struct error_response_t { 59 char error[64]; 60 char error_description[64]; 61 } error_response_t; 47 62 48 extern void client_init(void); 49 extern void client_task(intptr_t exinf); 50 extern void client_fin(void); 63 typedef 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 70 typedef 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 89 struct jsonsl_st; 90 typedef struct jsonsl_st *jsonsl_t; 91 92 typedef void (*parser_callback_t)(struct google_drive_t *gd, struct jsonsl_state_st *state, const char *buf); 93 94 typedef 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 108 extern google_drive_t google_drive; 109 110 void client_init(void); 111 void client_final(void); 112 113 void client_set_client_id(const char *client_id); 114 void client_set_client_secret(const char *client_secret); 115 int client_get_device_id(int argc, char **argv); 116 int client_get_access_token(int argc, char **argv); 117 int client_update_access_token(int argc, char **argv); 118 int client_revoke(int argc, char **argv); 119 int client_upload_file(int argc, char **argv); 51 120 52 121 #endif /* _CLIENT_H_ */ -
asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/echonet_main.c
r351 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 3 * 4 4 * Copyright (C) 2016-2018 Cores Co., Ltd. Japan 5 * 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ 37 37 38 /* 38 /* 39 39 * サンプルプログラム(1)の本体 40 40 */ … … 152 152 { 153 153 /* サイズが1以外は受け付けない */ 154 if (size != 1)154 if (size != 1) 155 155 return 0; 156 156 157 157 *anno = *((uint8_t*)item->exinf) != *((uint8_t*)src); 158 158 159 switch (*(uint8_t *)src){159 switch (*(uint8_t *)src) { 160 160 /* ONの場合 */ 161 161 case 0x30: … … 184 184 { 185 185 /* サイズが1以外は受け付けない */ 186 if (size != 1)186 if (size != 1) 187 187 return 0; 188 188 189 189 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 190 190 191 switch (*(uint8_t *)src){191 switch (*(uint8_t *)src) { 192 192 /* 異常発生ありの場合 */ 193 193 case 0x41: … … 288 288 289 289 /* サイズが4以外は受け付けない */ 290 if (size != 4)290 if (size != 4) 291 291 return 0; 292 292 … … 308 308 309 309 len = 48 - meter->current_pos; 310 if (len > 0)310 if (len > 0) 311 311 memcpy(dst, &meter->integral_electric_energy_measurement_log[meter->current_pos], sizeof(uint32_t) * len); 312 312 dst = &((uint8_t *)dst)[len]; … … 367 367 368 368 ret2 = get_tim(&now); 369 if (ret2 != E_OK) {369 if (ret2 != E_OK) { 370 370 syslog(LOG_ERROR, "get_tim"); 371 371 return; 372 372 } 373 373 374 for (;;){374 for (;;) { 375 375 prev = now; 376 376 … … 380 380 /* 応答電文待ち */ 381 381 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)) { 383 383 syslog(LOG_ERROR, "ecn_trcv_esv"); 384 384 break; … … 386 386 387 387 ret2 = get_tim(&now); 388 if (ret2 != E_OK) {388 if (ret2 != E_OK) { 389 389 syslog(LOG_ERROR, "get_tim"); 390 390 break; … … 401 401 /* 領域解放 */ 402 402 ret = ecn_rel_esv(esv); 403 if (ret != E_OK) {403 if (ret != E_OK) { 404 404 syslog(LOG_ERROR, "ecn_rel_esv"); 405 405 break; … … 410 410 /* 応答電文待ちの割り込みデータ取得 */ 411 411 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 412 if (ret != E_OK) {412 if (ret != E_OK) { 413 413 syslog(LOG_ERROR, "ecn_get_brk_dat"); 414 414 break; … … 420 420 /* 領域解放 */ 421 421 ret = ecn_rel_esv(esv); 422 if (ret != E_OK) {422 if (ret != E_OK) { 423 423 syslog(LOG_ERROR, "ecn_rel_esv"); 424 424 break; … … 431 431 } 432 432 433 bool_t started = false;434 435 433 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 436 434 { … … 440 438 return; 441 439 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 } 452 446 } 453 447 … … 463 457 } 464 458 465 enum main_state_t{ 459 enum main_state_t { 460 main_state_start, 466 461 main_state_idle, 467 462 }; 468 463 469 464 int main_timer = TMO_FEVR; 470 enum main_state_t main_state = main_state_ idle;471 int main_l ed_timer = TMO_FEVR;465 enum main_state_t main_state = main_state_start; 466 int main_lcd_timer = TMO_FEVR; 472 467 int main_adv_timer = TMO_FEVR; 473 468 int main_whm_counter; … … 508 503 509 504 /* 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; 514 510 515 511 /* 12bitADC初期化 */ … … 526 522 main_adv_timer = 1000 * 1000; 527 523 524 /* メインタスクを起動 */ 528 525 ER ret = act_tsk(MAIN_TASK); 529 526 if (ret != E_OK) { … … 539 536 int result = main_timer; 540 537 541 if ((result == TMO_FEVR)542 || ((main_l ed_timer != TMO_FEVR) && (main_led_timer < result))){543 result = main_l ed_timer;538 if ((result == TMO_FEVR) 539 || ((main_lcd_timer != TMO_FEVR) && (main_lcd_timer < result))) { 540 result = main_lcd_timer; 544 541 } 545 542 … … 557 554 static void main_progress(int interval) 558 555 { 559 if (main_timer != TMO_FEVR){556 if (main_timer != TMO_FEVR) { 560 557 main_timer -= interval; 561 if (main_timer < 0){558 if (main_timer < 0) { 562 559 main_timer = 0; 563 560 } 564 561 } 565 562 566 if (main_led_timer != TMO_FEVR){567 main_l ed_timer -= interval;568 if (main_led_timer < 0){569 main_l ed_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; 570 567 } 571 568 } … … 591 588 592 589 ret = ecn_itr_ini(&enm, esv); 593 if (ret != E_OK){590 if (ret != E_OK) { 594 591 syslog(LOG_ERROR, "ecn_itr_ini"); 595 592 return; 596 593 } 597 594 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) { 600 597 switch (epc) { 601 598 case 0x80: … … 605 602 } 606 603 } 607 if (ret != E_BOVR){604 if (ret != E_BOVR) { 608 605 syslog(LOG_ERROR, "ecn_itr_nxt"); 609 606 break; 610 607 } 611 if (enm.is_eof)608 if (enm.is_eof) 612 609 break; 613 610 } … … 619 616 static void main_break_wait(uint8_t *brkdat, int32_t len) 620 617 { 621 switch (main_state){618 switch (main_state) { 622 619 case main_state_idle: 623 620 if (len == 0) … … 638 635 639 636 static void main_ontimer(); 640 static void main_l ed_ontimer();637 static void main_lcd_ontimer(); 641 638 static void main_adv_ontimer(); 642 639 … … 646 643 static void main_timeout() 647 644 { 648 if (main_timer == 0){645 if (main_timer == 0) { 649 646 main_ontimer(); 650 647 } 651 648 652 if (main_led_timer == 0){653 main_l ed_ontimer();649 if (main_lcd_timer == 0) { 650 main_lcd_ontimer(); 654 651 } 655 652 … … 664 661 const uint8_t led_disp[] = { 0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE4, 0xFE, 0xF6, 0xEE, 0x3E, 0x1A, 0x7A, 0x9E, 0x8E }; 665 662 666 static void main_l ed_ontimer()663 static void main_lcd_ontimer() 667 664 { 668 665 /* 7Seg表示 */ … … 697 694 698 695 /* 3ms後に7SEG表示を更新 */ 699 main_l ed_timer = 3 * 1000;696 main_lcd_timer = 3 * 1000; 700 697 } 701 698 … … 727 724 static void main_ontimer() 728 725 { 726 ER ret; 729 727 uint8_t btn; 730 728 uint16_t ad_value; 731 729 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; 733 742 case main_state_idle: 734 743 /* 10ms後にボタン状態を確認 */ … … 736 745 737 746 /* 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) { 739 748 for (int i = 0; i < main_ad_count; i++) { 740 749 main_ad_avelage[i] -= main_ad_table[i][main_ad_pos]; … … 776 785 777 786 /* ボタン1の処理 */ 778 if (((btn & 0x20) != 0) && !main_btn1_state){787 if (((btn & 0x20) != 0) && !main_btn1_state) { 779 788 main_btn1_count++; 780 if (main_btn1_count > 10){789 if (main_btn1_count > 10) { 781 790 main_btn1_count = 0; 782 791 main_btn1_state = true; … … 785 794 } 786 795 } 787 else if (((btn & 0x20) == 0) && main_btn1_state){796 else if (((btn & 0x20) == 0) && main_btn1_state) { 788 797 main_btn1_count++; 789 if (main_btn1_count > 10){798 if (main_btn1_count > 10) { 790 799 main_btn1_count = 0; 791 800 main_btn1_state = false; … … 796 805 797 806 /* ボタン2の処理 */ 798 if (((btn & 0x80) != 0) && !main_btn2_state){807 if (((btn & 0x80) != 0) && !main_btn2_state) { 799 808 main_btn2_count++; 800 if (main_btn2_count > 10){809 if (main_btn2_count > 10) { 801 810 main_btn2_count = 0; 802 811 main_btn2_state = true; … … 805 814 } 806 815 } 807 else if (((btn & 0x80) == 0) && main_btn2_state){816 else if (((btn & 0x80) == 0) && main_btn2_state) { 808 817 main_btn2_count++; 809 if (main_btn2_count > 10){818 if (main_btn2_count > 10) { 810 819 main_btn2_count = 0; 811 820 main_btn2_state = false; … … 829 838 { 830 839 /* 押されて戻った時に処理する */ 831 if (push)840 if (push) 832 841 return; 833 842 834 843 /* 表示ポート番号 */ 835 if (!main_rev){844 if (!main_rev) { 836 845 main_port_no--; 837 if (main_port_no < 1){846 if (main_port_no < 1) { 838 847 main_port_no = 1; 839 848 main_rev = true; … … 841 850 } 842 851 } 843 else {852 else { 844 853 main_port_no++; 845 if (main_port_no > main_ad_count){854 if (main_port_no > main_ad_count) { 846 855 main_port_no = main_ad_count; 847 856 main_rev = false; … … 857 866 { 858 867 /* 押されて戻った時に処理する */ 859 if (push)868 if (push) 860 869 return; 861 870 … … 866 875 867 876 /* 表示ポート番号 */ 868 if (!main_rev){877 if (!main_rev) { 869 878 main_port_no++; 870 if (main_port_no > main_ad_count){879 if (main_port_no > main_ad_count) { 871 880 main_port_no = main_ad_count; 872 881 main_rev = false; … … 874 883 } 875 884 } 876 else {885 else { 877 886 main_port_no--; 878 if (main_port_no < 1){887 if (main_port_no < 1) { 879 888 main_port_no = 1; 880 889 main_rev = true; … … 893 902 894 903 main_port_no++; 895 if (main_port_no > main_ad_count)904 if (main_port_no > main_ad_count) 896 905 main_port_no = 1; 897 906 -
asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/main.c
r359 r364 45 45 #include <sil.h> 46 46 #include <setjmp.h> 47 #include <stdlib.h> 47 48 #include <string.h> 48 49 #include "syssvc/serial.h" … … 80 81 81 82 ID ws_api_mailboxid = MAIN_DATAQUEUE; 83 #ifndef NOUSE_MPF_NET_BUF 82 84 ID ws_mempoolid = MPF_NET_BUF_256; 83 85 #endif 84 86 #ifdef IF_ETHER_BTUSB 85 87 extern int bt_bnep_mode; 86 88 /* PANU向けリモートアドレス */ 87 89 bd_addr_t remote_addr = {0x00,0x1B,0xDC,0x09,0x27,0x26}; 90 bool_t dhcp_enable = false; 91 #else 92 bool_t dhcp_enable = true; 88 93 #endif 89 94 90 95 uint8_t mac_addr[6] = {0x12, 0x34, 0x56, 0x78, 0x9A, 0x01}; 91 bool_t dhcp_enable = true;92 96 PRI main_task_priority = MAIN_PRIORITY + 1; 93 97 … … 112 116 static void main_timeout(); 113 117 118 extern int ntshell_exit; 119 114 120 int uart_read(char *buf, int cnt, void *extobj) 115 121 { 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; 117 156 } 118 157 … … 120 159 { 121 160 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);137 161 } 138 162 … … 151 175 main_initialize(); 152 176 153 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);177 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 154 178 ntshell_set_prompt(&ntshell, "NTShell>"); 155 179 ntshell_execute(&ntshell); … … 171 195 ER ret; 172 196 197 #ifdef TOPPERS_OMIT_TECS 198 serial_opn_por(SIO_PORTID); 199 #endif 200 serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV); 201 173 202 //wolfSSL_Debugging_ON(); 174 203 175 ntshell_task_init( );204 ntshell_task_init(uart_read, uart_write, &main_obj); 176 205 177 206 main_obj.timer = TMO_FEVR; … … 308 337 } 309 338 339 int 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 351 int 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 310 363 int cmd_logupload(int argc, char **argv) 311 364 { 312 client_task(0); 313 return 0; 365 return client_upload_file(argc, argv); 314 366 } 315 367 … … 330 382 {"dnsc", "DNS client", usrcmd_dnsc }, 331 383 {"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}, 332 391 {"logupload", "Upload log to server", cmd_logupload}, 333 392 {"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 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */ … … 77 76 INCLUDE("ffarch.cfg"); 78 77 78 /* mbed */ 79 INCLUDE("mbed_api.cfg"); 80 79 81 #ifdef IF_ETHER_BTUSB 80 82 INCLUDE("usb_hbth.cfg"); -
asp3_tinet_ecnl_rx/trunk/app2_light/.cproject
r345 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <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"/> 38 38 <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"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.997660944" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <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"/> … … 91 91 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 92 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>93 <option id="toolchain.version" value="4.8.4.201803"/> 94 94 </storageModule> 95 95 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 106 <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"/> 107 107 <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"/> 109 109 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.916652973" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 110 <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"/> … … 160 160 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 161 161 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 162 <option id="toolchain.version" value="4.8.4.201 703"/>162 <option id="toolchain.version" value="4.8.4.201803"/> 163 163 </storageModule> 164 164 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 175 175 <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"/> 176 176 <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"/> 178 178 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.197625944" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 179 179 <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"/> … … 224 224 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> 225 225 <storageModule moduleId="refreshScope" versionNumber="2"> 226 <configuration configurationName="DebugEther"/> 226 227 <configuration configurationName="DebugCitrus"> 227 228 <resource resourceType="PROJECT" workspacePath="/app2_light"/> … … 234 235 </configuration> 235 236 </storageModule> 237 <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> 236 238 </cproject> -
asp3_tinet_ecnl_rx/trunk/app2_light/Debug/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app2_light/DebugCitrus/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app2_light/DebugEther/Makefile
r342 r364 165 165 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 166 166 endif 167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start167 CDEFS := $(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 168 168 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 169 169 -I$(SRCDIR)/../btstack/include \ … … 173 173 -I$(SRCDIR)/../usbhost/src \ 174 174 $(INCLUDES) 175 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.175 LDFLAGS := $(LDFLAGS) -L. 176 176 LIBS := $(LIBS) $(CXXLIBS) 177 177 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 207 207 endif 208 208 209 210 #211 # ネットワークサービスの定義212 #213 NO_USE_TINET_LIBRARY = true214 215 # ネットワークインタフェースの選択、何れか一つ選択する。216 NET_IF = ether217 218 # イーサネット・ディバイスドライバの選択209 ifdef TINETDIR 210 # 211 # ネットワークサービスの定義 212 # 213 NO_USE_TINET_LIBRARY = true 214 215 # ネットワークインタフェースの選択、何れか一つ選択する。 216 NET_IF = ether 217 218 # イーサネット・ディバイスドライバの選択 219 219 NET_DEV = if_rx62n 220 220 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 239 endif 239 240 240 241 # … … 256 257 all: tecs | $(DEPDIR) 257 258 # @$(MAKE) check 258 @$(MAKE) check $(OBJNAME).bin259 # @$(MAKE) check $(OBJNAME).bin 259 260 # @$(MAKE) check $(OBJNAME).srec 261 @$(MAKE) check $(OBJNAME).mot 260 262 else 261 263 #all: check 262 all: check $(OBJNAME).bin264 #all: check $(OBJNAME).bin 263 265 #all: check $(OBJNAME).srec 266 all: check $(OBJNAME).mot 264 267 endif 265 268 … … 269 272 # コンフィギュレータに関する定義 270 273 # 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 \ 274 ifndef 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) 278 else 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 \ 273 281 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 274 282 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 276 284 --symval-table ../../ntshell/echonet/echonet_sym.def \ 277 285 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 286 endif 278 287 CFG_ASMOBJS := $(CFG_ASMOBJS) 279 288 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 421 430 422 431 # 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 # 423 439 # 特別な依存関係の定義 424 440 # … … 429 445 # 430 446 $(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 \ 432 448 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 433 449 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 458 474 $(OBJNAME).srec: $(OBJFILE) 459 475 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 476 477 $(OBJNAME).mot: $(OBJFILE) 478 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 460 479 461 480 # -
asp3_tinet_ecnl_rx/trunk/app2_light/src/echonet_main.c
r351 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 3 * 4 4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 * 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ 37 37 38 /* 38 /* 39 39 * サンプルプログラム(1)の本体 40 40 */ … … 116 116 { 117 117 /* サイズが1以外は受け付けない */ 118 if (size != 1)118 if (size != 1) 119 119 return 0; 120 120 121 121 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 122 122 123 switch (*(uint8_t *)src){123 switch (*(uint8_t *)src) { 124 124 /* ONの場合 */ 125 125 case 0x30: … … 152 152 { 153 153 /* サイズが1以外は受け付けない */ 154 if (size != 1)154 if (size != 1) 155 155 return 0; 156 156 157 157 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 158 158 159 switch (*(uint8_t *)src){159 switch (*(uint8_t *)src) { 160 160 /* 異常発生ありの場合 */ 161 161 case 0x41: … … 180 180 181 181 /* サイズが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) { 186 186 /* 自動の場合 */ 187 187 case 0x41: … … 224 224 uint8_t data[2]; 225 225 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) { 230 230 /* 人体検出ありの場合 */ 231 231 case 0x41: … … 236 236 data[1] = *(uint8_t *)src; 237 237 ret = ecn_brk_wai(data, sizeof(data)); 238 if (ret != E_OK){238 if (ret != E_OK) { 239 239 syslog(LOG_ERROR, "ecn_brk_wai"); 240 240 return 1; … … 249 249 data[1] = *(uint8_t *)src; 250 250 ret = ecn_brk_wai(data, sizeof(data)); 251 if (ret != E_OK){251 if (ret != E_OK) { 252 252 syslog(LOG_ERROR, "ecn_brk_wai"); 253 253 return 1; … … 269 269 uint8_t *p_src; 270 270 271 if (size != 2)271 if (size != 2) 272 272 return 0; 273 273 … … 288 288 uint8_t *p_dst; 289 289 290 if (size != 2)290 if (size != 2) 291 291 return 0; 292 292 … … 306 306 uint8_t *p_src; 307 307 308 if (size != 4)308 if (size != 4) 309 309 return 0; 310 310 … … 326 326 uint8_t *p_dst; 327 327 328 if (size != 4)328 if (size != 4) 329 329 return 0; 330 330 … … 361 361 362 362 ret2 = get_tim(&now); 363 if (ret2 != E_OK) {363 if (ret2 != E_OK) { 364 364 syslog(LOG_ERROR, "get_tim"); 365 365 return; 366 366 } 367 367 368 for (;;){368 for (;;) { 369 369 prev = now; 370 370 … … 374 374 /* 応答電文待ち */ 375 375 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)) { 377 377 syslog(LOG_ERROR, "ecn_trcv_esv"); 378 378 break; … … 380 380 381 381 ret2 = get_tim(&now); 382 if (ret2 != E_OK) {382 if (ret2 != E_OK) { 383 383 syslog(LOG_ERROR, "get_tim"); 384 384 break; … … 395 395 /* 領域解放 */ 396 396 ret = ecn_rel_esv(esv); 397 if (ret != E_OK) {397 if (ret != E_OK) { 398 398 syslog(LOG_ERROR, "ecn_rel_esv"); 399 399 break; … … 404 404 /* 応答電文待ちの割り込みデータ取得 */ 405 405 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 406 if (ret != E_OK) {406 if (ret != E_OK) { 407 407 syslog(LOG_ERROR, "ecn_get_brk_dat"); 408 408 break; … … 414 414 /* 領域解放 */ 415 415 ret = ecn_rel_esv(esv); 416 if (ret != E_OK) {416 if (ret != E_OK) { 417 417 syslog(LOG_ERROR, "ecn_rel_esv"); 418 418 break; … … 425 425 } 426 426 427 bool_t started = false;428 429 427 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 430 428 { … … 434 432 return; 435 433 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 } 446 440 } 447 441 … … 457 451 } 458 452 459 enum main_state_t{ 453 enum main_state_t { 454 main_state_start, 460 455 main_state_idle, 461 456 main_state_search, … … 464 459 int main_timer = TMO_FEVR; 465 460 int main_btn_timer = TMO_FEVR; 466 enum main_state_t main_state = main_state_ idle;461 enum main_state_t main_state = main_state_start; 467 462 bool_t main_btn1_state; 468 463 int main_btn1_count = 0; … … 480 475 sil_wrb_mem((uint8_t *)0x0008C02A, 0x00); 481 476 482 /* 1秒後に人体検知センサを検索*/483 main_state = main_state_s earch;477 /* ECHONETミドルウェアを起動するのを待つ */ 478 main_state = main_state_start; 484 479 main_timer = 1000 * 1000; 485 480 … … 490 485 btn1 = sil_reb_mem((uint8_t *)0x0008C04A); 491 486 /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/ 492 btn2 = sil_reb_mem((uint8_t *) 487 btn2 = sil_reb_mem((uint8_t *)0x0008C040); 493 488 main_btn1_state = (btn1 & 0x80/*0x0x20*/) != 0; 494 489 main_btn2_state = (btn2 & 0x80) != 0; 495 490 491 /* メインタスクを起動 */ 496 492 ER ret = act_tsk(MAIN_TASK); 497 493 if (ret != E_OK) { … … 507 503 int result = main_timer; 508 504 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))) { 511 507 result = main_btn_timer; 512 508 } … … 520 516 static void main_progress(int interval) 521 517 { 522 if (main_timer != TMO_FEVR){518 if (main_timer != TMO_FEVR) { 523 519 main_timer -= interval; 524 if (main_timer < 0){520 if (main_timer < 0) { 525 521 main_timer = 0; 526 522 } 527 523 } 528 524 529 if (main_btn_timer != TMO_FEVR){525 if (main_btn_timer != TMO_FEVR) { 530 526 main_btn_timer -= interval; 531 if (main_btn_timer < 0){527 if (main_btn_timer < 0) { 532 528 main_btn_timer = 0; 533 529 } … … 548 544 549 545 eobjid = ecn_get_eobj(esv); 550 if (eobjid == EOBJ_NULL){546 if (eobjid == EOBJ_NULL) { 551 547 syslog(LOG_ERROR, "ecn_get_eobj"); 552 548 } 553 549 554 550 ret = ecn_itr_ini(&enm, esv); 555 if (ret != E_OK){551 if (ret != E_OK) { 556 552 syslog(LOG_ERROR, "ecn_itr_ini"); 557 553 return; 558 554 } 559 555 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) { 562 558 switch (epc) { 563 559 case 0xD6: 564 switch (main_state){560 switch (main_state) { 565 561 case main_state_search: 566 562 if (eobjid == HUMAN_DETECTION_SENSER_ENOD) { … … 574 570 } 575 571 } 576 if (ret != E_BOVR){572 if (ret != E_BOVR) { 577 573 syslog(LOG_ERROR, "ecn_itr_nxt"); 578 574 break; 579 575 } 580 if (enm.is_eof)576 if (enm.is_eof) 581 577 break; 582 578 } … … 592 588 ER ret; 593 589 594 switch (main_state){590 switch (main_state) { 595 591 case main_state_idle: 596 592 if (len < 2) … … 616 612 static void main_timeout() 617 613 { 618 if (main_timer == 0){614 if (main_timer == 0) { 619 615 main_ontimer(); 620 616 } 621 617 622 if (main_btn_timer == 0){618 if (main_btn_timer == 0) { 623 619 main_btn_ontimer(); 624 620 } … … 629 625 static void main_ontimer() 630 626 { 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; 632 641 case main_state_search: 633 642 /* 人体検知センサ再検索 */ … … 646 655 /* 人体検知センサ検索 */ 647 656 ret = ecn_esv_inf_req(&esv, EOBJ_NULL, 0xD6); 648 if (ret != E_OK){657 if (ret != E_OK) { 649 658 syslog(LOG_ERROR, "ecn_esv_inf_req"); 650 659 return; … … 653 662 /* 電文送信 */ 654 663 ret = ecn_snd_esv(esv); 655 if (ret != E_OK){664 if (ret != E_OK) { 656 665 syslog(LOG_ERROR, "ecn_snd_esv"); 657 666 } … … 674 683 btn1 = sil_reb_mem((uint8_t *)0x0008C04A); 675 684 /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/ 676 btn2 = sil_reb_mem((uint8_t *) 685 btn2 = sil_reb_mem((uint8_t *)0x0008C040); 677 686 678 687 /* ボタン1の処理 */ 679 if (((btn1 & 0x80/*0x20*/) != 0) && !main_btn1_state){688 if (((btn1 & 0x80/*0x20*/) != 0) && !main_btn1_state) { 680 689 main_btn1_count++; 681 if (main_btn1_count > 10){690 if (main_btn1_count > 10) { 682 691 main_btn1_count = 0; 683 692 main_btn1_state = true; … … 686 695 } 687 696 } 688 else if (((btn1 & 0x80/*0x20*/) == 0) && main_btn1_state){697 else if (((btn1 & 0x80/*0x20*/) == 0) && main_btn1_state) { 689 698 main_btn1_count++; 690 if (main_btn1_count > 10){699 if (main_btn1_count > 10) { 691 700 main_btn1_count = 0; 692 701 main_btn1_state = false; … … 697 706 698 707 /* ボタン2の処理 */ 699 if (((btn2 & 0x80) != 0) && !main_btn2_state){708 if (((btn2 & 0x80) != 0) && !main_btn2_state) { 700 709 main_btn2_count++; 701 if (main_btn2_count > 10){710 if (main_btn2_count > 10) { 702 711 main_btn2_count = 0; 703 712 main_btn2_state = true; … … 706 715 } 707 716 } 708 else if (((btn2 & 0x80) == 0) && main_btn2_state){717 else if (((btn2 & 0x80) == 0) && main_btn2_state) { 709 718 main_btn2_count++; 710 if (main_btn2_count > 10){719 if (main_btn2_count > 10) { 711 720 main_btn2_count = 0; 712 721 main_btn2_state = false; … … 717 726 } 718 727 719 enum lighting_mode_t {728 enum lighting_mode_t { 720 729 lighting_mode_auto, /* 自動の場合 */ 721 730 lighting_mode_normal, /* 通常灯の場合 */ … … 736 745 737 746 /* 押されて戻った時に処理する */ 738 if (push)747 if (push) 739 748 return; 740 749 … … 745 754 /* プロパティ設定電文作成 */ 746 755 ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0x80, 1, p_edt); 747 if (ret != E_OK){756 if (ret != E_OK) { 748 757 syslog(LOG_ERROR, "ecn_esv_setc"); 749 758 return; … … 764 773 765 774 /* 押されて戻った時に処理する */ 766 if (push)775 if (push) 767 776 return; 768 777 769 778 /* 点灯モードの切り替え */ 770 switch (main_mode){779 switch (main_mode) { 771 780 /* 自動の場合 */ 772 781 case lighting_mode_auto: … … 798 807 /* プロパティ設定電文作成 */ 799 808 ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0xB6, 1, p_edt); 800 if (ret != E_OK){809 if (ret != E_OK) { 801 810 syslog(LOG_ERROR, "ecn_esv_setc"); 802 811 return; … … 814 823 815 824 /* 照明がOFFで人体検出ありの場合 */ 816 if (!main_on && state == 0x41){825 if (!main_on && state == 0x41) { 817 826 /* 照明をON */ 818 827 main_on = true; 819 828 } 820 829 /* 照明がOFFで人体検出ありの場合 */ 821 else if (main_on && state == 0x42){830 else if (main_on && state == 0x42) { 822 831 /* 照明をOFF */ 823 832 main_on = false; … … 830 839 /* プロパティ設定電文作成 */ 831 840 ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0x80, 1, p_edt); 832 if (ret != E_OK){841 if (ret != E_OK) { 833 842 syslog(LOG_ERROR, "ecn_esv_setc"); 834 843 return; -
asp3_tinet_ecnl_rx/trunk/app2_light/src/main.c
r359 r364 79 79 80 80 ID ws_api_mailboxid = MAIN_DATAQUEUE; 81 #ifndef NOUSE_MPF_NET_BUF 81 82 ID ws_mempoolid = MPF_NET_BUF_256; 83 #endif 82 84 83 85 #ifdef IF_ETHER_BTUSB … … 111 113 static void main_timeout(); 112 114 115 extern int ntshell_exit; 116 113 117 int uart_read(char *buf, int cnt, void *extobj) 114 118 { 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; 116 153 } 117 154 … … 119 156 { 120 157 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);136 158 } 137 159 … … 150 172 main_initialize(); 151 173 152 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);174 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 153 175 ntshell_set_prompt(&ntshell, "NTShell>"); 154 176 ntshell_execute(&ntshell); … … 168 190 ER ret; 169 191 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); 171 198 172 199 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/app2_light/src/main.cfg
r342 r364 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */ … … 77 76 INCLUDE("ffarch.cfg"); 78 77 78 /* mbed */ 79 INCLUDE("mbed_api.cfg"); 80 79 81 #ifdef IF_ETHER_BTUSB 80 82 INCLUDE("usb_hbth.cfg"); -
asp3_tinet_ecnl_rx/trunk/app3_human_detec/.cproject
r345 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <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"/> 38 38 <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"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1251407918" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <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"/> … … 91 91 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 92 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>93 <option id="toolchain.version" value="4.8.4.201803"/> 94 94 </storageModule> 95 95 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 106 <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"/> 107 107 <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"/> 109 109 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.40641547" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 110 <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"/> … … 160 160 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 161 161 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 162 <option id="toolchain.version" value="4.8.4.201 703"/>162 <option id="toolchain.version" value="4.8.4.201803"/> 163 163 </storageModule> 164 164 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 175 175 <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"/> 176 176 <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"/> 178 178 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1795526657" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 179 179 <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"/> … … 224 224 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> 225 225 <storageModule moduleId="refreshScope" versionNumber="2"> 226 <configuration configurationName="DebugEther"/> 227 <configuration configurationName="DebugCitrus"/> 226 228 <configuration configurationName="Debug"> 227 229 <resource resourceType="PROJECT" workspacePath="/app3_human_detec"/> -
asp3_tinet_ecnl_rx/trunk/app3_human_detec/Debug/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app3_human_detec/DebugCitrus/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app3_human_detec/DebugEther/Makefile
r342 r364 165 165 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 166 166 endif 167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start167 CDEFS := $(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 168 168 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 169 169 -I$(SRCDIR)/../btstack/include \ … … 173 173 -I$(SRCDIR)/../usbhost/src \ 174 174 $(INCLUDES) 175 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.175 LDFLAGS := $(LDFLAGS) -L. 176 176 LIBS := $(LIBS) $(CXXLIBS) 177 177 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 207 207 endif 208 208 209 210 #211 # ネットワークサービスの定義212 #213 NO_USE_TINET_LIBRARY = true214 215 # ネットワークインタフェースの選択、何れか一つ選択する。216 NET_IF = ether217 218 # イーサネット・ディバイスドライバの選択209 ifdef TINETDIR 210 # 211 # ネットワークサービスの定義 212 # 213 NO_USE_TINET_LIBRARY = true 214 215 # ネットワークインタフェースの選択、何れか一つ選択する。 216 NET_IF = ether 217 218 # イーサネット・ディバイスドライバの選択 219 219 NET_DEV = if_rx62n 220 220 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 239 endif 239 240 240 241 # … … 256 257 all: tecs | $(DEPDIR) 257 258 # @$(MAKE) check 258 @$(MAKE) check $(OBJNAME).bin259 # @$(MAKE) check $(OBJNAME).bin 259 260 # @$(MAKE) check $(OBJNAME).srec 261 @$(MAKE) check $(OBJNAME).mot 260 262 else 261 263 #all: check 262 all: check $(OBJNAME).bin264 #all: check $(OBJNAME).bin 263 265 #all: check $(OBJNAME).srec 266 all: check $(OBJNAME).mot 264 267 endif 265 268 … … 269 272 # コンフィギュレータに関する定義 270 273 # 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 \ 274 ifndef 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) 278 else 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 \ 273 281 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 274 282 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 276 284 --symval-table ../../ntshell/echonet/echonet_sym.def \ 277 285 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 286 endif 278 287 CFG_ASMOBJS := $(CFG_ASMOBJS) 279 288 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 421 430 422 431 # 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 # 423 439 # 特別な依存関係の定義 424 440 # … … 429 445 # 430 446 $(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 \ 432 448 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 433 449 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 458 474 $(OBJNAME).srec: $(OBJFILE) 459 475 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 476 477 $(OBJNAME).mot: $(OBJFILE) 478 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 460 479 461 480 # -
asp3_tinet_ecnl_rx/trunk/app3_human_detec/src/echonet_main.c
r351 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 3 * 4 4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 * 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ 37 37 38 /* 38 /* 39 39 * サンプルプログラム(1)の本体 40 40 */ … … 85 85 { 86 86 /* サイズが1以外は受け付けない */ 87 if (size != 1)87 if (size != 1) 88 88 return 0; 89 89 90 90 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 91 91 92 switch (*(uint8_t *)src){92 switch (*(uint8_t *)src) { 93 93 /* ONの場合 */ 94 94 case 0x30: … … 117 117 { 118 118 /* サイズが1以外は受け付けない */ 119 if (size != 1)119 if (size != 1) 120 120 return 0; 121 121 122 122 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 123 123 124 switch (*(uint8_t *)src){124 switch (*(uint8_t *)src) { 125 125 /* 異常発生ありの場合 */ 126 126 case 0x41: … … 143 143 { 144 144 /* サイズが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)) { 149 149 *((uint8_t *)item->exinf) = *((uint8_t *)src); 150 150 } 151 151 /* 上記以外は受け付けない */ 152 else {152 else { 153 153 return 0; 154 154 } … … 171 171 172 172 /* サイズが1以外は受け付けない */ 173 if (size != 1)173 if (size != 1) 174 174 return 0; 175 175 176 176 *anno = false; 177 177 178 if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)){178 if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)) { 179 179 /* 以前の検知レベルを保存 */ 180 180 prev_state = eobj->state; … … 185 185 186 186 /* 人体検知状態に変化があった場合 */ 187 if((prev_state < eobj->threshold) != (eobj->state < eobj->threshold)) 188 { 187 if ((prev_state < eobj->threshold) != (eobj->state < eobj->threshold)) { 189 188 /* プロパティ通知 */ 190 189 *anno = true; … … 192 191 } 193 192 /* 上記以外は受け付けない */ 194 else {193 else { 195 194 return 0; 196 195 } … … 199 198 } 200 199 201 /* 200 /* 202 201 * 人体検知状態取得関数 203 202 */ … … 207 206 208 207 /* 閾値より検知レベルが低い場合 */ 209 if (eobj->state < eobj->threshold){208 if (eobj->state < eobj->threshold) { 210 209 /* 人体検知なし */ 211 210 ((uint8_t *)dst)[0] = 0x42; 212 211 } 213 212 /* 閾値より検知レベルが高い場合 */ 214 else {213 else { 215 214 /* 人体検知あり */ 216 215 ((uint8_t *)dst)[0] = 0x41; … … 243 242 244 243 ret2 = get_tim(&now); 245 if (ret2 != E_OK) {244 if (ret2 != E_OK) { 246 245 syslog(LOG_ERROR, "get_tim"); 247 246 return; 248 247 } 249 248 250 for (;;){249 for (;;) { 251 250 prev = now; 252 251 … … 256 255 /* 応答電文待ち */ 257 256 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)) { 259 258 syslog(LOG_ERROR, "ecn_trcv_esv"); 260 259 break; … … 262 261 263 262 ret2 = get_tim(&now); 264 if (ret2 != E_OK) {263 if (ret2 != E_OK) { 265 264 syslog(LOG_ERROR, "get_tim"); 266 265 break; … … 277 276 /* 領域解放 */ 278 277 ret = ecn_rel_esv(esv); 279 if (ret != E_OK) {278 if (ret != E_OK) { 280 279 syslog(LOG_ERROR, "ecn_rel_esv"); 281 280 break; … … 286 285 /* 応答電文待ちの割り込みデータ取得 */ 287 286 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 288 if (ret != E_OK) {287 if (ret != E_OK) { 289 288 syslog(LOG_ERROR, "ecn_get_brk_dat"); 290 289 break; … … 296 295 /* 領域解放 */ 297 296 ret = ecn_rel_esv(esv); 298 if (ret != E_OK) {297 if (ret != E_OK) { 299 298 syslog(LOG_ERROR, "ecn_rel_esv"); 300 299 break; … … 307 306 } 308 307 309 bool_t started = false;310 311 308 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 312 309 { … … 316 313 return; 317 314 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 } 328 321 } 329 322 … … 339 332 } 340 333 341 enum main_state_t{ 334 enum main_state_t { 335 main_state_start, 342 336 main_state_idle, 343 337 }; 344 338 345 339 int main_timer = TMO_FEVR; 346 enum main_state_t main_state = main_state_ idle;340 enum main_state_t main_state = main_state_start; 347 341 bool_t main_btn1_state; 348 342 int main_btn1_count = 0; … … 368 362 sil_wrb_mem((uint8_t *)0x0008C02A, 0x00); 369 363 370 /* 10ms後にボタン状態を確認 */ 371 main_timer = 10 * 1000; 364 /* ECHONETミドルウェアを起動するのを待つ */ 365 main_state = main_state_start; 366 main_timer = 1000 * 1000; 372 367 373 368 /* 12bitADC初期化 */ … … 382 377 main_btn2_state = (btn2 & 0x80) != 0; 383 378 379 /* メインタスクを起動 */ 384 380 ER ret = act_tsk(MAIN_TASK); 385 381 if (ret != E_OK) { … … 401 397 static void main_progress(int interval) 402 398 { 403 if (main_timer == TMO_FEVR)399 if (main_timer == TMO_FEVR) 404 400 return; 405 401 406 402 main_timer -= interval; 407 if (main_timer < 0){403 if (main_timer < 0) { 408 404 main_timer = 0; 409 405 } … … 422 418 423 419 ret = ecn_itr_ini(&enm, esv); 424 if (ret != E_OK){420 if (ret != E_OK) { 425 421 syslog(LOG_ERROR, "ecn_itr_ini"); 426 422 return; 427 423 } 428 424 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) { 431 427 switch (epc) { 432 428 case 0x80: … … 436 432 } 437 433 } 438 if (ret != E_BOVR){434 if (ret != E_BOVR) { 439 435 syslog(LOG_ERROR, "ecn_itr_nxt"); 440 436 break; 441 437 } 442 if (enm.is_eof)438 if (enm.is_eof) 443 439 break; 444 440 } … … 450 446 static void main_break_wait(uint8_t *brkdat, int32_t len) 451 447 { 452 switch (main_state){448 switch (main_state) { 453 449 case main_state_idle: 454 450 break; … … 472 468 static void main_timeout() 473 469 { 470 ER ret; 474 471 uint8_t btn1, btn2; 475 472 uint16_t ad_value; 476 473 uint8_t ad_level; 477 474 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; 482 490 case main_state_idle: 483 491 /* 10ms後にボタン状態を確認 */ … … 485 493 486 494 /* 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) { 488 496 main_ad_avelage -= main_ad_table[main_ad_pos]; 489 497 ad_value = sil_reh_mem((uint16_t *)S12AD_ADDR0_ADDR); … … 492 500 493 501 main_ad_pos++; 494 if (main_ad_pos >= main_ad_table_count){502 if (main_ad_pos >= main_ad_table_count) { 495 503 main_ad_pos = 0; 496 504 } 497 505 498 506 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) { 500 508 /* 1秒変化が続いたら */ 501 if (main_count < 100){509 if (main_count < 100) { 502 510 main_count++; 503 511 } 504 else {512 else { 505 513 main_ad_level = ad_level; 506 514 … … 509 517 } 510 518 } 511 else {519 else { 512 520 main_count = 0; 513 521 } … … 518 526 519 527 /* ボタン状態読み込み */ 520 btn1 = sil_reb_mem((uint8_t *) 521 btn2 = sil_reb_mem((uint8_t *) 528 btn1 = sil_reb_mem((uint8_t *)0x0008C04A); 529 btn2 = sil_reb_mem((uint8_t *)0x0008C040); 522 530 523 531 /* ボタン1の処理 */ 524 if (((btn1 & 0x80) != 0) && !main_btn1_state){532 if (((btn1 & 0x80) != 0) && !main_btn1_state) { 525 533 main_btn1_count++; 526 if (main_btn1_count > 10){534 if (main_btn1_count > 10) { 527 535 main_btn1_count = 0; 528 536 main_btn1_state = true; … … 531 539 } 532 540 } 533 else if (((btn1 & 0x80) == 0) && main_btn1_state){541 else if (((btn1 & 0x80) == 0) && main_btn1_state) { 534 542 main_btn1_count++; 535 if (main_btn1_count > 10){543 if (main_btn1_count > 10) { 536 544 main_btn1_count = 0; 537 545 main_btn1_state = false; … … 542 550 543 551 /* ボタン2の処理 */ 544 if (((btn2 & 0x80) != 0) && !main_btn2_state){552 if (((btn2 & 0x80) != 0) && !main_btn2_state) { 545 553 main_btn2_count++; 546 if (main_btn2_count > 10){554 if (main_btn2_count > 10) { 547 555 main_btn2_count = 0; 548 556 main_btn2_state = true; … … 551 559 } 552 560 } 553 else if (((btn2 & 0x80) == 0) && main_btn2_state){561 else if (((btn2 & 0x80) == 0) && main_btn2_state) { 554 562 main_btn2_count++; 555 if (main_btn2_count > 10){563 if (main_btn2_count > 10) { 556 564 main_btn2_count = 0; 557 565 main_btn2_state = false; … … 577 585 /* プロパティ設定電文作成 */ 578 586 ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt); 579 if (ret != E_OK){587 if (ret != E_OK) { 580 588 syslog(LOG_ERROR, "ecn_esv_setc"); 581 589 return; … … 599 607 600 608 /* 押されて戻った時に処理する */ 601 if (push)609 if (push) 602 610 return; 603 611 604 612 /* 人体検知状態 */ 605 if (!main_rev){613 if (!main_rev) { 606 614 main_level--; 607 if (main_level < 1){615 if (main_level < 1) { 608 616 main_level = 1; 609 617 main_rev = true; 610 618 } 611 619 } 612 else {620 else { 613 621 main_level++; 614 if (main_level > 8){622 if (main_level > 8) { 615 623 main_level = 8; 616 624 main_rev = false; … … 622 630 /* プロパティ設定電文作成 */ 623 631 ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt); 624 if (ret != E_OK){632 if (ret != E_OK) { 625 633 syslog(LOG_ERROR, "ecn_esv_setc"); 626 634 return; … … 641 649 642 650 /* 押されて戻った時に処理する */ 643 if (push)651 if (push) 644 652 return; 645 653 646 654 /* 人体検知状態 */ 647 if (!main_rev){655 if (!main_rev) { 648 656 main_level++; 649 if (main_level > 8){657 if (main_level > 8) { 650 658 main_level = 8; 651 659 main_rev = false; 652 660 } 653 661 } 654 else {662 else { 655 663 main_level--; 656 if (main_level < 1){664 if (main_level < 1) { 657 665 main_level = 1; 658 666 main_rev = true; … … 664 672 /* プロパティ設定電文作成 */ 665 673 ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt); 666 if (ret != E_OK){674 if (ret != E_OK) { 667 675 syslog(LOG_ERROR, "ecn_esv_setc"); 668 676 return; -
asp3_tinet_ecnl_rx/trunk/app3_human_detec/src/main.c
r359 r364 79 79 80 80 ID ws_api_mailboxid = MAIN_DATAQUEUE; 81 #ifndef NOUSE_MPF_NET_BUF 81 82 ID ws_mempoolid = MPF_NET_BUF_256; 83 #endif 82 84 83 85 #ifdef IF_ETHER_BTUSB … … 111 113 static void main_timeout(); 112 114 115 extern int ntshell_exit; 116 113 117 int uart_read(char *buf, int cnt, void *extobj) 114 118 { 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; 116 153 } 117 154 … … 119 156 { 120 157 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);136 158 } 137 159 … … 150 172 main_initialize(); 151 173 152 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);174 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 153 175 ntshell_set_prompt(&ntshell, "NTShell>"); 154 176 ntshell_execute(&ntshell); … … 168 190 ER ret; 169 191 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); 171 198 172 199 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/app3_human_detec/src/main.cfg
r342 r364 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */ … … 77 76 INCLUDE("ffarch.cfg"); 78 77 78 /* mbed */ 79 INCLUDE("mbed_api.cfg"); 80 79 81 #ifdef IF_ETHER_BTUSB 80 82 INCLUDE("usb_hbth.cfg"); -
asp3_tinet_ecnl_rx/trunk/app4_aircon/.cproject
r345 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <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"/> 38 38 <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"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.164426586" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <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"/> … … 91 91 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 92 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>93 <option id="toolchain.version" value="4.8.4.201803"/> 94 94 </storageModule> 95 95 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 106 <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"/> 107 107 <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"/> 109 109 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.431256842" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 110 <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"/> … … 160 160 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 161 161 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 162 <option id="toolchain.version" value="4.8.4.201 703"/>162 <option id="toolchain.version" value="4.8.4.201803"/> 163 163 </storageModule> 164 164 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 175 175 <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"/> 176 176 <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"/> 178 178 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.284884303" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 179 179 <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"/> … … 224 224 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> 225 225 <storageModule moduleId="refreshScope" versionNumber="2"> 226 <configuration configurationName="DebugEther"/> 227 <configuration configurationName="DebugCitrus"/> 226 228 <configuration configurationName="Debug"> 227 229 <resource resourceType="PROJECT" workspacePath="/app4_aircon"/> -
asp3_tinet_ecnl_rx/trunk/app4_aircon/Debug/Makefile
r342 r364 155 155 156 156 # 157 # gdicサービスの定義 158 # 159 160 include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config 161 162 # 157 163 # 共通コンパイルオプションの定義 158 164 # … … 167 173 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 174 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start175 CDEFS := $(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 170 176 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 177 -I$(SRCDIR)/../btstack/include \ … … 175 181 -I$(SRCDIR)/../usbhost/src \ 176 182 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.183 LDFLAGS := $(LDFLAGS) -L. 178 184 LIBS := $(LIBS) $(CXXLIBS) 179 185 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 185 191 APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src 186 192 APPL_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 193 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 194 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 195 APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT 187 196 188 197 # … … 209 218 endif 210 219 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 220 ifdef 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 250 endif 241 251 242 252 # … … 271 281 # コンフィギュレータに関する定義 272 282 # 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 \ 283 ifndef 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) 287 else 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 \ 275 290 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 291 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 293 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 294 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 295 endif 280 296 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 297 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 439 424 440 # 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 # 425 448 # 特別な依存関係の定義 426 449 # … … 431 454 # 432 455 $(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 \ 434 457 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 458 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) -
asp3_tinet_ecnl_rx/trunk/app4_aircon/DebugCitrus/Makefile
r342 r364 155 155 156 156 # 157 # gdicサービスの定義 158 # 159 160 include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config 161 162 # 157 163 # 共通コンパイルオプションの定義 158 164 # … … 167 173 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 174 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start175 CDEFS := $(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 170 176 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 177 -I$(SRCDIR)/../btstack/include \ … … 175 181 -I$(SRCDIR)/../usbhost/src \ 176 182 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.183 LDFLAGS := $(LDFLAGS) -L. 178 184 LIBS := $(LIBS) $(CXXLIBS) 179 185 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 185 191 APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src 186 192 APPL_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 193 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 194 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 195 APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT 187 196 188 197 # … … 209 218 endif 210 219 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 220 ifdef 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 250 endif 241 251 242 252 # … … 271 281 # コンフィギュレータに関する定義 272 282 # 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 \ 283 ifndef 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) 287 else 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 \ 275 290 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 291 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 293 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 294 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 295 endif 280 296 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 297 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 439 424 440 # 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 # 425 448 # 特別な依存関係の定義 426 449 # … … 431 454 # 432 455 $(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 \ 434 457 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 458 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) -
asp3_tinet_ecnl_rx/trunk/app4_aircon/DebugEther/Makefile
r342 r364 153 153 154 154 # 155 # gdicサービスの定義 156 # 157 158 include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config 159 160 # 155 161 # 共通コンパイルオプションの定義 156 162 # … … 165 171 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 166 172 endif 167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start173 CDEFS := $(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 168 174 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 169 175 -I$(SRCDIR)/../btstack/include \ … … 173 179 -I$(SRCDIR)/../usbhost/src \ 174 180 $(INCLUDES) 175 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.181 LDFLAGS := $(LDFLAGS) -L. 176 182 LIBS := $(LIBS) $(CXXLIBS) 177 183 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 183 189 APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src 184 190 APPL_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 191 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 192 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 193 APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT 185 194 186 195 # … … 207 216 endif 208 217 209 210 #211 # ネットワークサービスの定義212 #213 NO_USE_TINET_LIBRARY = true214 215 # ネットワークインタフェースの選択、何れか一つ選択する。216 NET_IF = ether217 218 # イーサネット・ディバイスドライバの選択218 ifdef TINETDIR 219 # 220 # ネットワークサービスの定義 221 # 222 NO_USE_TINET_LIBRARY = true 223 224 # ネットワークインタフェースの選択、何れか一つ選択する。 225 NET_IF = ether 226 227 # イーサネット・ディバイスドライバの選択 219 228 NET_DEV = if_rx62n 220 229 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 248 endif 239 249 240 250 # … … 269 279 # コンフィギュレータに関する定義 270 280 # 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 \ 281 ifndef 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) 285 else 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 \ 273 288 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 274 289 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 276 291 --symval-table ../../ntshell/echonet/echonet_sym.def \ 277 292 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 293 endif 278 294 CFG_ASMOBJS := $(CFG_ASMOBJS) 279 295 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 421 437 422 438 # 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 # 423 446 # 特別な依存関係の定義 424 447 # … … 429 452 # 430 453 $(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 \ 432 455 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 433 456 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) -
asp3_tinet_ecnl_rx/trunk/app4_aircon/src/echonet_main.c
r351 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 4 * Copyright (C) 2014 Cores Co., Ltd. Japan5 * 3 * 4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ 37 37 38 /* 38 /* 39 39 * サンプルプログラム(1)の本体 40 40 */ … … 51 51 #include "echonet_cfg.h" 52 52 #include "target_kernel_impl.h" 53 #include "adafruit_ssd1306.h" 54 #include "draw_font.h" 53 55 54 56 /* TODO: メーカーコードを設定 */ … … 180 182 181 183 /* サイズが1以外は受け付けない */ 182 if (size != 1)184 if (size != 1) 183 185 return 0; 184 186 185 187 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 186 188 187 switch (*(uint8_t *)src){189 switch (*(uint8_t *)src) { 188 190 /* ONの場合 */ 189 191 case 0x30: … … 194 196 data[0] = 0x80; 195 197 ret = ecn_brk_wai(data, sizeof(data)); 196 if (ret != E_OK){198 if (ret != E_OK) { 197 199 syslog(LOG_ERROR, "ecn_brk_wai"); 198 200 return 2; … … 213 215 { 214 216 /* サイズが1以外は受け付けない */ 215 if (size != 1)217 if (size != 1) 216 218 return 0; 217 219 218 220 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 219 221 220 switch (*(uint8_t *)src){222 switch (*(uint8_t *)src) { 221 223 /* 異常発生ありの場合 */ 222 224 case 0x41: … … 242 244 243 245 /* サイズが1以外は受け付けない */ 244 if (size != 1)246 if (size != 1) 245 247 return 0; 246 248 247 switch (*(uint8_t *)src){249 switch (*(uint8_t *)src) { 248 250 /* 自動の場合 */ 249 251 case 0x41: … … 262 264 data[0] = 0xB0; 263 265 ret = ecn_brk_wai(data, sizeof(data)); 264 if (ret != E_OK){266 if (ret != E_OK) { 265 267 syslog(LOG_ERROR, "ecn_brk_wai"); 266 268 return 2; … … 284 286 285 287 /* サイズが1以外は受け付けない */ 286 if (size != 1)288 if (size != 1) 287 289 return 0; 288 290 289 291 /* 0℃~50℃ */ 290 if ((*(uint8_t *)src >= 0x00) && (*(uint8_t *)src <= 0x32)){292 if ((*(uint8_t *)src >= 0x00) && (*(uint8_t *)src <= 0x32)) { 291 293 *((uint8_t *)item->exinf) = *((uint8_t *)src); 292 294 /* メインタスクに通知 */ 293 295 data[0] = 0xB3; 294 296 ret = ecn_brk_wai(data, sizeof(data)); 295 if (ret != E_OK){297 if (ret != E_OK) { 296 298 syslog(LOG_ERROR, "ecn_brk_wai"); 297 299 return 2; … … 299 301 } 300 302 /* 上記以外は受け付けない */ 301 else {303 else { 302 304 return 0; 303 305 } … … 329 331 330 332 ret2 = get_tim(&now); 331 if (ret2 != E_OK) {333 if (ret2 != E_OK) { 332 334 syslog(LOG_ERROR, "get_tim"); 333 335 return; 334 336 } 335 337 336 for (;;){338 for (;;) { 337 339 prev = now; 338 340 … … 342 344 /* 応答電文待ち */ 343 345 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)) { 345 347 syslog(LOG_ERROR, "ecn_trcv_esv"); 346 348 break; … … 348 350 349 351 ret2 = get_tim(&now); 350 if (ret2 != E_OK) {352 if (ret2 != E_OK) { 351 353 syslog(LOG_ERROR, "get_tim"); 352 354 break; … … 363 365 /* 領域解放 */ 364 366 ret = ecn_rel_esv(esv); 365 if (ret != E_OK) {367 if (ret != E_OK) { 366 368 syslog(LOG_ERROR, "ecn_rel_esv"); 367 369 break; … … 372 374 /* 応答電文待ちの割り込みデータ取得 */ 373 375 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 374 if (ret != E_OK) {376 if (ret != E_OK) { 375 377 syslog(LOG_ERROR, "ecn_get_brk_dat"); 376 378 break; … … 382 384 /* 領域解放 */ 383 385 ret = ecn_rel_esv(esv); 384 if (ret != E_OK) {386 if (ret != E_OK) { 385 387 syslog(LOG_ERROR, "ecn_rel_esv"); 386 388 break; … … 393 395 } 394 396 395 bool_t started = false;396 397 397 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 398 398 { … … 402 402 return; 403 403 404 if (up && !started) { 405 started = true; 406 407 /* ECHONETミドルウェアを起動 */ 408 ret = ecn_sta_svc(); 409 if (ret != E_OK) 410 return; 411 412 /* ECHONETミドルウェアを起動するのを待つ */ 413 dly_tsk(100); 404 if (up) { 405 /* インスタンスリスト通知の送信 */ 406 ret = ecn_ntf_inl(); 407 if (ret != E_OK) { 408 syslog(LOG_ERROR, "ecn_ntf_inl"); 409 } 414 410 } 415 411 … … 425 421 } 426 422 427 enum main_state_t{ 423 enum main_state_t { 424 main_state_start, 428 425 main_state_idle, 429 426 main_state_search, … … 436 433 437 434 int main_timer = TMO_FEVR; 438 enum main_state_t main_state = main_state_ idle;435 enum main_state_t main_state = main_state_start; 439 436 int16_t main_ave_templ; 440 437 bool_t main_tmp_fan_on; … … 443 440 int main_btn_timer = TMO_FEVR; 444 441 445 enum main_led_state_t{ 446 main_led_state_idle, 447 main_led_state_on_o, 448 main_led_state_on_n, 449 main_led_state_off_o, 450 main_led_state_off_f1, 451 main_led_state_off_f2, 452 main_led_state_space1, 453 main_led_state_templ_10, 454 main_led_state_templ_1, 455 main_led_state_space2, 456 main_led_state_ave_templ_10, 457 main_led_state_ave_templ_1, 458 main_led_state_space3, 459 main_led_state_mode, 460 main_led_state_space4, 461 }; 462 463 int main_led_timer = TMO_FEVR; 464 enum main_led_state_t main_led_state = main_led_state_idle; 465 bool_t main_led_update; 442 int main_lcd_timer = TMO_FEVR; 443 int main_lcd_state = 0; 466 444 467 445 bool_t main_btn1_state; … … 470 448 int main_btn2_count = 0; 471 449 472 enum main_rly_state_t{ 450 LCD_Handler_t lcd; 451 452 enum main_rly_state_t { 473 453 main_rly_state_off, 474 454 main_rly_state_on … … 486 466 uint8_t btn1, btn2; 487 467 488 /* 7segを"0"と表示 */ 489 sil_wrb_mem((uint8_t *)0x0008C02D, 0xC0); 490 491 /* 1秒後に温度センサーを探す */ 468 /* ECHONETミドルウェアを起動するのを待つ */ 469 main_state = main_state_start; 492 470 main_timer = 1000 * 1000; 493 471 494 472 /* 10ms後にボタン状態を確認 */ 495 473 main_btn_timer = 10 * 1000; 496 497 if(home_air_conditioner_data.property80 == 0x30)498 main_led_state = main_led_state_on_o;499 else500 main_led_state = main_led_state_off_o;501 main_led_timer = 0;502 474 503 475 /* ボタン状態読み込み */ … … 507 479 main_btn2_state = (btn2 & 0x80) != 0; 508 480 481 i2c_init(&lcd.i2c, I2C_SDA, I2C_SCL); 482 i2c_frequency(&lcd.i2c, 100000); 483 484 lcd_init3(&lcd, NC); 485 486 lcd_begin(&lcd, SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS, true); 487 488 lcd_clearDisplay(&lcd); 489 490 lcd_display(&lcd); 491 492 /* 1秒後にLCD表示を更新 */ 493 main_lcd_state = 10; 494 main_lcd_timer = 1000 * 1000; 495 496 /* メインタスクを起動 */ 509 497 ER ret = act_tsk(MAIN_TASK); 510 498 if (ret != E_OK) { … … 520 508 int result = main_timer; 521 509 522 if ((result == TMO_FEVR)523 || ((main_btn_timer != TMO_FEVR) && (main_btn_timer < result))) {510 if ((result == TMO_FEVR) 511 || ((main_btn_timer != TMO_FEVR) && (main_btn_timer < result))) { 524 512 result = main_btn_timer; 525 513 } 526 514 527 if ((result == TMO_FEVR)528 || ((main_l ed_timer != TMO_FEVR) && (main_led_timer < result))){529 result = main_l ed_timer;530 } 531 532 if ((result == TMO_FEVR)533 || ((main_rly_timer != TMO_FEVR) && (main_rly_timer < result))) {515 if ((result == TMO_FEVR) 516 || ((main_lcd_timer != TMO_FEVR) && (main_lcd_timer < result))) { 517 result = main_lcd_timer; 518 } 519 520 if ((result == TMO_FEVR) 521 || ((main_rly_timer != TMO_FEVR) && (main_rly_timer < result))) { 534 522 result = main_rly_timer; 535 523 } … … 543 531 static void main_progress(int interval) 544 532 { 545 if (main_timer != TMO_FEVR){533 if (main_timer != TMO_FEVR) { 546 534 main_timer -= interval; 547 if (main_timer < 0){535 if (main_timer < 0) { 548 536 main_timer = 0; 549 537 } 550 538 } 551 539 552 if (main_btn_timer != TMO_FEVR){540 if (main_btn_timer != TMO_FEVR) { 553 541 main_btn_timer -= interval; 554 if (main_btn_timer < 0){542 if (main_btn_timer < 0) { 555 543 main_btn_timer = 0; 556 544 } 557 545 } 558 546 559 if (main_led_timer != TMO_FEVR){560 main_l ed_timer -= interval;561 if (main_led_timer < 0){562 main_l ed_timer = 0;563 } 564 } 565 566 if (main_rly_timer != TMO_FEVR){547 if (main_lcd_timer != TMO_FEVR) { 548 main_lcd_timer -= interval; 549 if (main_lcd_timer < 0) { 550 main_lcd_timer = 0; 551 } 552 } 553 554 if (main_rly_timer != TMO_FEVR) { 567 555 main_rly_timer -= interval; 568 if (main_rly_timer < 0){556 if (main_rly_timer < 0) { 569 557 main_rly_timer = 0; 570 558 } … … 588 576 589 577 eobjid = ecn_get_eobj(esv); 590 if (eobjid == EOBJ_NULL){578 if (eobjid == EOBJ_NULL) { 591 579 syslog(LOG_ERROR, "ecn_get_eobj"); 592 580 } 593 581 594 582 ret = ecn_itr_ini(&enm, esv); 595 if (ret != E_OK){583 if (ret != E_OK) { 596 584 syslog(LOG_ERROR, "ecn_itr_ini"); 597 585 return; 598 586 } 599 587 600 for (;;) {601 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {588 for (;;) { 589 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) { 602 590 switch (epc) { 603 591 case 0xD6: 604 switch (main_state){592 switch (main_state) { 605 593 case main_state_idle: 606 594 case main_state_search: … … 613 601 break; 614 602 case 0xE0: 615 switch (main_state){603 switch (main_state) { 616 604 case main_state_survey_01: 617 605 /* 温度センサー2温度監視 */ … … 643 631 } 644 632 } 645 if (ret != E_BOVR){633 if (ret != E_BOVR) { 646 634 syslog(LOG_ERROR, "ecn_itr_nxt"); 647 635 break; 648 636 } 649 if (enm.is_eof)637 if (enm.is_eof) 650 638 break; 651 639 } … … 668 656 /* 温度センサー動作状態取得電文作成 */ 669 657 ret = ecn_esv_get(&esv, senserids[no - 1], 0x80); 670 if (ret != E_OK){658 if (ret != E_OK) { 671 659 syslog(LOG_ERROR, "ecn_esv_get"); 672 660 return; … … 675 663 /* 温度計測値取得追加 */ 676 664 ret = ecn_add_epc(esv, 0xE0); 677 if (ret != E_OK){665 if (ret != E_OK) { 678 666 syslog(LOG_ERROR, "ecn_add_epc"); 679 667 680 668 ret = ecn_rel_esv(esv); 681 if (ret != E_OK){669 if (ret != E_OK) { 682 670 syslog(LOG_ERROR, "ecn_rel_esv"); 683 671 } … … 687 675 /* 電文送信 */ 688 676 ret = ecn_snd_esv(esv); 689 if (ret != E_OK){677 if (ret != E_OK) { 690 678 syslog(LOG_ERROR, "ecn_snd_esv"); 691 679 } … … 700 688 int templ = 0; 701 689 702 if (temp_sensor_01_data.property80 == 0x30){690 if (temp_sensor_01_data.property80 == 0x30) { 703 691 templ += ((((uint16_t)temp_sensor_01_data.propertyE0) & 0xFF) << 8) 704 692 | ((((uint16_t)temp_sensor_01_data.propertyE0) & 0xFF00) >> 8); 705 693 count++; 706 694 } 707 if (temp_sensor_02_data.property80 == 0x30){695 if (temp_sensor_02_data.property80 == 0x30) { 708 696 templ += ((((uint16_t)temp_sensor_02_data.propertyE0) & 0xFF) << 8) 709 697 | ((((uint16_t)temp_sensor_02_data.propertyE0) & 0xFF00) >> 8); 710 698 count++; 711 699 } 712 if (temp_sensor_03_data.property80 == 0x30){700 if (temp_sensor_03_data.property80 == 0x30) { 713 701 templ += ((((uint16_t)temp_sensor_03_data.propertyE0) & 0xFF) << 8) 714 702 | ((((uint16_t)temp_sensor_03_data.propertyE0) & 0xFF00) >> 8); 715 703 count++; 716 704 } 717 if (temp_sensor_04_data.property80 == 0x30){705 if (temp_sensor_04_data.property80 == 0x30) { 718 706 templ += ((((uint16_t)temp_sensor_04_data.propertyE0) & 0xFF) << 8) 719 707 | ((((uint16_t)temp_sensor_04_data.propertyE0) & 0xFF00) >> 8); … … 721 709 } 722 710 723 if (count > 0){711 if (count > 0) { 724 712 templ = templ / count; 725 if (templ < -2732)713 if (templ < -2732) 726 714 main_ave_templ = 0x8000; 727 else if (templ > 32766)715 else if (templ > 32766) 728 716 main_ave_templ = 0x7FFF; 729 717 else … … 731 719 732 720 /* FANが停止中の場合 */ 733 if (!main_tmp_fan_on){734 if (main_ave_templ > (10 * home_air_conditioner_data.propertyB3 + 5)){721 if (!main_tmp_fan_on) { 722 if (main_ave_templ > (10 * home_air_conditioner_data.propertyB3 + 5)) { 735 723 main_tmp_fan_on = true; 736 724 … … 741 729 } 742 730 /* FANが稼働中の場合 */ 743 else {744 if (main_ave_templ < (10 * home_air_conditioner_data.propertyB3 - 5)){731 else { 732 if (main_ave_templ < (10 * home_air_conditioner_data.propertyB3 - 5)) { 745 733 main_tmp_fan_on = false; 746 734 … … 760 748 static void main_break_wait(uint8_t *brkdat, int32_t len) 761 749 { 762 switch(main_led_state){ 763 case main_led_state_idle: 764 switch (brkdat[0]) { 765 case 0x01: 766 // Link up/down 767 break; 768 case 0x80: 769 case 0xB0: 770 case 0xB3: 771 if(home_air_conditioner_data.property80 == 0x30) 772 main_led_state = main_led_state_on_o; 773 else 774 main_led_state = main_led_state_off_o; 775 main_led_timer = 0; 776 break; 777 } 778 break; 779 default: 780 main_led_update = true; 781 break; 750 bool_t prev; 751 752 if (brkdat[0] == 0x01) { 753 // Link up/down 754 return; 782 755 } 783 756 784 757 /* 運転モードが送風の場合、温度によらずFANをON */ 785 if (*brkdat == 0xB0) { 786 bool_t prev = main_ctl_fan_on; 758 switch (*brkdat) { 759 case 0x80: 760 if (main_ctl_fan_on) { 761 /* リレー出力をON/OFF */ 762 main_rly_onoff(home_air_conditioner_data.property80 == 0x30); 763 } 764 break; 765 case 0xB0: 766 prev = main_ctl_fan_on; 787 767 main_ctl_fan_on = home_air_conditioner_data.propertyB0 == 0x45; 788 768 789 769 if (prev != main_ctl_fan_on) { 790 770 if (main_ctl_fan_on) { 791 /* リレー出力をON */ 792 if (!main_tmp_fan_on) 793 main_rly_onoff(true); 771 /* リレー出力をON/OFF */ 772 main_rly_onoff(home_air_conditioner_data.property80 == 0x30); 794 773 } 795 774 else { 796 /* リレー出力をOFF */ 797 if (!main_tmp_fan_on) 798 main_rly_onoff(false); 775 /* リレー出力をON/OFF */ 776 main_rly_onoff(main_tmp_fan_on); 799 777 } 800 778 } … … 804 782 static void main_ontimer(); 805 783 static void main_btn_ontimer(); 806 static void main_l ed_ontimer();784 static void main_lcd_ontimer(); 807 785 static void main_rly_ontimer(); 808 786 … … 812 790 static void main_timeout() 813 791 { 814 if (main_timer == 0){792 if (main_timer == 0) { 815 793 main_ontimer(); 816 794 } 817 795 818 if (main_btn_timer == 0){796 if (main_btn_timer == 0) { 819 797 main_btn_ontimer(); 820 798 } 821 799 822 if (main_led_timer == 0){823 main_l ed_ontimer();824 } 825 826 if (main_rly_timer == 0){800 if (main_lcd_timer == 0) { 801 main_lcd_ontimer(); 802 } 803 804 if (main_rly_timer == 0) { 827 805 main_rly_ontimer(); 828 806 } … … 833 811 static void main_ontimer() 834 812 { 835 switch(main_state){ 813 ER ret; 814 815 switch (main_state) { 816 case main_state_start: 817 /* ECHONETミドルウェアを起動 */ 818 ret = ecn_sta_svc(); 819 if (ret != E_OK) { 820 syslog(LOG_ERROR, "ecn_sta_svc"); 821 } 822 823 /* 1秒後に温度センサーを探す */ 824 main_state = main_state_idle; 825 main_timer = 1000 * 1000; 826 break; 836 827 case main_state_idle: 837 828 case main_state_search: … … 890 881 /* 温度センサー検索 */ 891 882 ret = ecn_esv_inf_req(&esv, EOBJ_NULL, 0xD6); 892 if (ret != E_OK){883 if (ret != E_OK) { 893 884 syslog(LOG_ERROR, "ecn_esv_inf_req"); 894 885 return; … … 897 888 /* 電文送信 */ 898 889 ret = ecn_snd_esv(esv); 899 if (ret != E_OK){890 if (ret != E_OK) { 900 891 syslog(LOG_ERROR, "ecn_snd_esv"); 901 892 } … … 917 908 918 909 /* ボタン1の処理 */ 919 if (((btn1 & 0x20) != 0) && !main_btn1_state){910 if (((btn1 & 0x20) != 0) && !main_btn1_state) { 920 911 main_btn1_count++; 921 if (main_btn1_count > 10){912 if (main_btn1_count > 10) { 922 913 main_btn1_count = 0; 923 914 main_btn1_state = true; … … 926 917 } 927 918 } 928 else if (((btn1 & 0x20) == 0) && main_btn1_state){919 else if (((btn1 & 0x20) == 0) && main_btn1_state) { 929 920 main_btn1_count++; 930 if (main_btn1_count > 10){921 if (main_btn1_count > 10) { 931 922 main_btn1_count = 0; 932 923 main_btn1_state = false; … … 937 928 938 929 /* ボタン2の処理 */ 939 if (((btn2 & 0x80) != 0) && !main_btn2_state){930 if (((btn2 & 0x80) != 0) && !main_btn2_state) { 940 931 main_btn2_count++; 941 if (main_btn2_count > 10){932 if (main_btn2_count > 10) { 942 933 main_btn2_count = 0; 943 934 main_btn2_state = true; … … 946 937 } 947 938 } 948 else if (((btn2 & 0x80) == 0) && main_btn2_state){939 else if (((btn2 & 0x80) == 0) && main_btn2_state) { 949 940 main_btn2_count++; 950 if (main_btn2_count > 10){941 if (main_btn2_count > 10) { 951 942 main_btn2_count = 0; 952 943 main_btn2_state = false; … … 957 948 } 958 949 959 uint8_t led_num[] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 }; 960 uint8_t led_onf[] = { 0xA3, 0xAB, 0x8E }; 961 uint8_t led_abcdef[] = { 0xF7, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E }; 962 963 static void main_led_ontimer() 964 { 950 static void main_lcd_ontimer() 951 { 952 char power[] = "電源:off"; 953 char temp1[] = "設定温度:+00℃"; 954 char temp2[] = "測定温度:+00.0℃"; 955 char mode[] = "運転モード:自動 "; 956 char *mode_texts[] = { "その他", "自動 ", "冷房 ", "暖房 ", "除湿 ", "送風 " }; 957 char *btn_texts[] = { "none ", "down ", "left ", "select", "up ", "right " }; 965 958 int temp; 966 959 967 switch(main_led_state){ 968 case main_led_state_idle: 969 /* 7segに' 'を表示 */ 970 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 971 main_led_timer = TMO_FEVR; 972 return; 973 case main_led_state_on_o: 974 /* 7segに'o'を表示 */ 975 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[0]); 976 main_led_state = main_led_state_on_n; 977 break; 978 case main_led_state_on_n: 979 /* 7segに'n'を表示 */ 980 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[1]); 981 main_led_state = main_led_state_space1; 982 break; 983 case main_led_state_off_o: 984 /* 7segに'o'を表示 */ 985 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[0]); 986 main_led_state = main_led_state_off_f1; 987 break; 988 case main_led_state_off_f1: 989 /* 7segに'f'を表示 */ 990 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[2]); 991 main_led_state = main_led_state_off_f2; 992 break; 993 case main_led_state_off_f2: 994 /* 7segに'f'を表示 */ 995 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[2]); 996 main_led_state = main_led_state_space1; 997 break; 998 case main_led_state_space1: 999 /* 7segに' 'を表示 */ 1000 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 1001 main_led_state = main_led_state_templ_10; 1002 break; 1003 case main_led_state_templ_10: 960 switch (main_lcd_state) { 961 case 0: 962 if (home_air_conditioner_data.property80 == 0x30) { 963 power[9] = 'o'; 964 power[10] = 'n'; 965 power[11] = ' '; 966 } 967 else { 968 power[9] = 'o'; 969 power[10] = 'f'; 970 power[11] = 'f'; 971 } 972 lcd_drawString(&lcd, &power[9], X_LINE_HALF_TO_PIX(&lcd, 6), Y_ROW_TO_PIX(&lcd, main_lcd_state + 1), WHITE, BLACK); 973 main_lcd_state++; 974 break; 975 case 1: 976 temp1[15] = (home_air_conditioner_data.propertyB3 >= 0) ? ' ' : '-'; 1004 977 temp = (home_air_conditioner_data.propertyB3 / 10) % 10; 1005 if (temp < 0)978 if (temp < 0) 1006 979 temp = -temp; 1007 /* 7segに温度設定10の位を表示 */ 1008 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]); 1009 main_led_state = main_led_state_templ_1; 1010 break; 1011 case main_led_state_templ_1: 980 temp1[16] = '0' + temp; 1012 981 temp = (home_air_conditioner_data.propertyB3 / 1) % 10; 1013 if (temp < 0)982 if (temp < 0) 1014 983 temp = -temp; 1015 /* 7segに温度設定1の位を表示 */ 1016 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp] & (~0x80)); 1017 main_led_state = main_led_state_space2; 1018 break; 1019 case main_led_state_space2: 1020 /* 7segに' 'を表示 */ 1021 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 1022 main_led_state = main_led_state_ave_templ_10; 1023 break; 1024 case main_led_state_ave_templ_10: 984 temp1[17] = '0' + temp; 985 lcd_drawString(&lcd, &temp1[15], X_LINE_HALF_TO_PIX(&lcd, 10), Y_ROW_TO_PIX(&lcd, main_lcd_state + 1), WHITE, BLACK); 986 main_lcd_state++; 987 break; 988 case 2: 989 temp2[15] = (main_ave_templ >= 0) ? ' ' : '-'; 1025 990 temp = (main_ave_templ / 100) % 10; 1026 if (temp < 0)991 if (temp < 0) 1027 992 temp = -temp; 1028 /* 7segに温度計測値10の位を表示 */ 1029 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]); 1030 main_led_state = main_led_state_ave_templ_1; 1031 break; 1032 case main_led_state_ave_templ_1: 993 temp2[16] = '0' + temp; 1033 994 temp = (main_ave_templ / 10) % 10; 1034 if (temp < 0)995 if (temp < 0) 1035 996 temp = -temp; 1036 /* 7segに温度計測値1の位を表示 */ 1037 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp] & (~0x80)); 1038 main_led_state = main_led_state_space3; 1039 break; 1040 case main_led_state_space3: 1041 /* 7segに' 'を表示 */ 1042 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 1043 main_led_state = main_led_state_mode; 1044 break; 1045 case main_led_state_mode: 997 temp2[17] = '0' + temp; 998 temp = (main_ave_templ / 1) % 10; 999 if (temp < 0) 1000 temp = -temp; 1001 temp2[19] = '0' + temp; 1002 lcd_drawString(&lcd, &temp2[15], X_LINE_HALF_TO_PIX(&lcd, 10), Y_ROW_TO_PIX(&lcd, main_lcd_state + 1), WHITE, BLACK); 1003 main_lcd_state++; 1004 break; 1005 case 3: 1046 1006 temp = home_air_conditioner_data.propertyB0 - 0x40; 1047 /* 7segに運転モードを表示 */ 1048 sil_wrb_mem((uint8_t *)0x0008C02D, led_abcdef[temp]); 1049 main_led_state = main_led_state_space4; 1050 break; 1051 case main_led_state_space4: 1052 if(home_air_conditioner_data.property80 == 0x30) 1053 /* 7segに'.'を表示 */ 1054 sil_wrb_mem((uint8_t *)0x0008C02D, 0x7F); 1055 else 1056 /* 7segに' 'を表示 */ 1057 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 1058 1059 if(main_led_update){ 1060 main_led_update = false; 1061 1062 if(home_air_conditioner_data.property80 == 0x30) 1063 main_led_state = main_led_state_on_o; 1064 else 1065 main_led_state = main_led_state_off_o; 1066 } 1067 else{ 1068 main_led_state = main_led_state_idle; 1069 main_led_timer = TMO_FEVR; 1070 return; 1071 } 1007 lcd_drawString(&lcd, mode_texts[temp], X_LINE_HALF_TO_PIX(&lcd, 12), Y_ROW_TO_PIX(&lcd, main_lcd_state + 1), WHITE, BLACK); 1008 main_lcd_state++; 1009 break; 1010 case 4: 1011 case 5: 1012 case 6: 1013 main_lcd_state++; 1014 break; 1015 case 9: 1016 lcd_display(&lcd); 1017 main_lcd_state = 0; 1018 break; 1019 case 10: 1020 lcd_drawString(&lcd, "エアコン", X_LINE_TO_PIX(&lcd, 6), Y_ROW_TO_PIX(&lcd, 0), WHITE, BLACK); 1021 lcd_drawString(&lcd, power, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 0 + 1), WHITE, BLACK); 1022 lcd_drawString(&lcd, temp1, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 1 + 1), WHITE, BLACK); 1023 lcd_drawString(&lcd, temp2, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 2 + 1), WHITE, BLACK); 1024 lcd_drawString(&lcd, mode, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 3 + 1), WHITE, BLACK); 1025 lcd_display(&lcd); 1026 main_lcd_state = 0; 1072 1027 break; 1073 1028 default: 1074 /* 7segに' 'を表示 */ 1075 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 1076 main_led_state = main_led_state_idle; 1077 main_led_timer = TMO_FEVR; 1078 return; 1079 } 1080 1081 main_led_timer = 500 * 1000; 1029 main_lcd_state++; 1030 break; 1031 } 1032 1033 /* 100ms後にLCD表示を更新 */ 1034 main_lcd_timer = 100 * 1000; 1082 1035 } 1083 1036 … … 1094 1047 1095 1048 /* 押されて戻った時に処理する */ 1096 if (push)1049 if (push) 1097 1050 return; 1098 1051 1099 1052 /* 設定温度 */ 1100 if (main_templ > 0)1053 if (main_templ > 0) 1101 1054 main_templ--; /* - 1℃ */ 1102 1055 … … 1105 1058 /* プロパティ設定電文作成 */ 1106 1059 ret = ecn_esv_seti(&esv, HOME_AIR_CONDITIONER_EOBJ, 0xB3, 1, p_edt); 1107 if (ret != E_OK){1060 if (ret != E_OK) { 1108 1061 syslog(LOG_ERROR, "ecn_esv_seti"); 1109 1062 return; … … 1111 1064 1112 1065 /* 電文送信 */ 1113 ecn_snd_esv(esv);1114 if (ret != E_OK){1066 ret = ecn_snd_esv(esv); 1067 if (ret != E_OK) { 1115 1068 syslog(LOG_ERROR, "ecn_snd_esv"); 1116 1069 } … … 1127 1080 1128 1081 /* 押されて戻った時に処理する */ 1129 if (push)1082 if (push) 1130 1083 return; 1131 1084 1132 1085 /* 設定温度 */ 1133 if (main_templ < 50)1086 if (main_templ < 50) 1134 1087 main_templ++; /* + 1.0℃ */ 1135 1088 … … 1138 1091 /* プロパティ設定電文作成 */ 1139 1092 ret = ecn_esv_seti(&esv, HOME_AIR_CONDITIONER_EOBJ, 0xB3, 1, p_edt); 1140 if (ret != E_OK){1093 if (ret != E_OK) { 1141 1094 syslog(LOG_ERROR, "ecn_esv_seti"); 1142 1095 return; … … 1144 1097 1145 1098 /* 電文送信 */ 1146 ecn_snd_esv(esv);1147 if (ret != E_OK){1099 ret = ecn_snd_esv(esv); 1100 if (ret != E_OK) { 1148 1101 syslog(LOG_ERROR, "ecn_snd_esv"); 1149 1102 } … … 1152 1105 static void main_rly_onoff(bool_t onoff) 1153 1106 { 1154 if (onoff){1107 if (onoff) { 1155 1108 /* リレー出力をON */ 1156 1109 sil_wrb_mem((uint8_t *)0x0008C022, sil_reb_mem((uint8_t *)0x0008C022) | 0x20); 1157 1110 } 1158 else {1111 else { 1159 1112 /* リレー出力をOFF */ 1160 1113 sil_wrb_mem((uint8_t *)0x0008C022, sil_reb_mem((uint8_t *)0x0008C022) & ~0x20); … … 1182 1135 static void main_rly_ontimer() 1183 1136 { 1184 switch(main_rly_state) 1185 { 1137 switch (main_rly_state) { 1186 1138 case main_rly_state_off: 1187 1139 main_rly_timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/app4_aircon/src/main.c
r359 r364 79 79 80 80 ID ws_api_mailboxid = MAIN_DATAQUEUE; 81 #ifndef NOUSE_MPF_NET_BUF 81 82 ID ws_mempoolid = MPF_NET_BUF_256; 83 #endif 82 84 83 85 #ifdef IF_ETHER_BTUSB … … 111 113 static void main_timeout(); 112 114 115 extern int ntshell_exit; 116 113 117 int uart_read(char *buf, int cnt, void *extobj) 114 118 { 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; 116 153 } 117 154 … … 119 156 { 120 157 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);136 158 } 137 159 … … 150 172 main_initialize(); 151 173 152 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);174 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 153 175 ntshell_set_prompt(&ntshell, "NTShell>"); 154 176 ntshell_execute(&ntshell); … … 168 190 ER ret; 169 191 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); 171 198 172 199 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/app4_aircon/src/main.cfg
r342 r364 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */ … … 77 76 INCLUDE("ffarch.cfg"); 78 77 78 /* mbed */ 79 INCLUDE("mbed_api.cfg"); 80 79 81 #ifdef IF_ETHER_BTUSB 80 82 INCLUDE("usb_hbth.cfg"); -
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/.cproject
r345 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1780467547" 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"/> 38 38 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1563250286" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 39 <builder buildPath="${workspace_loc:/app5_temp_sensor}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1575069720" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>39 <builder buildPath="${workspace_loc:/app5_temp_sensor}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1575069720" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.208699470" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1089825677" 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"/> … … 91 91 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 92 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>93 <option id="toolchain.version" value="4.8.4.201803"/> 94 94 </storageModule> 95 95 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 106 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.881482763" 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"/> 107 107 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.391802059" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 108 <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.224601891" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>108 <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.224601891" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 109 109 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.847507658" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 110 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.371365316" 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"/> … … 160 160 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 161 161 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 162 <option id="toolchain.version" value="4.8.4.201 703"/>162 <option id="toolchain.version" value="4.8.4.201803"/> 163 163 </storageModule> 164 164 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 175 175 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.751823232" 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"/> 176 176 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.381079413" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 177 <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1878313362" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>177 <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1878313362" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 178 178 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1422598921" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 179 179 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1459601745" 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"/> … … 224 224 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> 225 225 <storageModule moduleId="refreshScope" versionNumber="2"> 226 <configuration configurationName="DebugEther"/> 227 <configuration configurationName="DebugCitrus"/> 226 228 <configuration configurationName="Debug"> 227 229 <resource resourceType="PROJECT" workspacePath="/app5_temp_sensor"/> … … 231 233 </configuration> 232 234 </storageModule> 235 <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> 233 236 </cproject> -
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/Debug/Makefile
r342 r364 155 155 156 156 # 157 # gdicサービスの定義 158 # 159 160 include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config 161 162 # 157 163 # 共通コンパイルオプションの定義 158 164 # … … 167 173 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 174 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start175 CDEFS := $(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 170 176 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 177 -I$(SRCDIR)/../btstack/include \ … … 175 181 -I$(SRCDIR)/../usbhost/src \ 176 182 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.183 LDFLAGS := $(LDFLAGS) -L. 178 184 LIBS := $(LIBS) $(CXXLIBS) 179 185 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 185 191 APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src 186 192 APPL_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 193 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 194 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 195 APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT 187 196 188 197 # … … 209 218 endif 210 219 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 220 ifdef 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 250 endif 241 251 242 252 # … … 258 268 all: tecs | $(DEPDIR) 259 269 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin270 # @$(MAKE) check $(OBJNAME).bin 261 271 # @$(MAKE) check $(OBJNAME).srec 272 @$(MAKE) check $(OBJNAME).mot 262 273 else 263 274 #all: check 264 all: check $(OBJNAME).bin275 #all: check $(OBJNAME).bin 265 276 #all: check $(OBJNAME).srec 277 all: check $(OBJNAME).mot 266 278 endif 267 279 … … 271 283 # コンフィギュレータに関する定義 272 284 # 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 \ 285 ifndef 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) 289 else 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 \ 275 292 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 293 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 295 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 296 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 297 endif 280 298 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 299 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 441 424 442 # 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 # 425 450 # 特別な依存関係の定義 426 451 # … … 431 456 # 432 457 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 433 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \458 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 434 459 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 460 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 485 $(OBJNAME).srec: $(OBJFILE) 461 486 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 487 488 $(OBJNAME).mot: $(OBJFILE) 489 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 490 463 491 # -
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/DebugCitrus/Makefile
r342 r364 155 155 156 156 # 157 # gdicサービスの定義 158 # 159 160 include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config 161 162 # 157 163 # 共通コンパイルオプションの定義 158 164 # … … 167 173 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 174 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start175 CDEFS := $(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 170 176 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 177 -I$(SRCDIR)/../btstack/include \ … … 175 181 -I$(SRCDIR)/../usbhost/src \ 176 182 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.183 LDFLAGS := $(LDFLAGS) -L. 178 184 LIBS := $(LIBS) $(CXXLIBS) 179 185 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 185 191 APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src 186 192 APPL_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 193 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 194 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 195 APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT 187 196 188 197 # … … 209 218 endif 210 219 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 220 ifdef 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 250 endif 241 251 242 252 # … … 258 268 all: tecs | $(DEPDIR) 259 269 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin270 # @$(MAKE) check $(OBJNAME).bin 261 271 # @$(MAKE) check $(OBJNAME).srec 272 @$(MAKE) check $(OBJNAME).mot 262 273 else 263 274 #all: check 264 all: check $(OBJNAME).bin275 #all: check $(OBJNAME).bin 265 276 #all: check $(OBJNAME).srec 277 all: check $(OBJNAME).mot 266 278 endif 267 279 … … 271 283 # コンフィギュレータに関する定義 272 284 # 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 \ 285 ifndef 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) 289 else 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 \ 275 292 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 293 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 295 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 296 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 297 endif 280 298 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 299 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 441 424 442 # 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 # 425 450 # 特別な依存関係の定義 426 451 # … … 431 456 # 432 457 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 433 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \458 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 434 459 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 460 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 485 $(OBJNAME).srec: $(OBJFILE) 461 486 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 487 488 $(OBJNAME).mot: $(OBJFILE) 489 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 490 463 491 # -
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/DebugEther/Makefile
r342 r364 153 153 154 154 # 155 # gdicサービスの定義 156 # 157 158 include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config 159 160 # 155 161 # 共通コンパイルオプションの定義 156 162 # … … 165 171 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 166 172 endif 167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start173 CDEFS := $(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 168 174 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 169 175 -I$(SRCDIR)/../btstack/include \ … … 173 179 -I$(SRCDIR)/../usbhost/src \ 174 180 $(INCLUDES) 175 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.181 LDFLAGS := $(LDFLAGS) -L. 176 182 LIBS := $(LIBS) $(CXXLIBS) 177 183 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 183 189 APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src 184 190 APPL_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 191 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 192 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 193 APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT 185 194 186 195 # … … 207 216 endif 208 217 209 210 #211 # ネットワークサービスの定義212 #213 NO_USE_TINET_LIBRARY = true214 215 # ネットワークインタフェースの選択、何れか一つ選択する。216 NET_IF = ether217 218 # イーサネット・ディバイスドライバの選択218 ifdef TINETDIR 219 # 220 # ネットワークサービスの定義 221 # 222 NO_USE_TINET_LIBRARY = true 223 224 # ネットワークインタフェースの選択、何れか一つ選択する。 225 NET_IF = ether 226 227 # イーサネット・ディバイスドライバの選択 219 228 NET_DEV = if_rx62n 220 229 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 248 endif 239 249 240 250 # … … 256 266 all: tecs | $(DEPDIR) 257 267 # @$(MAKE) check 258 @$(MAKE) check $(OBJNAME).bin268 # @$(MAKE) check $(OBJNAME).bin 259 269 # @$(MAKE) check $(OBJNAME).srec 270 @$(MAKE) check $(OBJNAME).mot 260 271 else 261 272 #all: check 262 all: check $(OBJNAME).bin273 #all: check $(OBJNAME).bin 263 274 #all: check $(OBJNAME).srec 275 all: check $(OBJNAME).mot 264 276 endif 265 277 … … 269 281 # コンフィギュレータに関する定義 270 282 # 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 \ 283 ifndef 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) 287 else 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 \ 273 290 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 274 291 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 276 293 --symval-table ../../ntshell/echonet/echonet_sym.def \ 277 294 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 295 endif 278 296 CFG_ASMOBJS := $(CFG_ASMOBJS) 279 297 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 421 439 422 440 # 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 # 423 448 # 特別な依存関係の定義 424 449 # … … 429 454 # 430 455 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 431 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \456 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 432 457 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 433 458 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 458 483 $(OBJNAME).srec: $(OBJFILE) 459 484 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 485 486 $(OBJNAME).mot: $(OBJFILE) 487 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 460 488 461 489 # -
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/src/echonet_main.c
r351 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 3 * 4 4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 * 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ 37 37 38 /* 38 /* 39 39 * サンプルプログラム(1)の本体 40 40 */ … … 51 51 #include "echonet_cfg.h" 52 52 #include "target_kernel_impl.h" 53 #include "adafruit_ssd1306.h" 54 #include "draw_font.h" 53 55 54 56 /* TODO: メーカーコードを設定 */ … … 107 109 108 110 /* サイズが1以外は受け付けない */ 109 if (size != 1)111 if (size != 1) 110 112 return 0; 111 113 112 114 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 113 115 114 switch (*(uint8_t *)src){116 switch (*(uint8_t *)src) { 115 117 /* ONの場合 */ 116 118 case 0x30: … … 122 124 data[1] = *(uint8_t *)src; 123 125 ret = ecn_brk_wai(data, sizeof(data)); 124 if (ret != E_OK){126 if (ret != E_OK) { 125 127 syslog(LOG_ERROR, "ecn_brk_wai"); 126 128 return 1; … … 141 143 { 142 144 /* サイズが1以外は受け付けない */ 143 if (size != 1)145 if (size != 1) 144 146 return 0; 145 147 146 148 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 147 149 148 switch (*(uint8_t *)src){150 switch (*(uint8_t *)src) { 149 151 /* 異常発生ありの場合 */ 150 152 case 0x41: … … 172 174 173 175 /* サイズが2以外は受け付けない */ 174 if (size != 2)176 if (size != 2) 175 177 return 0; 176 178 177 179 value = (((uint8_t *)src)[0] << 8) | (((uint8_t *)src)[1] & 0xFF); 178 180 179 if ((value >= -2732) && (value <= 32766)){181 if ((value >= -2732) && (value <= 32766)) { 180 182 eobj->propertyE0 = value; 181 183 /* メインタスクに通知 */ 182 184 data[0] = 0xE0; 183 185 ret = ecn_brk_wai(data, sizeof(data)); 184 if (ret != E_OK){186 if (ret != E_OK) { 185 187 syslog(LOG_ERROR, "ecn_brk_wai"); 186 188 return 2; … … 188 190 } 189 191 /* 上記以外は受け付けない */ 190 else {192 else { 191 193 return 0; 192 194 } … … 195 197 } 196 198 197 /* 199 /* 198 200 * 温度計測値取得関数 199 201 */ … … 204 206 205 207 /* サイズが2以外は受け付けない */ 206 if (size != 2)208 if (size != 2) 207 209 return 0; 208 210 … … 236 238 237 239 ret2 = get_tim(&now); 238 if (ret2 != E_OK) {240 if (ret2 != E_OK) { 239 241 syslog(LOG_ERROR, "get_tim"); 240 242 return; 241 243 } 242 244 243 for (;;){245 for (;;) { 244 246 prev = now; 245 247 … … 249 251 /* 応答電文待ち */ 250 252 ret = ecn_trcv_esv(&esv, timer); 251 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {253 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) { 252 254 syslog(LOG_ERROR, "ecn_trcv_esv"); 253 255 break; … … 255 257 256 258 ret2 = get_tim(&now); 257 if (ret2 != E_OK) {259 if (ret2 != E_OK) { 258 260 syslog(LOG_ERROR, "get_tim"); 259 261 break; … … 270 272 /* 領域解放 */ 271 273 ret = ecn_rel_esv(esv); 272 if (ret != E_OK) {274 if (ret != E_OK) { 273 275 syslog(LOG_ERROR, "ecn_rel_esv"); 274 276 break; … … 279 281 /* 応答電文待ちの割り込みデータ取得 */ 280 282 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 281 if (ret != E_OK) {283 if (ret != E_OK) { 282 284 syslog(LOG_ERROR, "ecn_get_brk_dat"); 283 285 break; … … 289 291 /* 領域解放 */ 290 292 ret = ecn_rel_esv(esv); 291 if (ret != E_OK) {293 if (ret != E_OK) { 292 294 syslog(LOG_ERROR, "ecn_rel_esv"); 293 295 break; … … 300 302 } 301 303 302 bool_t started = false;303 304 304 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 305 305 { … … 309 309 return; 310 310 311 if (up && !started) { 312 started = true; 313 314 /* ECHONETミドルウェアを起動 */ 315 ret = ecn_sta_svc(); 316 if (ret != E_OK) 317 return; 318 319 /* ECHONETミドルウェアを起動するのを待つ */ 320 dly_tsk(100); 311 if (up) { 312 /* インスタンスリスト通知の送信 */ 313 ret = ecn_ntf_inl(); 314 if (ret != E_OK) { 315 syslog(LOG_ERROR, "ecn_ntf_inl"); 316 } 321 317 } 322 318 … … 332 328 } 333 329 334 enum main_state_t{ 330 enum main_state_t { 331 main_state_start, 335 332 main_state_idle, 336 333 }; 337 334 338 335 int main_timer = TMO_FEVR; 339 enum main_state_t main_state = main_state_idle; 340 341 enum main_led_state_t{ 342 main_led_state_idle, 343 main_led_state_on_o, 344 main_led_state_on_n, 345 main_led_state_off_o, 346 main_led_state_off_f1, 347 main_led_state_off_f2, 348 main_led_state_space1, 349 main_led_state_tmpr_minus, 350 main_led_state_tmpr_100, 351 main_led_state_tmpr_10, 352 main_led_state_tmpr_1, 353 main_led_state_space2, 354 main_led_state_humid_10, 355 main_led_state_humid_1, 356 main_led_state_space3, 357 }; 358 359 int main_led_timer = TMO_FEVR; 360 enum main_led_state_t main_led_state = main_led_state_idle; 361 bool_t main_led_update; 336 enum main_state_t main_state = main_state_start; 337 338 int main_lcd_timer = TMO_FEVR; 339 int main_lcd_state = 0; 362 340 363 341 bool_t main_btn1_state; … … 365 343 bool_t main_btn2_state; 366 344 int main_btn2_count = 0; 345 346 LCD_Handler_t lcd; 367 347 368 348 /* … … 387 367 sil_wrb_mem((uint8_t *)0x0008C02D, 0xC0); 388 368 389 /* 10ms後にボタン状態を確認 */ 390 main_timer = 10 * 1000; 369 /* ECHONETミドルウェアを起動するのを待つ */ 370 main_state = main_state_start; 371 main_timer = 1000 * 1000; 391 372 392 373 /* 12bitADC初期化 */ 393 374 sil_wrh_mem((uint16_t *)S12AD_ADEXICR_ADDR, 0x0000); /* 温度センサ出力、内部基準電圧非選択 */ 394 sil_wrh_mem((uint16_t *)S12AD_ADANS0_ADDR, 0x000 1); /* 変換ポートAN000選択、AN001~AN015非選択 */375 sil_wrh_mem((uint16_t *)S12AD_ADANS0_ADDR, 0x0007); /* 変換ポートAN000選択、AN001~AN015非選択 */ 395 376 sil_wrh_mem((uint16_t *)S12AD_ADANS1_ADDR, 0x0000); /* 変換ポートAN016~AN020非選択 */ 396 397 if(temperature_sensor1_data.property80 == 0x30)398 main_led_state = main_led_state_on_o;399 else400 main_led_state = main_led_state_off_o;401 main_led_timer = 0;402 377 403 378 /* ボタン状態読み込み */ … … 407 382 main_btn2_state = (btn2 & 0x80) != 0; 408 383 384 i2c_init(&lcd.i2c, I2C_SDA, I2C_SCL); 385 i2c_frequency(&lcd.i2c, 100000); 386 387 lcd_init3(&lcd, NC); 388 389 lcd_begin(&lcd, SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS, true); 390 391 lcd_clearDisplay(&lcd); 392 393 lcd_display(&lcd); 394 395 /* 1秒後にLCD表示を更新 */ 396 main_lcd_state = 10; 397 main_lcd_timer = 1000 * 1000; 398 399 /* メインタスクを起動 */ 409 400 ER ret = act_tsk(MAIN_TASK); 410 401 if (ret != E_OK) { … … 420 411 int result = main_timer; 421 412 422 if ((result == TMO_FEVR)423 || ((main_l ed_timer != TMO_FEVR) && (main_led_timer < result))){424 result = main_l ed_timer;413 if ((result == TMO_FEVR) 414 || ((main_lcd_timer != TMO_FEVR) && (main_lcd_timer < result))) { 415 result = main_lcd_timer; 425 416 } 426 417 … … 433 424 static void main_progress(int interval) 434 425 { 435 if (main_timer != TMO_FEVR){426 if (main_timer != TMO_FEVR) { 436 427 main_timer -= interval; 437 if (main_timer < 0){428 if (main_timer < 0) { 438 429 main_timer = 0; 439 430 } 440 431 } 441 432 442 if (main_led_timer != TMO_FEVR){443 main_l ed_timer -= interval;444 if (main_led_timer < 0){445 main_l ed_timer = 0;433 if (main_lcd_timer != TMO_FEVR) { 434 main_lcd_timer -= interval; 435 if (main_lcd_timer < 0) { 436 main_lcd_timer = 0; 446 437 } 447 438 } … … 463 454 464 455 ret = ecn_itr_ini(&enm, esv); 465 if (ret != E_OK){456 if (ret != E_OK) { 466 457 syslog(LOG_ERROR, "ecn_itr_ini"); 467 458 return; 468 459 } 469 460 470 for (;;) {471 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {461 for (;;) { 462 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) { 472 463 switch (epc) { 473 464 case 0xE0: 474 if (in_get && (esv->hdr.edata.esv == ESV_SET_GET_RES)){465 if (in_get && (esv->hdr.edata.esv == ESV_SET_GET_RES)) { 475 466 check_response(pdc, p_edt); 476 467 } … … 478 469 } 479 470 } 480 if (ret != E_BOVR){471 if (ret != E_BOVR) { 481 472 syslog(LOG_ERROR, "ecn_itr_nxt"); 482 473 break; 483 474 } 484 if (enm.is_eof)475 if (enm.is_eof) 485 476 break; 486 477 … … 501 492 502 493 if ((len == 2) && (brkdat[0] == 0x80)) { 503 switch (brkdat[1]){494 switch (brkdat[1]) { 504 495 /* ONの場合 */ 505 496 case 0x30: … … 514 505 } 515 506 } 516 517 switch(main_led_state){518 case main_led_state_idle:519 if(temperature_sensor1_data.property80 == 0x30)520 main_led_state = main_led_state_on_o;521 else522 main_led_state = main_led_state_off_o;523 main_led_timer = 0;524 break;525 default:526 main_led_update = true;527 break;528 }529 507 } 530 508 531 509 static void main_ontimer(); 532 static void main_l ed_ontimer();510 static void main_lcd_ontimer(); 533 511 534 512 /* … … 537 515 static void main_timeout() 538 516 { 539 if (main_timer == 0){517 if (main_timer == 0) { 540 518 main_ontimer(); 541 519 } 542 520 543 if(main_led_timer == 0){ 544 main_led_ontimer(); 545 } 546 } 547 548 static int16_t main_ad_tempr = 200; 549 static uint16_t main_ad_table[64]; 550 #define main_ad_table_count (sizeof(main_ad_table) / sizeof(main_ad_table[0])) 521 if (main_lcd_timer == 0) { 522 main_lcd_ontimer(); 523 } 524 } 525 526 #define main_ad_count 3 527 #define main_ad_table_count 64 528 static int16_t main_ad_tempr[main_ad_count] = { 200, 200, 200 }; 529 static uint16_t main_ad_table[main_ad_count][main_ad_table_count]; 551 530 static int main_ad_pos = 0; 552 static uint32_t main_ad_avelage ;553 static int main_count ;554 555 static void main_ad_change( );531 static uint32_t main_ad_avelage[main_ad_count]; 532 static int main_count[main_ad_count]; 533 534 static void main_ad_change(int no, int adv); 556 535 static void main_btn1_change(bool_t push); 557 536 static void main_btn2_change(bool_t push); 558 537 559 uint8_t led_disp[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };560 561 538 static void main_ontimer() 562 539 { 540 ER ret; 563 541 uint8_t btn1, btn2; 564 542 uint16_t ad_value; 565 543 int16_t ad_tempr; 566 uint8_t sseg = sil_reb_mem((uint8_t *)0x0008C02A) & ~0x07; 567 568 switch(main_state){ 544 545 switch (main_state) { 546 case main_state_start: 547 /* ECHONETミドルウェアを起動 */ 548 ret = ecn_sta_svc(); 549 if (ret != E_OK) { 550 syslog(LOG_ERROR, "ecn_sta_svc"); 551 } 552 553 /* 10ms後にボタン状態を確認 */ 554 main_state = main_state_idle; 555 main_timer = 10 * 1000; 556 break; 569 557 case main_state_idle: 570 558 /* 10ms後にボタン状態を確認 */ … … 572 560 573 561 /* ADCの変換結果取得 */ 574 if((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0){ 575 main_ad_avelage -= main_ad_table[main_ad_pos]; 576 ad_value = sil_reh_mem((uint16_t *)S12AD_ADDR0_ADDR); 577 main_ad_table[main_ad_pos] = ad_value; 578 main_ad_avelage += ad_value; 562 if ((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0) { 563 for (int i = 0; i < main_ad_count; i++) { 564 main_ad_avelage[i] -= main_ad_table[i][main_ad_pos]; 565 ad_value = sil_reh_mem(&((uint16_t *)S12AD_ADDR0_ADDR)[i]); 566 main_ad_table[i][main_ad_pos] = ad_value; 567 main_ad_avelage[i] += ad_value; 568 } 579 569 580 570 main_ad_pos++; 581 if (main_ad_pos >= main_ad_table_count){571 if (main_ad_pos >= main_ad_table_count) { 582 572 main_ad_pos = 0; 583 573 } 584 574 585 ad_tempr = ((int16_t)(((main_ad_avelage / main_ad_table_count) >> 3) & 0x1FF)) - 100; 586 if(main_ad_tempr != ad_tempr){ 587 /* 1秒変化が続いたら */ 588 if(main_count < 100){ 589 main_count++; 575 for (int i = 0; i < main_ad_count; i++) { 576 ad_tempr = ((int16_t)(((main_ad_avelage[i] / main_ad_table_count) >> 3) & 0x1FF)) - 100; 577 if (main_ad_tempr[i] != ad_tempr) { 578 /* 1秒変化が続いたら */ 579 if (main_count[i] < 100) { 580 main_count[i]++; 581 } 582 else { 583 main_count[i] = 0; 584 main_ad_tempr[i] = ad_tempr; 585 586 /* ADC状態変化処理 */ 587 main_ad_change(i + 1, ad_tempr); 588 } 590 589 } 591 else{ 592 main_ad_tempr = ad_tempr; 593 594 /* ADC状態変化処理 */ 595 main_ad_change(); 590 else { 591 main_count[i] = 0; 596 592 } 597 } 598 else{ 599 main_count = 0; 600 } 601 602 /* LEDに温度計測値を表示 */ 603 sil_wrb_mem((uint8_t *)0x0008C02A, sseg | led_disp[(main_ad_avelage / main_ad_table_count) >> 9]); 604 605 /* 変換開始(シングルスキャンモード) */ 606 sil_wrb_mem((uint8_t *)S12AD_ADCSR_ADDR, S12AD_ADCSR_ADST_BIT); 593 594 /* 変換開始(シングルスキャンモード) */ 595 sil_wrb_mem((uint8_t *)S12AD_ADCSR_ADDR, S12AD_ADCSR_ADST_BIT); 596 } 607 597 } 608 598 … … 612 602 613 603 /* ボタン1の処理 */ 614 if (((btn1 & 0x20) != 0) && !main_btn1_state){604 if (((btn1 & 0x20) != 0) && !main_btn1_state) { 615 605 main_btn1_count++; 616 if (main_btn1_count > 10){606 if (main_btn1_count > 10) { 617 607 main_btn1_count = 0; 618 608 main_btn1_state = true; … … 621 611 } 622 612 } 623 else if (((btn1 & 0x20) == 0) && main_btn1_state){613 else if (((btn1 & 0x20) == 0) && main_btn1_state) { 624 614 main_btn1_count++; 625 if (main_btn1_count > 10){615 if (main_btn1_count > 10) { 626 616 main_btn1_count = 0; 627 617 main_btn1_state = false; … … 632 622 633 623 /* ボタン2の処理 */ 634 if (((btn2 & 0x80) != 0) && !main_btn2_state){624 if (((btn2 & 0x80) != 0) && !main_btn2_state) { 635 625 main_btn2_count++; 636 if (main_btn2_count > 10){626 if (main_btn2_count > 10) { 637 627 main_btn2_count = 0; 638 628 main_btn2_state = true; … … 641 631 } 642 632 } 643 else if (((btn2 & 0x80) == 0) && main_btn2_state){633 else if (((btn2 & 0x80) == 0) && main_btn2_state) { 644 634 main_btn2_count++; 645 if (main_btn2_count > 10){635 if (main_btn2_count > 10) { 646 636 main_btn2_count = 0; 647 637 main_btn2_state = false; … … 654 644 } 655 645 656 uint8_t led_num[] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 }; 657 uint8_t led_onf[] = { 0xA3, 0xAB, 0x8E }; 658 659 static void main_led_ontimer() 646 static char temp1[] = "温度1:+000.0℃"; 647 static char temp2[] = "温度2:+000.0℃"; 648 static char humid[] = "湿度 :+000.0%"; 649 650 static void main_lcd_ontimer() 660 651 { 661 652 int temp; 662 653 663 switch(main_led_state){ 664 case main_led_state_idle: 665 /* 7segに' 'を表示 */ 666 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 667 main_led_timer = TMO_FEVR; 668 return; 669 case main_led_state_on_o: 670 /* 7segに'o'を表示 */ 671 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[0]); 672 main_led_state = main_led_state_on_n; 673 break; 674 case main_led_state_on_n: 675 /* 7segに'n'を表示 */ 676 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[1]); 677 main_led_state = main_led_state_space1; 678 break; 679 case main_led_state_off_o: 680 /* 7segに'o'を表示 */ 681 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[0]); 682 main_led_state = main_led_state_off_f1; 683 break; 684 case main_led_state_off_f1: 685 /* 7segに'f'を表示 */ 686 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[2]); 687 main_led_state = main_led_state_off_f2; 688 break; 689 case main_led_state_off_f2: 690 /* 7segに'f'を表示 */ 691 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[2]); 692 main_led_state = main_led_state_space1; 693 break; 694 case main_led_state_space1: 695 /* 7segに' 'を表示 */ 696 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 697 if(temperature_sensor1_data.propertyE0 >= 0){ 698 main_led_state = main_led_state_tmpr_10; 699 } 700 else{ 701 main_led_state = main_led_state_tmpr_minus; 702 } 703 break; 704 case main_led_state_tmpr_minus: 705 /* 7segに'-'を表示 */ 706 sil_wrb_mem((uint8_t *)0x0008C02D, 0xBF); 707 if((temperature_sensor1_data.propertyE0 >= 100) 708 || (temperature_sensor1_data.propertyE0 <= -100)) 709 main_led_state = main_led_state_tmpr_100; 710 else 711 main_led_state = main_led_state_tmpr_10; 712 break; 713 case main_led_state_tmpr_100: 654 switch (main_lcd_state) { 655 case 0: 656 temp1[10] = (temperature_sensor1_data.propertyE0 >= 0) ? ' ' : '-'; 714 657 temp = (temperature_sensor1_data.propertyE0 / 1000) % 10; 715 if (temp < 0)658 if (temp < 0) 716 659 temp = -temp; 717 /* 7segに温度計測値10の位を表示 */ 718 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]); 719 main_led_state = main_led_state_tmpr_10; 720 break; 721 case main_led_state_tmpr_10: 660 temp1[11] = '0' + temp; 722 661 temp = (temperature_sensor1_data.propertyE0 / 100) % 10; 723 if (temp < 0)662 if (temp < 0) 724 663 temp = -temp; 725 /* 7segに温度計測値10の位を表示 */ 726 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]); 727 main_led_state = main_led_state_tmpr_1; 728 break; 729 case main_led_state_tmpr_1: 664 temp1[12] = '0' + temp; 730 665 temp = (temperature_sensor1_data.propertyE0 / 10) % 10; 731 if (temp < 0)666 if (temp < 0) 732 667 temp = -temp; 733 /* 7segに温度計測値10の位を表示 */ 734 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp] & (~0x80)); 735 main_led_state = main_led_state_space2; 736 break; 737 case main_led_state_space2: 738 /* 7segに' 'を表示 */ 739 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 740 main_led_state = main_led_state_humid_10; 741 break; 742 case main_led_state_humid_10: 743 temp = humidity_sensor_data.propertyE0 / 10; 744 /* 7segに湿度計測値10の位を表示 */ 745 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]); 746 main_led_state = main_led_state_humid_1; 747 break; 748 case main_led_state_humid_1: 749 temp = humidity_sensor_data.propertyE0 % 10; 750 /* 7segに湿度計測値10の位を表示 */ 751 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp] & (~0x80)); 752 main_led_state = main_led_state_space3; 753 break; 754 case main_led_state_space3: 755 /* 7segに' 'を表示 */ 756 if(temperature_sensor1_data.property80 == 0x30) 757 /* 7segに'.'を表示 */ 758 sil_wrb_mem((uint8_t *)0x0008C02D, 0x7F); 759 else 760 /* 7segに' 'を表示 */ 761 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 762 763 if(main_led_update){ 764 main_led_update = false; 765 766 if(temperature_sensor1_data.property80 == 0x30) 767 main_led_state = main_led_state_on_o; 768 else 769 main_led_state = main_led_state_off_o; 770 } 771 else{ 772 main_led_state = main_led_state_idle; 773 main_led_timer = TMO_FEVR; 774 return; 775 } 668 temp1[13] = '0' + temp; 669 temp = (temperature_sensor1_data.propertyE0 / 1) % 10; 670 if (temp < 0) 671 temp = -temp; 672 temp1[15] = '0' + temp; 673 lcd_drawString(&lcd, &temp1[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), WHITE, BLACK); 674 main_lcd_state++; 675 break; 676 case 1: 677 temp2[10] = (temperature_sensor2_data.propertyE0 >= 0) ? ' ' : '-'; 678 temp = (temperature_sensor2_data.propertyE0 / 1000) % 10; 679 if (temp < 0) 680 temp = -temp; 681 temp2[11] = '0' + temp; 682 temp = (temperature_sensor2_data.propertyE0 / 100) % 10; 683 if (temp < 0) 684 temp = -temp; 685 temp2[12] = '0' + temp; 686 temp = (temperature_sensor2_data.propertyE0 / 10) % 10; 687 if (temp < 0) 688 temp = -temp; 689 temp2[13] = '0' + temp; 690 temp = (temperature_sensor2_data.propertyE0 / 1) % 10; 691 if (temp < 0) 692 temp = -temp; 693 temp2[15] = '0' + temp; 694 lcd_drawString(&lcd, &temp2[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), WHITE, BLACK); 695 main_lcd_state++; 696 break; 697 case 2: 698 humid[10] = ' '; 699 humid[11] = ' '; 700 temp = (humidity_sensor_data.propertyE0 / 100) % 10; 701 humid[12] = '0' + temp; 702 temp = (humidity_sensor_data.propertyE0 / 10) % 10; 703 humid[13] = '0' + temp; 704 temp = (humidity_sensor_data.propertyE0 / 1) % 10; 705 humid[15] = '0' + temp; 706 lcd_drawString(&lcd, &humid[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), WHITE, BLACK); 707 main_lcd_state++; 708 break; 709 case 3: 710 case 4: 711 case 5: 712 case 6: 713 case 7: 714 case 8: 715 main_lcd_state++; 716 break; 717 case 9: 718 lcd_display(&lcd); 719 main_lcd_state = 0; 720 break; 721 case 10: 722 lcd_drawString(&lcd, "温度湿度計", X_LINE_TO_PIX(&lcd, 5), Y_ROW_TO_PIX(&lcd, 0), WHITE, BLACK); 723 lcd_drawString(&lcd, temp1, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 0 + 2), WHITE, BLACK); 724 lcd_drawString(&lcd, temp2, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 1 + 2), WHITE, BLACK); 725 lcd_drawString(&lcd, humid, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 2 + 2), WHITE, BLACK); 726 lcd_display(&lcd); 727 main_lcd_state = 0; 776 728 break; 777 729 default: 778 /* 7segに' 'を表示 */ 779 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF); 780 main_led_state = main_led_state_idle; 781 main_led_timer = TMO_FEVR; 782 return; 783 } 784 785 main_led_timer = 500 * 1000; 730 main_lcd_state = 10; 731 break; 732 } 733 734 /* 100ms後にLCD表示を更新 */ 735 main_lcd_timer = 100 * 1000; 786 736 } 787 737 … … 789 739 * ADC状態変化処理 790 740 */ 791 static void main_ad_change( )741 static void main_ad_change(int no, int adv) 792 742 { 793 743 ER ret; 794 744 T_EDATA *esv; 795 745 uint8_t p_edt[2]; 796 797 p_edt[0] = ((uint16_t)main_ad_tempr) >> 8; 798 p_edt[1] = ((uint16_t)main_ad_tempr) & 0xFF; 746 uint8_t eobj; 747 748 switch (no) { 749 case 1: 750 eobj = TEMP_SENSOR_01_EOBJ; 751 break; 752 case 2: 753 eobj = TEMP_SENSOR_02_EOBJ; 754 break; 755 case 3: 756 eobj = HUMIDITY_SENSOR_EOBJ; 757 break; 758 default: 759 return; 760 } 761 762 p_edt[0] = ((uint16_t)adv) >> 8; 763 p_edt[1] = ((uint16_t)adv) & 0xFF; 799 764 800 765 /* プロパティ設定電文作成 */ 801 ret = ecn_esv_setc(&esv, TEMP_SENSOR_01_EOBJ, 0xE0, 2, p_edt);802 if (ret != E_OK){766 ret = ecn_esv_setc(&esv, eobj, 0xE0, 2, p_edt); 767 if (ret != E_OK) { 803 768 syslog(LOG_ERROR, "ecn_esv_setc"); 804 769 return; … … 806 771 807 772 /* 電文送信 */ 808 ecn_snd_esv(esv); 773 ret = ecn_snd_esv(esv); 774 if (ret != E_OK) { 775 syslog(LOG_ERROR, "ecn_snd_esv"); 776 } 809 777 } 810 778 … … 822 790 823 791 /* 押されて戻った時に処理する */ 824 if (push)792 if (push) 825 793 return; 826 794 827 795 /* 温度計測値 */ 828 796 main_tmpr -= 10; /* - 1.0℃ */ 829 if (main_tmpr < -100) /* -10.0℃までとする */797 if (main_tmpr < -100) /* -10.0℃までとする */ 830 798 main_tmpr = -100; 831 799 … … 835 803 /* プロパティ値書き込み・読み出し要求電文作成 */ 836 804 ret = ecn_esv_set_get(&esv, TEMP_SENSOR_02_EOBJ, 0xE0, 2, p_edt); 837 if (ret != E_OK){805 if (ret != E_OK) { 838 806 syslog(LOG_ERROR, "ecn_esv_setc"); 839 807 return; … … 844 812 /* 書き込みプロパティ追加 */ 845 813 ret = ecn_add_edt(esv, 0x80, 1, p_edt); 846 if (ret) {814 if (ret) { 847 815 syslog(LOG_ERROR, "ecn_add_edt"); 848 816 goto error; … … 851 819 /* プロパティ値書き込み・読み出し要求電文作成:折り返し指定 */ 852 820 ret = ecn_trn_set_get(esv, &trn_pos); 853 if (ret) {821 if (ret) { 854 822 syslog(LOG_ERROR, "ecn_trn_set_get"); 855 823 goto error; … … 858 826 /* 読み出しプロパティ追加 */ 859 827 ret = ecn_add_epc(esv, 0xE0); 860 if (ret) {828 if (ret) { 861 829 syslog(LOG_ERROR, "ecn_add_epc"); 862 830 goto error; … … 865 833 /* プロパティ値書き込み・読み出し要求電文作成:終了指定 */ 866 834 ret = ecn_end_set_get(esv, trn_pos); 867 if (ret) {835 if (ret) { 868 836 syslog(LOG_ERROR, "ecn_end_set_get"); 869 837 goto error; … … 872 840 /* 電文送信 */ 873 841 ret = ecn_snd_esv(esv); 874 if (ret != E_OK){842 if (ret != E_OK) { 875 843 syslog(LOG_ERROR, "ecn_snd_esv"); 876 844 } … … 879 847 /* 領域解放 */ 880 848 ret = ecn_rel_esv(esv); 881 if (ret != E_OK) {849 if (ret != E_OK) { 882 850 syslog(LOG_ERROR, "ecn_rel_esv"); 883 851 } … … 895 863 896 864 /* 押されて戻った時に処理する */ 897 if (push)865 if (push) 898 866 return; 899 867 900 868 /* 温度計測値 */ 901 869 main_tmpr += 10; /* + 1.0℃ */ 902 if (main_tmpr > 400) /* +40.0℃までとする */870 if (main_tmpr > 400) /* +40.0℃までとする */ 903 871 main_tmpr = 400; 904 872 … … 908 876 /* プロパティ値書き込み・読み出し要求電文作成 */ 909 877 ret = ecn_esv_set_get(&esv, TEMP_SENSOR_02_EOBJ, 0xE0, 2, p_edt); 910 if (ret != E_OK){878 if (ret != E_OK) { 911 879 syslog(LOG_ERROR, "ecn_esv_setc"); 912 880 return; … … 917 885 /* 書き込みプロパティ追加 */ 918 886 ret = ecn_add_edt(esv, 0x80, 1, p_edt); 919 if (ret) {887 if (ret) { 920 888 syslog(LOG_ERROR, "ecn_add_edt"); 921 889 goto error; … … 924 892 /* プロパティ値書き込み・読み出し要求電文作成:折り返し指定 */ 925 893 ret = ecn_trn_set_get(esv, &trn_pos); 926 if (ret) {894 if (ret) { 927 895 syslog(LOG_ERROR, "ecn_trn_set_get"); 928 896 goto error; … … 931 899 /* 読み出しプロパティ追加 */ 932 900 ret = ecn_add_epc(esv, 0xE0); 933 if (ret) {901 if (ret) { 934 902 syslog(LOG_ERROR, "ecn_add_epc"); 935 903 goto error; … … 938 906 /* プロパティ値書き込み・読み出し要求電文作成:終了指定 */ 939 907 ret = ecn_end_set_get(esv, trn_pos); 940 if (ret) {908 if (ret) { 941 909 syslog(LOG_ERROR, "ecn_end_set_get"); 942 910 goto error; … … 945 913 /* 電文送信 */ 946 914 ret = ecn_snd_esv(esv); 947 if (ret != E_OK){915 if (ret != E_OK) { 948 916 syslog(LOG_ERROR, "ecn_snd_esv"); 949 917 } … … 952 920 /* 領域解放 */ 953 921 ret = ecn_rel_esv(esv); 954 if (ret != E_OK) {922 if (ret != E_OK) { 955 923 syslog(LOG_ERROR, "ecn_rel_esv"); 956 924 } … … 962 930 static bool_t check_response(uint8_t pdc, uint8_t *p_edt) 963 931 { 964 if ((pdc != 2)932 if ((pdc != 2) 965 933 || (p_edt[0] != ((uint16_t)main_tmpr) >> 8) 966 || (p_edt[1] != ((uint16_t)main_tmpr) & 0xFF)) 967 { 934 || (p_edt[1] != ((uint16_t)main_tmpr) & 0xFF)) { 968 935 syslog(LOG_WARNING, "epc_set_get response NG"); 969 936 return false; -
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/src/main.c
r359 r364 79 79 80 80 ID ws_api_mailboxid = MAIN_DATAQUEUE; 81 #ifndef NOUSE_MPF_NET_BUF 81 82 ID ws_mempoolid = MPF_NET_BUF_256; 83 #endif 82 84 83 85 #ifdef IF_ETHER_BTUSB … … 111 113 static void main_timeout(); 112 114 115 extern int ntshell_exit; 116 113 117 int uart_read(char *buf, int cnt, void *extobj) 114 118 { 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; 116 153 } 117 154 … … 119 156 { 120 157 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);136 158 } 137 159 … … 150 172 main_initialize(); 151 173 152 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);174 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 153 175 ntshell_set_prompt(&ntshell, "NTShell>"); 154 176 ntshell_execute(&ntshell); … … 168 190 ER ret; 169 191 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); 171 198 172 199 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/src/main.cfg
r342 r364 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */ … … 77 76 INCLUDE("ffarch.cfg"); 78 77 78 /* mbed */ 79 INCLUDE("mbed_api.cfg"); 80 79 81 #ifdef IF_ETHER_BTUSB 80 82 INCLUDE("usb_hbth.cfg"); -
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/.cproject
r345 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1216939361" 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"/> 38 38 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.540335225" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 39 <builder buildPath="${workspace_loc:/app6_hot_water_pot}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.439102208" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>39 <builder buildPath="${workspace_loc:/app6_hot_water_pot}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.439102208" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1024280160" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1144202648" 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"/> … … 91 91 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 92 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>93 <option id="toolchain.version" value="4.8.4.201803"/> 94 94 </storageModule> 95 95 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 106 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1168710633" 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"/> 107 107 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1876106175" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 108 <builder buildPath="${workspace_loc:/app6_hot_water_pot}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1796295428" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>108 <builder buildPath="${workspace_loc:/app6_hot_water_pot}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1796295428" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 109 109 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1665728023" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 110 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1889854330" 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"/> … … 160 160 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 161 161 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 162 <option id="toolchain.version" value="4.8.4.201 703"/>162 <option id="toolchain.version" value="4.8.4.201803"/> 163 163 </storageModule> 164 164 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 175 175 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.927887230" 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"/> 176 176 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.796976276" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 177 <builder buildPath="${workspace_loc:/app6_hot_water_pot}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.505980419" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>177 <builder buildPath="${workspace_loc:/app6_hot_water_pot}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.505980419" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 178 178 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1631836614" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 179 179 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1777057244" 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"/> … … 224 224 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> 225 225 <storageModule moduleId="refreshScope" versionNumber="2"> 226 <configuration configurationName="DebugEther"/> 227 <configuration configurationName="DebugCitrus"/> 226 228 <configuration configurationName="Debug"> 227 229 <resource resourceType="PROJECT" workspacePath="/app6_hot_water_pot"/> -
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/Debug/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/DebugCitrus/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/DebugEther/Makefile
r342 r364 165 165 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 166 166 endif 167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start167 CDEFS := $(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 168 168 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 169 169 -I$(SRCDIR)/../btstack/include \ … … 173 173 -I$(SRCDIR)/../usbhost/src \ 174 174 $(INCLUDES) 175 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.175 LDFLAGS := $(LDFLAGS) -L. 176 176 LIBS := $(LIBS) $(CXXLIBS) 177 177 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 207 207 endif 208 208 209 210 #211 # ネットワークサービスの定義212 #213 NO_USE_TINET_LIBRARY = true214 215 # ネットワークインタフェースの選択、何れか一つ選択する。216 NET_IF = ether217 218 # イーサネット・ディバイスドライバの選択209 ifdef TINETDIR 210 # 211 # ネットワークサービスの定義 212 # 213 NO_USE_TINET_LIBRARY = true 214 215 # ネットワークインタフェースの選択、何れか一つ選択する。 216 NET_IF = ether 217 218 # イーサネット・ディバイスドライバの選択 219 219 NET_DEV = if_rx62n 220 220 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 239 endif 239 240 240 241 # … … 256 257 all: tecs | $(DEPDIR) 257 258 # @$(MAKE) check 258 @$(MAKE) check $(OBJNAME).bin259 # @$(MAKE) check $(OBJNAME).bin 259 260 # @$(MAKE) check $(OBJNAME).srec 261 @$(MAKE) check $(OBJNAME).mot 260 262 else 261 263 #all: check 262 all: check $(OBJNAME).bin264 #all: check $(OBJNAME).bin 263 265 #all: check $(OBJNAME).srec 266 all: check $(OBJNAME).mot 264 267 endif 265 268 … … 269 272 # コンフィギュレータに関する定義 270 273 # 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 \ 274 ifndef 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) 278 else 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 \ 273 281 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 274 282 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 276 284 --symval-table ../../ntshell/echonet/echonet_sym.def \ 277 285 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 286 endif 278 287 CFG_ASMOBJS := $(CFG_ASMOBJS) 279 288 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 421 430 422 431 # 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 # 423 439 # 特別な依存関係の定義 424 440 # … … 429 445 # 430 446 $(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 \ 432 448 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 433 449 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 458 474 $(OBJNAME).srec: $(OBJFILE) 459 475 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 476 477 $(OBJNAME).mot: $(OBJFILE) 478 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 460 479 461 480 # -
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src/echonet_main.c
r351 r364 318 318 } 319 319 320 bool_t started = false;321 322 320 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 323 321 { … … 327 325 return; 328 326 329 if (up && !started) { 330 started = true; 331 332 /* ECHONETミドルウェアを起動 */ 333 ret = ecn_sta_svc(); 334 if (ret != E_OK) 335 return; 336 337 /* ECHONETミドルウェアを起動するのを待つ */ 338 dly_tsk(100); 327 if (up) { 328 /* インスタンスリスト通知の送信 */ 329 ret = ecn_ntf_inl(); 330 if (ret != E_OK) { 331 syslog(LOG_ERROR, "ecn_ntf_inl"); 332 } 339 333 } 340 334 … … 342 336 uint8_t data[2]; 343 337 data[0] = 0x01; 344 data[1] = up ? 0x01 : 0x02;345 338 ret = ecn_brk_wai(data, sizeof(data)); 346 339 if (ret != E_OK) { … … 351 344 352 345 enum main_state_t{ 346 main_state_start, 353 347 main_state_idle, 354 348 main_state_search, … … 357 351 358 352 int main_timer = TMO_FEVR; 359 enum main_state_t main_state = main_state_ idle;353 enum main_state_t main_state = main_state_start; 360 354 int main_retry; 361 355 … … 377 371 sil_wrb_mem((uint8_t *)0x0008C02A, 0x7F); 378 372 379 /* 1秒後にブザーを検索*/380 main_state = main_state_s earch;373 /* ECHONETミドルウェアを起動するのを待つ */ 374 main_state = main_state_start; 381 375 main_timer = 1000 * 1000; 382 376 … … 390 384 main_btn2_state = (btn2 & 0x80) != 0; 391 385 386 /* メインタスクを起動 */ 392 387 ER ret = act_tsk(MAIN_TASK); 393 388 if (ret != E_OK) { … … 557 552 558 553 switch(main_state){ 554 case main_state_start: 555 /* ECHONETミドルウェアを起動 */ 556 ret = ecn_sta_svc(); 557 if (ret != E_OK) { 558 syslog(LOG_ERROR, "ecn_sta_svc"); 559 } 560 561 /* 1秒後にブザーを検索 */ 562 main_state = main_state_search; 563 main_timer = 1000 * 1000; 564 break; 559 565 case main_state_idle: 560 566 syslog(LOG_ERROR, "timeout faild on main_state_idle"); -
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src/main.c
r359 r364 79 79 80 80 ID ws_api_mailboxid = MAIN_DATAQUEUE; 81 #ifndef NOUSE_MPF_NET_BUF 81 82 ID ws_mempoolid = MPF_NET_BUF_256; 83 #endif 82 84 83 85 #ifdef IF_ETHER_BTUSB … … 111 113 static void main_timeout(); 112 114 115 extern int ntshell_exit; 116 113 117 int uart_read(char *buf, int cnt, void *extobj) 114 118 { 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; 116 153 } 117 154 … … 119 156 { 120 157 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);136 158 } 137 159 … … 150 172 main_initialize(); 151 173 152 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);174 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 153 175 ntshell_set_prompt(&ntshell, "NTShell>"); 154 176 ntshell_execute(&ntshell); … … 168 190 ER ret; 169 191 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); 171 198 172 199 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src/main.cfg
r342 r364 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */ … … 77 76 INCLUDE("ffarch.cfg"); 78 77 78 /* mbed */ 79 INCLUDE("mbed_api.cfg"); 80 79 81 #ifdef IF_ETHER_BTUSB 80 82 INCLUDE("usb_hbth.cfg"); -
asp3_tinet_ecnl_rx/trunk/app7_buzzer/.cproject
r345 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.22052017" 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"/> 38 38 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.809811830" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 39 <builder buildPath="${workspace_loc:/app7_buzzer}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1219406240" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>39 <builder buildPath="${workspace_loc:/app7_buzzer}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1219406240" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.55394195" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.29306339" 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"/> … … 91 91 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 92 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>93 <option id="toolchain.version" value="4.8.4.201803"/> 94 94 </storageModule> 95 95 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 106 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.220056680" 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"/> 107 107 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1058738126" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 108 <builder buildPath="${workspace_loc:/app7_buzzer}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.819853925" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>108 <builder buildPath="${workspace_loc:/app7_buzzer}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.819853925" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 109 109 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.177325841" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 110 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.316212372" 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"/> … … 160 160 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 161 161 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 162 <option id="toolchain.version" value="4.8.4.201 703"/>162 <option id="toolchain.version" value="4.8.4.201803"/> 163 163 </storageModule> 164 164 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 175 175 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1163476113" 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"/> 176 176 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.425808681" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 177 <builder buildPath="${workspace_loc:/app7_buzzer}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1541555009" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>177 <builder buildPath="${workspace_loc:/app7_buzzer}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1541555009" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 178 178 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.646094520" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 179 179 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1827999297" 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"/> … … 224 224 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> 225 225 <storageModule moduleId="refreshScope" versionNumber="2"> 226 <configuration configurationName="DebugEther"/> 227 <configuration configurationName="DebugCitrus"/> 226 228 <configuration configurationName="Debug"> 227 229 <resource resourceType="PROJECT" workspacePath="/app7_buzzer"/> -
asp3_tinet_ecnl_rx/trunk/app7_buzzer/Debug/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app7_buzzer/DebugCitrus/Makefile
r342 r364 167 167 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 168 168 endif 169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start169 CDEFS := $(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 170 170 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 171 171 -I$(SRCDIR)/../btstack/include \ … … 175 175 -I$(SRCDIR)/../usbhost/src \ 176 176 $(INCLUDES) 177 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.177 LDFLAGS := $(LDFLAGS) -L. 178 178 LIBS := $(LIBS) $(CXXLIBS) 179 179 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 209 209 endif 210 210 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 211 ifdef 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 241 endif 241 242 242 243 # … … 258 259 all: tecs | $(DEPDIR) 259 260 # @$(MAKE) check 260 @$(MAKE) check $(OBJNAME).bin261 # @$(MAKE) check $(OBJNAME).bin 261 262 # @$(MAKE) check $(OBJNAME).srec 263 @$(MAKE) check $(OBJNAME).mot 262 264 else 263 265 #all: check 264 all: check $(OBJNAME).bin266 #all: check $(OBJNAME).bin 265 267 #all: check $(OBJNAME).srec 268 all: check $(OBJNAME).mot 266 269 endif 267 270 … … 271 274 # コンフィギュレータに関する定義 272 275 # 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 \ 276 ifndef 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) 280 else 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 \ 275 283 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 276 284 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 278 286 --symval-table ../../ntshell/echonet/echonet_sym.def \ 279 287 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 288 endif 280 289 CFG_ASMOBJS := $(CFG_ASMOBJS) 281 290 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 423 432 424 433 # 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 # 425 441 # 特別な依存関係の定義 426 442 # … … 431 447 # 432 448 $(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 \ 434 450 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 435 451 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 460 476 $(OBJNAME).srec: $(OBJFILE) 461 477 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 478 479 $(OBJNAME).mot: $(OBJFILE) 480 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 462 481 463 482 # -
asp3_tinet_ecnl_rx/trunk/app7_buzzer/DebugEther/Makefile
r342 r364 165 165 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 166 166 endif 167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start167 CDEFS := $(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 168 168 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 169 169 -I$(SRCDIR)/../btstack/include \ … … 173 173 -I$(SRCDIR)/../usbhost/src \ 174 174 $(INCLUDES) 175 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.175 LDFLAGS := $(LDFLAGS) -L. 176 176 LIBS := $(LIBS) $(CXXLIBS) 177 177 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 207 207 endif 208 208 209 210 #211 # ネットワークサービスの定義212 #213 NO_USE_TINET_LIBRARY = true214 215 # ネットワークインタフェースの選択、何れか一つ選択する。216 NET_IF = ether217 218 # イーサネット・ディバイスドライバの選択209 ifdef TINETDIR 210 # 211 # ネットワークサービスの定義 212 # 213 NO_USE_TINET_LIBRARY = true 214 215 # ネットワークインタフェースの選択、何れか一つ選択する。 216 NET_IF = ether 217 218 # イーサネット・ディバイスドライバの選択 219 219 NET_DEV = if_rx62n 220 220 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 239 endif 239 240 240 241 # … … 256 257 all: tecs | $(DEPDIR) 257 258 # @$(MAKE) check 258 @$(MAKE) check $(OBJNAME).bin259 # @$(MAKE) check $(OBJNAME).bin 259 260 # @$(MAKE) check $(OBJNAME).srec 261 @$(MAKE) check $(OBJNAME).mot 260 262 else 261 263 #all: check 262 all: check $(OBJNAME).bin264 #all: check $(OBJNAME).bin 263 265 #all: check $(OBJNAME).srec 266 all: check $(OBJNAME).mot 264 267 endif 265 268 … … 269 272 # コンフィギュレータに関する定義 270 273 # 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 \ 274 ifndef 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) 278 else 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 \ 273 281 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 274 282 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 276 284 --symval-table ../../ntshell/echonet/echonet_sym.def \ 277 285 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 286 endif 278 287 CFG_ASMOBJS := $(CFG_ASMOBJS) 279 288 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 421 430 422 431 # 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 # 423 439 # 特別な依存関係の定義 424 440 # … … 429 445 # 430 446 $(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 \ 432 448 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 433 449 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 458 474 $(OBJNAME).srec: $(OBJFILE) 459 475 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 476 477 $(OBJNAME).mot: $(OBJFILE) 478 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 460 479 461 480 # -
asp3_tinet_ecnl_rx/trunk/app7_buzzer/src/echonet_main.c
r351 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 3 * 4 4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 * 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ 37 37 38 /* 38 /* 39 39 * サンプルプログラム(1)の本体 40 40 */ … … 106 106 { 107 107 /* サイズが1以外は受け付けない */ 108 if (size != 1)108 if (size != 1) 109 109 return 0; 110 110 111 111 *anno = *((uint8_t*)item->exinf) != *((uint8_t*)src); 112 112 113 switch (*(uint8_t *)src){113 switch (*(uint8_t *)src) { 114 114 /* ONの場合 */ 115 115 case 0x30: … … 138 138 { 139 139 /* サイズが1以外は受け付けない */ 140 if (size != 1)140 if (size != 1) 141 141 return 0; 142 142 143 143 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 144 144 145 switch (*(uint8_t *)src){145 switch (*(uint8_t *)src) { 146 146 /* 異常発生ありの場合 */ 147 147 case 0x41: … … 166 166 167 167 /* サイズが1以外は受け付けない */ 168 if (size != 1)169 return 0; 170 171 switch (*(uint8_t *)src){168 if (size != 1) 169 return 0; 170 171 switch (*(uint8_t *)src) { 172 172 /* 音発生有の場合 */ 173 173 case 0x41: … … 199 199 200 200 /* サイズが1以外は受け付けない */ 201 if (size != 1)201 if (size != 1) 202 202 return 0; 203 203 … … 208 208 data[1] = (*((uint8_t *)src) == 0x41) ? 0x01 : 0x00; 209 209 ret = ecn_brk_wai(data, sizeof(data)); 210 if (ret != E_OK){210 if (ret != E_OK) { 211 211 syslog(LOG_ERROR, "ecn_brk_wai"); 212 212 } … … 224 224 225 225 /* サイズが1以外は受け付けない */ 226 if (size != 1)226 if (size != 1) 227 227 return 0; 228 228 … … 233 233 data[1] = (*((uint8_t *)src) == 0x41) ? 0x01 : 0x00; 234 234 ret = ecn_brk_wai(data, sizeof(data)); 235 if (ret != E_OK){235 if (ret != E_OK) { 236 236 syslog(LOG_ERROR, "ecn_brk_wai"); 237 237 } … … 263 263 264 264 ret2 = get_tim(&now); 265 if (ret2 != E_OK) {265 if (ret2 != E_OK) { 266 266 syslog(LOG_ERROR, "get_tim"); 267 267 return; 268 268 } 269 269 270 for (;;){270 for (;;) { 271 271 prev = now; 272 272 … … 276 276 /* 応答電文待ち */ 277 277 ret = ecn_trcv_esv(&esv, timer); 278 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {278 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) { 279 279 syslog(LOG_ERROR, "ecn_trcv_esv"); 280 280 break; … … 282 282 283 283 ret2 = get_tim(&now); 284 if (ret2 != E_OK) {284 if (ret2 != E_OK) { 285 285 syslog(LOG_ERROR, "get_tim"); 286 286 break; … … 297 297 /* 領域解放 */ 298 298 ret = ecn_rel_esv(esv); 299 if (ret != E_OK) {299 if (ret != E_OK) { 300 300 syslog(LOG_ERROR, "ecn_rel_esv"); 301 301 break; … … 306 306 /* 応答電文待ちの割り込みデータ取得 */ 307 307 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 308 if (ret != E_OK) {308 if (ret != E_OK) { 309 309 syslog(LOG_ERROR, "ecn_get_brk_dat"); 310 310 break; … … 316 316 /* 領域解放 */ 317 317 ret = ecn_rel_esv(esv); 318 if (ret != E_OK) {318 if (ret != E_OK) { 319 319 syslog(LOG_ERROR, "ecn_rel_esv"); 320 320 break; … … 327 327 } 328 328 329 bool_t started = false;330 331 329 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 332 330 { … … 336 334 return; 337 335 338 if (up && !started) { 339 started = true; 340 341 /* ECHONETミドルウェアを起動 */ 342 ret = ecn_sta_svc(); 343 if (ret != E_OK) 344 return; 345 346 /* ECHONETミドルウェアを起動するのを待つ */ 347 dly_tsk(100); 336 if (up) { 337 /* インスタンスリスト通知の送信 */ 338 ret = ecn_ntf_inl(); 339 if (ret != E_OK) { 340 syslog(LOG_ERROR, "ecn_ntf_inl"); 341 } 348 342 } 349 343 … … 351 345 uint8_t data[2]; 352 346 data[0] = 0x01; 353 data[1] = up ? 0x01 : 0x02;354 347 ret = ecn_brk_wai(data, sizeof(data)); 355 348 if (ret != E_OK) { … … 359 352 } 360 353 361 enum main_state_t{ 354 enum main_state_t { 355 main_state_start, 362 356 main_state_idle, 363 357 main_state_search, … … 366 360 367 361 int main_timer = TMO_FEVR; 368 enum main_state_t main_state = main_state_ idle;362 enum main_state_t main_state = main_state_start; 369 363 370 364 int main_nop_timer = TMO_FEVR; … … 378 372 sil_wrb_mem((uint8_t *)0x0008C02A, 0x00); 379 373 380 /* 1秒後にブザーを検索*/381 main_state = main_state_s earch;374 /* ECHONETミドルウェアを起動するのを待つ */ 375 main_state = main_state_start; 382 376 main_timer = 1000 * 1000; 383 377 378 /* メインタスクを起動 */ 384 379 ER ret = act_tsk(MAIN_TASK); 385 380 if (ret != E_OK) { … … 395 390 int result = main_timer; 396 391 397 if ((result == TMO_FEVR)398 || ((main_nop_timer != TMO_FEVR) && (main_nop_timer < result))) {392 if ((result == TMO_FEVR) 393 || ((main_nop_timer != TMO_FEVR) && (main_nop_timer < result))) { 399 394 result = main_nop_timer; 400 395 } … … 408 403 static void main_progress(int interval) 409 404 { 410 if (main_timer != TMO_FEVR){405 if (main_timer != TMO_FEVR) { 411 406 main_timer -= interval; 412 if (main_timer < 0){407 if (main_timer < 0) { 413 408 main_timer = 0; 414 409 } 415 410 } 416 411 417 if (main_nop_timer != TMO_FEVR){412 if (main_nop_timer != TMO_FEVR) { 418 413 main_nop_timer -= interval; 419 if (main_nop_timer < 0){414 if (main_nop_timer < 0) { 420 415 main_nop_timer = 0; 421 416 } … … 436 431 437 432 eobjid = ecn_get_eobj(esv); 438 if (eobjid == EOBJ_NULL){433 if (eobjid == EOBJ_NULL) { 439 434 syslog(LOG_ERROR, "ecn_get_eobj"); 440 435 return; … … 442 437 443 438 ret = ecn_itr_ini(&enm, esv); 444 if (ret != E_OK){439 if (ret != E_OK) { 445 440 syslog(LOG_ERROR, "ecn_itr_ini"); 446 441 return; 447 442 } 448 443 449 for (;;) {450 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {444 for (;;) { 445 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) { 451 446 switch (epc) { 452 447 case 0xD6: 453 switch (main_state){448 switch (main_state) { 454 449 case main_state_search: 455 450 if (eobjid == POT_NODE_EOBJ) { … … 463 458 } 464 459 } 465 if (ret != E_BOVR){460 if (ret != E_BOVR) { 466 461 syslog(LOG_ERROR, "ecn_itr_nxt"); 467 462 break; 468 463 } 469 if (enm.is_eof)464 if (enm.is_eof) 470 465 break; 471 466 } … … 478 473 uint8_t p_edt[1]; 479 474 480 switch (main_state){475 switch (main_state) { 481 476 case main_state_idle: 482 477 p_edt[0] = 0x41; /* 音発生有 */ … … 484 479 /* プロパティ設定電文作成 */ 485 480 ret = ecn_esv_seti(&esv, BUZZER_EOBJ, 0xB1, 1, p_edt); 486 if (ret != E_OK){481 if (ret != E_OK) { 487 482 syslog(LOG_ERROR, "ecn_esv_seti"); 488 483 break; … … 491 486 /* 電文送信 */ 492 487 ecn_snd_esv(esv); 493 if (ret != E_OK){488 if (ret != E_OK) { 494 489 syslog(LOG_ERROR, "ecn_snd_esv"); 495 490 break; … … 511 506 uint8_t p_edt[1]; 512 507 513 switch (main_state){508 switch (main_state) { 514 509 case main_state_buzzer_on: 515 510 p_edt[0] = 0x42; /* 音発生無 */ … … 517 512 /* プロパティ設定電文作成 */ 518 513 ret = ecn_esv_seti(&esv, BUZZER_EOBJ, 0xB1, 1, p_edt); 519 if (ret != E_OK){514 if (ret != E_OK) { 520 515 syslog(LOG_ERROR, "ecn_esv_seti"); 521 516 break; … … 524 519 /* 電文送信 */ 525 520 ecn_snd_esv(esv); 526 if (ret != E_OK){521 if (ret != E_OK) { 527 522 syslog(LOG_ERROR, "ecn_snd_esv"); 528 523 break; … … 545 540 } 546 541 547 if (len < 2)548 return; 549 550 switch (brkdat[0]){542 if (len < 2) 543 return; 544 545 switch (brkdat[0]) { 551 546 case 0x01: 552 if (brkdat[1] != 0)547 if (brkdat[1] != 0) 553 548 main_buzzer_on(); 554 549 else … … 556 551 break; 557 552 case 0x02: 558 if (brkdat[1] == 0)553 if (brkdat[1] == 0) 559 554 main_nop_timer = 5000 * 1000; /* 5秒後にブザーON */ 560 555 break; … … 570 565 static void main_timeout() 571 566 { 572 if (main_timer == 0){567 if (main_timer == 0) { 573 568 main_ontimer(); 574 569 } 575 570 576 if (main_nop_timer == 0){571 if (main_nop_timer == 0) { 577 572 main_nop_timeout(); 578 573 } … … 583 578 static void main_ontimer() 584 579 { 585 switch (main_state) 586 { 580 ER ret; 581 582 switch (main_state) { 583 case main_state_start: 584 /* ECHONETミドルウェアを起動 */ 585 ret = ecn_sta_svc(); 586 if (ret != E_OK) { 587 syslog(LOG_ERROR, "ecn_sta_svc"); 588 } 589 590 /* 1秒後にブザーを検索 */ 591 main_state = main_state_search; 592 main_timer = 1000 * 1000; 593 break; 587 594 case main_state_search: 588 595 /* 電気ポット再検索 */ … … 608 615 /* 電気ポット検索 */ 609 616 ret = ecn_esv_inf_req(&esv, EOBJ_NULL, 0xD6); 610 if (ret != E_OK){617 if (ret != E_OK) { 611 618 syslog(LOG_ERROR, "ecn_esv_inf_req"); 612 619 return; … … 615 622 /* 電文送信 */ 616 623 ret = ecn_snd_esv(esv); 617 if (ret != E_OK){624 if (ret != E_OK) { 618 625 syslog(LOG_ERROR, "ecn_snd_esv"); 619 626 } -
asp3_tinet_ecnl_rx/trunk/app7_buzzer/src/main.c
r359 r364 79 79 80 80 ID ws_api_mailboxid = MAIN_DATAQUEUE; 81 #ifndef NOUSE_MPF_NET_BUF 81 82 ID ws_mempoolid = MPF_NET_BUF_256; 83 #endif 82 84 83 85 #ifdef IF_ETHER_BTUSB … … 111 113 static void main_timeout(); 112 114 115 extern int ntshell_exit; 116 113 117 int uart_read(char *buf, int cnt, void *extobj) 114 118 { 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; 116 153 } 117 154 … … 119 156 { 120 157 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);136 158 } 137 159 … … 150 172 main_initialize(); 151 173 152 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);174 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 153 175 ntshell_set_prompt(&ntshell, "NTShell>"); 154 176 ntshell_execute(&ntshell); … … 168 190 ER ret; 169 191 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); 171 198 172 199 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/app7_buzzer/src/main.cfg
r342 r364 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */ … … 77 76 INCLUDE("ffarch.cfg"); 78 77 78 /* mbed */ 79 INCLUDE("mbed_api.cfg"); 80 79 81 #ifdef IF_ETHER_BTUSB 80 82 INCLUDE("usb_hbth.cfg"); -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/.cproject
r345 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.240222967" 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"/> 38 38 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.635282713" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 39 <builder buildPath="${workspace_loc:/asp3_dcre}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1294414176" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>39 <builder buildPath="${workspace_loc:/asp3_dcre}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1294414176" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.946367481" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1170480133" 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"/> … … 65 65 </folderInfo> 66 66 <sourceEntries> 67 <entry flags="VALUE_WORKSPACE_PATH " kind="sourcePath" name="src"/>67 <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> 68 68 </sourceEntries> 69 69 </configuration> … … 77 77 <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/asp3_dcre"/> 78 78 <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/asp3_dcre/Debug"/> 79 <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/asp3_dcre/DebugCitrus"/> 79 80 <entry flags="RESOLVED" kind="libraryFile" name="asp3_dcre" srcPrefixMapping="" srcRootPath=""/> 80 81 </externalSetting> … … 91 92 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 92 93 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 93 <option id="toolchain.version" value="4.8.4.201 703"/>94 <option id="toolchain.version" value="4.8.4.201803"/> 94 95 </storageModule> 95 96 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 106 107 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1083888317" 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"/> 107 108 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.570033485" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 108 <builder buildPath="${workspace_loc:/asp3_dcre}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1961458105" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>109 <builder buildPath="${workspace_loc:/asp3_dcre}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.1961458105" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 109 110 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1465675052" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 110 111 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1037533987" 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"/> … … 134 135 </folderInfo> 135 136 <sourceEntries> 136 <entry flags="VALUE_WORKSPACE_PATH " kind="sourcePath" name="src"/>137 <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> 137 138 </sourceEntries> 138 139 </configuration> -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/Debug/Makefile
r342 r364 56 56 SRCLANG = c 57 57 ifeq ($(SRCLANG),c) 58 LIBS = -lmusl58 LIBS = $(SRCDIR)/../musl-1.1.18/Debug/libmusl.a 59 59 endif 60 60 ifeq ($(SRCLANG),c++) 61 61 USE_CXX = true 62 CXXLIBS = -lstdc++ -lmusl62 CXXLIBS = -lstdc++ $(SRCDIR)/../musl-1.1.18/Debug/libmusl.a 63 63 CXXRTS = cxxrt.o newlibrt.o 64 64 endif … … 150 150 endif 151 151 152 TINETDIR = 153 152 154 # 153 155 # 共通コンパイルオプションの定義 … … 165 167 CDEFS := $(CDEFS) 166 168 INCLUDES := -I. -I$(SRCDIR)/include $(INCLUDES) -I$(SRCDIR) 167 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L$(SRCDIR)/../musl-1.1.18/Debug169 LDFLAGS := $(LDFLAGS) -L. 168 170 LIBS := $(LIBS) $(CXXLIBS) 169 171 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 186 188 endif 187 189 APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o 188 APPL_CFLAGS := $(APPL_CFLAGS) 190 APPL_CFLAGS := $(APPL_CFLAGS) -nostdinc 189 191 ifdef APPLDIRS 190 192 INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIRS),-I$(dir)) 191 193 endif 192 194 193 TINETDIR =194 195 ifdef TINETDIR 195 196 # … … 242 243 all: tecs | $(DEPDIR) 243 244 # @$(MAKE) check 244 @$(MAKE) check $(OBJNAME).bin245 # @$(MAKE) check $(OBJNAME).bin 245 246 # @$(MAKE) check $(OBJNAME).srec 247 @$(MAKE) check $(OBJNAME).mot 246 248 else 247 249 #all: check 248 all: check $(OBJNAME).bin250 #all: check $(OBJNAME).bin 249 251 #all: check $(OBJNAME).srec 252 all: check $(OBJNAME).mot 250 253 endif 251 254 … … 329 332 vpath %.cfg $(APPL_DIRS) 330 333 vpath %.cdl $(APPL_DIRS) 334 vpath %.bin $(APPL_DIRS) 331 335 332 336 # … … 335 339 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS) 336 340 SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS) $(HIDDEN_OBJS) 337 APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS) 341 APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS) $(APPL_BINOBJS) 338 342 ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 339 343 $(END_OBJS) $(HIDDEN_OBJS) … … 410 414 411 415 # 416 # 並列makeのための依存関係の定義 417 # 418 $(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp 419 $(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 420 | offset.timestamp 421 422 # 412 423 # 特別な依存関係の定義 413 424 # … … 418 429 # 419 430 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 420 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \431 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 421 432 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 422 $(ALL_LIBS)$(END_OBJS)433 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) 423 434 424 435 # … … 447 458 $(OBJNAME).srec: $(OBJFILE) 448 459 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 460 461 $(OBJNAME).mot: $(OBJFILE) 462 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 449 463 450 464 # … … 591 605 $(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $< 592 606 607 $(APPL_BINOBJS): %.o: %.bin 608 $(OBJCOPY) -B rx -I binary -O elf32-rx-le --rename-section .data=.rodata $< $*.o 609 593 610 # 594 611 # デフォルトコンパイルルールを上書き -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/DebugCitrus/Makefile
r342 r364 56 56 SRCLANG = c 57 57 ifeq ($(SRCLANG),c) 58 LIBS = -lmusl58 LIBS = $(SRCDIR)/../musl-1.1.18/Debug/libmusl.a 59 59 endif 60 60 ifeq ($(SRCLANG),c++) 61 61 USE_CXX = true 62 CXXLIBS = -lstdc++ -lmusl62 CXXLIBS = -lstdc++ $(SRCDIR)/../musl-1.1.18/Debug/libmusl.a 63 63 CXXRTS = cxxrt.o newlibrt.o 64 64 endif … … 150 150 endif 151 151 152 TINETDIR = 153 152 154 # 153 155 # 共通コンパイルオプションの定義 … … 165 167 CDEFS := $(CDEFS) 166 168 INCLUDES := -I. -I$(SRCDIR)/include $(INCLUDES) -I$(SRCDIR) 167 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L$(SRCDIR)/../musl-1.1.18/Debug169 LDFLAGS := $(LDFLAGS) -L. 168 170 LIBS := $(LIBS) $(CXXLIBS) 169 171 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 186 188 endif 187 189 APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o 188 APPL_CFLAGS := $(APPL_CFLAGS) 190 APPL_CFLAGS := $(APPL_CFLAGS) -nostdinc 189 191 ifdef APPLDIRS 190 192 INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIRS),-I$(dir)) 191 193 endif 192 194 193 TINETDIR =194 195 ifdef TINETDIR 195 196 # … … 242 243 all: tecs | $(DEPDIR) 243 244 # @$(MAKE) check 244 @$(MAKE) check $(OBJNAME).bin245 # @$(MAKE) check $(OBJNAME).bin 245 246 # @$(MAKE) check $(OBJNAME).srec 247 @$(MAKE) check $(OBJNAME).mot 246 248 else 247 249 #all: check 248 all: check $(OBJNAME).bin250 #all: check $(OBJNAME).bin 249 251 #all: check $(OBJNAME).srec 252 all: check $(OBJNAME).mot 250 253 endif 251 254 … … 329 332 vpath %.cfg $(APPL_DIRS) 330 333 vpath %.cdl $(APPL_DIRS) 334 vpath %.bin $(APPL_DIRS) 331 335 332 336 # … … 335 339 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS) 336 340 SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS) $(HIDDEN_OBJS) 337 APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS) 341 APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS) $(APPL_BINOBJS) 338 342 ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 339 343 $(END_OBJS) $(HIDDEN_OBJS) … … 410 414 411 415 # 416 # 並列makeのための依存関係の定義 417 # 418 $(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp 419 $(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 420 | offset.timestamp 421 422 # 412 423 # 特別な依存関係の定義 413 424 # … … 418 429 # 419 430 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 420 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \431 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 421 432 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 422 $(ALL_LIBS)$(END_OBJS)433 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) 423 434 424 435 # … … 447 458 $(OBJNAME).srec: $(OBJFILE) 448 459 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 460 461 $(OBJNAME).mot: $(OBJFILE) 462 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 449 463 450 464 # … … 591 605 $(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $< 592 606 607 $(APPL_BINOBJS): %.o: %.bin 608 $(OBJCOPY) -B rx -I binary -O elf32-rx-le --rename-section .data=.rodata $< $*.o 609 593 610 # 594 611 # デフォルトコンパイルルールを上書き -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/arch/rx630_gcc/prc_kernel_impl.c
r359 r364 237 237 #endif /* OMIT_DEFAULT_EXC_HANDLER */ 238 238 239 void _start_c(char * *args);239 void _start_c(char * const*args); 240 240 241 241 void … … 243 243 { 244 244 const char *const args[] = { 245 1,245 (char *)1, 246 246 "asp3", 247 247 0, … … 268 268 269 269 __attribute__((weak)) 270 void SYS_set_tid_address() 271 { 272 return 0;//-ENOSYS; 273 } 274 275 __attribute__((weak)) 276 void SYS_mmap2() 270 long SYS_set_tid_address() 271 { 272 return 0;//-ENOSYS; 273 } 274 275 __attribute__((weak)) 276 long SYS_gettid() 277 { 278 return 0;//-ENOSYS; 279 } 280 281 __attribute__((weak)) 282 long SYS_rt_sigprocmask() 283 { 284 return 0;//-ENOSYS; 285 } 286 287 __attribute__((weak)) 288 long SYS_mmap2() 289 { 290 return 0;//-ENOSYS; 291 } 292 293 __attribute__((weak)) 294 long SYS_tkill() 277 295 { 278 296 return 0;//-ENOSYS; -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/arch/rx630_gcc/prc_rename.def
r337 r364 18 18 exception 19 19 20 # rx6 10_kernel_impl.c20 # rx630_kernel_impl.c 21 21 ipr_reg_addr 22 22 ier_reg_addr -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/arch/rx630_gcc/prc_support.S
r337 r364 410 410 dispatcher_idle_loop: 411 411 setpsw i ; 全割込み許可 412 wait 412 413 clrpsw i ; 全割込み禁止 413 414 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/arch/rx630_gcc/rx630.h
r337 r364 1212 1212 #define ICU_IPR254_ADDR ( ( volatile uint8_t __evenaccess * )0x000873FE ) 1213 1213 #define ICU_IPR255_ADDR ( ( volatile uint8_t __evenaccess * )0x000873FF ) 1214 #define ICU_IPR_ BIT ( 7U <<0U )1215 1214 #define ICU_IPR_OFFSET ( 0U ) 1215 #define ICU_IPR_MASK ( 0xFU << ICU_IPR_OFFSET ) 1216 1216 1217 1217 /* … … 1323 1323 #define SCI6_SCMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0C6 ) 1324 1324 #define SCI6_SEMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0C7 ) 1325 #define SCI7_SMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E0 ) 1326 #define SCI7_BRR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E1 ) 1327 #define SCI7_SCR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E2 ) 1328 #define SCI7_TDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E3 ) 1329 #define SCI7_SSR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E4 ) 1330 #define SCI7_RDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E5 ) 1331 #define SCI7_SCMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E6 ) 1332 #define SCI7_SEMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A0E7 ) 1333 #define SCI8_SMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A100 ) 1334 #define SCI8_BRR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A101 ) 1335 #define SCI8_SCR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A102 ) 1336 #define SCI8_TDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A103 ) 1337 #define SCI8_SSR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A104 ) 1338 #define SCI8_RDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A105 ) 1339 #define SCI8_SCMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A106 ) 1340 #define SCI8_SEMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A107 ) 1341 #define SCI9_SMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A120 ) 1342 #define SCI9_BRR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A121 ) 1343 #define SCI9_SCR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A122 ) 1344 #define SCI9_TDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A123 ) 1345 #define SCI9_SSR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A124 ) 1346 #define SCI9_RDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A125 ) 1347 #define SCI9_SCMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A126 ) 1348 #define SCI9_SEMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A127 ) 1349 #define SCI10_SMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A140 ) 1350 #define SCI10_BRR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A141 ) 1351 #define SCI10_SCR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A142 ) 1352 #define SCI10_TDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A143 ) 1353 #define SCI10_SSR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A144 ) 1354 #define SCI10_RDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A145 ) 1355 #define SCI10_SCMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A146 ) 1356 #define SCI10_SEMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A147 ) 1357 #define SCI11_SMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A160 ) 1358 #define SCI11_BRR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A161 ) 1359 #define SCI11_SCR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A162 ) 1360 #define SCI11_TDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A163 ) 1361 #define SCI11_SSR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A164 ) 1362 #define SCI11_RDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A165 ) 1363 #define SCI11_SCMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A166 ) 1364 #define SCI11_SEMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A167 ) 1365 #define SCI12_SMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A300 ) 1366 #define SCI12_BRR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A301 ) 1367 #define SCI12_SCR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A302 ) 1368 #define SCI12_TDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A303 ) 1369 #define SCI12_SSR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A304 ) 1370 #define SCI12_RDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A305 ) 1371 #define SCI12_SCMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A306 ) 1372 #define SCI12_SEMR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008A307 ) 1325 1373 #define SCI_SMR_CKS_BIT ( 3U << 0U ) 1326 1374 #define SCI_SMR_STOP_BIT ( 1U << 3U ) … … 1515 1563 #define PORTG_ODR1_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C0A1 ) 1516 1564 #define PORTJ_ODR1_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C0A5 ) 1565 #define PORT_ODR_Pm0_OFFSET ( 0U ) 1566 #define PORT_ODR_Pm0_MASK ( 0x3U << PORT_ODR_Pm0_OFFSET ) 1567 #define PORT_ODR_Pm1_OFFSET ( 2U ) 1568 #define PORT_ODR_Pm1_MASK ( 0x3U << PORT_ODR_Pm1_OFFSET ) 1569 #define PORT_ODR_Pm2_OFFSET ( 4U ) 1570 #define PORT_ODR_Pm2_MASK ( 0x3U << PORT_ODR_Pm2_OFFSET ) 1571 #define PORT_ODR_Pm3_OFFSET ( 6U ) 1572 #define PORT_ODR_Pm3_MASK ( 0x3U << PORT_ODR_Pm3_OFFSET ) 1573 #define PORT_ODR_Pm4_OFFSET ( 0U ) 1574 #define PORT_ODR_Pm4_MASK ( 0x3U << PORT_ODR_Pm4_OFFSET ) 1575 #define PORT_ODR_Pm5_OFFSET ( 2U ) 1576 #define PORT_ODR_Pm5_MASK ( 0x3U << PORT_ODR_Pm5_OFFSET ) 1577 #define PORT_ODR_Pm6_OFFSET ( 4U ) 1578 #define PORT_ODR_Pm6_MASK ( 0x3U << PORT_ODR_Pm6_OFFSET ) 1579 #define PORT_ODR_Pm7_OFFSET ( 6U ) 1580 #define PORT_ODR_Pm7_MASK ( 0x3U << PORT_ODR_Pm7_OFFSET ) 1581 #define PORT_ODR_CMOS ( 0U ) 1582 #define PORT_ODR_NCH_OPEN_DRAIN ( 1U ) 1583 #define PORT_ODR_PCH_OPEN_DRAIN ( 2U ) 1517 1584 1518 1585 /* … … 1728 1795 #define TPU10_TMDR_ADDR ( ( volatile uint8_t __evenaccess * )0x000881C1 ) 1729 1796 #define TPU11_TMDR_ADDR ( ( volatile uint8_t __evenaccess * )0x000881D1 ) 1797 #define TPU_TMDR_MD_OFFSET ( 0U ) 1798 #define TPU_TMDR_MD_MASK ( 0xFU << TPU_TMDR_MD_OFFSET ) 1799 #define TPU_TMDR_BFA_BIT ( 0x10 ) 1800 #define TPU_TMDR_BFB_BIT ( 0x20 ) 1801 #define TPU_TMDR_ICSELB_BIT ( 0x40 ) 1802 #define TPU_TMDR_ICSELD_BIT ( 0x80 ) 1730 1803 1731 1804 #define TPU0_TIOR_ADDR ( ( volatile uint8_t __evenaccess * )0x000881C0 ) … … 1746 1819 #define TPU10_TIOR_ADDR ( ( volatile uint8_t __evenaccess * )0x000881C2 ) 1747 1820 #define TPU11_TIOR_ADDR ( ( volatile uint8_t __evenaccess * )0x000881D2 ) 1748 #define TPU_TIORL_IOA_OFFSET ( 0U ) 1749 #define TPU_TIORL_IOA_MASK ( 0xFU << TPU_TIORL_IOA_OFFSET ) 1750 #define TPU_TIORL_IOB_OFFSET ( 4U ) 1751 #define TPU_TIORL_IOB_MASK ( 0xFU << TPU_TIORL_IOB_OFFSET ) 1821 #define TPU_TIOR_IOA_OFFSET ( 0U ) 1822 #define TPU_TIOR_IOA_MASK ( 0xFU << TPU_TIOR_IOA_OFFSET ) 1823 #define TPU_TIOR_IOB_OFFSET ( 4U ) 1824 #define TPU_TIOR_IOB_MASK ( 0xFU << TPU_TIOR_IOB_OFFSET ) 1825 #define TPU_TIORH_IOA_OFFSET ( 0U ) 1826 #define TPU_TIORH_IOA_MASK ( 0xFU << TPU_TIORH_IOA_OFFSET ) 1827 #define TPU_TIORH_IOB_OFFSET ( 4U ) 1828 #define TPU_TIORH_IOB_MASK ( 0xFU << TPU_TIORH_IOB_OFFSET ) 1752 1829 #define TPU_TIORL_IOC_OFFSET ( 0U ) 1753 1830 #define TPU_TIORL_IOC_MASK ( 0xFU << TPU_TIORL_IOC_OFFSET ) … … 1806 1883 #define TPU_TSYR_SYNC5_BIT ( 0x01U << 5U ) 1807 1884 1885 #define TPU0_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088114 ) 1886 #define TPU1_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088124 ) 1887 #define TPU2_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088134 ) 1888 #define TPU3_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088144 ) 1889 #define TPU4_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088154 ) 1890 #define TPU5_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088164 ) 1891 #define TPU6_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088184 ) 1892 #define TPU7_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x00088194 ) 1893 #define TPU8_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x000881A4 ) 1894 #define TPU9_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x000881B4 ) 1895 #define TPU10_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x000881C4 ) 1896 #define TPU11_TIER_ADDR ( ( volatile uint8_t __evenaccess *)0x000881D4 ) 1897 1898 #define TPU0_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088116 ) 1899 #define TPU1_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088126 ) 1900 #define TPU2_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088136 ) 1901 #define TPU3_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088146 ) 1902 #define TPU4_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088156 ) 1903 #define TPU5_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088166 ) 1904 #define TPU6_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088186 ) 1905 #define TPU7_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x00088196 ) 1906 #define TPU8_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x000881A6 ) 1907 #define TPU9_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x000881B6 ) 1908 #define TPU10_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x000881C6 ) 1909 #define TPU11_TCNT_ADDR ( ( volatile uint16_t __evenaccess *)0x000881D6 ) 1910 1808 1911 /* 1809 1912 * RSPI -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/arch/rx630_gcc/scif.h
r337 r364 59 59 #define SCI5_BASE ((uint32_t)(SCI5_SMR_ADDR)) 60 60 #define SCI6_BASE ((uint32_t)(SCI6_SMR_ADDR)) 61 #define SCI7_BASE ((uint32_t)(SCI7_SMR_ADDR)) 62 #define SCI8_BASE ((uint32_t)(SCI8_SMR_ADDR)) 63 #define SCI9_BASE ((uint32_t)(SCI9_SMR_ADDR)) 64 #define SCI10_BASE ((uint32_t)(SCI10_SMR_ADDR)) 65 #define SCI11_BASE ((uint32_t)(SCI11_SMR_ADDR)) 66 /* SCI12は下記のSCI_NUMが使用できない */ 61 67 62 68 /* モジュールストップコントロールレジスタB bit */ 63 #define SCI_NUM(base) (( base - SCI0_BASE) / 0x20)69 #define SCI_NUM(base) (((intptr_t)base - SCI0_BASE) / 0x20) 64 70 #define SCI_MSTPCRB_BIT(base) (1 << (31 - SCI_NUM(base))) 65 71 … … 70 76 #define CLK_F64 UINT_C(0x03) 71 77 72 /* シリアルモードレジスタ(SMR )*/78 /* シリアルモードレジスタ(SMR) */ 73 79 #define CKS UINT_C(0x03) 80 #define MP UINT_C(0x04) 74 81 #define STOP UINT_C(0x08) 75 82 #define PM UINT_C(0x10) … … 80 87 #define ASYNC_8BIT UINT_C(0x40) 81 88 82 /* シリアルコントロールレジスタ(SCR )*/89 /* シリアルコントロールレジスタ(SCR) */ 83 90 #define CKE UINT_C(0x03) 84 91 #define TEIE UINT_C(0x04) … … 94 101 #define ORER UINT_C(0x20) 95 102 96 /* シリアル拡張モードレジスタ(SEMR) */ 103 /* スマートカードモードレジスタ(SCMR) */ 104 #define SMIF UINT_C(0x01) 105 #define SINV UINT_C(0x04) 106 #define SDIR UINT_C(0x08) 107 #define BCP2 UINT_C(0x80) 108 109 /* シリアル拡張モードレジスタ(SEMR) */ 97 110 #define ACS0 UINT_C(0x01) 98 111 #define ABCS UINT_C(0x10) 112 #define NFEN UINT_C(0x20) 113 114 /* I2C モードレジスタ1(SIMR1) */ 115 #define IICM UINT_C(0x01) 116 117 /* I2C モードレジスタ2(SIMR2) */ 118 #define IICINTM UINT_C(0x01) 119 #define IICCSC UINT_C(0x02) 120 #define IICACKT UINT_C(0x20) 121 122 /* I2C モードレジスタ3(SIMR2) */ 123 #define IICSTAREQ UINT_C(0x01) 124 #define IICRSTAREQ UINT_C(0x02) 125 #define IICSTPREQ UINT_C(0x04) 126 #define IICSTIF UINT_C(0x08) 127 128 /* I2C ステータスレジスタ(SISR) */ 129 #define IICACKR UINT_C(0x01) 130 131 /* SPI モードレジスタ(SPMR) */ 132 #define SSE UINT_C(0x01) 133 #define CTSE UINT_C(0x02) 134 #define MSS UINT_C(0x04) 135 #define CKPOL UINT_C(0x40) 136 #define CKPH UINT_C(0x80) 99 137 100 138 #define SCI_SCR_FLG_ENABLE (RE | TE) … … 104 142 * SCIレジスタの番地の定義 105 143 */ 106 #define SCI_SMR(base) ((uint8_t *)(base + 0x00U)) 107 #define SCI_BRR(base) ((uint8_t *)(base + 0x01U)) 108 #define SCI_SCR(base) ((uint8_t *)(base + 0x02U)) 109 #define SCI_TDR(base) ((uint8_t *)(base + 0x03U)) 110 #define SCI_SSR(base) ((uint8_t *)(base + 0x04U)) 111 #define SCI_RDR(base) ((uint8_t *)(base + 0x05U)) 112 #define SCI_SCMR(base) ((uint8_t *)(base + 0x06U)) 113 #define SCI_SEMR(base) ((uint8_t *)(base + 0x07U)) 114 #define SCI_SNFR(base) ((uint8_t *)(base + 0x08U)) 144 #define SCI_SMR(base) ((uint8_t *)((intptr_t)base + 0x00U)) 145 #define SCI_BRR(base) ((uint8_t *)((intptr_t)base + 0x01U)) 146 #define SCI_SCR(base) ((uint8_t *)((intptr_t)base + 0x02U)) 147 #define SCI_TDR(base) ((uint8_t *)((intptr_t)base + 0x03U)) 148 #define SCI_SSR(base) ((uint8_t *)((intptr_t)base + 0x04U)) 149 #define SCI_RDR(base) ((uint8_t *)((intptr_t)base + 0x05U)) 150 #define SCI_SCMR(base) ((uint8_t *)((intptr_t)base + 0x06U)) 151 #define SCI_SEMR(base) ((uint8_t *)((intptr_t)base + 0x07U)) 152 #define SCI_SNFR(base) ((uint8_t *)((intptr_t)base + 0x08U)) 153 #define SCI_SIMR1(base) ((uint8_t *)((intptr_t)base + 0x09U)) 154 #define SCI_SIMR2(base) ((uint8_t *)((intptr_t)base + 0x0AU)) 155 #define SCI_SIMR3(base) ((uint8_t *)((intptr_t)base + 0x0BU)) 156 #define SCI_SISR(base) ((uint8_t *)((intptr_t)base + 0x0CU)) 157 #define SCI_SPMR(base) ((uint8_t *)((intptr_t)base + 0x0DU)) 115 158 116 159 #ifndef TOPPERS_MACRO_ONLY -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/sample/Makefile
r342 r364 403 403 404 404 # 405 # 並列makeのための依存関係の定義 406 # 407 $(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp 408 $(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 409 | offset.timestamp 410 411 # 405 412 # 特別な依存関係の定義 406 413 # -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/syssvc/serial.h
r359 r364 79 79 extern ER serial_opn_por(ID portid) throw(); 80 80 extern ER serial_cls_por(ID portid) throw(); 81 extern ER_UINT serial_ rea_dat(ID portid, char *buf, uint_t len) throw();81 extern ER_UINT serial_trea_dat(ID portid, char *buf, uint_t len, TMO tmout) throw(); 82 82 extern ER_UINT serial_wri_dat(ID portid, const char *buf, uint_t len) throw(); 83 83 extern ER serial_ctl_por(ID portid, uint_t ioctl) throw(); 84 84 extern ER serial_ref_por(ID portid, T_SERIAL_RPOR *pk_rpor) throw(); 85 86 Inline ER_UINT serial_rea_dat(ID portid, char *buf, uint_t len) 87 { 88 return serial_trea_dat(portid, buf, len, TMO_FEVR); 89 } 85 90 86 91 /* -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/syssvc/tSerialAdapter.c
r337 r364 83 83 */ 84 84 ER_UINT 85 serial_ rea_dat(ID portid, char *buf, uint_t len)85 serial_trea_dat(ID portid, char *buf, uint_t len, TMO tmout) 86 86 { 87 87 if (sns_dpn()) { /* コンテキストのチェック */ … … 92 92 } 93 93 94 return(cSerialPort_read(portid - 1, buf, len ));94 return(cSerialPort_read(portid - 1, buf, len, tmout)); 95 95 } 96 96 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/syssvc/tSerialPort.cdl
r337 r364 57 57 ER open(void); 58 58 ER close(void); 59 ER_UINT read([out,size_is(length)] char *buffer, [in] uint_t length );59 ER_UINT read([out,size_is(length)] char *buffer, [in] uint_t length, [in] TMO tmout); 60 60 ER_UINT write([in,size_is(length)] const char *buffer, [in] uint_t length); 61 61 ER control([in] uint_t ioControl); -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/syssvc/tSerialPortMain.c
r359 r364 397 397 */ 398 398 ER_UINT 399 eSerialPort_read(CELLIDX idx, char *buffer, uint_t length )399 eSerialPort_read(CELLIDX idx, char *buffer, uint_t length, TMO tmout) 400 400 { 401 401 CELLCB *p_cellcb; … … 423 423 while (reacnt < length) { 424 424 if (buffer_empty) { 425 SVC(rercd = cReceiveSemaphore_wait(), 426 gen_ercd_wait(rercd, p_cellcb)); 425 rercd = cReceiveSemaphore_waitTimeout(tmout); 426 if (rercd == E_TMOUT) 427 return E_TMOUT; 428 if (rercd < 0) { 429 gen_ercd_wait(rercd, p_cellcb); 430 ercd = rercd; 431 goto error_exit; 432 } 427 433 } 428 434 SVC(rercd = serialPort_readChar(p_cellcb, &c), rercd); -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/gr_citrus.ld
r337 r364 11 11 KEEP(*(.fvectors)) 12 12 } > ROM 13 .text 0xFF F00000 : AT (0xFFF00000)13 .text 0xFFE00000 : AT (0xFFE00000) 14 14 { 15 15 *(.text) … … 56 56 *(C_2) 57 57 *(C) 58 _mrb_preset_const_start = .; 59 *(.mrb_preset_const) 60 _mrb_preset_const_end = .; 58 61 _erodata = .; 59 62 } > ROM … … 111 114 . = ALIGN(2); 112 115 *(D_2) 116 _mrb_preset_data_start = .; 117 *(.mrb_preset_data) 118 _mrb_preset_data_end = .; 113 119 _edata = .; 114 120 } > RAM -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_kernel_impl.c
r337 r364 68 68 69 69 /* IOポート初期化 */ 70 /* P25を出力ポートにする */71 sil_wrb_mem(PORT2_PDR_ADDR,72 sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B5_BIT);73 70 /* PA0, PA1, PA2, PA6を出力ポートにする */ 74 71 sil_wrb_mem(PORTA_PDR_ADDR, … … 81 78 * シリアルポートの設定 82 79 */ 83 serial_opn_por(1);84 80 85 81 /* ポートP20をTxD0, ポートP21をRxD0に */ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_kernel_impl.h
r337 r364 107 107 */ 108 108 #ifdef TOPPERS_ENABLE_TRACE 109 #define LOG_DSP_ENTER ( 1)110 #define LOG_DSP_LEAVE ( 1)111 #define LOG_INH_ENTER ( 1)112 #define LOG_INH_LEAVE ( 1)113 #define LOG_EXC_ENTER ( 1)114 #define LOG_EXC_LEAVE ( 1)109 #define LOG_DSP_ENTER(dspno) 110 #define LOG_DSP_LEAVE(dspno) 111 #define LOG_INH_ENTER(inhno) 112 #define LOG_INH_LEAVE(inhno) 113 #define LOG_EXC_ENTER(excno) 114 #define LOG_EXC_LEAVE(excno) 115 115 #else 116 # define LOG_DSP_ENTER ( 0 )117 # define LOG_DSP_LEAVE ( 0 )118 # define LOG_INH_ENTER ( 0 )119 # define LOG_INH_LEAVE ( 0 )120 # define LOG_EXC_ENTER ( 0 )121 # define LOG_EXC_LEAVE ( 0 )116 #undef LOG_DSP_ENTER 117 #undef LOG_DSP_LEAVE 118 #undef LOG_INH_ENTER 119 #undef LOG_INH_LEAVE 120 #undef LOG_EXC_ENTER 121 #undef LOG_EXC_LEAVE 122 122 #endif 123 123 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_sym.def
r337 r364 1 LOG_DSP_ENTER2 LOG_DSP_LEAVE3 LOG_INH_ENTER4 LOG_INH_LEAVE5 LOG_EXC_ENTER6 LOG_EXC_LEAVE7 1 SIL_DLY_TIM1 8 2 SIL_DLY_TIM2 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_timer.c
r337 r364 398 398 */ 399 399 if (probe_int(INTNO_TIMER1)) { 400 if (local_cnt < 0x8000)400 if (local_cnt < 0x8000) 401 401 local_eut += 1; 402 402 } -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/gr_sakura.ld
r337 r364 56 56 *(C_2) 57 57 *(C) 58 _mrb_preset_const_start = .; 59 *(.mrb_preset_const) 60 _mrb_preset_const_end = .; 58 61 _erodata = .; 59 62 } > ROM … … 111 114 . = ALIGN(2); 112 115 *(D_2) 116 _mrb_preset_data_start = .; 117 *(.mrb_preset_data) 118 _mrb_preset_data_end = .; 113 119 _edata = .; 114 120 } > RAM -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_kernel_impl.c
r337 r364 81 81 * シリアルポートの設定 82 82 */ 83 serial_opn_por(1);84 83 85 84 /* ポートP20をTxD0, ポートP21をRxD0に */ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_kernel_impl.h
r337 r364 107 107 */ 108 108 #ifdef TOPPERS_ENABLE_TRACE 109 #define LOG_DSP_ENTER ( 1)110 #define LOG_DSP_LEAVE ( 1)111 #define LOG_INH_ENTER ( 1)112 #define LOG_INH_LEAVE ( 1)113 #define LOG_EXC_ENTER ( 1)114 #define LOG_EXC_LEAVE ( 1)109 #define LOG_DSP_ENTER(dspno) 110 #define LOG_DSP_LEAVE(dspno) 111 #define LOG_INH_ENTER(inhno) 112 #define LOG_INH_LEAVE(inhno) 113 #define LOG_EXC_ENTER(excno) 114 #define LOG_EXC_LEAVE(excno) 115 115 #else 116 # define LOG_DSP_ENTER ( 0 )117 # define LOG_DSP_LEAVE ( 0 )118 # define LOG_INH_ENTER ( 0 )119 # define LOG_INH_LEAVE ( 0 )120 # define LOG_EXC_ENTER ( 0 )121 # define LOG_EXC_LEAVE ( 0 )116 #undef LOG_DSP_ENTER 117 #undef LOG_DSP_LEAVE 118 #undef LOG_INH_ENTER 119 #undef LOG_INH_LEAVE 120 #undef LOG_EXC_ENTER 121 #undef LOG_EXC_LEAVE 122 122 #endif 123 123 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_sym.def
r337 r364 1 LOG_DSP_ENTER2 LOG_DSP_LEAVE3 LOG_INH_ENTER4 LOG_INH_LEAVE5 LOG_EXC_ENTER6 LOG_EXC_LEAVE7 1 SIL_DLY_TIM1 8 2 SIL_DLY_TIM2 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_timer.c
r337 r364 398 398 */ 399 399 if (probe_int(INTNO_TIMER1)) { 400 if (local_cnt < 0x8000)400 if (local_cnt < 0x8000) 401 401 local_eut += 1; 402 402 } -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/Makefile.tinet
r337 r364 93 93 in_subr.o route_cfg.o 94 94 TINET_CFG_COBJS := $(TINET_CFG_COBJS) tinet_cfg.o 95 TINET_CFG2_OUT_SRCS := $(TINET_CFG2_OUT_SRCS) tinet_cfg.h tinet_cfg.c 95 96 96 97 # IPv6 … … 328 329 329 330 CFG_COBJS := $(CFG_COBJS) $(TINET_CFG_COBJS) 331 CFG2_OUT_SRCS := $(CFG2_OUT_SRCS) $(TINET_CFG2_OUT_SRCS) 330 332 331 333 CLEAN_FILES := $(CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB) -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/net/ethernet.h
r359 r364 98 98 #endif /* of #ifndef IF_ETHER_NIC_HDR_ALIGN */ 99 99 100 #if defined(__RX) || defined(_MSC_VER)101 100 #if defined(__RX) 102 101 #pragma pack 103 #el se102 #elif defined(_MSC_VER) 104 103 #pragma pack(push, 1) 105 104 #endif 105 106 #if defined(__RX) || defined(_MSC_VER) 107 106 108 typedef struct t_ether_header { 107 109 … … 116 118 uint16_t type; 117 119 } T_ETHER_HDR; 118 #if defined(__RX)119 #pragma packoption120 #else121 #pragma pack(pop)122 #endif123 120 124 121 #elif defined(TOPPERS_S810_CLG3_85) /* of #if defined(__RX) */ … … 166 163 uint8_t lladdr[ETHER_ADDR_LEN]; 167 164 } __attribute__((packed, aligned(2))) T_ETHER_ADDR; 165 166 #if defined(__RX) 167 #pragma packoption 168 #elif defined(_MSC_VER) 169 #pragma pack(pop) 170 #endif 168 171 169 172 /* -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/net/net_asp.cfg
r337 r364 41 41 42 42 INCLUDE("net/net.cfg"); 43 44 #ifndef NOUSE_MPF_NET_BUF 43 45 44 46 /* … … 169 171 }); 170 172 #endif /* of #if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0 */ 173 174 #endif -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/net/net_buf.c
r337 r364 68 68 #include <netinet/tcp_var.h> 69 69 70 #ifndef NOUSE_MPF_NET_BUF 71 70 72 /* 71 73 * 関数 … … 226 228 #endif /* of #if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0 */ 227 229 228 #if defined(_IP4_CFG) 230 #if defined(_IP6_CFG) 231 232 #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 233 { 234 MPF_NET_BUF_CSEG, 235 IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE, 236 237 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF 238 239 NUM_MPF_NET_BUF_CSEG, 240 241 #endif /* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */ 242 243 }, 244 #endif /* of #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 */ 245 246 #endif /* of #if defined(_IP6_CFG) */ 229 247 230 248 #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 … … 242 260 #endif /* of #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 */ 243 261 244 # endif /* of #if defined(_IP4_CFG) */262 #if defined(_IP4_CFG) && !defined(_IP6_CFG) 245 263 246 264 #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 … … 257 275 }, 258 276 #endif /* of #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 */ 277 278 #endif /* of #if defined(_IP4_CFG) && !defined(_IP6_CFG) */ 259 279 260 280 }; … … 307 327 308 328 while (1) { 309 if ((error = tget_mpf((ID)net_buf_table[ix].index, (void *)buf, ix == 0 ? tmout : TMO_POL)) == E_OK) {329 if ((error = tget_mpf((ID)net_buf_table[ix].index, (void **)buf, ix == 0 ? tmout : TMO_POL)) == E_OK) { 310 330 (*buf)->idix = (uint8_t)ix; 311 331 (*buf)->len = (uint16_t)minlen; … … 318 338 return error; 319 339 } 320 else if (ix == 0 || net_buf_table[ix].size > maxlen) 340 ix --; 341 if (ix < 0 || net_buf_table[ix].size > maxlen) 321 342 break; 322 ix --;323 343 } 324 344 … … 349 369 350 370 while (1) { 351 if ((error = tget_mpf((ID)net_buf_table[ix].index, (void *)buf,371 if ((error = tget_mpf((ID)net_buf_table[ix].index, (void **)buf, 352 372 ix == sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY) - 1 ? tmout : TMO_POL)) == E_OK) { 353 373 (*buf)->idix = (uint8_t)ix; 354 374 (*buf)->len = net_buf_table[ix].size; 355 375 (*buf)->flags = 0; 376 #ifdef IF_ETHER_MULTI_NIC 377 (*buf)->conn_pos = 0; 378 #endif 356 379 357 380 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF … … 450 473 /* 固定メモリプールに返す。*/ 451 474 452 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF 453 net_buf_table[buf->idix].busies --; 475 int idix = buf->idix; 476 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF 477 net_buf_table[idix].busies --; 454 478 #endif 455 if ((error = rel_mpf((ID)net_buf_table[ buf->idix].index, buf)) != E_OK) {456 syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), buf->idix);479 if ((error = rel_mpf((ID)net_buf_table[idix].index, buf)) != E_OK) { 480 syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), idix); 457 481 } 458 482 } … … 505 529 return (uint_t)net_buf_table[0].size; 506 530 } 531 532 #else 533 #include <stdlib.h> 534 535 /* 536 * tget_net_buf_ex -- ネットワークバッファを獲得する(拡張機能)。 537 */ 538 539 ER 540 tget_net_buf_ex (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout) 541 { 542 uint_t len = (minlen > maxlen) ? minlen : maxlen; 543 *buf = (T_NET_BUF *)malloc(sizeof(T_NET_BUF) - sizeof(((T_NET_BUF *)0)->buf) + len); 544 if (*buf == NULL) 545 return E_NOMEM; 546 547 (*buf)->idix = 0; 548 (*buf)->len = (uint16_t)len; 549 (*buf)->flags = 0; 550 551 return E_OK; 552 } 553 554 /* 555 * tget_net_buf -- ネットワークバッファを獲得する(互換)。 556 */ 557 558 ER 559 tget_net_buf (T_NET_BUF **buf, uint_t len, TMO tmout) 560 { 561 return tget_net_buf_ex(buf, len, len, NBA_SEARCH_ASCENT, tmout); 562 } 563 564 565 /* 566 * rel_net_buf -- ネットワークバッファを返却する。 567 */ 568 569 ER 570 rel_net_buf (T_NET_BUF *buf) 571 { 572 free(buf); 573 574 return E_OK; 575 } 576 577 578 /* 579 * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。 580 */ 581 582 uint_t 583 net_buf_max_siz (void) 584 { 585 return (uint_t)IF_PDU_SIZE; 586 } 587 588 #endif -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/net/net_rename.h
r337 r364 71 71 #define tget_net_buf_ex _tinet_tget_net_buf_ex 72 72 #define tget_net_buf _tinet_tget_net_buf 73 #define rel_net_buf _tinet_rel_net_buf74 #define rus_net_buf _tinet_rus_net_buf75 #define net_buf_siz _tinet_net_buf_siz73 #define rel_net_buf _tinet_rel_net_buf 74 #define rus_net_buf _tinet_rus_net_buf 75 #define net_buf_siz _tinet_net_buf_siz 76 76 #define net_buf_max_siz _tinet_net_buf_max_siz 77 77 #define nbuf_get_tbl _tinet_nbuf_get_tbl -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netapp/Makefile.netapp
r337 r364 183 183 NETAPP_COBJS := $(NETAPP_COBJS) udp6_echo_cli.o 184 184 NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp6_echo_cli.cfg 185 185 186 186 ifeq ($(SUPPORT_INET4),true) 187 187 ifeq ($(USE_UDP4_ECHO_CLI),true) … … 191 191 endif 192 192 endif 193 193 else 194 194 ifeq ($(SUPPORT_INET4),true) 195 195 SUPPORT_UDP = true -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netapp/dbg_cons.c
r337 r364 666 666 "IX Expire State MAC Address IP Address\n"); 667 667 668 /* expire の単位は [ ms]。*/668 /* expire の単位は [us]。*/ 669 669 get_tim(&now); 670 670 cache = nd6_get_cache(); … … 705 705 "IX Expire MAC Address IP Address\n"); 706 706 707 /* expire の単位は [ ms]。*/707 /* expire の単位は [us]。*/ 708 708 cache = arp_get_cache(); 709 709 for (ix = 0; ix < NUM_ARP_ENTRY; ix ++) { … … 753 753 WAI_NET_CONS_PRINTF(); 754 754 get_tim(&now); 755 cons_printf(portid, "ネットワーク統計情報\t経過時間[ ms]\t%lu\t", now);755 cons_printf(portid, "ネットワーク統計情報\t経過時間[us]\t%lu\t", now); 756 756 if (now > (1000 * 3600 * 24)) 757 757 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n", … … 938 938 } 939 939 940 cons_printf(portid, "\nネットワーク統計情報\t経過時間[ ms]\t%lu\t", now);940 cons_printf(portid, "\nネットワーク統計情報\t経過時間[us]\t%lu\t", now); 941 941 if (now > (1000 * 3600 * 24)) 942 942 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n", … … 1065 1065 WAI_NET_CONS_PRINTF(); 1066 1066 get_tim(&now); 1067 cons_printf(portid, "ネットワークバッファ情報\t経過時間[ ms]\t%u\n", now);1067 cons_printf(portid, "ネットワークバッファ情報\t経過時間[us]\t%u\n", now); 1068 1068 1069 1069 #if NET_COUNT_ENABLE … … 1577 1577 cons_printf(portid, " IP Address\n"); 1578 1578 1579 /* expire の単位は [ ms]。*/1579 /* expire の単位は [us]。*/ 1580 1580 get_tim(&now); 1581 1581 dr = nd6_get_drl(&count); … … 2298 2298 2299 2299 cons_printf(portid, "ND:\n"); 2300 cons_printf(portid, " TMO_ND6_RTR_SOL_DELAY: %5d[ ms]\n", TMO_ND6_RTR_SOL_DELAY);2301 cons_printf(portid, " TMO_ND6_RTR_SOL_INTERVAL: %5d[ ms]\n", TMO_ND6_RTR_SOL_INTERVAL);2300 cons_printf(portid, " TMO_ND6_RTR_SOL_DELAY: %5d[us]\n", TMO_ND6_RTR_SOL_DELAY); 2301 cons_printf(portid, " TMO_ND6_RTR_SOL_INTERVAL: %5d[us]\n", TMO_ND6_RTR_SOL_INTERVAL); 2302 2302 cons_printf(portid, " NUM_IP6_DAD_COUNT: %5d\n", NUM_IP6_DAD_COUNT); 2303 2303 cons_printf(portid, " NUM_ND6_CACHE_ENTRY: %5d\n", NUM_ND6_CACHE_ENTRY); -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.c
r340 r364 2031 2031 2032 2032 /* 休止する。*/ 2033 if (error == E_OK) 2034 syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep."); 2033 if (error == E_OK) { 2034 if (ct->fsm != DHCP4_FSM_SLEEP) 2035 syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep."); 2036 } 2035 2037 else { 2036 2038 syslog(LOG_NOTICE, "[DHCP4C] server not available, go to sleep, error: %s.", itron_strerror(error)); … … 2158 2160 2159 2161 /* 休止する。*/ 2160 if (ct->error == E_OK) 2161 syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep."); 2162 if (ct->error == E_OK) { 2163 if (ct->fsm != DHCP4_FSM_SLEEP) 2164 syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep."); 2165 } 2162 2166 else { 2163 2167 syslog(LOG_NOTICE, "[DHCP4C] server not available, go to sleep, error: %s.", itron_strerror(ct->error)); -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netapp/wwws.c
r337 r364 708 708 len += put_str(cepid, srbuf, response); 709 709 get_tim(&finish); 710 syslog(LOG_NOTICE, "[WWWn:%02u SND] send: index.html, len: %4u, time: %lu [ ms]",710 syslog(LOG_NOTICE, "[WWWn:%02u SND] send: index.html, len: %4u, time: %lu [us]", 711 711 cepid, len, (finish - start) * 1000 / SYSTIM_HZ); 712 712 return E_OK; … … 1609 1609 1610 1610 get_tim(&finish); 1611 syslog(LOG_NOTICE, "[WWWn:%02u SND]send: stat.html, len: %4u, time: %lu [ ms]",1611 syslog(LOG_NOTICE, "[WWWn:%02u SND]send: stat.html, len: %4u, time: %lu [us]", 1612 1612 cepid, len, (finish - start) * 1000 / SYSTIM_HZ); 1613 1613 return E_OK; -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netdev/if_btusb/if_btusb.c
r337 r364 150 150 151 151 T_IF_SOFTC if_softc = { 152 { 0,}, /* ネットワークインタフェースのアドレス */152 {{0,}}, /* ネットワークインタフェースのアドレス */ 153 153 0, /* 送信タイムアウト */ 154 154 &btusb_softc, /* ディバイス依存のソフトウェア情報 */ … … 691 691 } 692 692 693 static int usb_acl_out_active = 0;694 static int usb_command_active = 0;695 696 static int usb_can_send_packet_now(uint8_t packet_type)697 {698 switch (packet_type) {699 case HCI_COMMAND_DATA_PACKET:700 return !usb_command_active;701 case HCI_ACL_DATA_PACKET:702 return !usb_acl_out_active;703 default:704 return 0;705 }706 }707 708 693 // single instance 709 694 static const hci_transport_t hci_transport_usb = -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/icmp6.h
r337 r364 291 291 typedef struct t_router_advert_hdr { 292 292 T_ICMP6_HDR hdr; 293 uint32_t reachable; /* [ ms] 到達可能時間 */294 uint32_t retransmit; /* [ ms] 近隣要請送信間隔 */293 uint32_t reachable; /* [us] 到達可能時間 */ 294 uint32_t retransmit; /* [us] 近隣要請送信間隔 */ 295 295 /* この後にオプションが続く */ 296 296 } __attribute__((packed, aligned(2))) T_ROUTER_ADVERT_HDR; -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/in4_subr.c
r337 r364 287 287 288 288 /* IP ヘッダを設定する。*/ 289 if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK) 289 if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK) { 290 syscall(rel_net_buf(*nbuf)); 291 *nbuf = NULL; 290 292 return error; 293 } 291 294 292 295 /* 4 オクテット境界までパディングで埋める。*/ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/in_itron.h
r337 r364 62 62 #define TFN_TCP_ALL (0) 63 63 64 #define TEV_TCP_RCV_OOB ( -0x201)64 #define TEV_TCP_RCV_OOB (0x201) 65 65 66 66 /* UDP 関係 */ … … 75 75 #define TFN_UDP_ALL (0) 76 76 77 #define TEV_UDP_RCV_DAT ( -0x221)77 #define TEV_UDP_RCV_DAT (0x221) 78 78 79 79 /* 一般 */ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/tcp_input.c
r337 r364 1364 1364 NTOHS(tcph->dport); 1365 1365 1366 /* SDU 長 より 緊急ポインタが大きい場合 */ 1367 if (tcph->urp > tcph->sum) 1368 goto drop; 1369 1366 1370 find_cep: 1367 1371 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/tcp_output.c
r337 r364 369 369 tcph->flags |= TCP_FLG_URG; 370 370 } 371 else 371 else { 372 tcph->urp = 0; 372 373 cep->snd_up = cep->snd_una; 374 } 373 375 374 376 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c
r337 r364 897 897 898 898 /* tcp_rcv_buf の割当て長をリセットする。*/ 899 cep->rcv_buf_len = 0;899 cep->rcv_buf_len -= len; 900 900 901 901 /* 通信端点のロックを解除する。*/ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/udp_var.h
r337 r364 101 101 typedef ER (*t_udp_callback)(ID cepid, FN fncd, void *p_parblk); 102 102 103 typedef struct t_udp_rcv_dat_para { 104 uint_t len; 105 T_NET_BUF *input; 106 uint_t off; 107 union { 108 T_IPV4EP rep4; 109 T_IPV6EP rep6; 110 }; 111 } T_UDP_RCV_DAT_PARA; 112 103 113 /* 104 114 * UDP 通信端点 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/udpn_input.c
r337 r364 75 75 { 76 76 T_UDP_HDR *udph; 77 uint_t len;77 T_UDP_RCV_DAT_PARA para; 78 78 79 79 udph = (T_UDP_HDR *)(input->buf + off); 80 len = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE);80 para.len = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE); 81 81 82 82 if (cep->rcv_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ … … 98 98 /* データをバッファに移す。*/ 99 99 memcpy(cep->rcv_data, GET_UDP_SDU(input, off), 100 (size_t)( len < cep->rcv_len ?len : cep->rcv_len));100 (size_t)(para.len < cep->rcv_len ? para.len : cep->rcv_len)); 101 101 syscall(rel_net_buf(input)); 102 102 … … 104 104 105 105 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 106 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)(uint32_t) len);106 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)(uint32_t)para.len); 107 107 #else 108 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)& len);108 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)¶.len); 109 109 #endif 110 110 else … … 121 121 122 122 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 123 (*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)(uint32_t) len);123 (*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)(uint32_t)para.len); 124 124 #else 125 (*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)&len); 125 para.input = input; 126 para.off = off; 127 #if API_PROTO == API_PROTO_IPV4 128 para.rep4.portno = ntohs(udph->sport); 129 IN_COPY_TO_HOST(¶.rep4.ipaddr, input); 130 #else 131 para.rep6.portno = ntohs(udph->sport); 132 IN_COPY_TO_HOST(¶.rep6.ipaddr, input); 133 #endif 134 (*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)¶.len); 126 135 #endif 127 136 /* … … 129 138 * データを読み出さなかったことになるので、捨てる。 130 139 */ 131 if (cep->cb_netbuf != NULL) 132 syscall(rel_net_buf(cep->cb_netbuf)); 140 if (cep->cb_netbuf != NULL) { 141 if ((input->flags & NB_FLG_NOREL_IFOUT) == 0) 142 syscall(rel_net_buf(cep->cb_netbuf)); 143 cep->cb_netbuf = NULL; 144 } 133 145 } 134 146 else { -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c
r337 r364 411 411 return E_NOEXS; 412 412 #if defined(SUPPORT_INET6) 413 #endif 414 #if defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0 413 #elif defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0 415 414 switch (optname) { 416 415 case IP_MULTICAST_LOOP: … … 488 487 return E_NOEXS; 489 488 #if defined(SUPPORT_INET6) 490 #endif 491 #if defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0 489 #elif defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0 492 490 switch (optname) { 493 491 case IP_MULTICAST_LOOP: -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c
r337 r364 122 122 123 123 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 124 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_ RCV_DAT, (void*)error);124 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_CAN_CEP, (void*)error); 125 125 #else 126 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_ RCV_DAT, (void*)&error);126 (*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_CAN_CEP, (void*)&error); 127 127 #endif 128 128 else -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet6/in6_subr.c
r337 r364 369 369 370 370 /* IPv6 ヘッダを設定する。*/ 371 if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK) 371 if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK) { 372 syscall(rel_net_buf(*nbuf)); 373 *nbuf = NULL; 372 374 return error; 375 } 373 376 374 377 /* 4 オクテット境界までパディングで埋める。*/ … … 662 665 * in6_rtredirect -- ルーティング表にエントリを登録する。 663 666 * 664 * 注意: 引数 tmo の単位は [ ms]。667 * 注意: 引数 tmo の単位は [us]。 665 668 */ 666 669 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet6/in6_var.h
r337 r364 184 184 * vltime と pltime は、追加/変更してからの相対時間 185 185 */ 186 uint32_t vltime; /* 有効時間 [ ms] */187 uint32_t pltime; /* 推奨有効時間 [ ms] */186 uint32_t vltime; /* 有効時間 [us] */ 187 uint32_t pltime; /* 推奨有効時間 [us] */ 188 188 } __attribute__((packed, aligned(2)))T_IN6_ADDR_LIFETIME; 189 189 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet6/nd6.c
r337 r364 353 353 if (nd6_cache[mix].hold != NULL) { 354 354 syscall(rel_net_buf(nd6_cache[mix].hold)); 355 nd6_cache[mix].hold = NULL; 355 356 } 356 357 fix = mix; … … 562 563 if (ln->hold != NULL) { 563 564 syscall(rel_net_buf(ln->hold)); 565 ln->hold = NULL; 564 566 } 565 567 -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet6/nd6.h
r337 r364 81 81 T_NET_BUF *hold; 82 82 TMO tmout; 83 SYSTIM expire; /* [ ms] 有効時間が切れる時刻 */83 SYSTIM expire; /* [us] 有効時間が切れる時刻 */ 84 84 T_IF_ADDR ifaddr; 85 85 uint8_t state; … … 183 183 typedef struct t_def_router { 184 184 T_IN6_ADDR addr; 185 SYSTIM expire; /* [ ms] 有効時間が切れる時刻 */186 uint32_t lifetime; /* [ ms] 有効時間 */185 SYSTIM expire; /* [us] 有効時間が切れる時刻 */ 186 uint32_t lifetime; /* [us] 有効時間 */ 187 187 uint16_t plistmap; /* プレフィックスマップ */ 188 188 uint8_t flags; /* ルータ通知のフラグ */ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c
r337 r364 999 999 return; 1000 1000 1001 1002 1003 1004 1005 1001 /* ルータ要請ヘッダを設定する。*/ 1002 rsh = GET_ROUTER_SOLICIT_HDR(output, IF_IP6_ROUTER_SOLICIT_HDR_OFFSET); 1003 rsh->hdr.type = ND_ROUTER_SOLICIT; 1004 rsh->hdr.code = 0; 1005 rsh->nd_rs_reserved = 0; 1006 1006 1007 1007 /* チェックサムを計算する。*/ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/tcpip_sym.def
r337 r364 15 15 TMO_UDP_OUTPUT 16 16 TMO_ICMP_OUTPUT 17 TMO_IGMP_OUTPUT 17 18 TMO_ND6_NS_OUTPUT 18 19 TMO_ND6_NA_OUTPUT -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/tinet_asp.cfg
r337 r364 73 73 INCLUDE("netinet/if_ether.cfg"); 74 74 INCLUDE("netinet/ip.cfg"); 75 INCLUDE("netinet/ip_igmp.cfg"); 75 76 INCLUDE("netinet/tcp.cfg"); 76 77 INCLUDE("netinet/udp.cfg"); -
asp3_tinet_ecnl_rx/trunk/bnep_bridge/.cproject
r337 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1809108923" 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"/> 38 38 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1675556141" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 39 <builder buildPath="${workspace_loc:/bnep_bridge}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1493716846" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>39 <builder buildPath="${workspace_loc:/bnep_bridge}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1493716846" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> 40 40 <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.941811569" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen"> 41 41 <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.51731195" 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"/> -
asp3_tinet_ecnl_rx/trunk/bnep_bridge/Debug/Makefile
r342 r364 153 153 endif 154 154 155 TINETDIR = 156 155 157 # 156 158 # 共通コンパイルオプションの定義 … … 174 176 -I$(SRCDIR)/../usbhost/src \ 175 177 $(INCLUDES) 176 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.178 LDFLAGS := $(LDFLAGS) -L. 177 179 LIBS := $(LIBS) $(CXXLIBS) 178 180 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 204 206 endif 205 207 206 TINETDIR =207 208 ifdef TINETDIR 208 209 # … … 210 211 # 211 212 NO_USE_TINET_LIBRARY = true 212 213 213 214 # ネットワークインタフェースの選択、何れか一つ選択する。 214 215 NET_IF = ether 215 216 216 217 # イーサネット・ディバイスドライバの選択 217 218 NET_DEV = if_rx62n … … 255 256 all: tecs | $(DEPDIR) 256 257 # @$(MAKE) check 257 @$(MAKE) check $(OBJNAME).bin258 # @$(MAKE) check $(OBJNAME).bin 258 259 # @$(MAKE) check $(OBJNAME).srec 260 @$(MAKE) check $(OBJNAME).mot 259 261 else 260 262 #all: check 261 all: check $(OBJNAME).bin263 #all: check $(OBJNAME).bin 262 264 #all: check $(OBJNAME).srec 265 all: check $(OBJNAME).mot 263 266 endif 264 267 … … 424 427 425 428 # 429 # 並列makeのための依存関係の定義 430 # 431 $(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp 432 $(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 433 | offset.timestamp 434 435 # 426 436 # 特別な依存関係の定義 427 437 # … … 432 442 # 433 443 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 434 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \444 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 435 445 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 436 446 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) … … 461 471 $(OBJNAME).srec: $(OBJFILE) 462 472 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec 473 474 $(OBJNAME).mot: $(OBJFILE) 475 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot 463 476 464 477 # -
asp3_tinet_ecnl_rx/trunk/bnep_bridge/src/main.c
r359 r364 117 117 static void main_timeout(); 118 118 119 extern int ntshell_exit; 120 119 121 int uart_read(char *buf, int cnt, void *extobj) 120 122 { 121 return serial_rea_dat(SIO_PORTID, (char *)buf, cnt); 123 struct main_t *obj = (struct main_t *)extobj; 124 int result; 125 ER ret; 126 int timer; 127 128 obj->prev = obj->now; 129 130 /* タイマー取得 */ 131 timer = main_get_timer(); 132 133 /* 待ち */ 134 ret = serial_trea_dat(SIO_PORTID, buf, cnt, timer); 135 if ((ret < 0) && (ret != E_OK) && (ret != E_TMOUT)) { 136 syslog(LOG_NOTICE, "tslp_tsk ret: %s %d", itron_strerror(ret), timer); 137 ntshell_exit = 1; 138 return -1; 139 } 140 result = (int)ret; 141 142 ret = get_tim(&obj->now); 143 if (ret != E_OK) { 144 syslog(LOG_NOTICE, "get_tim ret: %s", itron_strerror(ret)); 145 ntshell_exit = 1; 146 return -1; 147 } 148 149 /* 時間経過 */ 150 int elapse = obj->now - obj->prev; 151 main_progress(elapse); 152 153 /* タイムアウト処理 */ 154 main_timeout(); 155 156 return result; 122 157 } 123 158 … … 125 160 { 126 161 return serial_wri_dat(SIO_PORTID, buf, cnt); 127 }128 129 unsigned char ntstdio_xi(struct ntstdio_t *handle)130 {131 char buf[1];132 if(serial_rea_dat(SIO_PORTID, buf, 1) != 1)133 return -EIO;134 return buf[0];135 }136 137 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c)138 {139 char buf[1];140 buf[0] = c;141 serial_wri_dat(SIO_PORTID, buf, 1);142 162 } 143 163 … … 154 174 main_initialize(); 155 175 156 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);176 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 157 177 ntshell_set_prompt(&ntshell, "NTShell>"); 158 178 ntshell_execute(&ntshell); … … 172 192 ER ret; 173 193 174 ntshell_task_init(); 194 #ifdef TOPPERS_OMIT_TECS 195 serial_opn_por(SIO_PORTID); 196 #endif 197 serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV); 198 199 ntshell_task_init(uart_read, uart_write, &main_obj); 175 200 176 201 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_rx/trunk/bnep_bridge/src/main.cfg
r348 r364 47 47 INCLUDE("if_rx62n.cfg"); 48 48 INCLUDE("ntshell_main.cfg"); 49 INCLUDE("mbed_api.cfg"); 49 50 50 51 CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, MAIN_STACK_SIZE, NULL }); -
asp3_tinet_ecnl_rx/trunk/btstack/.cproject
r337 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 24 <option id="toolchain.version" value="4.8.4.201 703"/>24 <option id="toolchain.version" value="4.8.4.201803"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 37 37 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1540847398" 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"/> 38 38 <option id="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections.171236353" name="Function sections (-ffunction-sections)" superClass="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections" value="true" valueType="boolean"/> 39 <option id="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble.1850688291" name="Make the double data type be 64 bits in size" superClass="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble" value="true" valueType="boolean"/> 39 40 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.580898471" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 40 41 <builder buildPath="${workspace_loc:/btstack}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.592607904" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> -
asp3_tinet_ecnl_rx/trunk/curl-7.57.0/.cproject
r337 r364 24 24 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 25 25 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 26 <option id="toolchain.version" value="4.8.4.201 703"/>26 <option id="toolchain.version" value="4.8.4.201803"/> 27 27 </storageModule> 28 28 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 39 39 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1575092980" 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"/> 40 40 <option id="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections.954466902" name="Function sections (-ffunction-sections)" superClass="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections" value="true" valueType="boolean"/> 41 <option id="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble.439244273" name="Make the double data type be 64 bits in size" superClass="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble" value="true" valueType="boolean"/> 41 42 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.786062905" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 42 43 <builder buildPath="${workspace_loc:/curl}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.685132589" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> -
asp3_tinet_ecnl_rx/trunk/curl-7.57.0/lib/curl_config.h
r337 r364 72 72 73 73 /* to disable verbose strings */ 74 /* #undef CURL_DISABLE_VERBOSE_STRINGS */ 74 #define CURL_DISABLE_VERBOSE_STRINGS 1 75 75 76 76 /* Definition to make a library symbol externally visible. */ … … 573 573 574 574 /* Define to 1 if you have the signal function. */ 575 #define HAVE_SIGNAL 1 575 /* #undef HAVE_SIGNAL */ 576 576 577 577 /* Define to 1 if you have the <signal.h> header file. */ … … 948 948 949 949 /* If you want to build curl with the built-in manual */ 950 #define USE_MANUAL 1 950 /* #undef USE_MANUAL */ 951 951 952 952 /* if mbedTLS is enabled */ -
asp3_tinet_ecnl_rx/trunk/curl-7.57.0/lib/mprintf.c
r337 r364 997 997 { 998 998 unsigned int r, i, j, w, f; 999 unsigned long v;999 unsigned long long v; 1000 1000 char s[16], c, d, *p; 1001 1001 … … 1022 1022 w = w * 10 + c - '0'; 1023 1023 if (c == 'l' || c == 'L') { /* Prefix: Size is long int */ 1024 f |= 4; c = *fmt++; 1024 c = *fmt++; 1025 if (c == 'l' || c == 'L') { /* Prefix: Size is long int */ 1026 f |= 32; c = *fmt++; 1027 } 1028 else { 1029 f |= 4; 1030 } 1025 1031 } 1026 1032 else if (c == 'h') { /* Prefix: Size is short int */ … … 1055 1061 1056 1062 /* Get an argument and put it in numeral */ 1057 v = (f & 4) ? va_arg(arp, long) 1058 : ((f & 16) ? ((d == 'D') ? (long)((short)va_arg(arp, int)) : (long)((unsigned short)va_arg(arp, unsigned int))) 1059 : ((d == 'D') ? (long)va_arg(arp, int) : (long)va_arg(arp, unsigned int))); 1060 if (d == 'D' && (v & 0x80000000)) { 1063 if (f & 4) 1064 v = (long long)va_arg(arp, long); 1065 else if (f & 16) 1066 v = (d == 'D') ? (long long)((short)va_arg(arp, int)) : (long long)((unsigned short)va_arg(arp, unsigned int)); 1067 else if (f & 32) 1068 v = (d == 'D') ? (long long)(va_arg(arp, long long)) : (long long)(va_arg(arp, unsigned long long)); 1069 else 1070 v = (d == 'D') ? (long long)va_arg(arp, int) : (long long)va_arg(arp, unsigned int); 1071 if (d == 'D' && (v & 0x8000000000000000ll)) { 1061 1072 v = 0 - v; 1062 1073 f |= 8; -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/.cproject
r337 r364 24 24 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 25 25 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 26 <option id="toolchain.version" value="4.8.4.201 703"/>26 <option id="toolchain.version" value="4.8.4.201803"/> 27 27 </storageModule> 28 28 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 38 38 <option id="com.renesas.cdt.managedbuild.gcc.core.option.deviceCommand.614640820" name="DeviceCommand" superClass="com.renesas.cdt.managedbuild.gcc.core.option.deviceCommand" useByScannerDiscovery="false" value="R5F563NB" valueType="string"/> 39 39 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.223830224" 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"/> 40 <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.gcc.core.option.warnings.otherFlags.1638796861" name="Other Flags" superClass="com.renesas.cdt.managedbuild.gcc.core.option.warnings.otherFlags" valueType="stringList">40 <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.gcc.core.option.warnings.otherFlags.1638796861" name="Other Flags" superClass="com.renesas.cdt.managedbuild.gcc.core.option.warnings.otherFlags" useByScannerDiscovery="false" valueType="stringList"> 41 41 <listOptionValue builtIn="false" value="-Werror=implicit-function-declaration"/> 42 42 <listOptionValue builtIn="false" value="-Werror=implicit-int"/> … … 44 44 <listOptionValue builtIn="false" value="-Werror=pointer-arith"/> 45 45 </option> 46 <option id="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections.730653111" name="Function sections (-ffunction-sections)" superClass="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections" value="true" valueType="boolean"/> 46 <option id="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections.730653111" name="Function sections (-ffunction-sections)" superClass="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections" useByScannerDiscovery="true" value="true" valueType="boolean"/> 47 <option id="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble.1900028908" name="Make the double data type be 64 bits in size" superClass="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble" useByScannerDiscovery="true" value="true" valueType="boolean"/> 47 48 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1287712370" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 48 49 <builder buildPath="${workspace_loc:/musl}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1709148240" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/arch/rx/crt_arch.h
r342 r364 1 #ifndef __c2__ 1 2 #define main sta_ker 3 #else 4 #define main dummy_start 5 static int dummy_start(int argc, char **argv, char **envp) 6 { 7 return 0; 8 } 9 #endif -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/arch/rx/syscall_arch.h
r342 r364 87 87 long __syscall_ret(unsigned long), __syscall_nr(long nr, ...); 88 88 89 #define __syscall(n, ...) n(__VA_ARGS__) 90 #define __syscall_cp(n, ...) n(__VA_ARGS__) 91 #define syscall(n, ...) __syscall_ret(__syscall(n, __VA_ARGS__)) 92 #define syscall_cp(n, ...) __syscall_ret(__syscall_cp(n, __VA_ARGS__)) 89 #define __syscall0(n) n() 90 #define __syscall1(n,a) n(__scc(a)) 91 #define __syscall2(n,a,b) n(__scc(a),__scc(b)) 92 #define __syscall3(n,a,b,c) n(__scc(a),__scc(b),__scc(c)) 93 #define __syscall4(n,a,b,c,d) n(__scc(a),__scc(b),__scc(c),__scc(d)) 94 #define __syscall5(n,a,b,c,d,e) n(__scc(a),__scc(b),__scc(c),__scc(d),__scc(e)) 95 #define __syscall6(n,a,b,c,d,e,f) n(__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) 96 #define __syscall7(n,a,b,c,d,e,f,g) n(__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g)) 93 97 94 #define __syscall2(n, ...) n(__VA_ARGS__) 95 #define __syscall3(n, ...) n(__VA_ARGS__) 96 #define __syscall_cp2(n, ...) n(__VA_ARGS__) 97 #define __syscall_cp3(n, ...) n(__VA_ARGS__) 98 #define __syscall_cp0(n) n() 99 #define __syscall_cp1(n,a) n(__scc(a)) 100 #define __syscall_cp2(n,a,b) n(__scc(a),__scc(b)) 101 #define __syscall_cp3(n,a,b,c) n(__scc(a),__scc(b),__scc(c)) 102 #define __syscall_cp4(n,a,b,c,d) n(__scc(a),__scc(b),__scc(c),__scc(d)) 103 #define __syscall_cp5(n,a,b,c,d,e) n(__scc(a),__scc(b),__scc(c),__scc(d),__scc(e)) 104 #define __syscall_cp6(n,a,b,c,d,e,f) n(__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) 105 #define __syscall_cp7(n,a,b,c,d,e,f,g) n(__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g)) 106 107 #define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n 108 #define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,) 109 #define __SYSCALL_CONCAT_X(a,b) a##b 110 #define __SYSCALL_CONCAT(a,b) __SYSCALL_CONCAT_X(a,b) 111 #define __SYSCALL_DISP(b,...) __SYSCALL_CONCAT(b,__SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__) 112 113 #define syscall(...) __syscall_ret(__SYSCALL_DISP(__syscall, __VA_ARGS__)) 114 #define syscall_cp(...) __syscall_ret(__SYSCALL_DISP(__syscall_cp, __VA_ARGS__)) 98 115 #endif -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/include/bits/alltypes.h
r340 r364 1 1 #if defined(_MSC_VER) || defined(__c2__) 2 #define asctime musl_asctime 3 #define calloc musl_calloc 4 #define clock musl_clock 2 5 #define close musl_close 3 6 #define execvp musl_execvp 7 #define exit musl_exit 4 8 #define fclose musl_fclose 5 9 #define fdopen musl_fdopen 6 10 #define fflush musl_fflush 11 #define fma _musl_fma 12 #define fgetc musl_fgetc 7 13 #define fopen musl_fopen 14 #define fprintf musl_fprintf 15 #define fputc musl_fputc 8 16 #define free musl_free 9 17 #define fwrite musl_fwrite … … 11 19 #define localtime musl_localtime 12 20 #define lseek musl_lseek 21 #define malloc musl_malloc 22 #define memmove musl_memmove 13 23 #define open musl_open 24 #define perror musl_perror 14 25 #define read musl_read 15 #define malloc musl_malloc16 #define calloc musl_calloc17 26 #define realloc musl_realloc 27 #define strftime musl_strftime 28 #define strnlen musl_strnlen 29 #define strtoul musl_strtoul 18 30 #define time musl_time 31 #define tzset musl_tzset 19 32 #define unlink musl_unlink 20 #define perror musl_perror21 #define strnlen musl_strnlen22 #define strftime musl_strftime23 #define asctime musl_asctime24 #define tzset musl_tzset25 #define clock musl_clock26 33 #endif 27 34 #ifdef _MSC_VER … … 72 79 73 80 #if defined(__NEED_time_t) && !defined(__DEFINED_time_t) 81 #if defined(_MSC_VER) || defined(__c2__) 82 typedef long long time_t; 83 #else 74 84 typedef long time_t; 85 #endif 75 86 #define __DEFINED_time_t 76 87 #endif -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/include/math.h
r337 r364 15 15 #define NAN __builtin_nanf("") 16 16 #define INFINITY __builtin_inff() 17 #el se17 #elif !defined(_MSC_VER) 18 18 #define NAN (0.0f/0.0f) 19 19 #define INFINITY 1e5000f 20 #else 21 #define _HUGE_ENUF 1e+300 22 #define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF)) 23 #define NAN ((float)(INFINITY * 0.0F)) 20 24 #endif 21 25 -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/include/stdarg.h
r337 r364 10 10 #include <bits/alltypes.h> 11 11 12 #if !defined(_MSC_VER) && !defined(__c2__) 13 12 14 #define va_start(v,l) __builtin_va_start(v,l) 13 15 #define va_end(v) __builtin_va_end(v) 14 16 #define va_arg(v,l) __builtin_va_arg(v,l) 15 17 #define va_copy(d,s) __builtin_va_copy(d,s) 18 19 #else 20 21 #define _INTSIZEOF(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1)) 22 23 #define __crt_va_start(ap, v) ((void)(ap = (va_list)&(v) + _INTSIZEOF(v))) 24 #define __crt_va_arg(ap, t) (*(t*)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t))) 25 #define __crt_va_end(ap) ((void)(ap = (va_list)0)) 26 27 #define va_start __crt_va_start 28 #define va_arg __crt_va_arg 29 #define va_end __crt_va_end 30 #define va_copy(destination, source) ((destination) = (source)) 31 32 #endif 16 33 17 34 #ifdef __cplusplus -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/src/env/__libc_start_main.c
r337 r364 84 84 libc_start_init(); 85 85 } 86 #undef exit 87 #define exit(x) x 86 88 #endif 87 89 -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/src/internal/syscall.h
r342 r364 44 44 #endif 45 45 #define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g)) 46 #endif 46 47 47 #define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n 48 48 #define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,) … … 50 50 #define __SYSCALL_CONCAT(a,b) __SYSCALL_CONCAT_X(a,b) 51 51 #define __SYSCALL_DISP(b,...) __SYSCALL_CONCAT(b,__SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__) 52 # if 052 #endif 53 53 #define __syscall(...) __SYSCALL_DISP(__syscall,__VA_ARGS__) 54 #define syscall(...) __syscall_ret(__syscall(__VA_ARGS__))55 #endif 54 //#define syscall(...) __syscall_ret(__syscall(__VA_ARGS__)) 55 56 56 #define socketcall __socketcall 57 57 #define socketcall_cp __socketcall_cp … … 64 64 #define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),0) 65 65 #define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) 66 66 #endif 67 67 #define __syscall_cp(...) __SYSCALL_DISP(__syscall_cp,__VA_ARGS__) 68 #define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__)) 69 #endif 68 //#define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__)) 70 69 71 70 #ifndef SYSCALL_USE_SOCKETCALL -
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/src/stdlib/strtol.c
r337 r364 58 58 59 59 weak_alias(strtol, __strtol_internal); 60 #if defined(_MSC_VER) || defined(__c2__) 61 weak_alias(musl_strtoul, __strtoul_internal); 62 #else 60 63 weak_alias(strtoul, __strtoul_internal); 64 #endif 61 65 weak_alias(strtoll, __strtoll_internal); 62 66 weak_alias(strtoull, __strtoull_internal); -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet.c
r337 r364 56 56 57 57 /* 58 * インスタンスリスト通知の送信 59 */ 60 ER ecn_ntf_inl() 61 { 62 return _ecn_tsk_ntf_inl(); 63 } 64 65 /* 58 66 * ECHONETオブジェクト参照 59 67 * 引数 … … 393 401 return E_PAR; 394 402 395 a_ret = trcv_dtq(ecn_api_ mailboxid, (intptr_t *)&p_msg, fa_tmout);403 a_ret = trcv_dtq(ecn_api_dataqueueid, (intptr_t *)&p_msg, fa_tmout); 396 404 if (a_ret != E_OK) { 397 405 *ppk_esv = NULL; … … 425 433 a_ret = _ecn_fbs_del(a_fbs); 426 434 return a_ret; 435 } 436 437 /* 438 * 応答電文の送信元ノードを取得する 439 */ 440 ID ecn_get_enod(T_EDATA *pk_esv) 441 { 442 const EOBJCB *p_snod; 443 const EOBJINIB *p_sobj = NULL; 444 445 p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id); 446 if (p_snod != NULL) { 447 p_sobj = p_snod->profile; 448 } 449 450 if (p_sobj == NULL) 451 return EOBJ_NULL; 452 #ifdef ECHONET_CONTROLLER_EXTENTION 453 if (p_sobj->eprpcnt == 0) 454 return ecn_agent_get_eobj(p_sobj); 455 #endif 456 return 1 + (((intptr_t)p_sobj - (intptr_t)eobjinib_table) / sizeof(EOBJINIB)); 427 457 } 428 458 -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet.h
r337 r364 67 67 typedef enum _echonet_enod_id 68 68 { 69 ENOD_NOT_MATCH_ID = -1, 69 ENOD_NOT_MATCH_ID = -1, /* アドレスID登録なし */ 70 70 ENOD_MULTICAST_ID = 0, /* マルチキャストアドレスID */ 71 71 ENOD_LOCAL_ID = 1, /* 自ノードアドレスID */ … … 279 279 extern const ID ecn_svc_taskid; 280 280 extern const ID ecn_udp_taskid; 281 extern const ID ecn_api_ mailboxid;282 extern const ID ecn_svc_ mailboxid;283 extern const ID ecn_udp_ mailboxid;281 extern const ID ecn_api_dataqueueid; 282 extern const ID ecn_svc_dataqueueid; 283 extern const ID ecn_udp_dataqueueid; 284 284 #ifndef ECHONET_USE_MALLOC 285 285 extern const ID ecn_mempoolid; … … 309 309 310 310 /* 311 * インスタンスリスト通知の送信 312 */ 313 ER ecn_ntf_inl(); 314 315 /* 311 316 * ECHONETオブジェクト参照 312 317 */ … … 392 397 */ 393 398 ER ecn_rel_esv(T_EDATA *pk_esv); 399 400 /* 401 * 応答電文の送信元ノードを取得する 402 */ 403 ID ecn_get_enod(T_EDATA *pk_esv); 394 404 395 405 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet.trb
r337 r364 634 634 const ID _echonet_ecn_svc_taskid = ECHONET_SVC_TASK; 635 635 const ID _echonet_ecn_udp_taskid = ECHONET_UDP_TASK; 636 const ID _echonet_ecn_api_ mailboxid = ECHONET_API_MAILBOX;637 const ID _echonet_ecn_svc_ mailboxid = ECHONET_SVC_MAILBOX;638 const ID _echonet_ecn_udp_ mailboxid = ECHONET_UDP_MAILBOX;636 const ID _echonet_ecn_api_dataqueueid = ECHONET_API_DATAQUEUE; 637 const ID _echonet_ecn_svc_dataqueueid = ECHONET_SVC_DATAQUEUE; 638 const ID _echonet_ecn_udp_dataqueueid = ECHONET_UDP_DATAQUEUE; 639 639 #ifndef ECHONET_USE_MALLOC 640 640 const ID _echonet_ecn_mempoolid = ECHONET_MEMPOOL; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_asp.cfg
r337 r364 51 51 52 52 /* 53 * ECHONET Lite API用 メールボックス53 * ECHONET Lite API用データキュー 54 54 */ 55 CRE_DTQ(ECHONET_API_ MAILBOX, { TA_TFIFO, 1, NULL });55 CRE_DTQ(ECHONET_API_DATAQUEUE, { TA_TFIFO, ECHONET_API_DATAQUEUE_COUNT, NULL }); 56 56 57 57 /* 58 * ECHONET Lite サービス処理タスク用 メールボックス58 * ECHONET Lite サービス処理タスク用データキュー 59 59 */ 60 CRE_DTQ(ECHONET_SVC_ MAILBOX, { TA_TFIFO, 1, NULL });60 CRE_DTQ(ECHONET_SVC_DATAQUEUE, { TA_TFIFO, ECHONET_SVC_DATAQUEUE_COUNT, NULL }); 61 61 62 62 /* … … 66 66 67 67 /* 68 * ECHONET Lite UDP通信処理用 メールボックス68 * ECHONET Lite UDP通信処理用データキュー 69 69 */ 70 CRE_DTQ(ECHONET_UDP_ MAILBOX, { TA_TFIFO, 1, NULL });70 CRE_DTQ(ECHONET_UDP_DATAQUEUE, { TA_TFIFO, ECHONET_UDP_DATAQUEUE_COUNT, NULL }); 71 71 72 72 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_rename.h
r337 r364 47 47 #define ecn_svc_taskid _echonet_ecn_svc_taskid 48 48 #define ecn_udp_taskid _echonet_ecn_udp_taskid 49 #define ecn_api_ mailboxid _echonet_ecn_api_mailboxid50 #define ecn_svc_ mailboxid _echonet_ecn_svc_mailboxid51 #define ecn_udp_ mailboxid _echonet_ecn_udp_mailboxid49 #define ecn_api_dataqueueid _echonet_ecn_api_dataqueueid 50 #define ecn_svc_dataqueueid _echonet_ecn_svc_dataqueueid 51 #define ecn_udp_dataqueueid _echonet_ecn_udp_dataqueueid 52 52 #define ecn_mempoolid _echonet_ecn_mempoolid 53 53 #define ecn_udp_cepid _echonet_ecn_udp_cepid -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_task.c
r337 r364 77 77 static bool_t g_release_esv; 78 78 79 ER _ecn_tsk_ntf_inl(intptr_t fa_exinf);80 81 79 ER _ecn_tsk_snd_dtq(ECN_FBS_ID fa_rsp_fbs, bool_t from_app) 82 80 { 83 81 ER a_ret; 84 82 T_MSG *msg = (T_MSG *)fa_rsp_fbs.ptr; 85 ID dtqid = ecn_udp_ mailboxid;83 ID dtqid = ecn_udp_dataqueueid; 86 84 int i; 87 85 #ifdef ECN_DBG_PUT_ENA … … 90 88 if (from_app && (((T_EDATA *)fa_rsp_fbs.ptr)->hdr.edata.esv == ESV_INFC)) { 91 89 g_api_tid = ((T_EDATA *)fa_rsp_fbs.ptr)->hdr.ecn_hdr.tid; 92 dtqid = ecn_svc_ mailboxid;90 dtqid = ecn_svc_dataqueueid; 93 91 } 94 92 else { … … 98 96 g_api_tid = ((T_EDATA *)fa_rsp_fbs.ptr)->hdr.ecn_hdr.tid; 99 97 100 dtqid = ecn_udp_ mailboxid;98 dtqid = ecn_udp_dataqueueid; 101 99 break; 102 100 case ENOD_LOCAL_ID: 103 101 if (from_app) 104 dtqid = ecn_svc_ mailboxid;102 dtqid = ecn_svc_dataqueueid; 105 103 else 106 dtqid = ecn_api_ mailboxid;104 dtqid = ecn_api_dataqueueid; 107 105 break; 108 106 case ENOD_API_ID: 109 dtqid = ecn_api_ mailboxid;107 dtqid = ecn_api_dataqueueid; 110 108 break; 111 109 default: … … 121 119 switch (eobjcb_table[i].profile->eobjatr) { 122 120 case EOBJ_SYNC_REMOTE_NODE: 123 dtqid = ecn_udp_ mailboxid;121 dtqid = ecn_udp_dataqueueid; 124 122 break; 125 123 case EOBJ_ASYNC_REMOTE_NODE: 126 dtqid = ecn_svc_ mailboxid;124 dtqid = ecn_svc_dataqueueid; 127 125 break; 128 126 default: … … 131 129 } 132 130 else { 133 dtqid = ecn_udp_ mailboxid;131 dtqid = ecn_udp_dataqueueid; 134 132 } 135 133 break; … … 242 240 #endif 243 241 244 a_ret = trcv_dtq(ecn_svc_ mailboxid, (intptr_t *)&a_mdt.p_msg, a_timer);242 a_ret = trcv_dtq(ecn_svc_dataqueueid, (intptr_t *)&a_mdt.p_msg, a_timer); 245 243 if ((a_ret != E_OK) && (a_ret != E_TMOUT)) { 246 244 ECN_DBG_PUT_2("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 867 865 g_release_esv = false; 868 866 869 ECN_CAP_PUT_1("redirect ecn_svc_ mailboxid → ecn_api_mailboxid (esv:0x%02X)",867 ECN_CAP_PUT_1("redirect ecn_svc_dataqueueid → ecn_api_dataqueueid (esv:0x%02X)", 870 868 p_esv->edata.esv); 871 869 fa_fbs_id.ptr->hdr.target.id = ENOD_API_ID; 872 a_ret = snd_dtq(ecn_api_ mailboxid, (intptr_t)fa_fbs_id.ptr);870 a_ret = snd_dtq(ecn_api_dataqueueid, (intptr_t)fa_fbs_id.ptr); 873 871 if (a_ret != E_OK) { 874 872 syslog(LOG_WARNING, "_ecn_tsk_ecn_msg() : snd_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 2024 2022 req.ptr->hdr.type = ECN_MSG_INTERNAL; 2025 2023 req.ptr->hdr.sender.dtqid = sender; 2026 req.ptr->hdr.target.dtqid = ecn_svc_ mailboxid;2024 req.ptr->hdr.target.dtqid = ecn_svc_dataqueueid; 2027 2025 req.ptr->hdr.reply.dtqid = sender; 2028 2026 … … 2052 2050 2053 2051 res.ptr->hdr.type = ECN_MSG_INTERNAL; 2054 res.ptr->hdr.sender.dtqid = ecn_svc_ mailboxid;2052 res.ptr->hdr.sender.dtqid = ecn_svc_dataqueueid; 2055 2053 res.ptr->hdr.target.dtqid = req.ptr->hdr.reply.dtqid; 2056 res.ptr->hdr.reply.dtqid = ecn_svc_ mailboxid;2054 res.ptr->hdr.reply.dtqid = ecn_svc_dataqueueid; 2057 2055 2058 2056 *pk_res = res; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_task.h
r337 r364 110 110 } T_ECN_INTERNAL_MSG; 111 111 112 /* 113 * インスタンスリスト通知の送信 114 */ 115 ER _ecn_tsk_ntf_inl(); 112 116 /* 113 117 * 要求電文作成 -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp6_task.c
r337 r364 151 151 152 152 /* echonet_taskに送る */ 153 a_ret = snd_dtq(ecn_svc_ mailboxid, (intptr_t)a_fbs_id.ptr);154 if (a_ret != E_OK) { 155 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_ mailboxid) result = %d:%s", a_ret, itron_strerror(a_ret));153 a_ret = snd_dtq(ecn_svc_dataqueueid, (intptr_t)a_fbs_id.ptr); 154 if (a_ret != E_OK) { 155 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_dataqueueid) result = %d:%s", a_ret, itron_strerror(a_ret)); 156 156 goto lb_except; 157 157 } … … 201 201 a_timer = ECHONET_UDP_TASK_GET_TIMER; 202 202 203 a_ret = trcv_dtq(ecn_udp_ mailboxid, (intptr_t *)&a_mdt.p_msg, a_timer);203 a_ret = trcv_dtq(ecn_udp_dataqueueid, (intptr_t *)&a_mdt.p_msg, a_timer); 204 204 if ((a_ret != E_OK) && (a_ret != E_TMOUT)) { 205 205 ECN_DBG_PUT_2("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 261 261 req.ptr->hdr.type = ECN_MSG_INTERNAL; 262 262 req.ptr->hdr.sender.dtqid = sender; 263 req.ptr->hdr.target.dtqid = ecn_udp_ mailboxid;263 req.ptr->hdr.target.dtqid = ecn_udp_dataqueueid; 264 264 req.ptr->hdr.reply.dtqid = sender; 265 265 … … 289 289 290 290 res.ptr->hdr.type = ECN_MSG_INTERNAL; 291 res.ptr->hdr.sender.dtqid = ecn_udp_ mailboxid;291 res.ptr->hdr.sender.dtqid = ecn_udp_dataqueueid; 292 292 res.ptr->hdr.target.dtqid = req.ptr->hdr.reply.dtqid; 293 res.ptr->hdr.reply.dtqid = ecn_udp_ mailboxid;293 res.ptr->hdr.reply.dtqid = ecn_udp_dataqueueid; 294 294 295 295 *pk_res = res; … … 416 416 else if (memcmp(&a_dst.ipaddr, &locl, sizeof(a_dst.ipaddr)) == 0) { 417 417 /* 送信先が127.0.0.1 → dtqに転送 */ 418 ECN_DBG_PUT_1("redirect ecn_udp_ mailboxid → ecn_svc_mailboxid (esv:0x%02X)",418 ECN_DBG_PUT_1("redirect ecn_udp_dataqueueid → ecn_svc_dataqueueid (esv:0x%02X)", 419 419 ((T_EDATA *)fbs_id.ptr)->hdr.edata.esv); 420 420 … … 462 462 463 463 switch (fncd) { 464 case T FN_UDP_CRE_CEP:464 case TEV_UDP_RCV_DAT: 465 465 case TFN_UDP_RCV_DAT: 466 466 /* ECN_CAP_PUT("[UDP ECHO SRV] callback_nblk_udp() recv: %u", *(int *)p_parblk); */ … … 488 488 return E_OK; 489 489 490 case TFN_UDP_CRE_CEP: 490 491 case TFN_UDP_SND_DAT: 491 492 break; 492 493 default: 493 494 ECN_CAP_PUT_2("[UDP ECHO SRV] fncd:0x%04X(%s)", -fncd, 495 (fncd == TEV_UDP_RCV_DAT ? "TEV_UDP_RCV_DAT" : 494 496 (fncd == TFN_UDP_CRE_CEP ? "TFN_UDP_CRE_CEP" : 495 497 (fncd == TFN_UDP_RCV_DAT ? "TFN_UDP_RCV_DAT" : 496 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef")))) ;498 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef"))))); 497 499 498 500 error = E_PAR; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp6_task.h
r337 r364 71 71 #endif /* ECHONET_UDP_TASK_STACK_SIZE */ 72 72 73 #ifndef NUM_ECHONET_UDP_ MAILBOX74 #define NUM_ECHONET_UDP_ MAILBOX1075 #endif /* NUM_ECHONET_UDP_ MAILBOX*/73 #ifndef NUM_ECHONET_UDP_DATAQUEUE 74 #define NUM_ECHONET_UDP_DATAQUEUE 10 75 #endif /* NUM_ECHONET_UDP_DATAQUEUE */ 76 76 77 77 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp_task.c
r337 r364 146 146 147 147 /* echonet_taskに送る */ 148 a_ret = snd_dtq(ecn_svc_ mailboxid, (intptr_t)a_fbs_id.ptr);149 if (a_ret != E_OK) { 150 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_ mailboxid) result = %d:%s", a_ret, itron_strerror(a_ret));148 a_ret = snd_dtq(ecn_svc_dataqueueid, (intptr_t)a_fbs_id.ptr); 149 if (a_ret != E_OK) { 150 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_dataqueueid) result = %d:%s", a_ret, itron_strerror(a_ret)); 151 151 goto lb_except; 152 152 } … … 206 206 a_timer = ECHONET_UDP_TASK_GET_TIMER; 207 207 208 a_ret = trcv_dtq(ecn_udp_ mailboxid, (intptr_t *)&a_mdt.p_msg, a_timer);208 a_ret = trcv_dtq(ecn_udp_dataqueueid, (intptr_t *)&a_mdt.p_msg, a_timer); 209 209 if ((a_ret != E_OK) && (a_ret != E_TMOUT)) { 210 210 ECN_DBG_PUT_2("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 266 266 req.ptr->hdr.type = ECN_MSG_INTERNAL; 267 267 req.ptr->hdr.sender.dtqid = sender; 268 req.ptr->hdr.target.dtqid = ecn_udp_ mailboxid;268 req.ptr->hdr.target.dtqid = ecn_udp_dataqueueid; 269 269 req.ptr->hdr.reply.dtqid = sender; 270 270 … … 294 294 295 295 res.ptr->hdr.type = ECN_MSG_INTERNAL; 296 res.ptr->hdr.sender.dtqid = ecn_udp_ mailboxid;296 res.ptr->hdr.sender.dtqid = ecn_udp_dataqueueid; 297 297 res.ptr->hdr.target.dtqid = req.ptr->hdr.reply.dtqid; 298 res.ptr->hdr.reply.dtqid = ecn_udp_ mailboxid;298 res.ptr->hdr.reply.dtqid = ecn_udp_dataqueueid; 299 299 300 300 *pk_res = res; … … 420 420 else if (a_dst.ipaddr == MAKE_IPV4_ADDR(127,0,0,1)) { 421 421 /* 送信先が127.0.0.1 → dtqに転送 */ 422 ECN_DBG_PUT_1("redirect ecn_udp_ mailboxid → ecn_svc_mailboxid (esv:0x%02X)",422 ECN_DBG_PUT_1("redirect ecn_udp_dataqueueid → ecn_svc_dataqueueid (esv:0x%02X)", 423 423 ((T_EDATA *)fbs_id.ptr)->hdr.edata.esv); 424 424 … … 466 466 467 467 switch (fncd) { 468 case T FN_UDP_CRE_CEP:468 case TEV_UDP_RCV_DAT: 469 469 case TFN_UDP_RCV_DAT: 470 470 /* ECN_CAP_PUT("[UDP ECHO SRV] callback_nblk_udp() recv: %u", *(int *)p_parblk); */ … … 492 492 return E_OK; 493 493 494 case TFN_UDP_CRE_CEP: 494 495 case TFN_UDP_SND_DAT: 495 496 break; 496 497 default: 497 498 ECN_CAP_PUT_2("[UDP ECHO SRV] fncd:0x%04X(%s)", -fncd, 499 (fncd == TEV_UDP_RCV_DAT ? "TEV_UDP_RCV_DAT" : 498 500 (fncd == TFN_UDP_CRE_CEP ? "TFN_UDP_CRE_CEP" : 499 501 (fncd == TFN_UDP_RCV_DAT ? "TFN_UDP_RCV_DAT" : 500 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef")))) ;502 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef"))))); 501 503 502 504 error = E_PAR; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp_task.h
r337 r364 71 71 #endif /* ECHONET_UDP_TASK_STACK_SIZE */ 72 72 73 #ifndef NUM_ECHONET_UDP_ MAILBOX74 #define NUM_ECHONET_UDP_ MAILBOX1075 #endif /* NUM_ECHONET_UDP_ MAILBOX*/73 #ifndef NUM_ECHONET_UDP_DATAQUEUE 74 #define NUM_ECHONET_UDP_DATAQUEUE 10 75 #endif /* NUM_ECHONET_UDP_DATAQUEUE */ 76 76 77 77 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/fatfs/ffarch.c
r359 r364 43 43 #include <stdlib.h> 44 44 #include <string.h> 45 #include <stdbool.h> 45 46 #include "t_stdlib.h" 46 47 #include "syssvc/serial.h" 47 48 #include "syssvc/syslog.h" 48 49 #include "target_syssvc.h" 50 #include "target_stddef.h" 49 51 #include "kernel_cfg.h" 50 52 #include "diskio.h" 51 53 #include "mmc_rspi.h" 52 54 #include "ff.h" 55 #include "ffarch.h" 53 56 #include "util/ntstdio.h" 54 57 #include "mbed_api.h" … … 59 62 FFS_IDLE, 60 63 FFS_RETRY_WAIT, 64 FFS_DISABLE, 61 65 }; 62 66 … … 118 122 FATFS RomDisk; 119 123 120 //gpio_t ins;121 //sdfs_t sdfs;122 124 #define WP() false 123 125 … … 132 134 bool_t SD_begin(); 133 135 134 #define P7_8 1 135 #define P8_5 2 136 #define P8_6 3 137 #define P8_3 4 138 #define P8_4 5 139 140 int ffarch_init() 141 { 142 int result = -1; 143 144 /* SD_CD */ 145 //gpio_init_in(&ins, P7_8); 146 147 /* SDカードを初期化 */ 148 //sdfs_init(&sdfs, P8_5, P8_6, P8_3, P8_4, "sd"); 149 136 void ffarch_init(void) 137 { 138 #ifdef TOPPERS_GRCITRUS 139 ffarch_state = FFS_DISABLE; 140 ffarch_timer = TMO_FEVR; 141 mmc_rspi_prev_status = STA_NODISK; 142 #else 150 143 ffarch_state = FFS_IDLE; 151 144 ffarch_timer = 0; … … 156 149 157 150 act_tsk(FFARCH_TASK); 158 151 #endif 159 152 if (romdisk_init()) { 160 153 ntstdio_printf(&ntstdio, "ROM disk (0:) OK!\n"); … … 163 156 ntstdio_printf(&ntstdio, "ROM disk (0:) NG!\n"); 164 157 } 165 166 serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);167 158 } 168 159 169 160 void ffarch_initialize() 170 161 { 162 #ifdef TOPPERS_GRCITRUS 163 ffarch_state = FFS_DISABLE; 164 ffarch_timer = TMO_FEVR; 165 mmc_rspi_prev_status = STA_NODISK; 166 #else 171 167 sta_cyc(MMC_RSPI_CYC); 168 #endif 172 169 } 173 170 … … 284 281 } 285 282 286 int ffarch_get_timer( )283 int ffarch_get_timer(void) 287 284 { 288 285 return ffarch_timer; … … 299 296 } 300 297 301 void ffarch_timeout( )298 void ffarch_timeout(void) 302 299 { 303 300 if (ffarch_timer != 0) … … 317 314 //goto case FFS_IDLE; 318 315 case FFS_IDLE: 319 320 316 /* SDカードが入れられた場合 */ 317 if (((mmc_rspi_prev_status & STA_NODISK) != 0) && ((mmc_rspi_status() & STA_NODISK) == 0)) { 321 318 ntstdio_printf(&ntstdio, "SD card initializing ...\n"); 322 319 -
asp3_tinet_ecnl_rx/trunk/ntshell/fatfs/ffarch.h
r359 r364 41 41 #define FFARCH_STACK_SIZE 512 42 42 43 void ffarch_init( );43 void ffarch_init(void); 44 44 void ffarch_task(intptr_t exinf); 45 int ffarch_get_timer( );45 int ffarch_get_timer(void); 46 46 void ffarch_progress(int elapse); 47 void ffarch_timeout( );47 void ffarch_timeout(void); 48 48 49 49 void sdfs_cychdr(intptr_t exinf); -
asp3_tinet_ecnl_rx/trunk/ntshell/src/echonet_app_config.h
r337 r364 40 40 41 41 #define ECHONET_TASK_STACK_SIZE 1024 /* ECNL UDPタスク用スタック領域のサイズ */ 42 43 #define ECHONET_API_DATAQUEUE_COUNT 5 /* ECHONET Lite API用データキュー */ 44 #define ECHONET_SVC_DATAQUEUE_COUNT 5 /* ECHONET Lite サービス処理タスク用データキュー */ 45 #define ECHONET_UDP_DATAQUEUE_COUNT 5 /* ECHONET Lite UDP通信処理用データキュー */ 42 46 43 47 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/src/fdtable.c
r359 r364 45 45 #include "target_syssvc.h" 46 46 #ifndef NTSHELL_NO_SOCKET 47 #include <tinet_defs.h> 47 48 #include <tinet_config.h> 49 #include <net/net.h> 50 #include <net/net_endian.h> 48 51 #include <netinet/in.h> 49 52 #include <netinet/in_itron.h> … … 55 58 #include <net/net.h> 56 59 #include <net/if_var.h> 60 #include <netinet/udp.h> 57 61 #include <netinet/udp_var.h> 58 62 #include <netinet/tcp.h> 59 63 #include <netinet/tcp_var.h> 64 #include <net/net_buf.h> 60 65 #endif 61 66 #include "ff.h" … … 69 74 #define IO_TYPE_DIR 3 70 75 #define IO_TYPE_TCP 4 71 #define IO_TYPE_UDP 76 #define IO_TYPE_UDP 5 72 77 73 78 static struct _IO_FILE fd_table[8 * sizeof(FLGPTN)] = { … … 85 90 continue; 86 91 92 memset(fp, 0, sizeof(struct _IO_FILE)); 87 93 fp->fd = fd; 88 94 fp->type = type; … … 280 286 #endif 281 287 288 void memor(void *dst, void *src, size_t len) 289 { 290 uint8_t *d = (uint8_t *)dst; 291 uint8_t *s = (uint8_t *)src; 292 uint8_t *e = &s[len]; 293 294 while (s < e) { 295 *d++ |= *s++; 296 } 297 } 298 282 299 struct fd_events { 283 300 int count; … … 304 321 } 305 322 306 memcpy(&evts.readfds, rfds, sizeof(fd_set)); 307 memcpy(&evts.writefds, wfds, sizeof(fd_set)); 308 memcpy(&evts.errorfds, efds, sizeof(fd_set)); 323 if (rfds != NULL) 324 memcpy(&evts.readfds, rfds, sizeof(fd_set)); 325 else 326 memset(&evts.readfds, 0, sizeof(fd_set)); 327 if (wfds != NULL) 328 memcpy(&evts.writefds, wfds, sizeof(fd_set)); 329 else 330 memset(&evts.writefds, 0, sizeof(fd_set)); 331 if (efds != NULL) 332 memcpy(&evts.errorfds, efds, sizeof(fd_set)); 333 else 334 memset(&evts.errorfds, 0, sizeof(fd_set)); 309 335 evts.count = 0; 310 336 311 337 ret = shell_get_evts(&evts, tmout); 338 if (rfds != NULL) 339 memset(rfds, 0, sizeof(fd_set)); 340 if (wfds != NULL) 341 memset(wfds, 0, sizeof(fd_set)); 342 if (efds != NULL) 343 memset(efds, 0, sizeof(fd_set)); 312 344 if (ret == E_OK) { 313 memcpy(rfds, &evts.readfds, sizeof(fd_set)); 314 memcpy(wfds, &evts.writefds, sizeof(fd_set)); 315 memcpy(efds, &evts.errorfds, sizeof(fd_set)); 345 if (rfds != NULL) 346 memor(rfds, &evts.readfds, sizeof(fd_set)); 347 if (wfds != NULL) 348 memor(wfds, &evts.writefds, sizeof(fd_set)); 349 if (efds != NULL) 350 memor(efds, &evts.errorfds, sizeof(fd_set)); 316 351 return evts.count; 317 352 } 318 353 if (ret == E_TMOUT) { 319 memset(rfds, 0, sizeof(fd_set));320 memset(wfds, 0, sizeof(fd_set));321 memset(efds, 0, sizeof(fd_set));322 354 return 0; 323 355 } … … 441 473 struct _IO_FILE *fp = tcpid_to_fd(cepid); 442 474 FLGPTN flgptn = 0; 475 ER ret; 476 int len; 443 477 444 478 if (fp == NULL) … … 449 483 450 484 switch (fncd) { 485 case TFN_TCP_RCV_BUF: 486 len = *(int *)p_parblk; 487 if (len <= 0) 488 return E_OK; 489 490 ret = wai_sem(SEM_FILEDESC); 491 if (ret < 0) { 492 syslog(LOG_ERROR, "wai_sem => %d", ret); 493 } 494 fp->psock->len += len; 495 ret = sig_sem(SEM_FILEDESC); 496 if (ret < 0) { 497 syslog(LOG_ERROR, "sig_sem => %d", ret); 498 } 499 500 if (fp->readevt_w == fp->readevt_r) fp->readevt_w++; 501 502 set_flg(FLG_SELECT_WAIT, flgptn); 503 return E_OK; 504 451 505 case TFN_TCP_RCV_DAT: 506 len = *(int *)p_parblk; 507 if (len <= 0) 508 return E_OK; 509 510 ret = wai_sem(SEM_FILEDESC); 511 if (ret < 0) { 512 syslog(LOG_ERROR, "wai_sem => %d", ret); 513 } 514 fp->psock->len += len; 515 ret = sig_sem(SEM_FILEDESC); 516 if (ret < 0) { 517 syslog(LOG_ERROR, "sig_sem => %d", ret); 518 } 519 452 520 if (fp->readevt_w == fp->readevt_r) fp->readevt_w++; 453 521 … … 484 552 struct _IO_FILE *fp = udpid_to_fd(cepid); 485 553 FLGPTN flgptn = 0; 554 int len; 486 555 487 556 if (fp == NULL) … … 492 561 493 562 switch (fncd) { 563 case TEV_UDP_RCV_DAT: 564 { 565 T_UDP_RCV_DAT_PARA *udppara = (T_UDP_RCV_DAT_PARA *)p_parblk; 566 len = udppara->len; 567 if (len <= 0) 568 return E_OK; 569 570 ER ret = wai_sem(SEM_FILEDESC); 571 if (ret < 0) { 572 syslog(LOG_ERROR, "wai_sem => %d", ret); 573 } 574 fp->psock->len = len; 575 if (fp->psock->input != NULL) { 576 ret = rel_net_buf(fp->psock->input); 577 if (ret < 0) { 578 syslog(LOG_ERROR, "rel_net_buf => %d", ret); 579 } 580 } 581 fp->psock->input = udppara->input; 582 fp->psock->buf = GET_UDP_SDU(udppara->input, udppara->off); 583 memset(&fp->psock->raddr4, 0, sizeof(fp->psock->raddr4)); 584 fp->psock->raddr4.sin_family = AF_INET; 585 fp->psock->raddr4.sin_port = htons(udppara->rep4.portno); 586 fp->psock->raddr4.sin_addr.s_addr = htonl(udppara->rep4.ipaddr); 587 udppara->input->flags |= NB_FLG_NOREL_IFOUT; 588 ret = sig_sem(SEM_FILEDESC); 589 if (ret < 0) { 590 syslog(LOG_ERROR, "sig_sem => %d", ret); 591 } 592 593 if (fp->readevt_w == fp->readevt_r) fp->readevt_w++; 594 595 set_flg(FLG_SELECT_WAIT, flgptn); 596 return E_OK; 597 } 494 598 case TFN_UDP_CRE_CEP: 599 return E_OK; 600 495 601 case TFN_UDP_RCV_DAT: 602 len = *(int *)p_parblk; 603 if (len <= 0) 604 return E_OK; 605 496 606 if (fp->readevt_w == fp->readevt_r) fp->readevt_w++; 497 607 … … 524 634 ER shell_get_evts(struct fd_events *evts, TMO tmout) 525 635 { 526 ER ret;527 FLGPTN waitptn, flgptn = 0, readfds = 0, writefds = 0;528 struct _IO_FILE *fp = NULL;529 636 int count = 0; 530 531 stdio_update_evts(); 637 SYSTIM prev, now; 638 639 get_tim(&prev); 640 641 for (;;) { 642 ER ret; 643 FLGPTN waitptn, flgptn, readfds = 0, writefds = 0; 644 struct _IO_FILE *fp = NULL; 645 646 stdio_update_evts(); 532 647 533 648 #ifndef NTSHELL_NO_SOCKET 534 waitptn = *((FLGPTN *)&evts->errorfds);649 waitptn = *((FLGPTN *)&evts->errorfds); 535 650 #else 536 waitptn = *((FLGPTN *)&evts->readfds) | *((FLGPTN *)&evts->errorfds);651 waitptn = *((FLGPTN *)&evts->readfds) | *((FLGPTN *)&evts->errorfds); 537 652 #endif 538 for (int fd = 0; fd < fd_table_count; fd++) {539 fp = &fd_table[fd];653 for (int fd = 0; fd < fd_table_count; fd++) { 654 fp = &fd_table[fd]; 540 655 541 656 #ifndef NTSHELL_NO_SOCKET 542 if (FD_ISSET(fd, &evts->readfds)) { 543 if ((fp->type == IO_TYPE_TCP) 544 && (GET_TCP_CEP(fp->psock->cepid)->rwbuf_count > 0)) { 545 FD_SET(fd, (fd_set *)&readfds); 546 count++; 547 if (fp->readevt_w == fp->readevt_r) fp->readevt_r--; 657 if (FD_ISSET(fd, &evts->readfds)) { 658 if ((fp->type == IO_TYPE_TCP) && (fp->psock->cepid != 0)) { 659 if (fp->psock->len == 0) { 660 ret = tcp_rcv_buf(fp->psock->cepid, &fp->psock->input, TMO_NBLK); 661 if ((ret != E_WBLK) && (ret != E_OBJ) && (ret < 0)) { 662 syslog(LOG_ERROR, "tcp_rcv_buf => %d", ret); 663 //return ret; 664 } 665 if (ret > 0) { 666 ret = wai_sem(SEM_FILEDESC); 667 if (ret < 0) { 668 syslog(LOG_ERROR, "wai_sem => %d", ret); 669 } 670 fp->psock->len += ret; 671 ret = sig_sem(SEM_FILEDESC); 672 if (ret < 0) { 673 syslog(LOG_ERROR, "sig_sem => %d", ret); 674 } 675 } 676 } 677 else ret = 1; 678 if (ret > 0) { 679 FD_SET(fd, (fd_set *)&readfds); 680 count++; 681 if (fp->readevt_w == fp->readevt_r) fp->readevt_r--; 682 } 683 } 684 else if ((fp->type == IO_TYPE_UDP) && (fp->psock->cepid != 0)) { 685 if (fp->psock->input != NULL) { 686 FD_SET(fd, (fd_set *)&readfds); 687 count++; 688 if (fp->readevt_w == fp->readevt_r) fp->readevt_r--; 689 } 690 } 691 else { 692 FD_SET(fd, (fd_set *)&waitptn); 693 } 548 694 } 549 else { 550 FD_SET(fd, (fd_set *)&waitptn); 695 #endif 696 if (FD_ISSET(fd, &evts->writefds)) { 697 if (fp->writeevt_w == fp->writeevt_r) { 698 FD_SET(fd, (fd_set *)&writefds); 699 count++; 700 if (fp->writeevt_w == fp->writeevt_r) fp->writeevt_r--; 701 } 702 else { 703 FD_SET(fd, (fd_set *)&waitptn); 704 } 551 705 } 552 706 } 553 #endif 554 if (FD_ISSET(fd, &evts->writefds)) { 555 if (fp->writable) { 556 FD_SET(fd, (fd_set *)&writefds); 707 memset(evts, 0, sizeof(*evts)); 708 709 if (waitptn == 0) { 710 memcpy(&evts->readfds, &readfds, sizeof(evts->readfds)); 711 memcpy(&evts->writefds, &writefds, sizeof(evts->writefds)); 712 evts->count = count; 713 return E_OK; 714 } 715 else if ((readfds | writefds) != 0) { 716 set_flg(FLG_SELECT_WAIT, (readfds | writefds)); 717 } 718 719 /* イベント待ち */ 720 flgptn = 0; 721 ret = twai_flg(FLG_SELECT_WAIT, waitptn, TWF_ORW, &flgptn, tmout); 722 if (ret != E_OK) { 723 if (ret != E_TMOUT) { 724 syslog(LOG_ERROR, "twai_flg => %d", ret); 725 return ret; 726 } 727 728 stdio_flgptn(&flgptn); 729 730 if (flgptn == 0) 731 return E_TMOUT; 732 } 733 flgptn &= waitptn; 734 735 /* 受け取ったフラグのみクリア */ 736 ret = clr_flg(FLG_SELECT_WAIT, ~flgptn); 737 if (ret != E_OK) { 738 syslog(LOG_ERROR, "clr_flg => %d", ret); 739 } 740 741 count = 0; 742 for (int fd = 0; fd < fd_table_count; fd++) { 743 if (!FD_ISSET(fd, (fd_set *)&waitptn)) 744 continue; 745 746 fp = &fd_table[fd]; 747 748 if (fp->readevt_w != fp->readevt_r) { 749 fp->readevt_r++; 750 FD_SET(fd, &evts->readfds); 557 751 count++; 558 752 } 559 else { 560 FD_SET(fd, (fd_set *)&waitptn); 753 if (fp->writeevt_w != fp->writeevt_r) { 754 fp->writeevt_r++; 755 fp->writable = 1; 561 756 } 562 } 563 } 564 memset(evts, 0, sizeof(*evts)); 565 566 if (waitptn == 0) { 567 memcpy(&evts->readfds, &readfds, sizeof(evts->readfds)); 568 memcpy(&evts->writefds, &writefds, sizeof(evts->writefds)); 569 evts->count = count; 570 return E_OK; 571 } 572 else if ((readfds | writefds) != 0){ 573 set_flg(FLG_SELECT_WAIT, (readfds | writefds)); 574 } 575 576 /* イベント待ち */ 577 ret = twai_flg(FLG_SELECT_WAIT, waitptn, TWF_ORW, &flgptn, tmout); 578 if (ret != E_OK) { 579 if (ret != E_TMOUT) { 580 syslog(LOG_ERROR, "twai_flg => %d", ret); 581 return ret; 582 } 583 584 stdio_flgptn(&flgptn); 585 586 if (flgptn == 0) 757 if (fp->writable) { 758 FD_SET(fd, &evts->writefds); 759 count++; 760 } 761 if (fp->errorevt_w != fp->errorevt_r) { 762 fp->errorevt_r++; 763 FD_SET(fd, &evts->errorfds); 764 count++; 765 } 766 } 767 768 if (count > 0) 769 break; 770 771 get_tim(&now); 772 773 SYSTIM elapse = now - prev; 774 if (elapse > tmout) 587 775 return E_TMOUT; 588 } 589 flgptn &= waitptn; 590 591 /* 受け取ったフラグのみクリア */ 592 ret = clr_flg(FLG_SELECT_WAIT, ~flgptn); 593 if (ret != E_OK) { 594 syslog(LOG_ERROR, "clr_flg => %d", ret); 595 } 596 597 count = 0; 598 for (int fd = 0; fd < fd_table_count; fd++) { 599 if (!FD_ISSET(fd, (fd_set *)&waitptn)) 600 continue; 601 602 fp = &fd_table[fd]; 603 604 if (fp->readevt_w != fp->readevt_r) { 605 fp->readevt_r++; 606 FD_SET(fd, &evts->readfds); 607 count++; 608 } 609 if (fp->writeevt_w != fp->writeevt_r) { 610 fp->writeevt_r++; 611 fp->writable = 1; 612 } 613 if (fp->writable) { 614 FD_SET(fd, &evts->writefds); 615 count++; 616 } 617 if (fp->errorevt_w != fp->errorevt_r) { 618 fp->errorevt_r++; 619 FD_SET(fd, &evts->errorfds); 620 count++; 621 } 622 } 776 777 prev = now; 778 tmout -= elapse; 779 } 780 623 781 evts->count = count; 624 782 … … 676 834 } 677 835 678 ssize_t shell_send(int fd, const void *buf, size_t len, int flags)679 {680 return -ENOMEM;681 }682 683 836 ssize_t shell_sendto(int fd, const void *buf, size_t len, int flags, const struct sockaddr *addr, socklen_t alen) 684 837 { … … 691 844 } 692 845 693 ssize_t shell_recv(int fd, void *buf, size_t len, int flags) 694 { 695 return -ENOMEM; 696 } 697 698 ssize_t shell_recvfrom(int fd, void *buf, size_t len, int flags, struct sockaddr *__restrict addr, socklen_t *__restrict alen) 846 ssize_t shell_recvfrom(int fd, void *__restrict buf, size_t len, int flags, struct sockaddr *__restrict addr, socklen_t *__restrict alen) 699 847 { 700 848 return -ENOMEM; -
asp3_tinet_ecnl_rx/trunk/ntshell/src/mbed_api.c
r337 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 4 * Copyright (C) 2014-201 7Cores Co., Ltd. Japan5 * 3 * 4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ … … 42 42 #include "rx630.h" 43 43 #include "ff.h" 44 #include "target_stddef.h" 45 #include "target_kernel_impl.h" 46 #include "scif.h" 44 47 45 48 /* PWM出力(490Hz) */ … … 64 67 void gpio_init(gpio_t *obj, PinName pin) 65 68 { 69 obj->pin = pin; 70 obj->dir = PIN_INPUT; 71 obj->mode = PullDefault; 66 72 } 67 73 … … 83 89 /* 汎用入出力ポートに設定 */ 84 90 switch (pin) { 85 case 0:91 case D0: 86 92 /* P21 */ 87 93 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) & ~PORT_PMR_B1_BIT); 88 94 break; 89 case 1:95 case D1: 90 96 /* P20 */ 91 97 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) & ~PORT_PMR_B0_BIT); 92 98 break; 93 case 2:99 case D2: 94 100 /* P22 */ 95 101 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) & ~PORT_PMR_B2_BIT); 96 102 break; 97 case 3:103 case D3: 98 104 /* P23 */ 99 105 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) & ~PORT_PMR_B3_BIT); 100 106 break; 101 case 4:107 case D4: 102 108 /* P24 */ 103 109 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) & ~PORT_PMR_B4_BIT); 104 110 break; 105 case 5:111 case D5: 106 112 /* P25 */ 107 113 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) & ~PORT_PMR_B5_BIT); 108 114 break; 109 case 6:115 case D6: 110 116 /* P32 */ 111 117 sil_wrb_mem(PORT3_PMR_ADDR, sil_reb_mem(PORT3_PMR_ADDR) & ~PORT_PMR_B2_BIT); 112 118 break; 113 case 7:119 case D7: 114 120 /* P33 */ 115 121 sil_wrb_mem(PORT3_PMR_ADDR, sil_reb_mem(PORT3_PMR_ADDR) & ~PORT_PMR_B3_BIT); 122 break; 123 default: 116 124 break; 117 125 } … … 124 132 switch (pin) { 125 133 /* P21/TIOCA3 */ 126 case 0:134 case D0: 127 135 if (gpio) { 128 136 /* P21端子機能制御レジスタ P21とする */ … … 136 144 break; 137 145 /* P20/TIOCB3 */ 138 case 1:146 case D1: 139 147 if (gpio) { 140 148 /* P20端子機能制御レジスタ P20とする */ … … 148 156 break; 149 157 /* P22/TIOCC3 */ 150 case 2:158 case D2: 151 159 if (gpio) { 152 160 /* P22端子機能制御レジスタ P22とする */ … … 160 168 break; 161 169 /* P23/TIOCD3 */ 162 case 3:170 case D3: 163 171 if (gpio) { 164 172 /* P23端子機能制御レジスタ P23とする */ … … 172 180 break; 173 181 /* P24/TIOCB4 */ 174 case 4:182 case D4: 175 183 if (gpio) { 176 184 /* P24端子機能制御レジスタ P24とする */ … … 184 192 break; 185 193 /* P25/TIOCA4 */ 186 case 5:194 case D5: 187 195 if (gpio) { 188 196 /* P25端子機能制御レジスタ P25とする */ … … 196 204 break; 197 205 /* P32/TIOCC0 */ 198 case 6:206 case D6: 199 207 if (gpio) { 200 208 /* P32端子機能制御レジスタ P32とする */ … … 208 216 break; 209 217 /* P33/TIOCD0 */ 210 case 7:218 case D7: 211 219 if (gpio) { 212 220 /* P33端子機能制御レジスタ P33とする */ … … 218 226 } 219 227 result = E_OK; 228 break; 229 default: 220 230 break; 221 231 } … … 228 238 switch (pin) { 229 239 /* P21/TIOCA3 */ 230 case 0:240 case D0: 231 241 sil_wrb_mem(PORT2_PDR_ADDR, sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B1_BIT); 232 242 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B1_BIT); 233 243 break; 234 244 /* P20/TIOCB3 */ 235 case 1:245 case D1: 236 246 sil_wrb_mem(PORT2_PDR_ADDR, sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT); 237 247 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B0_BIT); 238 248 break; 239 249 /* P22/TIOCC3 */ 240 case 2:250 case D2: 241 251 sil_wrb_mem(PORT2_PDR_ADDR, sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B2_BIT); 242 252 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B2_BIT); 243 253 break; 244 254 /* P23/TIOCD3 */ 245 case 3:255 case D3: 246 256 sil_wrb_mem(PORT2_PDR_ADDR, sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B3_BIT); 247 257 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B3_BIT); 248 258 break; 249 259 /* P24/TIOCB4 */ 250 case 4:260 case D4: 251 261 sil_wrb_mem(PORT2_PDR_ADDR, sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B4_BIT); 252 262 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B4_BIT); 253 263 break; 254 264 /* P25/TIOCA4 */ 255 case 5:265 case D5: 256 266 sil_wrb_mem(PORT2_PDR_ADDR, sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B5_BIT); 257 267 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B5_BIT); 258 268 break; 259 269 /* P32/TIOCC0 */ 260 case 6:270 case D6: 261 271 sil_wrb_mem(PORT3_PDR_ADDR, sil_reb_mem(PORT3_PDR_ADDR) | PORT_PDR_B2_BIT); 262 272 sil_wrb_mem(PORT3_PMR_ADDR, sil_reb_mem(PORT3_PMR_ADDR) | PORT_PMR_B2_BIT); 263 273 break; 264 274 /* P33/TIOCD0 */ 265 case 7:275 case D7: 266 276 sil_wrb_mem(PORT3_PDR_ADDR, sil_reb_mem(PORT3_PDR_ADDR) | PORT_PDR_B3_BIT); 267 277 sil_wrb_mem(PORT3_PMR_ADDR, sil_reb_mem(PORT3_PMR_ADDR) | PORT_PMR_B3_BIT); 268 278 break; 279 default: 280 break; 269 281 } 270 282 } … … 280 292 281 293 switch (obj->pin) { 282 case 0:294 case D0: 283 295 /* P21 */ 284 296 pdr = PORT2_PDR_ADDR; bit = PORT_PDR_B1_BIT; 285 297 break; 286 case 1:298 case D1: 287 299 /* P20 */ 288 300 pdr = PORT2_PDR_ADDR; bit = PORT_PDR_B0_BIT; 289 301 break; 290 case 2:302 case D2: 291 303 /* P22 */ 292 304 pdr = PORT2_PDR_ADDR; bit = PORT_PDR_B2_BIT; 293 305 break; 294 case 3:306 case D3: 295 307 /* P23 */ 296 308 pdr = PORT2_PDR_ADDR; bit = PORT_PDR_B3_BIT; 297 309 break; 298 case 4:310 case D4: 299 311 /* P24 */ 300 312 pdr = PORT2_PDR_ADDR; bit = PORT_PDR_B4_BIT; 301 313 break; 302 case 5:314 case D5: 303 315 /* P25 */ 304 316 pdr = PORT2_PDR_ADDR; bit = PORT_PDR_B5_BIT; 305 317 break; 306 case 6:318 case D6: 307 319 /* P32 */ 308 320 pdr = PORT3_PDR_ADDR; bit = PORT_PDR_B2_BIT; 309 321 break; 310 case 7:322 case D7: 311 323 /* P33 */ 312 324 pdr = PORT3_PDR_ADDR; bit = PORT_PDR_B3_BIT; 313 325 break; 314 case 8:326 case D8: 315 327 /* PC2 */ 316 328 pdr = PORTC_PDR_ADDR; bit = PORT_PDR_B2_BIT; 317 329 break; 318 case 9:330 case D9: 319 331 /* PC3 */ 320 332 pdr = PORTC_PDR_ADDR; bit = PORT_PDR_B3_BIT; 321 333 break; 322 case 10:334 case D10: 323 335 /* PC4 */ 324 336 pdr = PORTC_PDR_ADDR; bit = PORT_PDR_B4_BIT; 325 337 break; 326 case 11:338 case D11: 327 339 /* PC6 */ 328 340 pdr = PORTC_PDR_ADDR; bit = PORT_PDR_B6_BIT; 329 341 break; 330 case 12:342 case D12: 331 343 /* PC7 */ 332 344 pdr = PORTC_PDR_ADDR; bit = PORT_PDR_B7_BIT; 333 345 break; 334 case 13:346 case D13: 335 347 /* PC5 */ 336 348 pdr = PORTC_PDR_ADDR; bit = PORT_PDR_B5_BIT; … … 349 361 sil_wrb_mem(pdr, sil_reb_mem(pdr) | bit); 350 362 break; 363 default: 364 break; 351 365 } 352 366 … … 387 401 388 402 switch (obj->pin) { 389 case 0:403 case D0: 390 404 /* P21 */ 391 405 podr = PORT2_PODR_ADDR; bit = PORT_PODR_B1_BIT; 392 406 break; 393 case 1:407 case D1: 394 408 /* P20 */ 395 409 podr = PORT2_PODR_ADDR; bit = PORT_PODR_B0_BIT; 396 410 break; 397 case 2:411 case D2: 398 412 /* P22 */ 399 413 podr = PORT2_PODR_ADDR; bit = PORT_PODR_B2_BIT; 400 414 break; 401 case 3:415 case D3: 402 416 /* P23 */ 403 417 podr = PORT2_PODR_ADDR; bit = PORT_PODR_B3_BIT; 404 418 break; 405 case 4:419 case D4: 406 420 /* P24 */ 407 421 podr = PORT2_PODR_ADDR; bit = PORT_PODR_B4_BIT; 408 422 break; 409 case 5:423 case D5: 410 424 /* P25 */ 411 425 podr = PORT2_PODR_ADDR; bit = PORT_PODR_B5_BIT; 412 426 break; 413 case 6:427 case D6: 414 428 /* P32 */ 415 429 podr = PORT3_PODR_ADDR; bit = PORT_PODR_B2_BIT; 416 430 break; 417 case 7:431 case D7: 418 432 /* P33 */ 419 433 podr = PORT3_PODR_ADDR; bit = PORT_PODR_B3_BIT; 420 434 break; 421 case 8:435 case D8: 422 436 /* PC2 */ 423 437 podr = PORTC_PODR_ADDR; bit = PORT_PODR_B2_BIT; 424 438 break; 425 case 9:439 case D9: 426 440 /* PC3 */ 427 441 podr = PORTC_PODR_ADDR; bit = PORT_PODR_B3_BIT; 428 442 break; 429 case 10:443 case D10: 430 444 /* PC4 */ 431 445 podr = PORTC_PODR_ADDR; bit = PORT_PODR_B4_BIT; 432 446 break; 433 case 11:447 case D11: 434 448 /* PC6 */ 435 449 podr = PORTC_PODR_ADDR; bit = PORT_PODR_B6_BIT; 436 450 break; 437 case 12:451 case D12: 438 452 /* PC7 */ 439 453 podr = PORTC_PODR_ADDR; bit = PORT_PODR_B7_BIT; 440 454 break; 441 case 13:455 case D13: 442 456 /* PC5 */ 443 457 podr = PORTC_PODR_ADDR; bit = PORT_PODR_B5_BIT; … … 463 477 464 478 switch (obj->pin) { 465 case 0:479 case D0: 466 480 /* P21 */ 467 481 pidr = PORT2_PIDR_ADDR; bit = PORT_PIDR_B1_BIT; 468 482 break; 469 case 1:483 case D1: 470 484 /* P20 */ 471 485 pidr = PORT2_PIDR_ADDR; bit = PORT_PIDR_B0_BIT; 472 486 break; 473 case 2:487 case D2: 474 488 /* P22 */ 475 489 pidr = PORT2_PIDR_ADDR; bit = PORT_PIDR_B2_BIT; 476 490 break; 477 case 3:491 case D3: 478 492 /* P23 */ 479 493 pidr = PORT2_PIDR_ADDR; bit = PORT_PIDR_B3_BIT; 480 494 break; 481 case 4:495 case D4: 482 496 /* P24 */ 483 497 pidr = PORT2_PIDR_ADDR; bit = PORT_PIDR_B4_BIT; 484 498 break; 485 case 5:499 case D5: 486 500 /* P25 */ 487 501 pidr = PORT2_PIDR_ADDR; bit = PORT_PIDR_B5_BIT; 488 502 break; 489 case 6:503 case D6: 490 504 /* P32 */ 491 505 pidr = PORT3_PIDR_ADDR; bit = PORT_PIDR_B2_BIT; 492 506 break; 493 case 7:507 case D7: 494 508 /* P33 */ 495 509 pidr = PORT3_PIDR_ADDR; bit = PORT_PIDR_B3_BIT; 496 510 break; 497 case 8:511 case D8: 498 512 /* PC2 */ 499 513 pidr = PORTC_PIDR_ADDR; bit = PORT_PIDR_B2_BIT; 500 514 break; 501 case 9:515 case D9: 502 516 /* PC3 */ 503 517 pidr = PORTC_PIDR_ADDR; bit = PORT_PIDR_B3_BIT; 504 518 break; 505 case 10:519 case D10: 506 520 /* PC4 */ 507 521 pidr = PORTC_PIDR_ADDR; bit = PORT_PIDR_B4_BIT; 508 522 break; 509 case 11:523 case D11: 510 524 /* PC6 */ 511 525 pidr = PORTC_PIDR_ADDR; bit = PORT_PIDR_B6_BIT; 512 526 break; 513 case 12:527 case D12: 514 528 /* PC7 */ 515 529 pidr = PORTC_PIDR_ADDR; bit = PORT_PIDR_B7_BIT; 516 530 break; 517 case 13:531 case D13: 518 532 /* PC5 */ 519 533 pidr = PORTC_PIDR_ADDR; bit = PORT_PIDR_B5_BIT; … … 581 595 582 596 switch (obj->pin) { 583 case 14:597 case A0: 584 598 /* *value = sil_reh_mem(S12AD_ADDR0_ADDR); */ 585 599 result = (arduino_ad_avelage[0] / (arduino_ad_table_count)); 586 600 break; 587 case 15:601 case A1: 588 602 /* *value = sil_reh_mem(S12AD_ADDR1_ADDR); */ 589 603 result = (arduino_ad_avelage[1] / (arduino_ad_table_count)); 590 604 break; 591 case 16:605 case A2: 592 606 /* *value = sil_reh_mem(S12AD_ADDR2_ADDR); */ 593 607 result = (arduino_ad_avelage[2] / (arduino_ad_table_count)); 594 608 break; 595 case 17:609 case A3: 596 610 /* *value = sil_reh_mem(S12AD_ADDR3_ADDR); */ 597 611 result = (arduino_ad_avelage[3] / (arduino_ad_table_count)); 598 612 break; 599 case 18:613 case A4: 600 614 /* *value = sil_reh_mem(S12AD_ADDR4_ADDR); */ 601 615 result = (arduino_ad_avelage[4] / (arduino_ad_table_count)); 602 616 break; 603 case 19:617 case A5: 604 618 /* *value = sil_reh_mem(S12AD_ADDR5_ADDR); */ 605 619 result = (arduino_ad_avelage[5] / (arduino_ad_table_count)); 606 620 break; 607 case 20:621 case A6: 608 622 /* *value = sil_reh_mem(S12AD_ADDR6_ADDR); */ 609 623 result = (arduino_ad_avelage[6] / (arduino_ad_table_count)); 610 624 break; 611 case 21:625 case A7: 612 626 /* *value = sil_reh_mem(S12AD_ADDR7_ADDR); */ 613 627 result = (arduino_ad_avelage[7] / (arduino_ad_table_count)); 614 628 break; 629 default: 630 return 0; 615 631 } 616 632 … … 677 693 /* 波形出力レベルの選択 */ 678 694 sil_wrb_mem(TPU0_TIORL_ADDR, (5 << TPU_TIORL_IOC_OFFSET) | (5 << TPU_TIORL_IOD_OFFSET)); 679 sil_wrb_mem(TPU3_TIORH_ADDR, (5 << TPU_TIOR L_IOA_OFFSET) | (5 << TPU_TIORL_IOB_OFFSET));695 sil_wrb_mem(TPU3_TIORH_ADDR, (5 << TPU_TIORH_IOA_OFFSET) | (5 << TPU_TIORH_IOB_OFFSET)); 680 696 sil_wrb_mem(TPU3_TIORL_ADDR, (5 << TPU_TIORL_IOC_OFFSET) | (5 << TPU_TIORL_IOD_OFFSET)); 681 sil_wrb_mem(TPU4_TIOR_ADDR, (5 << TPU_TIOR L_IOA_OFFSET) | (5 << TPU_TIORL_IOB_OFFSET));697 sil_wrb_mem(TPU4_TIOR_ADDR, (5 << TPU_TIOR_IOA_OFFSET) | (5 << TPU_TIOR_IOB_OFFSET)); 682 698 /* TGRyの設定 */ 683 699 sil_wrh_mem(TPU0_TGRA_ADDR, TPU_BASE_COUNTER); … … 714 730 } 715 731 732 typedef enum { 733 sciSerial, 734 sciI2C, 735 sciSPIM, 736 sciSPIS, 737 } sci_mode_t; 738 739 void sci_enable(void *base_address, sci_mode_t mode) 740 { 741 /* 742 * モジュールストップ機能の設定 743 */ 744 sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502); /* 書込み許可 */ 745 sil_wrw_mem(SYSTEM_MSTPCRB_ADDR, 746 sil_rew_mem(SYSTEM_MSTPCRB_ADDR) & ~SCI_MSTPCRB_BIT(base_address)); 747 sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500); /* 書込み禁止 */ 748 749 /* 送受信禁止, SCKn端子は入出力ポートとして使用 */ 750 sil_wrb_mem(SCI_SCR(base_address), 0x00U); 751 752 switch ((uint32_t)base_address) { 753 /* TXD/SDA/MOSI:P20, RXD/SCL/MISO:P21, SCK:P22 */ 754 case SCI0_BASE: 755 switch (mode) { 756 case sciSerial: 757 /* HIGH状態に設定 */ 758 sil_wrb_mem(PORT2_PODR_ADDR, 759 sil_reb_mem(PORT2_PODR_ADDR) | PORT_PODR_B0_BIT | PORT_PODR_B1_BIT); 760 /* TX出力/RX入力ポート設定 */ 761 sil_wrb_mem(PORT2_PDR_ADDR, (sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT) & ~PORT_PDR_B1_BIT); 762 /* プルアップ無効 */ 763 sil_wrb_mem(PORT2_PCR_ADDR, sil_reb_mem(PORT2_PCR_ADDR) & ~(PORT_PCR_B0_BIT | PORT_PCR_B1_BIT)); 764 /* RX CMOS */ 765 sil_wrb_mem(PORT2_ODR0_ADDR, 766 (sil_reb_mem(PORT2_ODR0_ADDR) & ~(PORT_ODR_Pm0_MASK | PORT_ODR_Pm1_MASK)) 767 | (PORT_ODR_CMOS << PORT_ODR_Pm0_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm1_OFFSET)); 768 /* 周辺機能として使用 */ 769 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B0_BIT | PORT_PMR_B1_BIT); 770 break; 771 case sciI2C: 772 /* HIGH状態に設定 */ 773 sil_wrb_mem(PORT2_PODR_ADDR, 774 sil_reb_mem(PORT2_PODR_ADDR) | PORT_PODR_B0_BIT | PORT_PODR_B1_BIT); 775 /* SCL,SDA 出力ポート設定 */ 776 sil_wrb_mem(PORT2_PDR_ADDR, sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT | PORT_PDR_B1_BIT); 777 /* プルアップ有効 */ 778 sil_wrb_mem(PORT2_PCR_ADDR, sil_reb_mem(PORT2_PCR_ADDR) | PORT_PCR_B0_BIT | PORT_PCR_B1_BIT); 779 /* Nチャネルオープンドレイン */ 780 sil_wrb_mem(PORT2_ODR0_ADDR, 781 (sil_reb_mem(PORT2_ODR0_ADDR) & ~(PORT_ODR_Pm0_MASK | PORT_ODR_Pm1_MASK)) 782 | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm0_OFFSET) | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm1_OFFSET)); 783 /* 周辺機能として使用 */ 784 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B0_BIT | PORT_PMR_B1_BIT); 785 break; 786 case sciSPIM: 787 /* HIGH状態に設定 */ 788 sil_wrb_mem(PORT2_PODR_ADDR, 789 sil_reb_mem(PORT2_PODR_ADDR) | PORT_PODR_B0_BIT | PORT_PODR_B1_BIT | PORT_PODR_B2_BIT); 790 /* MOSI出力/MISO入力/SCK入出力ポート設定 */ 791 sil_wrb_mem(PORT2_PDR_ADDR, (sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT | PORT_PDR_B2_BIT) & ~PORT_PDR_B1_BIT); 792 /* プルアップ無効 */ 793 sil_wrb_mem(PORT2_PCR_ADDR, sil_reb_mem(PORT2_PCR_ADDR) & ~(PORT_PCR_B0_BIT | PORT_PCR_B1_BIT | PORT_PCR_B2_BIT)); 794 /* MISO CMOS */ 795 sil_wrb_mem(PORT2_ODR0_ADDR, 796 (sil_reb_mem(PORT2_ODR0_ADDR) & ~(PORT_ODR_Pm0_MASK | PORT_ODR_Pm1_MASK | PORT_ODR_Pm2_MASK)) 797 | (PORT_ODR_CMOS << PORT_ODR_Pm0_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm1_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm2_OFFSET)); 798 /* 周辺機能として使用 */ 799 sil_wrb_mem(PORT2_PMR_ADDR, sil_reb_mem(PORT2_PMR_ADDR) | PORT_PMR_B0_BIT | PORT_PMR_B1_BIT | PORT_PMR_B2_BIT); 800 break; 801 } 802 /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */ 803 sil_wrb_mem(MPC_PWPR_ADDR, 0x00); 804 /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */ 805 sil_wrb_mem(MPC_PWPR_ADDR, 0x40); 806 807 /* P20端子機能制御レジスタ TXD0/SMOSI0/SSDA0とする */ 808 sil_wrb_mem(MPC_P20PFS_ADDR, 0x0A); 809 /* P21端子機能制御レジスタ RXD0/SMISO0/SSCL0とする */ 810 sil_wrb_mem(MPC_P21PFS_ADDR, 0x0A); 811 if (mode == sciSPIM) { 812 /* P22端子機能制御レジスタ SCK0とする */ 813 sil_wrb_mem(MPC_P22PFS_ADDR, 0x0A); 814 } 815 816 /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */ 817 sil_wrb_mem(MPC_PWPR_ADDR, 0x80); 818 break; 819 /* TXD/SDA/MOSI:P50, RXD/SCL/MISO:P52, SCK:P51 */ 820 case SCI2_BASE: 821 switch (mode) { 822 case sciSerial: 823 /* HIGH状態に設定 */ 824 sil_wrb_mem(PORT5_PODR_ADDR, 825 sil_reb_mem(PORT5_PODR_ADDR) | PORT_PODR_B0_BIT | PORT_PODR_B2_BIT); 826 /* TX出力/RX入力ポート設定 */ 827 sil_wrb_mem(PORT5_PDR_ADDR, (sil_reb_mem(PORT5_PDR_ADDR) | PORT_PDR_B0_BIT) & ~PORT_PDR_B2_BIT); 828 /* プルアップ無効 */ 829 sil_wrb_mem(PORT5_PCR_ADDR, sil_reb_mem(PORT5_PCR_ADDR) & ~(PORT_PCR_B0_BIT | PORT_PCR_B2_BIT)); 830 /* RX CMOS */ 831 sil_wrb_mem(PORT5_ODR0_ADDR, 832 (sil_reb_mem(PORT5_ODR0_ADDR) & ~(PORT_ODR_Pm0_MASK | PORT_ODR_Pm2_MASK)) 833 | (PORT_ODR_CMOS << PORT_ODR_Pm0_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm2_OFFSET)); 834 /* 周辺機能として使用 */ 835 sil_wrb_mem(PORT5_PMR_ADDR, sil_reb_mem(PORT5_PMR_ADDR) | PORT_PMR_B0_BIT | PORT_PMR_B2_BIT); 836 break; 837 case sciI2C: 838 /* HIGH状態に設定 */ 839 sil_wrb_mem(PORT5_PODR_ADDR, 840 sil_reb_mem(PORT5_PODR_ADDR) | PORT_PODR_B0_BIT | PORT_PODR_B2_BIT); 841 /* SCL,SDA 出力ポート設定 */ 842 sil_wrb_mem(PORT5_PDR_ADDR, sil_reb_mem(PORT5_PDR_ADDR) | PORT_PDR_B0_BIT | PORT_PDR_B2_BIT); 843 /* プルアップ有効 */ 844 sil_wrb_mem(PORT5_PCR_ADDR, sil_reb_mem(PORT5_PCR_ADDR) | PORT_PCR_B0_BIT | PORT_PCR_B2_BIT); 845 /* Nチャネルオープンドレイン */ 846 sil_wrb_mem(PORT5_ODR0_ADDR, 847 (sil_reb_mem(PORT5_ODR0_ADDR) & ~(PORT_ODR_Pm0_MASK | PORT_ODR_Pm2_MASK)) 848 | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm0_OFFSET) | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm2_OFFSET)); 849 /* 周辺機能として使用 */ 850 sil_wrb_mem(PORT5_PMR_ADDR, sil_reb_mem(PORT5_PMR_ADDR) | PORT_PMR_B0_BIT | PORT_PMR_B2_BIT); 851 break; 852 case sciSPIM: 853 /* HIGH状態に設定 */ 854 sil_wrb_mem(PORT5_PODR_ADDR, 855 sil_reb_mem(PORT5_PODR_ADDR) | PORT_PODR_B0_BIT | PORT_PODR_B1_BIT | PORT_PODR_B2_BIT); 856 /* MOSI出力/MISO入力/SCK入出力ポート設定 */ 857 sil_wrb_mem(PORT5_PDR_ADDR, (sil_reb_mem(PORT5_PDR_ADDR) | PORT_PDR_B0_BIT | PORT_PDR_B1_BIT) & ~PORT_PDR_B2_BIT); 858 /* プルアップ無効 */ 859 sil_wrb_mem(PORT5_PCR_ADDR, sil_reb_mem(PORT5_PCR_ADDR) & ~(PORT_PCR_B0_BIT | PORT_PCR_B1_BIT | PORT_PCR_B2_BIT)); 860 /* MISO CMOS */ 861 sil_wrb_mem(PORT5_ODR0_ADDR, 862 (sil_reb_mem(PORT5_ODR0_ADDR) & ~(PORT_ODR_Pm0_MASK | PORT_ODR_Pm1_MASK | PORT_ODR_Pm2_MASK)) 863 | (PORT_ODR_CMOS << PORT_ODR_Pm0_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm1_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm2_OFFSET)); 864 /* 周辺機能として使用 */ 865 sil_wrb_mem(PORT5_PMR_ADDR, sil_reb_mem(PORT5_PMR_ADDR) | PORT_PMR_B0_BIT | PORT_PMR_B1_BIT | PORT_PMR_B1_BIT | PORT_PMR_B2_BIT); 866 break; 867 } 868 /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */ 869 sil_wrb_mem(MPC_PWPR_ADDR, 0x00); 870 /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */ 871 sil_wrb_mem(MPC_PWPR_ADDR, 0x40); 872 873 /* P50端子機能制御レジスタ SSDA2とする */ 874 sil_wrb_mem(MPC_P50PFS_ADDR, 0x0A); 875 /* P52端子機能制御レジスタ SSCL2とする */ 876 sil_wrb_mem(MPC_P52PFS_ADDR, 0x0A); 877 if (mode == sciSPIM) { 878 /* P51端子機能制御レジスタ SCK2とする */ 879 sil_wrb_mem(MPC_P51PFS_ADDR, 0x0A); 880 } 881 882 /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */ 883 sil_wrb_mem(MPC_PWPR_ADDR, 0x80); 884 break; 885 /* TXD/SDA/MOSI:P32, RXD/SCL/MISO:P33, SCK:P34 */ 886 case SCI6_BASE: 887 switch (mode) { 888 case sciSerial: 889 /* HIGH状態に設定 */ 890 sil_wrb_mem(PORT3_PODR_ADDR, 891 sil_reb_mem(PORT3_PODR_ADDR) | PORT_PODR_B2_BIT | PORT_PODR_B3_BIT); 892 /* TX出力/RX入力ポート設定 */ 893 sil_wrb_mem(PORT3_PDR_ADDR, (sil_reb_mem(PORT3_PDR_ADDR) | PORT_PDR_B2_BIT) & ~PORT_PDR_B3_BIT); 894 /* プルアップ無効 */ 895 sil_wrb_mem(PORT3_PCR_ADDR, sil_reb_mem(PORT3_PCR_ADDR) & ~(PORT_PCR_B2_BIT | PORT_PCR_B3_BIT)); 896 /* RX CMOS */ 897 sil_wrb_mem(PORT3_ODR0_ADDR, 898 (sil_reb_mem(PORT3_ODR0_ADDR) & ~(PORT_ODR_Pm2_MASK | PORT_ODR_Pm3_MASK)) 899 | (PORT_ODR_CMOS << PORT_ODR_Pm2_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm3_OFFSET)); 900 /* 周辺機能として使用 */ 901 sil_wrb_mem(PORT3_PMR_ADDR, sil_reb_mem(PORT3_PMR_ADDR) | PORT_PMR_B2_BIT | PORT_PMR_B3_BIT); 902 break; 903 case sciI2C: 904 /* HIGH状態に設定 */ 905 sil_wrb_mem(PORT3_PODR_ADDR, 906 sil_reb_mem(PORT3_PODR_ADDR) | PORT_PODR_B2_BIT | PORT_PODR_B3_BIT); 907 /* SCL,SDA 出力ポート設定 */ 908 sil_wrb_mem(PORT3_PDR_ADDR, sil_reb_mem(PORT3_PDR_ADDR) | PORT_PDR_B2_BIT | PORT_PDR_B3_BIT); 909 /* プルアップ有効 */ 910 sil_wrb_mem(PORT3_PCR_ADDR, sil_reb_mem(PORT3_PCR_ADDR) | PORT_PCR_B2_BIT | PORT_PCR_B3_BIT); 911 /* Nチャネルオープンドレイン */ 912 sil_wrb_mem(PORT3_ODR0_ADDR, 913 (sil_reb_mem(PORT3_ODR0_ADDR) & ~(PORT_ODR_Pm2_MASK | PORT_ODR_Pm3_MASK)) 914 | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm2_OFFSET) | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm3_OFFSET)); 915 /* 周辺機能として使用 */ 916 sil_wrb_mem(PORT3_PMR_ADDR, sil_reb_mem(PORT3_PMR_ADDR) | PORT_PMR_B2_BIT | PORT_PMR_B3_BIT); 917 break; 918 case sciSPIM: 919 /* HIGH状態に設定 */ 920 sil_wrb_mem(PORT3_PODR_ADDR, 921 sil_reb_mem(PORT3_PODR_ADDR) | PORT_PODR_B2_BIT | PORT_PODR_B3_BIT | PORT_PODR_B4_BIT); 922 /* MOSI出力/MISO入力/SCK入出力ポート設定 */ 923 sil_wrb_mem(PORT3_PDR_ADDR, (sil_reb_mem(PORT3_PDR_ADDR) | PORT_PDR_B2_BIT | PORT_PDR_B4_BIT) & ~PORT_PDR_B3_BIT); 924 /* プルアップ無効 */ 925 sil_wrb_mem(PORT3_PCR_ADDR, sil_reb_mem(PORT3_PCR_ADDR) & ~(PORT_PCR_B2_BIT | PORT_PCR_B3_BIT | PORT_PCR_B4_BIT)); 926 /* MISO CMOS */ 927 sil_wrb_mem(PORT3_ODR0_ADDR, 928 (sil_reb_mem(PORT3_ODR0_ADDR) & ~(PORT_ODR_Pm2_MASK | PORT_ODR_Pm3_MASK | PORT_ODR_Pm4_MASK)) 929 | (PORT_ODR_CMOS << PORT_ODR_Pm2_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm3_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm4_OFFSET)); 930 /* 周辺機能として使用 */ 931 sil_wrb_mem(PORT3_PMR_ADDR, sil_reb_mem(PORT3_PMR_ADDR) | PORT_PMR_B2_BIT | PORT_PMR_B3_BIT | PORT_PMR_B4_BIT); 932 break; 933 } 934 935 /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */ 936 sil_wrb_mem(MPC_PWPR_ADDR, 0x00); 937 /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */ 938 sil_wrb_mem(MPC_PWPR_ADDR, 0x40); 939 940 /* P32端子機能制御レジスタ TXD6/SMOSI6/SSDA6とする */ 941 sil_wrb_mem(MPC_P32PFS_ADDR, 0x0A); 942 /* P33端子機能制御レジスタ RXD6/SMISO6/SSCL6とする */ 943 sil_wrb_mem(MPC_P33PFS_ADDR, 0x0A); 944 if (mode == sciSPIM) { 945 /* P34端子機能制御レジスタ SCK6とする */ 946 sil_wrb_mem(MPC_P34PFS_ADDR, 0x0A); 947 } 948 949 /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */ 950 sil_wrb_mem(MPC_PWPR_ADDR, 0x80); 951 break; 952 /* TXD/SDA/MOSI:PC7, RXD/SCL/MISO:PC6, SCK:PC5 */ 953 case SCI8_BASE: 954 switch (mode) { 955 case sciSerial: 956 /* HIGH状態に設定 */ 957 sil_wrb_mem(PORTC_PODR_ADDR, 958 sil_reb_mem(PORTC_PODR_ADDR) | PORT_PODR_B6_BIT | PORT_PODR_B7_BIT); 959 /* TX出力/RX入力ポート設定 */ 960 sil_wrb_mem(PORTC_PDR_ADDR, (sil_reb_mem(PORTC_PDR_ADDR) | PORT_PDR_B6_BIT) & ~PORT_PDR_B7_BIT); 961 /* プルアップ無効 */ 962 sil_wrb_mem(PORTC_PCR_ADDR, sil_reb_mem(PORTC_PCR_ADDR) & ~(PORT_PCR_B6_BIT | PORT_PCR_B7_BIT)); 963 /* RX CMOS */ 964 sil_wrb_mem(PORTC_ODR0_ADDR, 965 (sil_reb_mem(PORTC_ODR0_ADDR) & ~(PORT_ODR_Pm6_MASK | PORT_ODR_Pm7_MASK)) 966 | (PORT_ODR_CMOS << PORT_ODR_Pm6_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm7_OFFSET)); 967 /* 周辺機能として使用 */ 968 sil_wrb_mem(PORTC_PMR_ADDR, sil_reb_mem(PORTC_PMR_ADDR) | PORT_PMR_B6_BIT | PORT_PMR_B7_BIT); 969 break; 970 case sciI2C: 971 /* HIGH状態に設定 */ 972 sil_wrb_mem(PORTC_PODR_ADDR, 973 sil_reb_mem(PORTC_PODR_ADDR) | PORT_PODR_B6_BIT | PORT_PODR_B7_BIT); 974 /* SCL,SDA 出力ポート設定 */ 975 sil_wrb_mem(PORTC_PDR_ADDR, sil_reb_mem(PORTC_PDR_ADDR) | PORT_PDR_B6_BIT | PORT_PDR_B7_BIT); 976 /* プルアップ有効 */ 977 sil_wrb_mem(PORTC_PCR_ADDR, sil_reb_mem(PORTC_PCR_ADDR) | PORT_PCR_B6_BIT | PORT_PCR_B7_BIT); 978 /* Nチャネルオープンドレイン */ 979 sil_wrb_mem(PORTC_ODR0_ADDR, 980 (sil_reb_mem(PORTC_ODR0_ADDR) & ~(PORT_ODR_Pm6_MASK | PORT_ODR_Pm7_MASK)) 981 | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm6_OFFSET) | (PORT_ODR_NCH_OPEN_DRAIN << PORT_ODR_Pm7_OFFSET)); 982 /* 周辺機能として使用 */ 983 sil_wrb_mem(PORTC_PMR_ADDR, sil_reb_mem(PORTC_PMR_ADDR) | PORT_PMR_B6_BIT | PORT_PMR_B7_BIT); 984 break; 985 case sciSPIM: 986 /* HIGH状態に設定 */ 987 sil_wrb_mem(PORTC_PODR_ADDR, 988 sil_reb_mem(PORTC_PODR_ADDR) | PORT_PODR_B7_BIT | PORT_PODR_B6_BIT | PORT_PODR_B5_BIT); 989 /* MOSI出力/MISO入力/SCK入出力ポート設定 */ 990 sil_wrb_mem(PORTC_PDR_ADDR, (sil_reb_mem(PORTC_PDR_ADDR) | PORT_PDR_B5_BIT | PORT_PDR_B7_BIT) & ~PORT_PDR_B6_BIT); 991 /* プルアップ無効 */ 992 sil_wrb_mem(PORTC_PCR_ADDR, sil_reb_mem(PORTC_PCR_ADDR) & ~(PORT_PCR_B5_BIT | PORT_PCR_B7_BIT | PORT_PCR_B6_BIT)); 993 /* MISO CMOS */ 994 sil_wrb_mem(PORTC_ODR0_ADDR, 995 (sil_reb_mem(PORTC_ODR0_ADDR) & ~(PORT_ODR_Pm5_MASK | PORT_ODR_Pm6_MASK | PORT_ODR_Pm7_MASK)) 996 | (PORT_ODR_CMOS << PORT_ODR_Pm5_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm6_OFFSET) | (PORT_ODR_CMOS << PORT_ODR_Pm7_OFFSET)); 997 /* 周辺機能として使用 */ 998 sil_wrb_mem(PORTC_PMR_ADDR, sil_reb_mem(PORTC_PMR_ADDR) | PORT_PMR_B5_BIT | PORT_PMR_B6_BIT | PORT_PMR_B7_BIT); 999 break; 1000 } 1001 1002 /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */ 1003 sil_wrb_mem(MPC_PWPR_ADDR, 0x00); 1004 /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */ 1005 sil_wrb_mem(MPC_PWPR_ADDR, 0x40); 1006 1007 /* PC7端子機能制御レジスタ TXD8/SMOSI8/SSDA8とする */ 1008 sil_wrb_mem(MPC_PC7PFS_ADDR, 0x0A); 1009 /* PC6端子機能制御レジスタ RXD8/SMISO8/SSCL8とする */ 1010 sil_wrb_mem(MPC_PC6PFS_ADDR, 0x0A); 1011 if (mode == sciSPIM) { 1012 /* PC5端子機能制御レジスタ SCK8とする */ 1013 sil_wrb_mem(MPC_PC5PFS_ADDR, 0x0A); 1014 } 1015 1016 /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */ 1017 sil_wrb_mem(MPC_PWPR_ADDR, 0x80); 1018 break; 1019 } 1020 } 1021 1022 void sci_disable(void *base_address) 1023 { 1024 /* 送受信禁止, SCKn端子は入出力ポートとして使用 */ 1025 sil_wrb_mem(SCI_SCR(base_address), 0x00U); 1026 1027 /* 1028 * モジュールストップ機能の設定 1029 */ 1030 sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502); /* 書込み許可 */ 1031 sil_wrw_mem(SYSTEM_MSTPCRB_ADDR, 1032 sil_rew_mem(SYSTEM_MSTPCRB_ADDR) | SCI_MSTPCRB_BIT(base_address)); 1033 sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500); /* 書込み禁止 */ 1034 } 1035 1036 void sci_set_frequency(void *base_address, int hz) 1037 { 1038 uint_t cnt, brr, clk; 1039 1040 cnt = (FREQ_PCLK * 1000) / (16 * hz); 1041 if (cnt < 512) 1042 clk = 0; 1043 else if (cnt < 4 * 512) 1044 clk = 1; 1045 else if (cnt < 16 * 512) 1046 clk = 2; 1047 else if (cnt < 64 * 512) 1048 clk = 3; 1049 else 1050 return; 1051 1052 brr = cnt / (1 << (2 * clk)); 1053 brr = (brr / 2) + (brr % 2) - 1; 1054 1055 /* SMRに送信/ 受信フォーマットを設定 */ 1056 /* クロック選択ビット(SMR.CKS[1:0]ビットを設定)、それ以外のビットを“0”に設定します。 */ 1057 sil_wrb_mem(SCI_SMR(base_address), clk); 1058 1059 /* SCMRレジスタはSDIRビットを“1”、SINVビットを“0”、SMIFビットを“0”に設定します。 */ 1060 sil_wrb_mem(SCI_SCMR(base_address), 1061 (sil_reb_mem(SCI_SCMR(base_address)) & ~(SINV | SMIF)) | SDIR); 1062 1063 /* ビットレートを設定 */ 1064 sil_wrb_mem(SCI_BRR(base_address), brr); 1065 } 1066 716 1067 void serial_init(serial_t *obj, PinName tx, PinName rx) 717 1068 { 1069 #ifdef TOPPERS_GRCITRUS 1070 if ((rx == D0) && (tx == D1)) { 1071 obj->base_address = (void *)SCI0_BASE; 1072 obj->rxi_intno = INT_SCI0_RXI; 1073 obj->tei_intno = INT_SCI0_TEI; 1074 } 1075 else if ((rx == D5) && (tx == D6)) { 1076 obj->base_address = (void *)SCI2_BASE; 1077 obj->rxi_intno = INT_SCI2_RXI; 1078 obj->tei_intno = INT_SCI2_TEI; 1079 } 1080 else if ((rx == D7) && (tx == D8)) { 1081 obj->base_address = (void *)SCI6_BASE; 1082 obj->rxi_intno = INT_SCI6_RXI; 1083 obj->tei_intno = INT_SCI6_TEI; 1084 } 1085 else if ((rx == D11) && (tx == D12)) { 1086 obj->base_address = (void *)SCI8_BASE; 1087 obj->rxi_intno = INT_SCI8_RXI; 1088 obj->tei_intno = INT_SCI8_TEI; 1089 } 1090 else { 1091 obj->base_address = NULL; 1092 return; 1093 } 1094 #else 1095 if ((rx == D0) && (tx == D1)) { 1096 obj->base_address = (void *)SCI0_BASE; 1097 obj->rxi_intno = INT_SCI0_RXI; 1098 obj->tei_intno = INT_SCI0_TEI; 1099 } 1100 else if ((rx == D6) && (tx == D7)) { 1101 obj->base_address = (void *)SCI6_BASE; 1102 obj->rxi_intno = INT_SCI6_RXI; 1103 obj->tei_intno = INT_SCI6_TEI; 1104 } 1105 else if ((rx == D11) && (tx == D12)) { 1106 obj->base_address = (void *)SCI8_BASE; 1107 obj->rxi_intno = INT_SCI8_RXI; 1108 obj->tei_intno = INT_SCI8_TEI; 1109 } 1110 else { 1111 obj->base_address = NULL; 1112 return; 1113 } 1114 #endif // TOPPERS_GRCITRUS 1115 /* SCI有効 */ 1116 sci_enable(obj->base_address, sciSerial); 1117 1118 /* SIMR1.IICMビットを“0”に設定 */ 1119 sil_wrb_mem(SCI_SIMR1(obj->base_address), 1120 sil_reb_mem(SCI_SIMR1(obj->base_address)) & ~IICM); 1121 1122 /* SPMR.CKPH, CKPOLビットを“0”に設定 */ 1123 sil_wrb_mem(SCI_SPMR(obj->base_address), 1124 sil_reb_mem(SCI_SPMR(obj->base_address)) & ~(CKPH | CKPOL)); 1125 1126 sci_set_frequency(obj->base_address, 9600); 1127 1128 /* SMRに送信/ 受信フォーマットを設定 */ 1129 serial_format(obj, 8, ParityNone, 1); 1130 1131 /* 送受信許可 */ 1132 sil_wrb_mem(SCI_SCR(obj->base_address), 1133 (sil_reb_mem(SCI_SCR(obj->base_address)) | RE | TE)); 718 1134 } 719 1135 720 1136 void serial_free(serial_t *obj) 721 1137 { 1138 /* SCI無効 */ 1139 sci_disable(obj->base_address); 1140 1141 obj->base_address = NULL; 722 1142 } 723 1143 724 1144 void serial_baud(serial_t *obj, int baudrate) 725 1145 { 1146 uint8_t scr = sil_reb_mem(SCI_SCR(obj->base_address)); 1147 1148 /* 送受信禁止, SCKn端子は入出力ポートとして使用 */ 1149 sil_wrb_mem(SCI_SCR(obj->base_address), 0x00U); 1150 1151 sci_set_frequency(obj->base_address, baudrate); 1152 1153 /* 送受信許可 */ 1154 sil_wrb_mem(SCI_SCR(obj->base_address), scr); 726 1155 } 727 1156 728 1157 void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) 729 1158 { 1159 uint8_t smr = sil_reb_mem(SCI_SMR(obj->base_address)); 1160 1161 smr &= ~(PE | PM | CHR | STOP); 1162 1163 switch (parity) { 1164 case ParityNone: 1165 break; 1166 case ParityOdd: 1167 smr |= PE | PM; 1168 break; 1169 case ParityEven: 1170 smr |= PE; 1171 break; 1172 default: 1173 break; 1174 } 1175 1176 switch (data_bits) { 1177 case 7: 1178 smr |= CHR; 1179 break; 1180 case 8: 1181 break; 1182 default: 1183 break; 1184 } 1185 1186 switch (stop_bits) { 1187 case 1: 1188 break; 1189 case 2: 1190 smr |= STOP; 1191 break; 1192 default: 1193 break; 1194 } 1195 1196 sil_wrb_mem(SCI_SMR(obj->base_address), smr); 730 1197 } 731 1198 732 1199 int serial_getc(serial_t *obj) 733 1200 { 1201 uint8_t ssr; 1202 int c; 1203 1204 for (;;) { 1205 /* SSR.ORER, PER, FERフラグをリード */ 1206 ssr = sil_reb_mem(SCI_SSR(obj->base_address)); 1207 1208 /* 受信エラーが発生したとき */ 1209 if ((ssr & (ORER | PER | FER)) != 0) { 1210 /* オーバランエラー */ 1211 if ((ssr & ORER) != 0) { 1212 /* RDRレジスタをリード */ 1213 c = (int)sil_reb_mem(SCI_RDR(obj->base_address)); 1214 } 1215 /* フレーミングエラー */ 1216 if ((ssr & FER) != 0) { 1217 } 1218 /* パリティエラー */ 1219 if ((ssr & PER) != 0) { 1220 } 1221 } 1222 1223 /* SSR.ORER, PER, FERフラグを“0”に設定 */ 1224 sil_wrb_mem(SCI_SSR(obj->base_address), ssr & ~(ORER | PER | FER)); 1225 1226 /* SSR.ORER, PER, FERフラグをリード */ 1227 ssr = sil_reb_mem(SCI_SSR(obj->base_address)); 1228 1229 /* RXI割り込み */ 1230 if (serial_readable(obj)) { 1231 clear_int(obj->rxi_intno); 1232 break; 1233 } 1234 1235 dly_tsk(10); 1236 } 1237 1238 /* RDRレジスタをリード */ 1239 c = (int)sil_reb_mem(SCI_RDR(obj->base_address)); 1240 1241 return c; 1242 } 1243 1244 void serial_putc(serial_t *obj, int c) 1245 { 1246 while (serial_writable(obj)) 1247 dly_tsk(10); 1248 1249 clear_int(obj->tei_intno); 1250 1251 sil_wrb_mem(SCI_TDR(obj->base_address), (char)c); 1252 } 1253 1254 int serial_readable(serial_t *obj) 1255 { 1256 return probe_int(obj->rxi_intno); 1257 } 1258 1259 int serial_writable(serial_t *obj) 1260 { 1261 return probe_int(obj->tei_intno); 1262 } 1263 1264 uart_irq_handler sci_irq_handler[7]; 1265 1266 void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id) 1267 { 1268 int no = SCI_NUM(obj->base_address); 1269 1270 sci_irq_handler[no] = handler; 1271 } 1272 1273 void i2c_init(i2c_t *obj, PinName sda, PinName scl) 1274 { 1275 if ((sda == I2C_SDA) && (scl == I2C_SCL)) { 1276 #ifdef TOPPERS_GRCITRUS 1277 obj->base_address = (void *)SCI6_BASE; 1278 obj->rxi_intno = INT_SCI6_RXI; 1279 obj->txi_intno = INT_SCI6_TXI; 1280 obj->tei_intno = INT_SCI6_TEI; 1281 #else 1282 obj->base_address = (void *)SCI2_BASE; 1283 obj->rxi_intno = INT_SCI2_RXI; 1284 obj->txi_intno = INT_SCI2_TXI; 1285 obj->tei_intno = INT_SCI2_TEI; 1286 #endif 1287 } 1288 else { 1289 obj->base_address = NULL; 1290 return; 1291 } 1292 1293 /* SCI有効 */ 1294 sci_enable(obj->base_address, sciI2C); 1295 1296 /* SIMR3.IICSDAS[1:0](b5-b4), IICSCLS[1:0](b7-b6)ビットを“11b”に設定 */ 1297 sil_wrb_mem(SCI_SIMR3(obj->base_address), 0xF0U); 1298 1299 sci_set_frequency(obj->base_address, 100000); 1300 1301 /* SEMR、SNFR、SIMR1、SIMR2、SPMRレジスタに値を設定します。 */ 1302 /* SEMRレジスタは、NFENビットを設定します。 */ 1303 sil_wrb_mem(SCI_SEMR(obj->base_address), NFEN); 1304 1305 /* SNFRレジスタは、NFCS[2:0]ビットを設定します。*/ 1306 sil_wrb_mem(SCI_SNFR(obj->base_address), 1); 1307 1308 /* SIMR1レジスタは、IICMビットを“1”に設定し、IICDL[4:0]ビ ットを設定します。 */ 1309 sil_wrb_mem(SCI_SIMR1(obj->base_address), IICM | (3 << 3)); 1310 1311 /* SIMR2レジスタは、IICACKT、IICCSCビットを“1”に設定し、IICINTMビットを設定します。 */ 1312 sil_wrb_mem(SCI_SIMR2(obj->base_address), IICACKT | IICCSC | IICINTM); 1313 1314 /* SPMRレジスタは、全ビット“0”に設定します。 */ 1315 sil_wrb_mem(SCI_SPMR(obj->base_address), 0); 1316 1317 /* 送受信許可 */ 1318 sil_wrb_mem(SCI_SCR(obj->base_address), 1319 (sil_reb_mem(SCI_SCR(obj->base_address)) | RE | TE)); 1320 } 1321 1322 void i2c_frequency(i2c_t *obj, int hz) 1323 { 1324 uint8_t scr = sil_reb_mem(SCI_SCR(obj->base_address)); 1325 1326 /* 送受信禁止, SCKn端子は入出力ポートとして使用 */ 1327 sil_wrb_mem(SCI_SCR(obj->base_address), 0x00U); 1328 1329 sci_set_frequency(obj->base_address, hz); 1330 1331 /* 送受信許可 */ 1332 sil_wrb_mem(SCI_SCR(obj->base_address), scr); 1333 } 1334 1335 int i2c_start(i2c_t *obj) 1336 { 1337 if (obj->base_address == NULL) 1338 return 0; 1339 1340 /* SIMR3.IICSTAREQビットを“1”に設定すると同時に、 1341 * SIMR3.IICSCLS[1:0],IICSDAS[1:0]ビットを“01b”に設定 */ 1342 sil_wrb_mem(SCI_SIMR3(obj->base_address), IICSTAREQ | (1 << 4) | (1 << 6)); 1343 734 1344 return 0; 735 1345 } 736 1346 737 void serial_putc(serial_t *obj, int c) 738 { 739 } 740 741 int serial_readable(serial_t *obj) 742 { 1347 int i2c_restart(i2c_t *obj) 1348 { 1349 if (obj->base_address == NULL) 1350 return 0; 1351 1352 sil_wrb_mem(SCI_SIMR3(obj->base_address), IICRSTAREQ | (1 << 4) | (1 << 6)); 1353 743 1354 return 0; 744 1355 } 745 1356 746 int serial_writable(serial_t *obj) 747 { 1357 int i2c_stop(i2c_t *obj) 1358 { 1359 if (obj->base_address == NULL) 1360 return 0; 1361 1362 /* SIMR3.IICSTPREQビットを“1”に設定すると同時に、 1363 * SIMR3.IICSCLS[1:0],IICSDAS[1:0]ビットを“01b”に設定 */ 1364 sil_wrb_mem(SCI_SIMR3(obj->base_address), IICSTPREQ | (1 << 4) | (1 << 6)); 1365 748 1366 return 0; 749 1367 } 750 1368 751 void i2c_init(i2c_t *obj, PinName sda, PinName scl) 752 { 753 } 754 755 void i2c_frequency(i2c_t *obj, int hz) 756 { 757 } 758 759 int i2c_start(i2c_t *obj) 760 { 1369 int i2c_read(i2c_t *obj, int address, char *data, int length, int stop) 1370 { 1371 if (obj->base_address == NULL) 1372 return 0; 1373 1374 /* 送信割り込み要求を禁止 */ 1375 sil_wrb_mem(SCI_SCR(obj->base_address), 1376 (sil_reb_mem(SCI_SCR(obj->base_address)) & ~(RIE)) | TEIE | TIE); 1377 1378 /* 開始条件の生成 */ 1379 i2c_start(obj); 1380 1381 /* STI(TEI)割り込み発生確認 */ 1382 while (!probe_int(obj->tei_intno)) 1383 dly_tsk(2); 1384 clear_int(obj->tei_intno); 1385 1386 /* SIMR3.IICSTIFフラグを“0”に設定し、 */ 1387 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1388 sil_reb_mem(SCI_SIMR3(obj->base_address)) & ~IICSTIF); 1389 /* SIMR3.IICSCLS[1:0], IICSDAS[1:0]ビットを“00b”に設定 */ 1390 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1391 sil_reb_mem(SCI_SIMR3(obj->base_address)) & ~((3 << 4) | (3 << 6))); 1392 1393 /* TDRレジスタにスレーブアドレス、R/Wビットをライト */ 1394 sil_wrb_mem(SCI_TDR(obj->base_address), address | 1); 1395 1396 /* TXI割り込み発生確認 */ 1397 while (!probe_int(obj->txi_intno)) 1398 dly_tsk(10); 1399 clear_int(obj->txi_intno); 1400 1401 /* スレーブデバイスからのACKを確認 */ 1402 if ((sil_reb_mem(SCI_SISR(obj->base_address)) & IICACKR) == 0) { 1403 /* SIMR2.IICACKTビットを“0”に設定 */ 1404 sil_wrb_mem(SCI_SIMR2(obj->base_address), sil_reb_mem(SCI_SIMR2(obj->base_address)) & ~IICACKT); 1405 /* SCR.RIEビットを“1”に設定 */ 1406 sil_wrb_mem(SCI_SCR(obj->base_address), sil_reb_mem(SCI_SCR(obj->base_address)) | RIE); 1407 1408 for (int i = 0; i < length; i++) { 1409 /* 次データが最終 */ 1410 if (i == length - 1) { 1411 /* SIMR2.IICACKTビットを“1”に設定 */ 1412 sil_wrb_mem(SCI_SIMR2(obj->base_address), sil_reb_mem(SCI_SIMR2(obj->base_address)) | IICACKT); 1413 } 1414 1415 /* TDRレジスタにダミーデータ“FFh”をライト */ 1416 sil_wrb_mem(SCI_TDR(obj->base_address), 0xFF); 1417 1418 /* RXI割り込み発生確認 */ 1419 while (!probe_int(obj->rxi_intno)) 1420 dly_tsk(10); 1421 clear_int(obj->rxi_intno); 1422 1423 /* RDRレジスタの受信データをリード */ 1424 *data = sil_reb_mem(SCI_RDR(obj->base_address)); 1425 data++; 1426 1427 /* TXI割り込み発生確認 */ 1428 while (!probe_int(obj->txi_intno)) 1429 dly_tsk(10); 1430 clear_int(obj->txi_intno); 1431 } 1432 } 1433 1434 if (stop) { 1435 /* 停止条件の生成 */ 1436 i2c_stop(obj); 1437 1438 /* STI(TEI)割り込み発生確認 */ 1439 while (!probe_int(obj->tei_intno)) 1440 dly_tsk(2); 1441 clear_int(obj->tei_intno); 1442 1443 /* SIMR3.IICSTIFフラグを“0”に設定し、*/ 1444 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1445 sil_reb_mem(SCI_SIMR3(obj->base_address)) & ~IICSTIF); 1446 /* SIMR3.IICSCLS[1:0], IICSDAS[1:0]ビットを“11b”に設定 */ 1447 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1448 sil_reb_mem(SCI_SIMR3(obj->base_address)) | ((3 << 4) | (3 << 6))); 1449 } 1450 1451 return length; 1452 } 1453 1454 int i2c_write(i2c_t *obj, int address, const char *data, int length, int stop) 1455 { 1456 if (obj->base_address == NULL) 1457 return 0; 1458 1459 /* 受信割り込み要求を禁止 */ 1460 sil_wrb_mem(SCI_SCR(obj->base_address), 1461 (sil_reb_mem(SCI_SCR(obj->base_address)) & ~(RIE)) | TEIE | TIE); 1462 1463 /* 開始条件の生成 */ 1464 i2c_start(obj); 1465 1466 /* STI(TEI)割り込み発生確認 */ 1467 while (!probe_int(obj->tei_intno)) 1468 dly_tsk(2); 1469 clear_int(obj->tei_intno); 1470 1471 /* SIMR3.IICSTIFフラグを“0”に設定し、 */ 1472 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1473 sil_reb_mem(SCI_SIMR3(obj->base_address)) & ~IICSTIF); 1474 /* SIMR3.IICSCLS[1:0], IICSDAS[1:0]ビットを“00b”に設定 */ 1475 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1476 sil_reb_mem(SCI_SIMR3(obj->base_address)) & ~((3 << 4) | (3 << 6))); 1477 1478 /* TDRレジスタにスレーブアドレス、R/Wビットをライト */ 1479 sil_wrb_mem(SCI_TDR(obj->base_address), address); 1480 1481 /* TXI割り込み発生確認 */ 1482 while (!probe_int(obj->txi_intno)) 1483 dly_tsk(10); 1484 clear_int(obj->txi_intno); 1485 1486 /* スレーブデバイスからのACKを確認 */ 1487 if ((sil_reb_mem(SCI_SISR(obj->base_address)) & IICACKR) == 0) { 1488 1489 for (int i = 0; i < length; i++) { 1490 /* TDRレジスタにスレーブアドレス、R/Wビットをライト */ 1491 sil_wrb_mem(SCI_TDR(obj->base_address), *data); 1492 data++; 1493 1494 /* TXI割り込み発生確認 */ 1495 while (!probe_int(obj->txi_intno)) 1496 dly_tsk(10); 1497 clear_int(obj->txi_intno); 1498 } 1499 } 1500 1501 if (stop) { 1502 /* 停止条件の生成 */ 1503 i2c_stop(obj); 1504 1505 /* STI(TEI)割り込み発生確認 */ 1506 while (!probe_int(obj->tei_intno)) 1507 dly_tsk(2); 1508 clear_int(obj->tei_intno); 1509 1510 /* SIMR3.IICSTIFフラグを“0”に設定し、*/ 1511 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1512 sil_reb_mem(SCI_SIMR3(obj->base_address)) & ~IICSTIF); 1513 /* SIMR3.IICSCLS[1:0], IICSDAS[1:0]ビットを“11b”に設定 */ 1514 sil_wrb_mem(SCI_SIMR3(obj->base_address), 1515 sil_reb_mem(SCI_SIMR3(obj->base_address)) | ((3 << 4) | (3 << 6))); 1516 } 1517 1518 return length; 1519 } 1520 1521 int i2c_byte_read(i2c_t *obj, int last) 1522 { 1523 if (obj->base_address == NULL) 1524 return 0; 1525 761 1526 return 0; 762 1527 } 763 1528 764 int i2c_stop(i2c_t *obj) 765 { 1529 int i2c_byte_write(i2c_t *obj, int data) 1530 { 1531 if (obj->base_address == NULL) 1532 return 0; 1533 766 1534 return 0; 767 1535 } 768 1536 769 int i2c_read(i2c_t *obj, int address, char *data, int length, int stop)770 {771 return 0;772 }773 774 int i2c_write(i2c_t *obj, int address, const char *data, int length, int stop)775 {776 return 0;777 }778 779 int i2c_byte_read(i2c_t *obj, int last)780 {781 return 0;782 }783 784 int i2c_byte_write(i2c_t *obj, int data)785 {786 return 0;787 }788 789 1537 void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) 790 1538 { 1539 if ((mosi == D11) && (miso == D12) && (sclk == D13) && ((ssel == D10) || (ssel == NC))) { 1540 obj->base_address = (void *)SCI8_BASE; 1541 obj->txi_intno = INT_SCI8_TXI; 1542 obj->rxi_intno = INT_SCI8_RXI; 1543 obj->tei_intno = INT_SCI8_TEI; 1544 } 1545 else { 1546 obj->base_address = NULL; 1547 return; 1548 } 1549 1550 /* SCI有効 */ 1551 sci_enable(obj->base_address, (ssel == D10) ? sciSPIS : sciSPIM); 1552 1553 /* SIMR1.IICMビットを“0”に設定 */ 1554 sil_wrb_mem(SCI_SIMR1(obj->base_address), 1555 sil_reb_mem(SCI_SIMR1(obj->base_address)) & ~IICM); 1556 1557 if (ssel == NC) { 1558 /* SPMR.SSE, CTSE, MSS, MFF, CKPH, CKPOLビットを“0”に設定 */ 1559 sil_wrb_mem(SCI_SPMR(obj->base_address), 0); 1560 } 1561 else { 1562 /* SPMR, CTSE, MSS, MFF, CKPH, CKPOLビットを“0”に設定 */ 1563 /* SPMR.SSEビットを“1”に設定 */ 1564 sil_wrb_mem(SCI_SPMR(obj->base_address), SSE); 1565 } 1566 1567 /* SCMR.SMIF ビットを“0”に設定 */ 1568 sil_wrb_mem(SCI_SCMR(obj->base_address), 1569 sil_reb_mem(SCI_SCMR(obj->base_address)) & ~SMIF); 1570 1571 /* SMRに送信/ 受信フォーマットをクロック同期式モードで動作で設定 */ 1572 sil_wrb_mem(SCI_SMR(obj->base_address), CM); 1573 1574 sci_set_frequency(obj->base_address, 1000000); 1575 1576 /* 送受信許可 */ 1577 sil_wrb_mem(SCI_SCR(obj->base_address), 1578 (sil_reb_mem(SCI_SCR(obj->base_address)) | RE | TE)); 791 1579 } 792 1580 793 1581 void spi_free(spi_t *obj) 794 1582 { 1583 /* SCI無効 */ 1584 sci_disable(obj->base_address); 1585 1586 obj->base_address = NULL; 795 1587 } 796 1588 797 1589 void spi_format(spi_t *obj, int bits, int mode, int slave) 798 1590 { 1591 int polarity = (mode & 0x2) ? 1 : 0; 1592 int phase = (mode & 0x1) ? 1 : 0; 1593 uint8_t spmr; 1594 1595 if ((bits != 8) || (mode < 0) || (mode > 3)) { 1596 return; 1597 } 1598 1599 /* 送受信禁止, SCKn端子は入出力ポートとして使用 */ 1600 sil_wrb_mem(SCI_SCR(obj->base_address), 0x00U); 1601 1602 spmr = sil_reb_mem(SCI_SPMR(obj->base_address)); 1603 1604 /* クロック極性反転あり/なし */ 1605 if (polarity) 1606 spmr |= CKPOL; 1607 else 1608 spmr &= ~CKPOL; 1609 1610 /* クロック位相反転あり/なし */ 1611 if (phase) 1612 spmr |= CKPH; 1613 else 1614 spmr &= ~CKPH; 1615 1616 if (slave) { 1617 /* SCKn端子はクロック入力として使用 */ 1618 sil_wrb_mem(SCI_SCR(obj->base_address), 1619 (sil_reb_mem(SCI_SCR(obj->base_address)) & ~CKE) | 2); 1620 1621 /* SPMR.MSSビットを“1”に設定 */ 1622 sil_wrb_mem(SCI_SPMR(obj->base_address), spmr | MSS); 1623 } 1624 else { 1625 /* SCKn端子はクロック出力として使用 */ 1626 sil_wrb_mem(SCI_SCR(obj->base_address), 1627 sil_reb_mem(SCI_SCR(obj->base_address)) & ~CKE); 1628 1629 /* SPMR.MSSビットを“0”に設定 */ 1630 sil_wrb_mem(SCI_SPMR(obj->base_address), spmr & ~MSS); 1631 } 1632 1633 /* 送受信許可 */ 1634 sil_wrb_mem(SCI_SCR(obj->base_address), 1635 (sil_reb_mem(SCI_SCR(obj->base_address)) | RE | TE)); 799 1636 } 800 1637 801 1638 void spi_frequency(spi_t *obj, int hz) 802 1639 { 1640 uint8_t scr = sil_reb_mem(SCI_SCR(obj->base_address)); 1641 1642 /* 送受信禁止, SCKn端子は入出力ポートとして使用 */ 1643 sil_wrb_mem(SCI_SCR(obj->base_address), 0x00U); 1644 1645 sci_set_frequency(obj->base_address, hz); 1646 1647 /* 送受信許可 */ 1648 sil_wrb_mem(SCI_SCR(obj->base_address), scr); 803 1649 } 804 1650 805 1651 int spi_master_write(spi_t *obj, int value) 806 1652 { 807 return 0; 1653 /* TXI割り込み発生確認 */ 1654 while (!probe_int(obj->txi_intno)) 1655 ; 1656 1657 /* 送信データをライト */ 1658 sil_wrb_mem(SCI_TDR(obj->base_address), (char)value); 1659 1660 do { 1661 uint8_t ssr = sil_reb_mem(SCI_SSR(obj->base_address)); 1662 if ((ssr & ORER) != 0) { 1663 ssr &= ~ORER; 1664 sil_wrb_mem(SCI_SSR(obj->base_address), ssr); 1665 return -1; 1666 } 1667 } 1668 /* RXI割り込み発生確認 */ 1669 while (!probe_int(obj->rxi_intno)); 1670 1671 /* 受信データをリード */ 1672 return sil_reb_mem(SCI_RDR(obj->base_address)); 1673 } 1674 1675 int spi_master_block_write(spi_t *obj, const char *tx_buffer, int tx_length, 1676 char *rx_buffer, int rx_length, char write_fill) 1677 { 1678 int total = (tx_length > rx_length) ? tx_length : rx_length; 1679 1680 for (int i = 0; i < total; i++) { 1681 char out = (i < tx_length) ? tx_buffer[i] : write_fill; 1682 char in = spi_master_write(obj, out); 1683 if (i < rx_length) { 1684 rx_buffer[i] = in; 1685 } 1686 } 1687 1688 return total; 808 1689 } 809 1690 … … 858 1739 sil_wrb_mem((uint8_t *)RTC_RSECCNT_ADDR, DecToBcd(tm.tm_sec)); 859 1740 } 1741 1742 void sci_rxi_handler(uint32_t id) 1743 { 1744 uart_irq_handler hdr = sci_irq_handler[id]; 1745 if (hdr == NULL) 1746 return; 1747 1748 hdr(id, RxIrq); 1749 } 1750 1751 void sci_txi_handler(uint32_t id) 1752 { 1753 uart_irq_handler hdr = sci_irq_handler[id]; 1754 if (hdr == NULL) 1755 return; 1756 1757 hdr(id, TxIrq); 1758 } 1759 1760 void sci_tei_handler(int no) 1761 { 1762 } 1763 1764 void sci0_rxi_handler(void) 1765 { 1766 sci_rxi_handler(0); 1767 } 1768 1769 void sci0_txi_handler(void) 1770 { 1771 sci_txi_handler(0); 1772 } 1773 1774 void sci0_tei_handler(void) 1775 { 1776 sci_tei_handler(0); 1777 } 1778 1779 void sci1_rxi_handler(void) 1780 { 1781 sci_rxi_handler(1); 1782 } 1783 1784 void sci1_txi_handler(void) 1785 { 1786 sci_txi_handler(1); 1787 } 1788 1789 void sci1_tei_handler(void) 1790 { 1791 sci_tei_handler(1); 1792 } 1793 1794 void sci2_rxi_handler(void) 1795 { 1796 sci_rxi_handler(2); 1797 } 1798 1799 void sci2_txi_handler(void) 1800 { 1801 sci_txi_handler(2); 1802 } 1803 1804 void sci2_tei_handler(void) 1805 { 1806 sci_tei_handler(2); 1807 } 1808 1809 void sci3_rxi_handler(void) 1810 { 1811 sci_rxi_handler(3); 1812 } 1813 1814 void sci3_txi_handler(void) 1815 { 1816 sci_txi_handler(3); 1817 } 1818 1819 void sci3_tei_handler(void) 1820 { 1821 sci_tei_handler(3); 1822 } 1823 1824 void sci4_rxi_handler(void) 1825 { 1826 sci_rxi_handler(4); 1827 } 1828 1829 void sci4_txi_handler(void) 1830 { 1831 sci_txi_handler(4); 1832 } 1833 1834 void sci4_tei_handler(void) 1835 { 1836 sci_tei_handler(4); 1837 } 1838 1839 void sci5_rxi_handler(void) 1840 { 1841 sci_rxi_handler(5); 1842 } 1843 1844 void sci5_txi_handler(void) 1845 { 1846 sci_txi_handler(5); 1847 } 1848 1849 void sci5_tei_handler(void) 1850 { 1851 sci_tei_handler(5); 1852 } 1853 1854 void sci6_rxi_handler(void) 1855 { 1856 sci_rxi_handler(6); 1857 } 1858 1859 void sci6_txi_handler(void) 1860 { 1861 sci_txi_handler(6); 1862 } 1863 1864 void sci6_tei_handler(void) 1865 { 1866 sci_tei_handler(6); 1867 } -
asp3_tinet_ecnl_rx/trunk/ntshell/src/mbed_api.h
r337 r364 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 3 * 4 * Copyright (C) 2014-201 7Cores Co., Ltd. Japan4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ … … 38 38 #define _MBED_API_H_ 39 39 40 #define DEVICE_SPI 41 #define DEVICE_I2C 42 40 43 void mbed_api_init(void); 41 44 … … 44 47 45 48 typedef enum { 49 D0, /* P21 */ 50 D1, /* P20 */ 51 D2, /* P22 */ 52 D3, /* P23 */ 53 D4, /* P24 */ 54 D5, /* P25 */ 55 D6, /* P32 */ 56 D7, /* P33 */ 57 D8, /* PC2 */ 58 D9, /* PC3 */ 59 D10, /* PC4 */ 60 D11, /* PC6 */ 61 D12, /* PC7 */ 62 D13, /* PC5 */ 63 64 A0, /* AN0 */ 65 A1, /* AN1 */ 66 A2, /* AN2 */ 67 A3, /* AN3 */ 68 A4, /* AN4 */ 69 A5, /* AN5 */ 70 A6, /* AN6 */ 71 A7, /* AN7 */ 72 73 I2C_SCL, /* P52 */ 74 I2C_SDA, /* P50 */ 75 46 76 PIN_LED0, 47 77 PIN_LED1, 48 78 PIN_LED2, 49 79 PIN_LED3, 50 PIN_BUTTON0, 80 PIN_SW, 81 51 82 NC = (int)0xFFFFFFFF 52 83 } PinName; … … 56 87 #define LED_BLUE PIN_LED2 57 88 #define LED_USER PIN_LED3 58 #define USER_BUTTON0 PIN_ BUTTON089 #define USER_BUTTON0 PIN_SW 59 90 60 91 typedef enum { … … 64 95 65 96 typedef enum { 66 PullUp = 0,97 PullUp = 2, 67 98 PullDown = 3, 68 PullNone = 2,99 PullNone = 0, 69 100 OpenDrain = 4, 70 PullDefault = Pull Down101 PullDefault = PullNone 71 102 } PinMode; 72 103 … … 114 145 115 146 typedef enum { 116 117 118 119 120 147 ParityNone = 0, 148 ParityOdd = 1, 149 ParityEven = 2, 150 ParityForced1 = 3, 151 ParityForced0 = 4 121 152 } SerialParity; 122 153 123 154 typedef enum { 124 FlowControlNone, 125 FlowControlRTS, 126 FlowControlCTS, 127 FlowControlRTSCTS 155 RxIrq, 156 TxIrq 157 } SerialIrq; 158 159 typedef enum { 160 FlowControlNone, 161 FlowControlRTS, 162 FlowControlCTS, 163 FlowControlRTSCTS 128 164 } FlowControl; 129 165 130 166 typedef struct serial_s { 131 int dummy; 167 void *base_address; 168 int rxi_intno; 169 int tei_intno; 132 170 } serial_t; 133 171 134 typedef struct spi_s { 135 int dummy; 136 } spi_t; 172 typedef void (*uart_irq_handler)(uint32_t id, SerialIrq event); 137 173 138 174 void serial_init(serial_t *obj, PinName tx, PinName rx); … … 144 180 int serial_readable(serial_t *obj); 145 181 int serial_writable(serial_t *obj); 182 void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id); 146 183 147 184 typedef struct i2c_s { 185 void *base_address; 186 int rxi_intno; 187 int txi_intno; 188 int tei_intno; 148 189 unsigned char rxdata[16]; 149 190 } i2c_t; … … 158 199 int i2c_byte_write(i2c_t *obj, int data); 159 200 201 #define SPI_FILL_CHAR (0xFF) 202 203 typedef struct spi_s { 204 void *base_address; 205 int rxi_intno; 206 int txi_intno; 207 int tei_intno; 208 } spi_t; 209 160 210 void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel); 161 211 void spi_free(spi_t *obj); … … 163 213 void spi_frequency(spi_t *obj, int hz); 164 214 int spi_master_write(spi_t *obj, int value); 215 int spi_master_block_write(spi_t *obj, const char *tx_buffer, int tx_length, 216 char *rx_buffer, int rx_length, char write_fill); 165 217 166 218 void rtc_init(void); … … 170 222 void rtc_write(time_t t); 171 223 224 void sci0_rxi_handler(void); 225 void sci0_txi_handler(void); 226 void sci0_tei_handler(void); 227 228 void sci1_rxi_handler(void); 229 void sci1_txi_handler(void); 230 void sci1_tei_handler(void); 231 232 void sci2_rxi_handler(void); 233 void sci2_txi_handler(void); 234 void sci2_tei_handler(void); 235 236 void sci3_rxi_handler(void); 237 void sci3_txi_handler(void); 238 void sci3_tei_handler(void); 239 240 void sci4_rxi_handler(void); 241 void sci4_txi_handler(void); 242 void sci4_tei_handler(void); 243 244 void sci5_rxi_handler(void); 245 void sci5_txi_handler(void); 246 void sci5_tei_handler(void); 247 248 void sci6_rxi_handler(void); 249 void sci6_txi_handler(void); 250 void sci6_tei_handler(void); 251 172 252 #endif /* _MBED_API_H_ */ -
asp3_tinet_ecnl_rx/trunk/ntshell/src/net_misc.h
r359 r364 41 41 /* スタックサイズ */ 42 42 43 #define NET_MISC_STACK_SIZE 1024/* NTP クライアントタスク(IPv4)のスタックサイズ */43 #define NET_MISC_STACK_SIZE 2048 /* NTP クライアントタスク(IPv4)のスタックサイズ */ 44 44 45 45 /* 優先度 */ -
asp3_tinet_ecnl_rx/trunk/ntshell/src/netcmd.c
r342 r364 239 239 int usrcmd_ping(int argc, char **argv) 240 240 { 241 int tmo, size;242 char 241 int tmo = 3, size = 64; 242 char apip = DEFAULT_API_PROTO; 243 243 char *line = argv[1]; 244 244 #if defined(SUPPORT_INET6) … … 262 262 263 263 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) 264 if (argc <= 2) 265 return 0; 266 264 267 if ('0' <= *line && *line <= '9') { 265 268 if (*line == '6') … … 269 272 line++; 270 273 } 274 275 line = argv[2]; 276 #else 277 if (argc <= 1) 278 return 0; 271 279 #endif /* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */ 272 280 … … 276 284 } 277 285 278 line = argv[2];279 if ('0' <= *line && *line <= '9')280 line = get_int(&tmo, line);281 else282 tmo = 3; 283 284 line = argv[3];285 if ('0' <= *line && *line <= '9')286 line = get_int(&size, line);287 else288 size = 64;286 if (argc > 2) { 287 line = argv[2]; 288 if ('0' <= *line && *line <= '9') 289 line = get_int(&tmo, line); 290 291 if (argc > 3) { 292 line = argv[3]; 293 if ('0' <= *line && *line <= '9') 294 line = get_int(&size, line); 295 } 296 } 289 297 290 298 #if defined(SUPPORT_INET6) … … 337 345 { 338 346 ER ret; 347 348 if (argc < 2) 349 return 0; 350 339 351 if (ntlibc_strcmp(argv[1], "rel") == 0) { 340 352 ret = dhcp4c_rel_info(); … … 348 360 dhcp4c_info(); 349 361 } 362 350 363 return 0; 351 364 } -
asp3_tinet_ecnl_rx/trunk/ntshell/src/ntp_cli.c
r359 r364 265 265 266 266 nc->buf[0] = '\0'; 267 #if ndef _MSC_VER267 #ifdef __NEED_struct_timespec 268 268 if (ctime_r(&tp.tv_sec, nc->buf) != NULL) 269 269 #else -
asp3_tinet_ecnl_rx/trunk/ntshell/src/ntshell_main.c
r342 r364 60 60 #include "socket_stub.h" 61 61 #include "usb_hbth.h" 62 #include "mbed_api.h" 62 63 63 64 extern int bt_bnep_mode; … … 69 70 const struct utsname host_name = { 70 71 "TOPPERS/ASP3", 71 72 73 74 75 72 TARGET_NAME, 73 "3.2.0", 74 "3.2.0", 75 TARGET_NAME, 76 "toppers.jp" 76 77 }; 77 78 … … 88 89 jmp_buf process_exit; 89 90 void sys_init(void); 90 91 void ntshell_task_init() 92 { 91 NTSHELL_SERIAL_READ ntshell_serial_read = 0; 92 NTSHELL_SERIAL_WRITE ntshell_serial_write = 0; 93 void *ntshell_serial_extobj; 94 95 unsigned char ntstdio_xi(struct ntstdio_t *handle) 96 { 97 unsigned char buf[1]; 98 ntshell_serial_read((char *)buf, 1, ntshell_serial_extobj); 99 return buf[0]; 100 } 101 102 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c) 103 { 104 char buf[1]; 105 buf[0] = c; 106 ntshell_serial_write(buf, 1, ntshell_serial_extobj); 107 } 108 109 void ntshell_task_init(NTSHELL_SERIAL_READ func_read, 110 NTSHELL_SERIAL_WRITE func_write, void *extobj) 111 { 112 ntshell_serial_read = func_read; 113 ntshell_serial_write = func_write; 114 ntshell_serial_extobj = extobj; 115 93 116 sys_init(); 94 117 … … 126 149 int result = 0; 127 150 int found = 0; 151 152 if (*args == 0) 153 return result; 128 154 129 155 if (strcmp((const char *)args[1], "help") == 0) { … … 295 321 int shell_clock_getres(clockid_t clk_id, struct timespec *res) 296 322 { 297 if ( clk_id != CLOCK_REALTIME)323 if ((clk_id != CLOCK_REALTIME) && (clk_id != CLOCK_MONOTONIC)) 298 324 return -EINVAL; 299 325 … … 308 334 SYSTIM now = 0; 309 335 310 if ( clk_id != CLOCK_REALTIME)336 if ((clk_id != CLOCK_REALTIME) && (clk_id != CLOCK_MONOTONIC)) 311 337 return -EINVAL; 312 338 … … 320 346 int shell_clock_settime(clockid_t clk_id, const struct timespec *tp) 321 347 { 322 if ( clk_id != CLOCK_REALTIME)348 if ((clk_id != CLOCK_REALTIME) && (clk_id != CLOCK_MONOTONIC)) 323 349 return -EINVAL; 324 350 325 rtc_write(tp->tv_sec); 351 SYSTIM time; 352 ER ret; 353 354 time = (tp->tv_sec * 1000000ll) + (tp->tv_nsec / 1000ll); 355 356 ret = set_tim(time); 357 if (ret != E_OK) { 358 return -EPERM; 359 } 326 360 327 361 return 0; … … 356 390 } 357 391 358 struct sigaction sigtable[ 6];392 struct sigaction sigtable[7]; 359 393 360 394 int shell_sigaction(int sig, const struct sigaction *restrict sa, struct sigaction *restrict old) … … 381 415 sat = &sigtable[5]; 382 416 break; 417 case SIGPIPE: 418 sat = &sigtable[6]; 419 break; 383 420 default: 384 421 return -EINVAL; -
asp3_tinet_ecnl_rx/trunk/ntshell/src/ntshell_main.cfg
r337 r364 43 43 CRE_TSK(NTSHELL_TASK, { TA_NULL, 0, ntshell_task, NTSHELL_PRIORITY, NTSHELL_STACK_SIZE, NULL }); 44 44 CRE_FLG(FLG_SELECT_WAIT, { TA_WMUL, 0x00 }); 45 CRE_SEM(SEM_FILEDESC, { TA_TPRI, 1, 1 }); 45 46 CRE_SEM(SEM_MALLOC, { TA_TPRI, 1, 1 }); -
asp3_tinet_ecnl_rx/trunk/ntshell/src/ntshell_main.h
r337 r364 49 49 50 50 #include "usrcmd.h" 51 #include "core/ntshell.h" 51 52 52 53 /* … … 54 55 */ 55 56 56 #define NTSHELL_PRIORITY 4/* ntshellタスクの優先度 */57 #define NTSHELL_PRIORITY 8 /* ntshellタスクの優先度 */ 57 58 58 59 #define NTSHELL_STACK_SIZE 8192 /* ntshellタスクのスタック領域のサイズ */ … … 75 76 extern PRI main_task_priority; 76 77 77 struct ntstdio_t;78 unsigned char ntstdio_xi(struct ntstdio_t *handle);79 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c);80 81 78 /* ntshellタスク初期化 */ 82 void ntshell_task_init(); 79 void ntshell_task_init(NTSHELL_SERIAL_READ func_read, 80 NTSHELL_SERIAL_WRITE func_write, void *extobj); 83 81 84 82 /* ntshellタスク */ -
asp3_tinet_ecnl_rx/trunk/ntshell/src/shellif.h
r342 r364 39 39 40 40 #ifdef _MSC_VER 41 #define _CRT_NO_TIME_T42 #define tm msc_tm43 #include <time.h>44 #include <errno.h>45 #include <limits.h>46 #include <stdlib.h>47 #undef tm48 41 #undef NULL 49 42 #endif … … 133 126 #endif 134 127 128 #ifdef __cplusplus 129 extern "C" { 130 #endif 131 135 132 // time.h 136 133 #define CLOCK_REALTIME 0 … … 179 176 int shell_access(const char *path, int mode); 180 177 // signal.h 181 int shell_sigprocmask(int how, const sigset_t * restrict set, sigset_t *restrict old);182 int shell_sigaction(int sig, const struct sigaction * restrict sa, struct sigaction *restrict old);178 int shell_sigprocmask(int how, const sigset_t *__restrict set, sigset_t *__restrict old); 179 int shell_sigaction(int sig, const struct sigaction *__restrict sa, struct sigaction *__restrict old); 183 180 // socket.h 184 181 int shell_socket(int, int, int); 185 182 int shell_connect(int, const struct sockaddr *, socklen_t); 186 ssize_t shell_send(int, const void *, size_t, int);187 183 ssize_t shell_sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t); 188 184 ssize_t shell_sendmsg(int, const struct msghdr *, int); … … 190 186 int shell_listen(int, int); 191 187 int shell_accept(int, struct sockaddr *__restrict, socklen_t *__restrict); 192 ssize_t shell_recv(int, void *, size_t, int);193 188 ssize_t shell_recvfrom(int, void *__restrict, size_t, int, struct sockaddr *__restrict, socklen_t *__restrict); 194 189 ssize_t shell_recvmsg(int, struct msghdr *, int); … … 263 258 int shell_pipe2(int [2], int); 264 259 int shell_ppoll(struct pollfd *, nfds_t, const struct timespec *,const sigset_t *); 265 int shell_pselect6(int, fd_set * restrict, fd_set *restrict,266 fd_set * restrict, const struct timespec *restrict, const sigset_t *restrict);260 int shell_pselect6(int, fd_set *__restrict, fd_set *__restrict, 261 fd_set *__restrict, const struct timespec *__restrict, const sigset_t *__restrict); 267 262 int shell_setpgid(pid_t, pid_t); 268 263 int shell_setsid(); … … 308 303 #endif 309 304 310 struct tm *gmtime_r(const time_t *t, struct tm *tm);311 305 void *malloc(size_t size); 312 306 void *calloc(size_t size, size_t count); … … 314 308 void free(void *ptr); 315 309 310 #ifdef __cplusplus 311 } 312 #endif 313 316 314 #endif /* SHELLIF_H */ -
asp3_tinet_ecnl_rx/trunk/ntshell/src/socket_stub.c
r337 r364 42 42 #include <sil.h> 43 43 #include "syssvc/syslog.h" 44 #include <tinet_defs.h> 44 45 #include <tinet_config.h> 46 #include <net/net.h> 47 #include <net/net_endian.h> 45 48 #include <netinet/in.h> 46 49 #include <netinet/in_itron.h> … … 53 56 #include <net/if_var.h> 54 57 #include <netinet/udp_var.h> 58 #include <net/net_buf.h> 55 59 //#include <netinet/tcp_var.h> 56 60 #include <netapp/resolver.h> … … 58 62 #include "ff.h" 59 63 #include "socket_stub.h" 64 #include "kernel_cfg.h" 60 65 61 66 #define SOCKET_TIMEOUT 2000000 … … 181 186 fp->psock->buf_size = 512 + 512; 182 187 fp->psock->buf = malloc(fp->psock->buf_size); 188 #ifdef _DEBUG 189 memset(fp->psock->buf, 0, fp->psock->buf_size); 190 #endif 183 191 T_TCP_CCEP ccep = { 0, fp->psock->buf, 512, &fp->psock->buf[512], 512, (FP)socket_tcp_callback }; 184 192 ret = tcp_cre_cep(cepid, &ccep); … … 279 287 fp->psock->buf_size = 512 + 512; 280 288 fp->psock->buf = malloc(fp->psock->buf_size); 289 #ifdef _DEBUG 290 memset(fp->psock->buf, 0, fp->psock->buf_size); 291 #endif 281 292 T_TCP_CCEP ccep = { 0, fp->psock->buf, 512, &fp->psock->buf[512], 512, (FP)socket_tcp_callback }; 282 293 ret = tcp_cre_cep(cepid, &ccep); … … 298 309 return -EHOSTUNREACH; 299 310 } 300 fp->writable = 1;301 311 break; 302 312 } … … 322 332 } 323 333 324 memcpy( &fp->psock, &lfp->psock, sizeof(fp->psock));334 memcpy(fp->psock, lfp->psock, offsetof(socket_t, buf_size)); 325 335 326 336 ER ret; … … 335 345 fp->psock->buf_size = 512 + 512; 336 346 fp->psock->buf = malloc(fp->psock->buf_size); 347 #ifdef _DEBUG 348 memset(fp->psock->buf, 0, fp->psock->buf_size); 349 #endif 337 350 T_TCP_CCEP ccep = { 0, fp->psock->buf, 512, &fp->psock->buf[512], 512, (FP)socket_tcp_callback }; 338 351 ret = tcp_cre_cep(cepid, &ccep); … … 346 359 else { 347 360 cepid = lfp->psock->cepid; 361 fp->handle = cepid; 348 362 lfp->handle = tmax_tcp_cepid + lfp->psock->repid; 349 363 lfp->psock->cepid = 0; … … 356 370 return -ENOMEM; 357 371 } 358 fp->writable = 1;359 372 struct sockaddr_in *raddr = &fp->psock->raddr4; 360 373 memset(raddr, 0, sizeof(*raddr)); … … 384 397 } 385 398 386 ssize_t shell_send (int fd, const void *buf, size_t len, int flags)399 ssize_t shell_sendto(int fd, const void *buf, size_t len, int flags, const struct sockaddr *addr, socklen_t alen) 387 400 { 388 401 SOCKET *fp = fd_to_fp(fd); … … 396 409 switch (fp->psock->type) { 397 410 case SOCK_STREAM: { 398 fp->writable = 0; 411 if ((addr != NULL) || (alen != 0)) { 412 return -EISCONN; 413 } 414 399 415 if (flags & MSG_OOB) { 400 416 ret = tcp_snd_oob(fp->psock->cepid, (void *)buf, len, SOCKET_TIMEOUT); … … 404 420 } 405 421 else { 406 ret = tcp_snd_dat(fp->psock->cepid, (void *)buf, len, SOCKET_TIMEOUT); 407 if (ret < 0) { 408 return -ECOMM; 409 } 410 } 411 break; 412 } 413 case SOCK_DGRAM: { 414 return -EINVAL; 415 } 416 } 417 break; 418 } 419 case AF_INET6: { 420 return -EAFNOSUPPORT; 421 } 422 } 423 424 return ret; 425 } 426 427 ssize_t shell_sendto(int fd, const void *buf, size_t len, int flags, const struct sockaddr *addr, socklen_t alen) 428 { 429 SOCKET *fp = fd_to_fp(fd); 430 if (fp == NULL) { 431 return -EBADF; 432 } 433 434 int ret = 0; 435 switch (fp->psock->family) { 436 case AF_INET: { 437 switch (fp->psock->type) { 438 case SOCK_STREAM: { 439 if ((addr != NULL) && (alen != 0)) { 440 return -EINVAL; 441 } 442 443 fp->writable = 0; 444 if (flags & MSG_OOB) { 445 ret = tcp_snd_oob(fp->psock->cepid, (void *)buf, len, SOCKET_TIMEOUT); 446 if (ret < 0) { 447 return -ECOMM; 448 } 449 } 450 else { 451 ret = tcp_snd_dat(fp->psock->cepid, (void *)buf, len, SOCKET_TIMEOUT); 452 if (ret < 0) { 453 return -ECOMM; 454 } 422 for (;;) { 423 ret = tcp_snd_dat(fp->psock->cepid, (void *)buf, len, SOCKET_TIMEOUT); 424 if (ret < 0) { 425 if (ret == E_TMOUT) 426 return -ETIME; 427 return -ECOMM; 428 } 429 len -= ret; 430 if (len <= 0) 431 break; 432 buf = (const void *)&((uint8_t *)buf)[ret]; 433 } 455 434 } 456 435 break; … … 458 437 case SOCK_DGRAM: { 459 438 int sz = alen; 460 if ( sz < 8) {439 if ((addr == NULL) || (sz < 8)) { 461 440 return -EINVAL; 462 441 } … … 465 444 memcpy(raddr, addr, sz); 466 445 T_IPV4EP rep = { ntohl(raddr->sin_addr.s_addr), ntohs(raddr->sin_port) }; 467 fp->writable = 0;468 446 ret = udp_snd_dat(fp->psock->cepid, &rep, (void *)buf, len, 469 (fp->psock->flags & O_NONBLOCK) ? 0: SOCKET_TIMEOUT);447 (fp->psock->flags & O_NONBLOCK) ? TMO_POL : SOCKET_TIMEOUT); 470 448 if (ret < 0) { 471 return -ECOMM;449 return (ret == E_TMOUT) ? -ETIME : -ECOMM; 472 450 } 473 451 break; … … 490 468 } 491 469 492 ssize_t shell_recv (int fd, void *buf, size_t len, int flags)470 ssize_t shell_recvfrom(int fd, void *__restrict buf, size_t len, int flags, struct sockaddr *__restrict addr, socklen_t *__restrict alen) 493 471 { 494 472 SOCKET *fp = fd_to_fp(fd); … … 505 483 ret = tcp_rcv_oob(fp->psock->cepid, buf, len); 506 484 if (ret < 0) { 485 syslog(LOG_ERROR, "tcp_rcv_oob => %d", ret); 507 486 return -ECOMM; 508 487 } 509 488 } 510 489 else { 511 ret = tcp_rcv_dat(fp->psock->cepid, buf, len, TMO_FEVR); 490 int rsz, tmp; 491 if (fp->psock->input == NULL) { 492 ret = wai_sem(SEM_FILEDESC); 493 if (ret < 0) { 494 syslog(LOG_ERROR, "wai_sem => %d", ret); 495 } 496 fp->psock->len = 0; 497 ret = sig_sem(SEM_FILEDESC); 498 if (ret < 0) { 499 syslog(LOG_ERROR, "sig_sem => %d", ret); 500 } 501 ret = tcp_rcv_buf(fp->psock->cepid, &fp->psock->input, TMO_FEVR); 502 if (ret < 0) { 503 syslog(LOG_ERROR, "tcp_rcv_buf => %d", ret); 504 return -ECOMM; 505 } 506 rsz = ret; 507 } 508 else 509 rsz = fp->psock->len; 510 tmp = rsz; 511 if (rsz > len) 512 rsz = len; 513 if (rsz >= 0) { 514 memcpy(buf, fp->psock->input, rsz); 515 ret = wai_sem(SEM_FILEDESC); 516 if (ret < 0) { 517 syslog(LOG_ERROR, "wai_sem => %d", ret); 518 } 519 fp->psock->len = tmp - rsz; 520 ret = sig_sem(SEM_FILEDESC); 521 if (ret < 0) { 522 syslog(LOG_ERROR, "sig_sem => %d", ret); 523 } 524 if (tmp - rsz == 0) { 525 fp->psock->input = NULL; 526 } 527 else 528 fp->psock->input = (void *)&((uint8_t *)fp->psock->input)[rsz]; 529 ret = tcp_rel_buf(fp->psock->cepid, rsz); 530 if ((ret != E_OBJ) && (ret < 0)) { 531 syslog(LOG_ERROR, "tcp_rel_buf => %d", ret); 532 //return -ECOMM; 533 } 534 } 535 ret = rsz; 536 } 537 break; 538 } 539 case SOCK_DGRAM: { 540 struct sockaddr_in *raddr = &fp->psock->raddr4; 541 int rsz; 542 ret = wai_sem(SEM_FILEDESC); 543 if (ret < 0) { 544 syslog(LOG_ERROR, "wai_sem => %d", ret); 545 } 546 T_NET_BUF *input = fp->psock->input; 547 if (input == NULL) { 548 ret = sig_sem(SEM_FILEDESC); 512 549 if (ret < 0) { 513 return -ECOMM; 514 } 515 } 516 break; 517 } 518 case SOCK_DGRAM: { 519 T_IPV4EP rep = { 0, 0 }; 520 ret = udp_rcv_dat(fp->psock->cepid, &rep, buf, len, (fp->psock->flags & O_NONBLOCK) ? 0 : TMO_FEVR); 521 if (ret < 0) { 522 return -ECOMM; 523 } 524 } 525 } 526 break; 527 } 528 case AF_INET6: { 529 return -EAFNOSUPPORT; 530 } 531 } 532 533 return ret; 534 } 535 536 ssize_t shell_recvfrom(int fd, void *buf, size_t len, int flags, struct sockaddr *__restrict addr, socklen_t *__restrict alen) 537 { 538 SOCKET *fp = fd_to_fp(fd); 539 if (fp == NULL) { 540 return -EBADF; 541 } 542 543 int ret = 0; 544 switch (fp->psock->family) { 545 case AF_INET: { 546 switch (fp->psock->type) { 547 case SOCK_STREAM: { 548 if (flags & MSG_OOB) { 549 ret = tcp_rcv_oob(fp->psock->cepid, buf, len); 550 syslog(LOG_ERROR, "sig_sem => %d", ret); 551 } 552 553 T_IPV4EP rep = { 0, 0 }; 554 ret = udp_rcv_dat(fp->psock->cepid, &rep, buf, len, 555 (fp->psock->flags & O_NONBLOCK) ? TMO_POL : SOCKET_TIMEOUT); 550 556 if (ret < 0) { 551 return -ECOMM; 557 syslog(LOG_ERROR, "udp_rcv_buf => %d", ret); 558 return (ret == E_TMOUT) ? -ETIME : -ECOMM; 559 } 560 rsz = ret; 561 if ((addr != NULL) && (alen != NULL)) { 562 ret = wai_sem(SEM_FILEDESC); 563 if (ret < 0) { 564 syslog(LOG_ERROR, "wai_sem => %d", ret); 565 } 566 int sz = *alen; 567 memset(raddr, 0, sizeof(fp->psock->raddr4)); 568 raddr->sin_family = AF_INET; 569 raddr->sin_port = htons(rep.portno); 570 raddr->sin_addr.s_addr = htonl(rep.ipaddr); 571 if (sz > sizeof(fp->psock->raddr4)) 572 sz = sizeof(fp->psock->raddr4); 573 memcpy(addr, raddr, sz); 574 *alen = sz; 575 ret = sig_sem(SEM_FILEDESC); 576 if (ret < 0) { 577 syslog(LOG_ERROR, "sig_sem => %d", ret); 578 } 552 579 } 553 580 } 554 581 else { 555 ret = tcp_rcv_dat(fp->psock->cepid, buf, len, TMO_FEVR); 582 rsz = fp->psock->len; 583 void *pbuf = fp->psock->buf; 584 fp->psock->input = NULL; 585 fp->psock->len = 0; 586 fp->psock->buf = NULL; 587 if ((addr != NULL) && (alen != NULL)) { 588 int sz = *alen; 589 if (sz > sizeof(fp->psock->raddr4)) 590 sz = sizeof(fp->psock->raddr4); 591 memcpy(addr, raddr, sz); 592 *alen = sz; 593 } 594 ret = sig_sem(SEM_FILEDESC); 556 595 if (ret < 0) { 557 return -ECOMM; 558 } 559 } 560 break; 561 } 562 case SOCK_DGRAM: { 563 T_IPV4EP rep = { 0, 0 }; 564 ret = udp_rcv_dat(fp->psock->cepid, &rep, buf, len, TMO_FEVR); 565 if (ret < 0) { 566 return -ECOMM; 567 } 568 int sz = *alen; 569 struct sockaddr_in raddr; 570 memset(&raddr, 0, sizeof(raddr)); 571 raddr.sin_family = AF_INET; 572 raddr.sin_port = htons(rep.portno); 573 raddr.sin_addr.s_addr = htonl(rep.ipaddr); 574 if (sz > sizeof(raddr)) 575 sz = sizeof(raddr); 576 memcpy(addr, &raddr, sz); 596 syslog(LOG_ERROR, "sig_sem => %d", ret); 597 } 598 if (rsz > len) 599 rsz = len; 600 memcpy(buf, pbuf, rsz); 601 ret = rel_net_buf(input); 602 if (ret < 0) { 603 syslog(LOG_ERROR, "rel_net_buf => %d", ret); 604 //return -ECOMM; 605 } 606 } 607 ret = rsz; 577 608 } 578 609 } … … 830 861 int tcp_fd_close(struct _IO_FILE *fp) 831 862 { 832 ER ret; 833 834 free(fp->psock->buf); 835 fp->psock->buf = NULL; 863 ER ret, ret2; 836 864 837 865 switch (fp->psock->family) { … … 844 872 } 845 873 ret = tcp_cls_cep(cepid, (fp->psock->repid != 0) ? 0 : SOCKET_TIMEOUT); 846 if (ret < 0) { 847 //return -1; 848 } 849 ret = tcp_del_cep(cepid); 874 ret2 = tcp_del_cep(cepid); 875 free(fp->psock->buf); 876 fp->psock->buf = NULL; 850 877 delete_tcp_fd(cepid); 851 878 delete_id(tcp_cepid_table, tcp_cepid_table_count, cepid); 852 if ( ret < 0) {853 return -EINVAL;879 if ((ret < 0) || (ret2 < 0)) { 880 return (ret == E_TMOUT) ? -ETIME : -EINVAL; 854 881 } 855 882 } … … 857 884 ID repid = fp->psock->repid; 858 885 ret = tcp_del_rep(repid); 886 free(fp->psock->buf); 887 fp->psock->buf = NULL; 859 888 delete_tcp_fd(tmax_tcp_cepid + repid); 860 889 delete_id(tcp_repid_table, tcp_repid_table_count, repid); … … 864 893 } 865 894 else { 895 free(fp->psock->buf); 896 fp->psock->buf = NULL; 866 897 return -EINVAL; 867 898 } … … 878 909 size_t tcp_fd_read(struct _IO_FILE *fp, unsigned char *dst, size_t dstsz) 879 910 { 880 return shell_recv (fp->fd, dst, dstsz, 0);911 return shell_recvfrom(fp->fd, dst, dstsz, 0, NULL, NULL); 881 912 } 882 913 883 914 size_t tcp_fd_write(struct _IO_FILE *fp, const unsigned char *src, size_t srcsz) 884 915 { 885 return shell_send (fp->fd, src, srcsz, 0);916 return shell_sendto(fp->fd, src, srcsz, 0, NULL, 0); 886 917 } 887 918 … … 901 932 ID cepid; 902 933 903 free(fp->psock->buf);904 fp->psock->buf = NULL;905 906 934 switch (fp->psock->family) { 907 935 case AF_INET: { 908 936 cepid = fp->psock->cepid; 909 937 ret = udp_del_cep(cepid); 938 //free(fp->psock->buf); 939 //fp->psock->buf = NULL; 910 940 delete_udp_fd(cepid); 911 941 delete_id(udp_cepid_table, udp_cepid_table_count, cepid); … … 925 955 size_t udp_fd_read(struct _IO_FILE *fp, unsigned char *dst, size_t dstsz) 926 956 { 927 return shell_recv (fp->fd, dst, dstsz, 0);957 return shell_recvfrom(fp->fd, dst, dstsz, 0, NULL, NULL); 928 958 } 929 959 930 960 size_t udp_fd_write(struct _IO_FILE *fp, const unsigned char *src, size_t srcsz) 931 961 { 932 return shell_send (fp->fd, src, srcsz, 0);962 return shell_sendto(fp->fd, src, srcsz, 0, NULL, 0); 933 963 } 934 964 -
asp3_tinet_ecnl_rx/trunk/ntshell/src/socket_stub.h
r337 r364 99 99 int buf_size; 100 100 unsigned char *buf; 101 void *input; 102 int len; 101 103 } socket_t; 102 104 -
asp3_tinet_ecnl_rx/trunk/ntshell/src/syscall.c
r359 r364 172 172 173 173 long SYS_futex() { 174 int futex(int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3); 174 175 return no_implement("futex\n"); 175 176 } … … 280 281 281 282 long SYS_recv(long a, long b, long c, long d) { 282 return shell_recv ((int)a, (void *)b, (size_t)c, (int)d);283 return shell_recvfrom((int)a, (void *)b, (size_t)c, (int)d, NULL, NULL); 283 284 } 284 285 285 286 long SYS_recvfrom(long a, long b, long c, long d, long e, long f) { 286 if (a == 0) 287 return shell_recv(a, (void *)b, (size_t)c, (int)d); 288 else 289 return shell_recvfrom(a, (void *)b, (size_t)c, (int)d, (struct sockaddr *)e, (socklen_t *)f); 287 return shell_recvfrom(a, (void *)b, (size_t)c, (int)d, (struct sockaddr *)e, (socklen_t *)f); 290 288 } 291 289 … … 315 313 316 314 long SYS_send(long a, long b, long c, long d) { 317 return shell_send ((int)a, (const void *)b, (size_t)c, (int)d);315 return shell_sendto((int)a, (const void *)b, (size_t)c, (int)d, NULL, 0); 318 316 } 319 317 … … 323 321 324 322 long SYS_sendto(long a, long b, long c, long d, long e, long f) { 325 if (a == 0) 326 return shell_send(a, (const void *)b, (size_t)c, (int)d); 327 else 328 return shell_sendto(a, (const void *)b, (size_t)c, (int)d, (const struct sockaddr *)e, (socklen_t)f); 323 return shell_sendto(a, (const void *)b, (size_t)c, (int)d, (const struct sockaddr *)e, (socklen_t)f); 329 324 } 330 325 … … 392 387 return shell_writev((int)a, (const struct iovec *)b, (size_t)c); 393 388 } 389 390 long SYS_dup() 391 { 392 return no_implement("dup\n"); 393 } 394 395 long SYS_dup2() 396 { 397 return no_implement("dup2\n"); 398 } 399 400 long SYS_pipe() 401 { 402 return no_implement("pipe\n"); 403 } 404 405 long SYS_readlink() 406 { 407 return no_implement("readlink\n"); 408 } 409 410 long SYS_symlink() 411 { 412 return no_implement("symlink\n"); 413 } 414 415 long SYS_umask() 416 { 417 return no_implement("umask\n"); 418 } 419 420 long SYS_execve() 421 { 422 return no_implement("execve\n"); 423 } 424 425 long SYS_fork() 426 { 427 return no_implement("fork\n"); 428 } 429 430 long SYS_wait4() 431 { 432 return no_implement("wait4\n"); 433 } 434 435 long SYS_socketpair() 436 { 437 return no_implement("socketpair\n"); 438 } 439 440 long SYS_flock() 441 { 442 return no_implement("flock\n"); 443 } -
asp3_tinet_ecnl_rx/trunk/wolfssl-3.12.2/.cproject
r337 r364 24 24 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 25 25 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 26 <option id="toolchain.version" value="4.8.4.201 703"/>26 <option id="toolchain.version" value="4.8.4.201803"/> 27 27 </storageModule> 28 28 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 39 39 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.2035819984" 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"/> 40 40 <option id="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections.1857594075" name="Function sections (-ffunction-sections)" superClass="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections" value="true" valueType="boolean"/> 41 <option id="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble.804769475" name="Make the double data type be 64 bits in size" superClass="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble" value="true" valueType="boolean"/> 41 42 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.7353477" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 42 43 <builder buildPath="${workspace_loc:/wolfssl}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.778498533" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/> … … 53 54 <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.gcc.core.option.compiler.includes.includeFileDir.1846433325" name="Include file directories" superClass="com.renesas.cdt.managedbuild.gcc.core.option.compiler.includes.includeFileDir" useByScannerDiscovery="false" valueType="includePath"> 54 55 <listOptionValue builtIn="false" value=""${workspace_loc:/musl-1.1.18/include}""/> 56 <listOptionValue builtIn="false" value=""${workspace_loc:/zlib-1.2.11/src}""/> 55 57 <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}""/> 56 58 </option> -
asp3_tinet_ecnl_rx/trunk/wolfssl-3.12.2/src/internal.c
r337 r364 16378 16378 if (ret != 0) 16379 16379 return ret; 16380 16381 word32 tim = LowResTimer(); 16382 *((word32 *)(output + idx)) = (tim >> 24) | ((tim & 0xFF0000) >> 8) 16383 | ((tim & 0xFF00) << 8)| (tim << 24); 16380 16384 16381 16385 /* store random */ -
asp3_tinet_ecnl_rx/trunk/wolfssl-3.12.2/user_settings.h
r337 r364 1 1 //#define DEBUG_WOLFSSL 2 2 3 //#define HAVE_LIBZ X^bNª½Kv 3 4 #define HAVE_ECC 5 #define HAVE_AESGCM 4 6 //#define HAVE_FIPS 7 #define HAVE_TLS_EXTENSIONS 8 #define HAVE_SNI 9 #define HAVE_SUPPORTED_CURVES 5 10 6 11 #define ECC_TIMING_RESISTANT … … 9 14 #define WOLFSSL_RIPEMD 10 15 #define WOLFSSL_SHA512 16 #define WOLFSSL_SMALL_STACK 11 17 12 18 #define WC_RSA_BLINDING -
asp3_tinet_ecnl_rx/trunk/zlib-1.2.11/.cproject
r337 r364 24 24 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 25 25 <option id="toolchain.id" value="RENESAS_GCC_RX"/> 26 <option id="toolchain.version" value="4.8.4.201 703"/>26 <option id="toolchain.version" value="4.8.4.201803"/> 27 27 </storageModule> 28 28 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 39 39 <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.795203519" 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"/> 40 40 <option id="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections.1534501362" name="Function sections (-ffunction-sections)" superClass="com.renesas.cdt.managedbuild.gcc.core.option.optimization.functionsections" value="true" valueType="boolean"/> 41 <option id="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble.1127099805" name="Make the double data type be 64 bits in size" superClass="com.renesas.cdt.managedbuild.gcc.core.option.cpu.64bitdouble" value="true" valueType="boolean"/> 41 42 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1904688740" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/> 42 43 <builder buildPath="${workspace_loc:/zlib}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.774629006" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
Note:
See TracChangeset
for help on using the changeset viewer.