moves tx_timer_interrupt to threadx port

This commit is contained in:
2026-02-01 18:56:40 +01:00
parent 0766ba2aee
commit 3ee8f6d230
3 changed files with 7 additions and 6 deletions

View File

@@ -1,9 +1,9 @@
#include "hwtimer.h" #include "hwtimer.h"
#include "riscv-traps.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <tx_api.h> #include <tx_api.h>
#include <tx_port.h> #include <tx_port.h>
#include <stdio.h>
#include "riscv-traps.h"
#if __riscv_xlen == 64 #if __riscv_xlen == 64
#define INTERRUPT_BIT 0x8000000000000000ull #define INTERRUPT_BIT 0x8000000000000000ull
@@ -33,6 +33,9 @@ void trap_handler(uintptr_t mcause, uintptr_t mepc, uintptr_t mtval) {
unsigned irq_id = mcause&(__riscv_xlen-1); unsigned irq_id = mcause&(__riscv_xlen-1);
switch(irq_id){ switch(irq_id){
case RISCV_INT_MTI: case RISCV_INT_MTI:
#ifdef NX_DEBUG
printf("Timer interrupt being handled (pc=%lx)\n", mepc);
#endif
hwtimer_handler(); hwtimer_handler();
_tx_timer_interrupt(); _tx_timer_interrupt();
break; break;

View File

@@ -5,7 +5,6 @@ target_sources(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/src/tx_initialize_low_level.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_initialize_low_level.S
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_context_restore.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_context_restore.S
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_context_save.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_context_save.S
#${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_interrupt_control.S
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_schedule.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_schedule.S
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_stack_build.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_stack_build.S
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_system_return.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_system_return.S

View File

@@ -66,8 +66,7 @@
#ifndef NX_IP_PERIODIC_RATE #ifndef NX_IP_PERIODIC_RATE
#ifdef TX_TIMER_TICKS_PER_SECOND #ifdef TX_TIMER_TICKS_PER_SECOND
/* it seems this needs to be smaller than the timer ticks per second. Otherwise no time is left for other tasks*/ #define NX_IP_PERIODIC_RATE TX_TIMER_TICKS_PER_SECOND
#define NX_IP_PERIODIC_RATE (TX_TIMER_TICKS_PER_SECOND / 10)
#else #else
#define NX_IP_PERIODIC_RATE 10 #define NX_IP_PERIODIC_RATE 10
#endif #endif