This is a port of the mruby/c tutorial Chapter 03 to the mbed environment.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

rrt0.c File Reference

rrt0.c File Reference

Realtime multitask monitor for mruby/c. More...

Go to the source code of this file.

Functions

static void q_insert_task (MrbcTcb *p_tcb)
static void q_delete_task (MrbcTcb *p_tcb)
static MrbcTcb * find_requested_task (mrb_vm *vm)
static void c_sleep (mrb_vm *vm, mrb_value *v)
static void c_sleep_ms (mrb_vm *vm, mrb_value *v)
static void c_relinquish (mrb_vm *vm, mrb_value *v)
static void c_change_priority (mrb_vm *vm, mrb_value *v)
static void c_suspend_task (mrb_vm *vm, mrb_value *v)
static void c_resume_task (mrb_vm *vm, mrb_value *v)
static void c_get_tcb (mrb_vm *vm, mrb_value *v)
void mrbc_tick (void)
void mrbc_init (void)
MrbcTcb * mrbc_create_task (const uint8_t *vm_code, MrbcTcb *tcb)
int mrbc_run (void)
void mrbc_sleep_ms (MrbcTcb *tcb, uint32_t ms)
void mrbc_relinquish (MrbcTcb *tcb)
void mrbc_change_priority (MrbcTcb *tcb, int priority)
void mrbc_suspend_task (MrbcTcb *tcb)
void mrbc_resume_task (MrbcTcb *tcb)
void pq (MrbcTcb *p_tcb)

Detailed Description

Realtime multitask monitor for mruby/c.

  Copyright (C) 2016 Kyushu Institute of Technology.
  Copyright (C) 2016 Shimane IT Open-Innovation Center.
  This file is distributed under BSD 3-Clause License.
  

Definition in file rrt0.c.


Function Documentation

static void c_change_priority ( mrb_vm *  vm,
mrb_value *  v 
) [static]

プライオリティー変更

Definition at line 220 of file rrt0.c.

static void c_get_tcb ( mrb_vm *  vm,
mrb_value *  v 
) [static]

TCBを得る

Definition at line 263 of file rrt0.c.

static void c_relinquish ( mrb_vm *  vm,
mrb_value *  v 
) [static]

実行権を手放す

Definition at line 206 of file rrt0.c.

static void c_resume_task ( mrb_vm *  vm,
mrb_value *  v 
) [static]

実行再開

Definition at line 248 of file rrt0.c.

static void c_sleep ( mrb_vm *  vm,
mrb_value *  v 
) [static]

一定時間停止(cruby互換)

Definition at line 165 of file rrt0.c.

static void c_sleep_ms ( mrb_vm *  vm,
mrb_value *  v 
) [static]

一定時間停止(ms単位)

Definition at line 192 of file rrt0.c.

static void c_suspend_task ( mrb_vm *  vm,
mrb_value *  v 
) [static]

実行停止

Definition at line 234 of file rrt0.c.

static MrbcTcb* find_requested_task ( mrb_vm *  vm ) [static]

Find requested task

Parameters:
Pointerof vm
Returns:
Pointer of MrbcTcb. zero is not found.

Definition at line 149 of file rrt0.c.

void mrbc_change_priority ( MrbcTcb *  tcb,
int  priority 
)

プライオリティーの変更 TODO: No check, yet.

Definition at line 482 of file rrt0.c.

MrbcTcb* mrbc_create_task ( const uint8_t *  vm_code,
MrbcTcb *  tcb 
)

specify running VM code.

Parameters:
vm_codepointer of VM byte code.
tcbTask control block with parameter, or NULL.
Return values:
Pointerof MrbcTcb.
NULLis error.

Definition at line 351 of file rrt0.c.

void mrbc_init ( void   )

initialize

Definition at line 324 of file rrt0.c.

void mrbc_relinquish ( MrbcTcb *  tcb )

実行権を手放す

Definition at line 471 of file rrt0.c.

void mrbc_resume_task ( MrbcTcb *  tcb )

実行再開

Definition at line 511 of file rrt0.c.

int mrbc_run ( void   )

execute

Definition at line 386 of file rrt0.c.

void mrbc_sleep_ms ( MrbcTcb *  tcb,
uint32_t  ms 
)

実行一時停止

Definition at line 453 of file rrt0.c.

void mrbc_suspend_task ( MrbcTcb *  tcb )

実行停止

Definition at line 495 of file rrt0.c.

void mrbc_tick ( void   )

Tick timer interrupt handler.

Definition at line 279 of file rrt0.c.

void pq ( MrbcTcb *  p_tcb )

DEBUG print queue

Definition at line 535 of file rrt0.c.

static void q_delete_task ( MrbcTcb *  p_tcb ) [static]

Delete from task queue

Parameters:
Pointerof target TCB

Queueからタスク(TCB)を取り除く。

Definition at line 108 of file rrt0.c.

static void q_insert_task ( MrbcTcb *  p_tcb ) [static]

Insert to task queue

Parameters:
Pointerof target TCB

引数で指定されたタスク(TCB)を、状態別Queueに入れる。 TCBはフリーの状態でなければならない。(別なQueueに入っていてはならない) Queueはpriority_preemption順にソート済みとなる。 挿入するTCBとQueueに同じpriority_preemption値がある場合は、同値の最後に挿入される。

Definition at line 60 of file rrt0.c.