This is a port of the mruby/c tutorial Chapter 03 to the mbed environment.
Dependencies:
mbed
« Back to documentation index
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]
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]
static MrbcTcb* find_requested_task
(
mrb_vm *
vm )
[static]
Find requested task
Parameters:
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_code pointer of VM byte code.
tcb Task control block with parameter, or NULL.
Return values:
Pointer of MrbcTcb.
NULL is error.
Definition at line 351 of file rrt0.c .
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 )
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 )
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:
Queueからタスク(TCB)を取り除く。
Definition at line 108 of file rrt0.c .
static void q_insert_task
(
MrbcTcb *
p_tcb )
[static]
Insert to task queue
Parameters:
引数で指定されたタスク(TCB)を、状態別Queueに入れる。 TCBはフリーの状態でなければならない。(別なQueueに入っていてはならない) Queueはpriority_preemption順にソート済みとなる。 挿入するTCBとQueueに同じpriority_preemption値がある場合は、同値の最後に挿入される。
Definition at line 60 of file rrt0.c .