mirror of
https://github.com/eclipse-threadx/threadx.git
synced 2026-10-06 06:59:08 +08:00
Removed the stray build artifacts committed with the RISC-V64 port fix (#706)
A local CMake build tree was staged by mistake alongside the RISC-V64 spec compliance work in #698, putting nine generated files on dev, including a compiled kernel.elf, build.ninja, the Ninja dependency logs and a QEMU run log. None of it belongs in the repository. The root .gitignore listed build directories by name rather than by pattern, so build/, build_qemu/, build_m7/ and the build_r52 variants were covered but a differently named tree was not. Those entries are replaced with a single build*/ pattern, which covers every existing name and any future one. No tracked file matches the new pattern. The artifacts remain reachable in history; only the working tree is corrected, since rewriting a shared branch is the greater harm. Assisted-by: Claude Code (Opus 5) <noreply@anthropic.com>
This commit is contained in:
+1
-8
@@ -3,8 +3,7 @@
|
||||
.metadata/
|
||||
.tmp/
|
||||
_deps/
|
||||
build/
|
||||
build_qemu/
|
||||
build*/
|
||||
Debug/
|
||||
CMakeFiles/
|
||||
CMakeScripts/
|
||||
@@ -25,15 +24,9 @@ CTestTestfile.cmake
|
||||
|
||||
|
||||
# Local build artifacts
|
||||
build_m7/
|
||||
.codex
|
||||
build_r52/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
build_r52_vfp/
|
||||
build_r52_uart/
|
||||
build_r52_mpu/
|
||||
build_r52_all/
|
||||
|
||||
# Keil uVision per-user state, regenerated when a project is opened.
|
||||
# The .uvprojx / .uvproj project files are the ones worth tracking.
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,76 +0,0 @@
|
||||
# This file will be configured to contain variables for CPack. These variables
|
||||
# should be set in the CMake list file of the project before CPack module is
|
||||
# included. The list of available CPACK_xxx variables and their associated
|
||||
# documentation may be obtained using
|
||||
# cpack --help-variable-list
|
||||
#
|
||||
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
|
||||
# and some are specific to a generator
|
||||
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
|
||||
# usually begin with CPACK_<GENNAME>_xxxx.
|
||||
|
||||
|
||||
set(CPACK_ARCHIVE_GID "-1")
|
||||
set(CPACK_ARCHIVE_UID "-1")
|
||||
set(CPACK_BINARY_7Z "OFF")
|
||||
set(CPACK_BINARY_IFW "OFF")
|
||||
set(CPACK_BINARY_INNOSETUP "OFF")
|
||||
set(CPACK_BINARY_NSIS "ON")
|
||||
set(CPACK_BINARY_NUGET "OFF")
|
||||
set(CPACK_BINARY_WIX "OFF")
|
||||
set(CPACK_BINARY_ZIP "OFF")
|
||||
set(CPACK_BUILD_SOURCE_DIRS "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698;/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64")
|
||||
set(CPACK_CMAKE_GENERATOR "Ninja")
|
||||
set(CPACK_COMPONENTS_ALL "")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake-4.4/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "threadx built using CMake")
|
||||
set(CPACK_GENERATOR "NSIS")
|
||||
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
|
||||
set(CPACK_INSTALL_CMAKE_PROJECTS "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64;threadx;ALL;/")
|
||||
set(CPACK_INSTALL_PREFIX "/usr/local")
|
||||
set(CPACK_MODULE_PATH "")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "threadx 0.1.1")
|
||||
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALL_ROOT "\$PROGRAMFILES")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "threadx 0.1.1")
|
||||
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
|
||||
set(CPACK_OBJCOPY_EXECUTABLE "/opt/riscv/bin/riscv64-unknown-elf-objcopy")
|
||||
set(CPACK_OBJDUMP_EXECUTABLE "/opt/riscv/bin/riscv64-unknown-elf-objdump")
|
||||
set(CPACK_OUTPUT_CONFIG_FILE "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64/CPackConfig.cmake")
|
||||
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake-4.4/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "threadx built using CMake")
|
||||
set(CPACK_PACKAGE_FILE_NAME "threadx-0.1.1-Generic")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "threadx 0.1.1")
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "threadx 0.1.1")
|
||||
set(CPACK_PACKAGE_NAME "threadx")
|
||||
set(CPACK_PACKAGE_RELOCATABLE "true")
|
||||
set(CPACK_PACKAGE_VENDOR "Humanity")
|
||||
set(CPACK_PACKAGE_VERSION "0.1.1")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "1")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "1")
|
||||
set(CPACK_READELF_EXECUTABLE "/opt/riscv/bin/riscv64-unknown-elf-readelf")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "/usr/share/cmake-4.4/Templates/CPack.GenericLicense.txt")
|
||||
set(CPACK_RESOURCE_FILE_README "/usr/share/cmake-4.4/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake-4.4/Templates/CPack.GenericWelcome.txt")
|
||||
set(CPACK_SET_DESTDIR "OFF")
|
||||
set(CPACK_SOURCE_GENERATOR "ZIP")
|
||||
set(CPACK_SOURCE_IGNORE_FILES "\\.git/;\\.github/;_build/;\\.git;\\.gitattributes;\\.gitignore;.*~\$")
|
||||
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64/CPackSourceConfig.cmake")
|
||||
set(CPACK_SYSTEM_NAME "Generic")
|
||||
set(CPACK_THREADS "1")
|
||||
set(CPACK_TOPLEVEL_TAG "Generic")
|
||||
set(CPACK_VERBATIM_VARIABLES "YES")
|
||||
set(CPACK_WIX_SIZEOF_VOID_P "8")
|
||||
|
||||
if(NOT CPACK_PROPERTIES_FILE)
|
||||
set(CPACK_PROPERTIES_FILE "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64/CPackProperties.cmake")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CPACK_PROPERTIES_FILE})
|
||||
include(${CPACK_PROPERTIES_FILE})
|
||||
endif()
|
||||
@@ -1,83 +0,0 @@
|
||||
# This file will be configured to contain variables for CPack. These variables
|
||||
# should be set in the CMake list file of the project before CPack module is
|
||||
# included. The list of available CPACK_xxx variables and their associated
|
||||
# documentation may be obtained using
|
||||
# cpack --help-variable-list
|
||||
#
|
||||
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
|
||||
# and some are specific to a generator
|
||||
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
|
||||
# usually begin with CPACK_<GENNAME>_xxxx.
|
||||
|
||||
|
||||
set(CPACK_ARCHIVE_GID "-1")
|
||||
set(CPACK_ARCHIVE_UID "-1")
|
||||
set(CPACK_BINARY_7Z "OFF")
|
||||
set(CPACK_BINARY_IFW "OFF")
|
||||
set(CPACK_BINARY_INNOSETUP "OFF")
|
||||
set(CPACK_BINARY_NSIS "ON")
|
||||
set(CPACK_BINARY_NUGET "OFF")
|
||||
set(CPACK_BINARY_WIX "OFF")
|
||||
set(CPACK_BINARY_ZIP "OFF")
|
||||
set(CPACK_BUILD_SOURCE_DIRS "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698;/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64")
|
||||
set(CPACK_CMAKE_GENERATOR "Ninja")
|
||||
set(CPACK_COMPONENTS_ALL "")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake-4.4/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "threadx built using CMake")
|
||||
set(CPACK_GENERATOR "ZIP")
|
||||
set(CPACK_IGNORE_FILES "\\.git/;\\.github/;_build/;\\.git;\\.gitattributes;\\.gitignore;.*~\$")
|
||||
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
|
||||
set(CPACK_INSTALLED_DIRECTORIES "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698;/")
|
||||
set(CPACK_INSTALL_CMAKE_PROJECTS "")
|
||||
set(CPACK_INSTALL_PREFIX "/usr/local")
|
||||
set(CPACK_MODULE_PATH "")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "threadx 0.1.1")
|
||||
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALL_ROOT "\$PROGRAMFILES")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "threadx 0.1.1")
|
||||
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
|
||||
set(CPACK_OBJCOPY_EXECUTABLE "/opt/riscv/bin/riscv64-unknown-elf-objcopy")
|
||||
set(CPACK_OBJDUMP_EXECUTABLE "/opt/riscv/bin/riscv64-unknown-elf-objdump")
|
||||
set(CPACK_OUTPUT_CONFIG_FILE "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64/CPackConfig.cmake")
|
||||
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake-4.4/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "threadx built using CMake")
|
||||
set(CPACK_PACKAGE_FILE_NAME "threadx-0.1.1-Source")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "threadx 0.1.1")
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "threadx 0.1.1")
|
||||
set(CPACK_PACKAGE_NAME "threadx")
|
||||
set(CPACK_PACKAGE_RELOCATABLE "true")
|
||||
set(CPACK_PACKAGE_VENDOR "Humanity")
|
||||
set(CPACK_PACKAGE_VERSION "0.1.1")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "1")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "1")
|
||||
set(CPACK_READELF_EXECUTABLE "/opt/riscv/bin/riscv64-unknown-elf-readelf")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "/usr/share/cmake-4.4/Templates/CPack.GenericLicense.txt")
|
||||
set(CPACK_RESOURCE_FILE_README "/usr/share/cmake-4.4/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake-4.4/Templates/CPack.GenericWelcome.txt")
|
||||
set(CPACK_RPM_PACKAGE_SOURCES "ON")
|
||||
set(CPACK_SET_DESTDIR "OFF")
|
||||
set(CPACK_SOURCE_GENERATOR "ZIP")
|
||||
set(CPACK_SOURCE_IGNORE_FILES "\\.git/;\\.github/;_build/;\\.git;\\.gitattributes;\\.gitignore;.*~\$")
|
||||
set(CPACK_SOURCE_INSTALLED_DIRECTORIES "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698;/")
|
||||
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64/CPackSourceConfig.cmake")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "threadx-0.1.1-Source")
|
||||
set(CPACK_SOURCE_TOPLEVEL_TAG "Generic-Source")
|
||||
set(CPACK_STRIP_FILES "")
|
||||
set(CPACK_SYSTEM_NAME "Generic")
|
||||
set(CPACK_THREADS "1")
|
||||
set(CPACK_TOPLEVEL_TAG "Generic-Source")
|
||||
set(CPACK_VERBATIM_VARIABLES "YES")
|
||||
set(CPACK_WIX_SIZEOF_VOID_P "8")
|
||||
|
||||
if(NOT CPACK_PROPERTIES_FILE)
|
||||
set(CPACK_PROPERTIES_FILE "/tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64/CPackProperties.cmake")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CPACK_PROPERTIES_FILE})
|
||||
include(${CPACK_PROPERTIES_FILE})
|
||||
endif()
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,182 +0,0 @@
|
||||
|
||||
file /tmp/claude-1000/-home-fdesbiens-652-threadx/3e4a51a5-e5ba-416c-90fd-fe90ff96f461/scratchpad/wt698/build-rv64/ports/risc-v64/gnu/example_build/qemu_virt/kernel.elf
|
||||
target remote :46936
|
||||
set pagination off
|
||||
set confirm off
|
||||
|
||||
# Setup Breakpoints
|
||||
break tx_application_define
|
||||
break thread_0_entry
|
||||
break thread_6_and_7_entry
|
||||
break _tx_timer_interrupt
|
||||
|
||||
# The timer interrupt fires at TX_TIMER_TICKS_PER_SECOND Hz. With every
|
||||
# breakpoint armed at once a bare `continue` is a race: a tick can steal
|
||||
# the stop that the script expects on an application breakpoint. Keep the
|
||||
# timer breakpoint disabled until the timer phase, so every stop below is
|
||||
# unambiguous at any tick rate.
|
||||
disable 4
|
||||
|
||||
# Execute to Application Definition
|
||||
continue
|
||||
|
||||
# Inspect mstatus once thread_0 has started
|
||||
continue
|
||||
print/x $mstatus
|
||||
|
||||
# Verify FPU Logic and Register State exercised by thread_6/7.
|
||||
# Only breakpoint 3 can stop us here, so this is thread_6_and_7_entry on
|
||||
# its first pass, before the thread has touched fpu_test_val.
|
||||
continue
|
||||
|
||||
# fpu_test_val exists only in a demo that builds the FPU exercise. GDB
|
||||
# aborts a sourced command file on an unknown symbol, which would skip
|
||||
# every later check without saying so, so probe for the symbol first. A
|
||||
# missing symbol still FAILS the FPU check below; it is not tolerated.
|
||||
python gdb.execute("set $fpu_sym = %d" % (1 if gdb.lookup_global_symbol("fpu_test_val") else 0))
|
||||
|
||||
set $fpu_iter = 0
|
||||
if $fpu_sym != 0
|
||||
set $fpu_before = fpu_test_val
|
||||
# Wait for the FPU add (fpu_test_val += 1.1f) to retire, instead of
|
||||
# stepping a fixed number of instructions past an assumed stop. Each
|
||||
# further stop is another pass through thread_6_and_7_entry, so the cap
|
||||
# bounds thread passes rather than ticks, and exhausting it fails below.
|
||||
while fpu_test_val == $fpu_before && $fpu_iter < 64
|
||||
set $fpu_iter = $fpu_iter + 1
|
||||
continue
|
||||
end
|
||||
end
|
||||
|
||||
print/x $mstatus
|
||||
info registers float
|
||||
|
||||
if $fpu_sym == 0
|
||||
printf "FPU_VERIFIED_FAIL_NO_SYMBOL\n"
|
||||
else
|
||||
print fpu_test_val
|
||||
# Assert the float unit produced an exact multiple of 1.1f. This does
|
||||
# not assume how many passes ran, only that every pass added 1.1f.
|
||||
set $fpu_n = (int)((fpu_test_val / 1.1) + 0.5)
|
||||
set $fpu_err = fpu_test_val - ($fpu_n * 1.1)
|
||||
if $fpu_n >= 1 && $fpu_err > -0.01 && $fpu_err < 0.01
|
||||
printf "FPU_VERIFIED_OK value=%f adds=%d\n", fpu_test_val, $fpu_n
|
||||
else
|
||||
printf "FPU_VERIFIED_FAIL value=%f adds=%d passes=%d\n", fpu_test_val, $fpu_n, $fpu_iter
|
||||
end
|
||||
end
|
||||
|
||||
# Await Timer Interrupt. Arm only the timer breakpoint, so this stop is
|
||||
# _tx_timer_interrupt and $ra below really is the ISR return address.
|
||||
disable 1
|
||||
disable 2
|
||||
disable 3
|
||||
enable 4
|
||||
continue
|
||||
print "Hit Timer Interrupt"
|
||||
|
||||
# Verify MEPC Integrity - Save State
|
||||
print/x $mepc
|
||||
set $saved_pc = $mepc
|
||||
|
||||
# Verify System Timer Before ISR
|
||||
set $clock_before = _tx_timer_system_clock
|
||||
print $clock_before
|
||||
|
||||
# Configure Time-Slice Test Conditions
|
||||
set _tx_timer_time_slice = 1
|
||||
set _tx_timer_expired_time_slice = 0
|
||||
set $ts_handler_called = 0
|
||||
|
||||
# Set Breakpoint at Time-Slice Handler with Auto-Continue
|
||||
tbreak _tx_thread_time_slice
|
||||
commands
|
||||
set $ts_handler_called = 1
|
||||
continue
|
||||
end
|
||||
|
||||
# Set Breakpoint at ISR Return Address. Disable the timer breakpoint for
|
||||
# this window, so the next tick cannot stop us short of the return.
|
||||
set $ret_addr = $ra
|
||||
disable 4
|
||||
tbreak *$ret_addr
|
||||
continue
|
||||
|
||||
# Verify that the live CSR and saved frame still contain the interrupted PC.
|
||||
set $frame_pc = ((unsigned long *)_tx_thread_current_ptr->tx_thread_stack_ptr)[30]
|
||||
if $mepc == $saved_pc && $frame_pc == $saved_pc
|
||||
printf "MEPC_VERIFIED_OK mepc=0x%lx frame_pc=0x%lx\n", $mepc, $frame_pc
|
||||
else
|
||||
printf "MEPC_VERIFIED_FAIL saved=0x%lx mepc=0x%lx frame_pc=0x%lx\n", $saved_pc, $mepc, $frame_pc
|
||||
end
|
||||
|
||||
# Verify Time-Slice Handler Was Called
|
||||
if $ts_handler_called == 1
|
||||
print "SUCCESS: Time-slice handler called."
|
||||
else
|
||||
print "FAILURE: Time-slice handler NOT called."
|
||||
end
|
||||
|
||||
# Verify System Timer Increment (Monotonicity)
|
||||
set $clock_after = _tx_timer_system_clock
|
||||
print $clock_after
|
||||
|
||||
if $clock_after > $clock_before
|
||||
print "SUCCESS: System timer incremented."
|
||||
else
|
||||
print "FAILURE: System timer did not increment."
|
||||
end
|
||||
|
||||
# Verify Preemption Logic (Thread Priority)
|
||||
#
|
||||
# We are now stopped at the return address from _tx_timer_interrupt,
|
||||
# after _tx_thread_time_slice and the timer expiration processing have had
|
||||
# a chance to update _tx_thread_execute_ptr but before trap_handler
|
||||
# returns into _tx_thread_context_restore.
|
||||
#
|
||||
# Whether any ONE tick lands inside a preemption window depends on
|
||||
# scheduling phase, not on the tick rate, so poll consecutive ticks at
|
||||
# this same sample point until the priority relation holds. Each retry
|
||||
# re-arms the time slice and re-derives the return address from $ra, so
|
||||
# the sample point is identical every iteration. The cap bounds ticks and
|
||||
# fails loudly on exhaustion; it never passes the check.
|
||||
set $preempt_ok = 0
|
||||
set $preempt_null = 0
|
||||
set $preempt_iter = 0
|
||||
while $preempt_iter < 250 && $preempt_ok == 0
|
||||
set $curr_ptr = _tx_thread_current_ptr
|
||||
set $exec_ptr = _tx_thread_execute_ptr
|
||||
if $curr_ptr == 0 || $exec_ptr == 0
|
||||
set $preempt_null = $preempt_null + 1
|
||||
else
|
||||
set $curr_prio = $curr_ptr->tx_thread_priority
|
||||
set $exec_prio = $exec_ptr->tx_thread_priority
|
||||
if $exec_prio < $curr_prio
|
||||
printf "PREEMPT_CHECK current_prio=%d execute_prio=%d\n", $curr_prio, $exec_prio
|
||||
set $preempt_ok = 1
|
||||
end
|
||||
end
|
||||
if $preempt_ok == 0
|
||||
set $preempt_iter = $preempt_iter + 1
|
||||
enable 4
|
||||
continue
|
||||
set _tx_timer_time_slice = 1
|
||||
set _tx_timer_expired_time_slice = 0
|
||||
set $ret_addr = $ra
|
||||
disable 4
|
||||
tbreak *$ret_addr
|
||||
continue
|
||||
end
|
||||
end
|
||||
|
||||
if $preempt_ok == 1
|
||||
printf "PREEMPT_VERIFIED_OK ticks=%d\n", $preempt_iter
|
||||
else
|
||||
if $preempt_null == $preempt_iter
|
||||
printf "PREEMPT_VERIFIED_FAIL_NULL\n"
|
||||
else
|
||||
printf "PREEMPT_VERIFIED_FAIL_NOT_OBSERVED ticks=%d\n", $preempt_iter
|
||||
end
|
||||
end
|
||||
|
||||
quit
|
||||
Reference in New Issue
Block a user