moddos.c
Code: Select all
#include "dos.h"
#include "py/runtime.h"
static mp_obj_t mod_dos_inportb(mp_obj_t address) {
return mp_obj_new_int(inportb(mp_obj_get_int(address)));
}
static MP_DEFINE_CONST_FUN_OBJ_1(mod_dos_inportb_obj, mod_dos_inportb);
static const mp_map_elem_t mp_module_dos_globals_table[] = {
{MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_dos) },
{MP_OBJ_NEW_QSTR(MP_QSTR_inportb), (mp_obj_t)&mod_dos_inportb_obj },
};
STATIC MP_DEFINE_CONST_DICT(mp_module_dos_globals, mp_module_dos_globals_table);
const mp_obj_module_t mp_module_dos = {
.base = { &mp_type_module },
.name = MP_QSTR_dos,
.globals = (mp_obj_dict_t*)&mp_module_dos_globals,
};
Also, I update mpconfigport.h with
Code: Select all
...
#endif
#define MICROPY_PY_DOS_DEF { MP_OBJ_NEW_QSTR(MP_QSTR_dos), (mp_obj_t)&mp_module_dos },
#define MICROPY_PORT_BUILTIN_MODULES \
MICROPY_PY_TIME_DEF \
MICROPY_PY_DOS_DEF \
{ MP_OBJ_NEW_QSTR(MP_QSTR__os), (mp_obj_t)&mp_module_os } \
...
Code: Select all
SRC_MOD += moddos.c
Code: Select all
In file included from ../py/mpstate.h:34:0,
from ../py/objmodule.c:30:
./mpconfigport.h:166:46: error: 'MP_QSTR_dos' undeclared here (not in a function)
#define MICROPY_PY_DOS_DEF { MP_OBJ_NEW_QSTR(MP_QSTR_dos), (mp_obj_t)&mp_module_dos },
^
../py/obj.h:84:56: note: in definition of macro 'MP_OBJ_NEW_QSTR'
#define MP_OBJ_NEW_QSTR(qst) ((mp_obj_t)((((mp_uint_t)(qst)) << 2) | 2))
^
./mpconfigport.h:170:5: note: in expansion of macro 'MICROPY_PY_DOS_DEF'
MICROPY_PY_DOS_DEF \
^
../py/objmodule.c:197:5: note: in expansion of macro 'MICROPY_PORT_BUILTIN_MODULES'
MICROPY_PORT_BUILTIN_MODULES
^
make: *** [build/py/objmodule.o] Error 1