按建议,继续下一步工作
结论:已将 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" \
|
||||
|
||||
Reference in New Issue
Block a user