Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
card10
firmware
Commits
632f3652
Verified
Commit
632f3652
authored
Aug 12, 2019
by
Rahix
Browse files
feat(pycardium): Add a barebones "os" module
Signed-off-by:
Rahix
<
rahix@rahix.de
>
parent
c7be004e
Changes
4
Hide whitespace changes
Inline
Side-by-side
pycardium/meson.build
View file @
632f3652
...
...
@@ -6,6 +6,7 @@ modsrc = files(
'modules/interrupt.c'
,
'modules/sys_leds.c'
,
'modules/light_sensor.c'
,
'modules/os.c'
,
'modules/sys_display.c'
,
'modules/utime.c'
,
'modules/vibra.c'
,
...
...
pycardium/modules/os.c
0 → 100644
View file @
632f3652
#include
"epicardium.h"
#include
"py/obj.h"
#include
"py/runtime.h"
#include
<string.h>
static
mp_obj_t
mp_os_exit
(
size_t
n_args
,
const
mp_obj_t
*
args
)
{
int
ret
=
0
;
if
(
n_args
==
1
)
{
ret
=
mp_obj_get_int
(
args
[
0
]);
}
epic_exit
(
ret
);
/* unreachable */
return
mp_const_none
;
}
static
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
exit_obj
,
0
,
1
,
mp_os_exit
);
static
mp_obj_t
mp_os_exec
(
mp_obj_t
name_in
)
{
const
char
*
name_ptr
;
char
name_str
[
256
];
size_t
len
,
maxlen
;
name_ptr
=
mp_obj_str_get_data
(
name_in
,
&
len
);
/*
* The string retrieved from MicroPython is not NULL-terminated so we
* first need to copy it and add a NULL-byte.
*/
maxlen
=
len
<
(
sizeof
(
name_str
)
-
1
)
?
len
:
(
sizeof
(
name_str
)
-
1
);
memcpy
(
name_str
,
name_ptr
,
maxlen
);
name_str
[
maxlen
]
=
'\0'
;
int
ret
=
epic_exec
(
name_str
);
/*
* If epic_exec() returns, something went wrong. We can raise an
* exception in all cases.
*/
mp_raise_OSError
(
-
ret
);
/* unreachable */
return
mp_const_none
;
}
static
MP_DEFINE_CONST_FUN_OBJ_1
(
exec_obj
,
mp_os_exec
);
static
const
mp_rom_map_elem_t
os_module_gobals_table
[]
=
{
{
MP_ROM_QSTR
(
MP_QSTR___name__
),
MP_ROM_QSTR
(
MP_QSTR_os
)
},
{
MP_ROM_QSTR
(
MP_QSTR_exit
),
MP_ROM_PTR
(
&
exit_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_exec
),
MP_ROM_PTR
(
&
exec_obj
)
},
};
static
MP_DEFINE_CONST_DICT
(
os_module_globals
,
os_module_gobals_table
);
const
mp_obj_module_t
os_module
=
{
.
base
=
{
&
mp_type_module
},
.
globals
=
(
mp_obj_dict_t
*
)
&
os_module_globals
,
};
/* This is a special macro that will make MicroPython aware of this module */
/* clang-format off */
MP_REGISTER_MODULE
(
MP_QSTR_os
,
os_module
,
MODULE_OS_ENABLED
);
pycardium/modules/qstrdefs.h
View file @
632f3652
...
...
@@ -85,3 +85,7 @@ Q(tell)
Q
(
TextIOWrapper
)
Q
(
write
)
/* os */
Q
(
os
)
Q
(
exit
)
Q
(
exec
)
pycardium/mpconfigport.h
View file @
632f3652
...
...
@@ -43,6 +43,7 @@
#define MODULE_INTERRUPT_ENABLED (1)
#define MODULE_LEDS_ENABLED (1)
#define MODULE_LIGHT_SENSOR_ENABLED (1)
#define MODULE_OS_ENABLED (1)
#define MODULE_UTIME_ENABLED (1)
#define MODULE_VIBRA_ENABLED (1)
...
...
Rahix
@rahix
mentioned in merge request
!96 (closed)
·
Aug 15, 2019
mentioned in merge request
!96 (closed)
mentioned in merge request !96
Toggle commit list
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment