Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
M
micropython
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
card10
micropython
Commits
5fd2ebbb
Commit
5fd2ebbb
authored
11 years ago
by
Damien George
Browse files
Options
Downloads
Patches
Plain Diff
stmhal: Update help function.
parent
24ff063e
No related branches found
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
stmhal/Makefile
+1
-0
1 addition, 0 deletions
stmhal/Makefile
stmhal/help.c
+90
-0
90 additions, 0 deletions
stmhal/help.c
stmhal/main.c
+0
-31
0 additions, 31 deletions
stmhal/main.c
stmhal/mpconfigport.h
+2
-0
2 additions, 0 deletions
stmhal/mpconfigport.h
with
93 additions
and
31 deletions
stmhal/Makefile
+
1
−
0
View file @
5fd2ebbb
...
@@ -72,6 +72,7 @@ SRC_C = \
...
@@ -72,6 +72,7 @@ SRC_C = \
malloc0.c
\
malloc0.c
\
gccollect.c
\
gccollect.c
\
pyexec.c
\
pyexec.c
\
help.c
\
input.c
\
input.c
\
pybmodule.c
\
pybmodule.c
\
osmodule.c
\
osmodule.c
\
...
...
This diff is collapsed.
Click to expand it.
stmhal/help.c
0 → 100644
+
90
−
0
View file @
5fd2ebbb
#include
<stdio.h>
#include
"nlr.h"
#include
"misc.h"
#include
"mpconfig.h"
#include
"qstr.h"
#include
"obj.h"
#include
"map.h"
STATIC
const
char
*
help_text
=
"Welcome to Micro Python!
\n
"
"
\n
"
"For online help please visit http://micropython.org/help/.
\n
"
"
\n
"
"Specific commands for the board:
\n
"
" pyb.info() -- print some general information
\n
"
" pyb.gc() -- run the garbage collector
\n
"
" pyb.repl_info(<val>) -- enable/disable printing of info after each command
\n
"
" pyb.delay(<n>) -- wait for n milliseconds
\n
"
" pyb.udelay(<n>) -- wait for n microseconds
\n
"
" pyb.switch() -- return True/False if switch pressed or not
\n
"
" pyb.Led(<n>) -- create Led object for LED n (n=1,2,3,4)
\n
"
" Led methods: on(), off(), toggle(), intensity(<n>)
\n
"
" pyb.Servo(<n>) -- create Servo object for servo n (n=1,2,3,4)
\n
"
" Servo methods: angle(<x>)
\n
"
" pyb.Accel() -- create an Accelerometer object
\n
"
" Accelerometer methods: x(), y(), z(), tilt()
\n
"
" pyb.rng() -- get a 30-bit hardware random number
\n
"
" pyb.gpio(<port>) -- get port value (port='A4' for example)
\n
"
" pyb.gpio(<port>, <val>) -- set port value, True or False, 1 or 0
\n
"
" pyb.ADC(<port>) -- make an analog port object (port='C0' for example)
\n
"
" ADC methods: read()
\n
"
"
\n
"
"Control commands:
\n
"
" CTRL-A -- on a blank line, enter raw REPL mode
\n
"
" CTRL-B -- on a blank line, enter normal REPL mode
\n
"
" CTRL-C -- interrupt a running program
\n
"
" CTRL-D -- on a blank line, do a soft reset of the board
\n
"
;
STATIC
void
pyb_help_print_info_about_object
(
mp_obj_t
name_o
,
const
char
*
name_str
,
mp_obj_t
value
)
{
if
(
name_o
!=
MP_OBJ_NULL
)
{
printf
(
" "
);
mp_obj_print
(
name_o
,
PRINT_STR
);
printf
(
" -- "
);
}
else
{
printf
(
" %s -- "
,
name_str
);
}
mp_obj_print
(
value
,
PRINT_STR
);
printf
(
"
\n
"
);
}
STATIC
mp_obj_t
pyb_help
(
uint
n_args
,
const
mp_obj_t
*
args
)
{
if
(
n_args
==
0
)
{
// print a general help message
printf
(
"%s"
,
help_text
);
}
else
{
// try to print something sensible about the given object
printf
(
"object "
);
mp_obj_print
(
args
[
0
],
PRINT_STR
);
printf
(
" is of type %s
\n
"
,
mp_obj_get_type_str
(
args
[
0
]));
mp_obj_type_t
*
type
=
mp_obj_get_type
(
args
[
0
]);
mp_map_t
*
map
=
NULL
;
if
(
type
==
&
mp_type_module
)
{
map
=
mp_obj_module_get_globals
(
args
[
0
]);
}
else
if
(
type
->
locals_dict
!=
MP_OBJ_NULL
&&
MP_OBJ_IS_TYPE
(
type
->
locals_dict
,
&
dict_type
))
{
map
=
mp_obj_dict_get_map
(
type
->
locals_dict
);
}
if
(
map
!=
NULL
)
{
for
(
uint
i
=
0
;
i
<
map
->
alloc
;
i
++
)
{
if
(
map
->
table
[
i
].
key
!=
MP_OBJ_NULL
)
{
pyb_help_print_info_about_object
(
map
->
table
[
i
].
key
,
NULL
,
map
->
table
[
i
].
value
);
}
}
}
if
(
type
->
methods
!=
NULL
)
{
for
(
const
mp_method_t
*
meth
=
type
->
methods
;
meth
->
name
!=
NULL
;
meth
++
)
{
pyb_help_print_info_about_object
(
MP_OBJ_NULL
,
meth
->
name
,
(
mp_obj_t
)
meth
->
fun
);
}
}
}
return
mp_const_none
;
}
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
mp_builtin_help_obj
,
0
,
1
,
pyb_help
);
This diff is collapsed.
Click to expand it.
stmhal/main.c
+
0
−
31
View file @
5fd2ebbb
...
@@ -121,34 +121,6 @@ static const char fresh_main_py[] =
...
@@ -121,34 +121,6 @@ static const char fresh_main_py[] =
"# main.py -- put your code here!
\n
"
"# main.py -- put your code here!
\n
"
;
;
static
const
char
*
help_text
=
"Welcome to Micro Python!
\n\n
"
"This is a *very* early version of Micro Python and has minimal functionality.
\n\n
"
"Specific commands for the board:
\n
"
" pyb.info() -- print some general information
\n
"
" pyb.gc() -- run the garbage collector
\n
"
" pyb.repl_info(<val>) -- enable/disable printing of info after each command
\n
"
" pyb.delay(<n>) -- wait for n milliseconds
\n
"
" pyb.udelay(<n>) -- wait for n microseconds
\n
"
" pyb.Led(<n>) -- create Led object for LED n (n=1,2)
\n
"
" Led methods: on(), off()
\n
"
" pyb.Servo(<n>) -- create Servo object for servo n (n=1,2,3,4)
\n
"
" Servo methods: angle(<x>)
\n
"
" pyb.switch() -- return True/False if switch pressed or not
\n
"
" pyb.accel() -- get accelerometer values
\n
"
" pyb.rand() -- get a 16-bit random number
\n
"
" pyb.gpio(<port>) -- get port value (port='A4' for example)
\n
"
" pyb.gpio(<port>, <val>) -- set port value, True or False, 1 or 0
\n
"
" pyb.ADC(<port>) -- make an analog port object (port='C0' for example)
\n
"
" ADC methods: read()
\n
"
;
// get some help about available functions
static
mp_obj_t
pyb_help
(
void
)
{
printf
(
"%s"
,
help_text
);
return
mp_const_none
;
}
int
main
(
void
)
{
int
main
(
void
)
{
// TODO disable JTAG
// TODO disable JTAG
...
@@ -268,9 +240,6 @@ soft_reset:
...
@@ -268,9 +240,6 @@ soft_reset:
pin_map_init
();
pin_map_init
();
// add some functions to the builtin Python namespace
rt_store_name
(
MP_QSTR_help
,
rt_make_function_n
(
0
,
pyb_help
));
// we pre-import the pyb module
// we pre-import the pyb module
// probably shouldn't do this, so we are compatible with CPython
// probably shouldn't do this, so we are compatible with CPython
rt_store_name
(
MP_QSTR_pyb
,
(
mp_obj_t
)
&
pyb_module
);
rt_store_name
(
MP_QSTR_pyb
,
(
mp_obj_t
)
&
pyb_module
);
...
...
This diff is collapsed.
Click to expand it.
stmhal/mpconfigport.h
+
2
−
0
View file @
5fd2ebbb
...
@@ -19,9 +19,11 @@
...
@@ -19,9 +19,11 @@
#define MICROPY_LFN_CODE_PAGE (437)
/* 1=SFN/ANSI 437=LFN/U.S.(OEM) */
#define MICROPY_LFN_CODE_PAGE (437)
/* 1=SFN/ANSI 437=LFN/U.S.(OEM) */
// extra built in names to add to the global namespace
// extra built in names to add to the global namespace
extern
const
struct
_mp_obj_fun_native_t
mp_builtin_help_obj
;
extern
const
struct
_mp_obj_fun_native_t
mp_builtin_input_obj
;
extern
const
struct
_mp_obj_fun_native_t
mp_builtin_input_obj
;
extern
const
struct
_mp_obj_fun_native_t
mp_builtin_open_obj
;
extern
const
struct
_mp_obj_fun_native_t
mp_builtin_open_obj
;
#define MICROPY_EXTRA_BUILTINS \
#define MICROPY_EXTRA_BUILTINS \
{ MP_QSTR_help, (mp_obj_t)&mp_builtin_help_obj }, \
{ MP_QSTR_input, (mp_obj_t)&mp_builtin_input_obj }, \
{ MP_QSTR_input, (mp_obj_t)&mp_builtin_input_obj }, \
{ MP_QSTR_open, (mp_obj_t)&mp_builtin_open_obj },
{ MP_QSTR_open, (mp_obj_t)&mp_builtin_open_obj },
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment