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

Dependencies:   mbed

For details, refer to the following.

http://www.s-itoc.jp/activity/research/mrubyc/mrubyc_tutorial/436

Note:There is a change in rtt0.h from the original source in the mruby/c. It was necessary for inclusion in C ++ source.

Committer:
tk_takateku
Date:
Wed Feb 15 01:03:35 2017 +0000
Revision:
0:33feccbba3ff
Commit before publishing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tk_takateku 0:33feccbba3ff 1 /*! @file
tk_takateku 0:33feccbba3ff 2 @brief
tk_takateku 0:33feccbba3ff 3 Declare static data.
tk_takateku 0:33feccbba3ff 4
tk_takateku 0:33feccbba3ff 5 <pre>
tk_takateku 0:33feccbba3ff 6 Copyright (C) 2015-2016 Kyushu Institute of Technology.
tk_takateku 0:33feccbba3ff 7 Copyright (C) 2015-2016 Shimane IT Open-Innovation Center.
tk_takateku 0:33feccbba3ff 8
tk_takateku 0:33feccbba3ff 9 This file is distributed under BSD 3-Clause License.
tk_takateku 0:33feccbba3ff 10 </pre>
tk_takateku 0:33feccbba3ff 11 */
tk_takateku 0:33feccbba3ff 12
tk_takateku 0:33feccbba3ff 13 #include "static.h"
tk_takateku 0:33feccbba3ff 14 #include "vm_config.h"
tk_takateku 0:33feccbba3ff 15 #include "class.h"
tk_takateku 0:33feccbba3ff 16 #include "symbol.h"
tk_takateku 0:33feccbba3ff 17
tk_takateku 0:33feccbba3ff 18 /* Static Variables */
tk_takateku 0:33feccbba3ff 19 /* VM contains regs, stack, PC, and so on */
tk_takateku 0:33feccbba3ff 20 mrb_vm mrbc_vm[MAX_VM_COUNT];
tk_takateku 0:33feccbba3ff 21
tk_takateku 0:33feccbba3ff 22 //static mrb_object mrbc_object[MAX_OBJECT_COUNT];
tk_takateku 0:33feccbba3ff 23 //mrb_object *mrbc_pool_object;
tk_takateku 0:33feccbba3ff 24
tk_takateku 0:33feccbba3ff 25 mrb_constobject mrbc_const[MAX_CONST_COUNT];
tk_takateku 0:33feccbba3ff 26
tk_takateku 0:33feccbba3ff 27 mrb_globalobject mrbc_global[MAX_GLOBAL_OBJECT_SIZE];
tk_takateku 0:33feccbba3ff 28
tk_takateku 0:33feccbba3ff 29 /* Class Tree */
tk_takateku 0:33feccbba3ff 30 mrb_class *mrbc_class_object;
tk_takateku 0:33feccbba3ff 31
tk_takateku 0:33feccbba3ff 32 /* Classes */
tk_takateku 0:33feccbba3ff 33 mrb_class *mrbc_class_false;
tk_takateku 0:33feccbba3ff 34 mrb_class *mrbc_class_true;
tk_takateku 0:33feccbba3ff 35 mrb_class *mrbc_class_nil;
tk_takateku 0:33feccbba3ff 36 mrb_class *mrbc_class_array;
tk_takateku 0:33feccbba3ff 37 mrb_class *mrbc_class_fixnum;
tk_takateku 0:33feccbba3ff 38 mrb_class *mrbc_class_symbol;
tk_takateku 0:33feccbba3ff 39 #if MRBC_USE_FLOAT
tk_takateku 0:33feccbba3ff 40 mrb_class *mrbc_class_float;
tk_takateku 0:33feccbba3ff 41 #endif
tk_takateku 0:33feccbba3ff 42 #if MRBC_USE_STRING
tk_takateku 0:33feccbba3ff 43 mrb_class *mrbc_class_string;
tk_takateku 0:33feccbba3ff 44 #endif
tk_takateku 0:33feccbba3ff 45 mrb_class *mrbc_class_range;
tk_takateku 0:33feccbba3ff 46 mrb_class *mrbc_class_hash;
tk_takateku 0:33feccbba3ff 47
tk_takateku 0:33feccbba3ff 48 void init_static(void)
tk_takateku 0:33feccbba3ff 49 {
tk_takateku 0:33feccbba3ff 50 int i;
tk_takateku 0:33feccbba3ff 51
tk_takateku 0:33feccbba3ff 52 for( i=0 ; i<MAX_VM_COUNT ; i++ ){
tk_takateku 0:33feccbba3ff 53 mrbc_vm[i].vm_id = i+1;
tk_takateku 0:33feccbba3ff 54 mrbc_vm[i].priority = -1;
tk_takateku 0:33feccbba3ff 55 }
tk_takateku 0:33feccbba3ff 56
tk_takateku 0:33feccbba3ff 57 /* global objects */
tk_takateku 0:33feccbba3ff 58 for( i=0 ; i<MAX_GLOBAL_OBJECT_SIZE ; i++ ){
tk_takateku 0:33feccbba3ff 59 mrbc_global[i].sym_id = -1;
tk_takateku 0:33feccbba3ff 60 }
tk_takateku 0:33feccbba3ff 61
tk_takateku 0:33feccbba3ff 62 for( i=0 ; i<MAX_CONST_COUNT; i++ ){
tk_takateku 0:33feccbba3ff 63 mrbc_const[i].sym_id = -1;
tk_takateku 0:33feccbba3ff 64 }
tk_takateku 0:33feccbba3ff 65
tk_takateku 0:33feccbba3ff 66 /* init class */
tk_takateku 0:33feccbba3ff 67 mrbc_init_class();
tk_takateku 0:33feccbba3ff 68 }
tk_takateku 0:33feccbba3ff 69