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/hal/hal.h@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 | Realtime multitask monitor for mruby/c |
tk_takateku | 0:33feccbba3ff | 4 | Hardware abstraction layer |
tk_takateku | 0:33feccbba3ff | 5 | for PSoC5LP |
tk_takateku | 0:33feccbba3ff | 6 | |
tk_takateku | 0:33feccbba3ff | 7 | <pre> |
tk_takateku | 0:33feccbba3ff | 8 | Copyright (C) 2016 Kyushu Institute of Technology. |
tk_takateku | 0:33feccbba3ff | 9 | Copyright (C) 2016 Shimane IT Open-Innovation Center. |
tk_takateku | 0:33feccbba3ff | 10 | |
tk_takateku | 0:33feccbba3ff | 11 | This file is distributed under BSD 3-Clause License. |
tk_takateku | 0:33feccbba3ff | 12 | </pre> |
tk_takateku | 0:33feccbba3ff | 13 | */ |
tk_takateku | 0:33feccbba3ff | 14 | |
tk_takateku | 0:33feccbba3ff | 15 | #ifndef MRBC_SRC_HAL_H_ |
tk_takateku | 0:33feccbba3ff | 16 | #define MRBC_SRC_HAL_H_ |
tk_takateku | 0:33feccbba3ff | 17 | |
tk_takateku | 0:33feccbba3ff | 18 | #ifdef __cplusplus |
tk_takateku | 0:33feccbba3ff | 19 | extern "C" { |
tk_takateku | 0:33feccbba3ff | 20 | #endif |
tk_takateku | 0:33feccbba3ff | 21 | |
tk_takateku | 0:33feccbba3ff | 22 | |
tk_takateku | 0:33feccbba3ff | 23 | /* DON'T USE TIMER */ |
tk_takateku | 0:33feccbba3ff | 24 | #define MRBC_NO_TIMER 1 |
tk_takateku | 0:33feccbba3ff | 25 | |
tk_takateku | 0:33feccbba3ff | 26 | |
tk_takateku | 0:33feccbba3ff | 27 | /***** Feature test switches ************************************************/ |
tk_takateku | 0:33feccbba3ff | 28 | /***** System headers *******************************************************/ |
tk_takateku | 0:33feccbba3ff | 29 | |
tk_takateku | 0:33feccbba3ff | 30 | |
tk_takateku | 0:33feccbba3ff | 31 | /***** Local headers ********************************************************/ |
tk_takateku | 0:33feccbba3ff | 32 | /***** Constant values ******************************************************/ |
tk_takateku | 0:33feccbba3ff | 33 | /***** Macros ***************************************************************/ |
tk_takateku | 0:33feccbba3ff | 34 | extern void wait_ms(int tm); |
tk_takateku | 0:33feccbba3ff | 35 | |
tk_takateku | 0:33feccbba3ff | 36 | #ifndef MRBC_NO_TIMER |
tk_takateku | 0:33feccbba3ff | 37 | # define hal_init() ((void)0) |
tk_takateku | 0:33feccbba3ff | 38 | # define hal_enable_irq() CyGlobalIntEnable |
tk_takateku | 0:33feccbba3ff | 39 | # define hal_disable_irq() CyGlobalIntDisable |
tk_takateku | 0:33feccbba3ff | 40 | # define hal_idle_cpu() CyPmAltAct(PM_SLEEP_TIME_NONE, \ |
tk_takateku | 0:33feccbba3ff | 41 | PM_SLEEP_SRC_CTW | PM_SLEEP_SRC_PICU) |
tk_takateku | 0:33feccbba3ff | 42 | |
tk_takateku | 0:33feccbba3ff | 43 | #else // MRBC_NO_TIMER |
tk_takateku | 0:33feccbba3ff | 44 | # define hal_init() ((void)0) |
tk_takateku | 0:33feccbba3ff | 45 | # define hal_enable_irq() ((void)0) |
tk_takateku | 0:33feccbba3ff | 46 | # define hal_disable_irq() ((void)0) |
tk_takateku | 0:33feccbba3ff | 47 | # define hal_idle_cpu() (wait_ms(1), mrbc_tick()) |
tk_takateku | 0:33feccbba3ff | 48 | |
tk_takateku | 0:33feccbba3ff | 49 | #endif |
tk_takateku | 0:33feccbba3ff | 50 | |
tk_takateku | 0:33feccbba3ff | 51 | |
tk_takateku | 0:33feccbba3ff | 52 | /***** Typedefs *************************************************************/ |
tk_takateku | 0:33feccbba3ff | 53 | /***** Global variables *****************************************************/ |
tk_takateku | 0:33feccbba3ff | 54 | /***** Function prototypes **************************************************/ |
tk_takateku | 0:33feccbba3ff | 55 | int hal_write(int fd, const void *buf, size_t nbytes); |
tk_takateku | 0:33feccbba3ff | 56 | int hal_flush(int fd); |
tk_takateku | 0:33feccbba3ff | 57 | |
tk_takateku | 0:33feccbba3ff | 58 | |
tk_takateku | 0:33feccbba3ff | 59 | /***** Inline functions *****************************************************/ |
tk_takateku | 0:33feccbba3ff | 60 | |
tk_takateku | 0:33feccbba3ff | 61 | |
tk_takateku | 0:33feccbba3ff | 62 | #ifdef __cplusplus |
tk_takateku | 0:33feccbba3ff | 63 | } |
tk_takateku | 0:33feccbba3ff | 64 | #endif |
tk_takateku | 0:33feccbba3ff | 65 | #endif // ifndef MRBC_HAL_H_ |
tk_takateku | 0:33feccbba3ff | 66 |