This is a port of the mruby/c tutorial Chapter 03 to the mbed environment.
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.
mrubyc/static.c@0:33feccbba3ff, 2017-02-15 (annotated)
- Committer:
- tk_takateku
- Date:
- Wed Feb 15 01:03:35 2017 +0000
- Revision:
- 0:33feccbba3ff
Commit before publishing
Who changed what in which revision?
User | Revision | Line number | New 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 |