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 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