⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leon.c

📁 这是leon3处理器的交叉编译链
💻 C
字号:
#include "internals.h"#include "setjmp.h"#include <fsu_pthread/asm.h>#include <fsu_pthread/debug.h>#include <asm-leon/leon.h>#include <asm-leon/irq.h>#include <asm-leon/time.h>int do_tick(struct pt_regs *regs);struct pendingaction pending_tick = {{0,0},(pendinghandler)do_tick,0};int do_tick(struct pt_regs *regs){  if (!is_in_kernel) {    pthread_t p = TAILQ_FIRST(&pthread_timeout_q);    SET_KERNEL_FLAG;    /* struct timespec tv; */    /*   clock_gettime( CLOCK_REALTIME, &tv ); */    /*   printf("%d,%d\n",tv.tv_sec,tv.tv_nsec); */    if (p != NO_PTHREAD) {      if (!GT_NTIME(p->tp, xtime)) {	pthread_cancel_timed_sigwait(p, TRUE, ANY_TIME, p->queue != &ready);      }    }    CLEAR_KERNEL_FLAG;  } else {    unsigned long old = leonbare_disable_traps();    if (TAILQ_REMOVED(&pending_tick,next)) {      add_pending(&pending_tick);    }    leonbare_enable_traps(old);  }  return 0;}int do_schedule(struct pt_regs *ptregs) {  if (!is_in_kernel) {    SET_KERNEL_FLAG;    CLEAR_KERNEL_FLAG;  }}void pthreadleon_init_ticks(){  int i;  amba_apb_device dev[1];  PTRACEIN;  leonbare_init_ticks();  schedule_callback = do_schedule;  ticker_callback = do_tick;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -