按建议,继续下一步工作
结论:已将 LinuxCNC TP 源码纳入 wasm-port 的可复现 vendor 清单和 native probe 构建,新增真实 tpCreate/tpAddLine/tpRunCycle 线性运动验证,并通过 native probes 全量验证。
This commit is contained in:
@@ -27,6 +27,8 @@ COMMON_FLAGS=(
|
||||
-I"$VENDOR_DIR/src/emc"
|
||||
-I"$VENDOR_DIR/src/emc/nml_intf"
|
||||
-I"$VENDOR_DIR/src/emc/motion"
|
||||
-I"$VENDOR_DIR/src/emc/tp"
|
||||
-I"$VENDOR_DIR/src/emc/kinematics"
|
||||
-I"$VENDOR_DIR/src/libnml/posemath"
|
||||
)
|
||||
|
||||
@@ -47,6 +49,11 @@ MINIMAL_LINK_FLAGS=(
|
||||
-Wl,--gc-sections
|
||||
)
|
||||
|
||||
TP_FLAGS=(
|
||||
"${COMMON_FLAGS[@]}"
|
||||
-fpermissive
|
||||
)
|
||||
|
||||
write_command_file() {
|
||||
local file="$1"
|
||||
shift
|
||||
@@ -251,6 +258,48 @@ STATE_PROBE_SOURCES=(
|
||||
"$WRAP_DIR/linuxcnc_interp_state_probe.cpp"
|
||||
)
|
||||
|
||||
TP_API_PROBE_SOURCES=(
|
||||
"$WRAP_DIR/linuxcnc_tp_api_probe.cpp"
|
||||
)
|
||||
|
||||
TP_CORE_SOURCES=(
|
||||
"$VENDOR_DIR/src/emc/tp/tp.c"
|
||||
"$VENDOR_DIR/src/emc/tp/tc.c"
|
||||
"$VENDOR_DIR/src/emc/tp/tcq.c"
|
||||
"$VENDOR_DIR/src/emc/tp/spherical_arc.c"
|
||||
"$VENDOR_DIR/src/emc/tp/blendmath.c"
|
||||
"$VENDOR_DIR/src/emc/tp/sp_scurve.c"
|
||||
"$VENDOR_DIR/src/emc/tp/ruckig_wrapper.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/block.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/brake.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/calculator.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/cruckig.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/input_parameter.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/output_parameter.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/profile.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/roots.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/trajectory.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step2.c"
|
||||
"$VENDOR_DIR/src/emc/nml_intf/emcpose.c"
|
||||
"$VENDOR_DIR/src/libnml/posemath/posemath.cc"
|
||||
"$VENDOR_DIR/src/libnml/posemath/_posemath.c"
|
||||
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
|
||||
)
|
||||
|
||||
TP_RUNTIME_PROBE_SOURCES=(
|
||||
"${TP_CORE_SOURCES[@]}"
|
||||
"$WRAP_DIR/linuxcnc_tp_api_probe.cpp"
|
||||
)
|
||||
|
||||
INTERP_CORE_SOURCES=(
|
||||
"$VENDOR_DIR/src/emc/rs274ngc/modal_state.cc"
|
||||
"$VENDOR_DIR/src/emc/rs274ngc/interp_array.cc"
|
||||
@@ -307,6 +356,28 @@ build_binary_target \
|
||||
STATE_PROBE_SOURCES \
|
||||
NO_LINK_FLAGS
|
||||
|
||||
build_binary_target \
|
||||
linuxcnc_tp_api_probe \
|
||||
"$BUILD_DIR/linuxcnc_tp_api_probe" \
|
||||
TP_FLAGS \
|
||||
TP_RUNTIME_PROBE_SOURCES \
|
||||
NO_LINK_FLAGS
|
||||
|
||||
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_tp_api_probe.exitcode")" == "0" ]]; then
|
||||
set +e
|
||||
"$BUILD_DIR/linuxcnc_tp_api_probe" \
|
||||
>"$BUILD_DIR/linuxcnc_tp_api_probe.run.stdout.log" \
|
||||
2>"$BUILD_DIR/linuxcnc_tp_api_probe.run.stderr.log"
|
||||
TP_API_RUN_RC=$?
|
||||
set -e
|
||||
echo "$TP_API_RUN_RC" > "$BUILD_DIR/linuxcnc_tp_api_probe.run.exitcode"
|
||||
else
|
||||
rm -f \
|
||||
"$BUILD_DIR/linuxcnc_tp_api_probe.run.exitcode" \
|
||||
"$BUILD_DIR/linuxcnc_tp_api_probe.run.stdout.log" \
|
||||
"$BUILD_DIR/linuxcnc_tp_api_probe.run.stderr.log"
|
||||
fi
|
||||
|
||||
build_binary_target \
|
||||
linuxcnc_namedparam_harness \
|
||||
"$BUILD_DIR/linuxcnc_namedparam_harness" \
|
||||
|
||||
@@ -2,12 +2,18 @@ src/emc/ini/inifile.cc
|
||||
src/emc/ini/inifile.h
|
||||
src/emc/ini/inifile.hh
|
||||
src/rtapi/rtapi_stdint.h
|
||||
src/rtapi/rtapi_bool.h
|
||||
src/rtapi/rtapi_limits.h
|
||||
src/rtapi/rtapi_atomic.h
|
||||
src/rtapi/rtapi_slab.h
|
||||
src/rtapi/rtapi_string.h
|
||||
src/rtapi/rtapi_gfp.h
|
||||
src/rtapi/rtapi_math.h
|
||||
src/rtapi/rtapi_byteorder.h
|
||||
src/emc/nml_intf/emcpos.h
|
||||
src/emc/nml_intf/emcpose.h
|
||||
src/emc/nml_intf/emcpose.c
|
||||
src/emc/nml_intf/motion_types.h
|
||||
src/emc/linuxcnc.h
|
||||
src/emc/nml_intf/canon.hh
|
||||
src/emc/nml_intf/canon_position.hh
|
||||
@@ -17,11 +23,71 @@ src/emc/nml_intf/debugflags.h
|
||||
src/emc/nml_intf/interp_return.hh
|
||||
src/emc/motion/state_tag.h
|
||||
src/emc/motion/emcmotcfg.h
|
||||
src/emc/motion/simple_tp.h
|
||||
src/emc/motion/motion.h
|
||||
src/emc/motion/mot_priv.h
|
||||
src/emc/motion/axis.h
|
||||
src/emc/kinematics/kinematics.h
|
||||
src/emc/kinematics/cubic.h
|
||||
src/emc/tp/tp.h
|
||||
src/emc/tp/tp_types.h
|
||||
src/emc/tp/tc.h
|
||||
src/emc/tp/tc_types.h
|
||||
src/emc/tp/tcq.h
|
||||
src/emc/tp/spherical_arc.h
|
||||
src/emc/tp/blendmath.h
|
||||
src/emc/tp/sp_scurve.h
|
||||
src/emc/tp/ruckig_wrapper.h
|
||||
src/emc/tp/tp_debug.h
|
||||
src/emc/tp/tp.c
|
||||
src/emc/tp/tc.c
|
||||
src/emc/tp/tcq.c
|
||||
src/emc/tp/spherical_arc.c
|
||||
src/emc/tp/blendmath.c
|
||||
src/emc/tp/sp_scurve.c
|
||||
src/emc/tp/ruckig_wrapper.c
|
||||
src/emc/tp/cruckig/block.h
|
||||
src/emc/tp/cruckig/brake.h
|
||||
src/emc/tp/cruckig/calculator.h
|
||||
src/emc/tp/cruckig/cruckig.h
|
||||
src/emc/tp/cruckig/cruckig_internal.h
|
||||
src/emc/tp/cruckig/input_parameter.h
|
||||
src/emc/tp/cruckig/output_parameter.h
|
||||
src/emc/tp/cruckig/position.h
|
||||
src/emc/tp/cruckig/profile.h
|
||||
src/emc/tp/cruckig/result.h
|
||||
src/emc/tp/cruckig/roots.h
|
||||
src/emc/tp/cruckig/trajectory.h
|
||||
src/emc/tp/cruckig/utils.h
|
||||
src/emc/tp/cruckig/velocity.h
|
||||
src/emc/tp/cruckig/block.c
|
||||
src/emc/tp/cruckig/brake.c
|
||||
src/emc/tp/cruckig/calculator.c
|
||||
src/emc/tp/cruckig/cruckig.c
|
||||
src/emc/tp/cruckig/input_parameter.c
|
||||
src/emc/tp/cruckig/output_parameter.c
|
||||
src/emc/tp/cruckig/profile.c
|
||||
src/emc/tp/cruckig/roots.c
|
||||
src/emc/tp/cruckig/trajectory.c
|
||||
src/emc/tp/cruckig/position_first_step1.c
|
||||
src/emc/tp/cruckig/position_first_step2.c
|
||||
src/emc/tp/cruckig/position_second_step1.c
|
||||
src/emc/tp/cruckig/position_second_step2.c
|
||||
src/emc/tp/cruckig/position_third_step1.c
|
||||
src/emc/tp/cruckig/position_third_step2.c
|
||||
src/emc/tp/cruckig/velocity_second_step1.c
|
||||
src/emc/tp/cruckig/velocity_second_step2.c
|
||||
src/emc/tp/cruckig/velocity_third_step1.c
|
||||
src/emc/tp/cruckig/velocity_third_step2.c
|
||||
src/emc/rs274ngc/modal_state.hh
|
||||
src/emc/rs274ngc/modal_state.cc
|
||||
src/libnml/posemath/posemath.h
|
||||
src/libnml/posemath/posemath.cc
|
||||
src/libnml/posemath/_posemath.c
|
||||
src/libnml/posemath/gomath.c
|
||||
src/libnml/posemath/gomath.h
|
||||
src/libnml/posemath/gotypes.h
|
||||
src/libnml/posemath/sincos.c
|
||||
src/libnml/posemath/sincos.h
|
||||
src/emc/rs274ngc/interp_parameter_def.hh
|
||||
src/emc/rs274ngc/interp_array.cc
|
||||
|
||||
Reference in New Issue
Block a user