Browse Source

add Quick Start Guide.md

SummerGift 8 years ago
parent
commit
d3106300d8
1 changed files with 176 additions and 0 deletions
  1. 176 0
      Quick Start Guide.md

+ 176 - 0
Quick Start Guide.md

@@ -0,0 +1,176 @@
+[TOC]
+
+#  MicroPython port for RT-Thread
+
+MicroPython 是一个有效的python实现,适合运行在mcu嵌入式系统之上。
+
+## 1.体验MicroPython
+
+###  1.1通过finsh/msh运行micropython
+
+在msh命令行内输入python即可进入MicroPython的交互命令行REPL。
+
+```
+msh />python
+
+MicroPython v1.9.3-6-g1742ab26-dirty on 2017-11-04; RT-Thread Board with stm32f4
+>>> 
+>>> print('Hello World')
+Hello World
+
+```
+
+现在你就可以在终端上输入和运行python的代码。
+如果你想退出python的REPL,可以使用 `CTRL + D` 快捷键。
+
+### 1.2在REPL下粘贴程序
+
+`micropython`有一个特别的粘贴模式。
+
+先在命令行提示符状态下,按下Ctrl-E组合键,就会出现提示:
+
+paste mode; Ctrl-C to cancel, Ctrl-D to finish
+
+然后在粘贴代码,完成后按下Ctlr-D推出粘贴模式。
+
+### 1.3运行已有的python脚本
+```
+msh /sdcard>python rt-thread.py
+
+hello world!
+
+```
+
+### 1.4导入外部模块并运行
+####1.4.1 rtthread module
+
+Use the rtthread module:
+
+```
+>>> import rtthread
+>>> 
+>>> rtthread.is_preempt_thread()       # determine if code is running in a preemptible thread
+True
+>>> rtthread.current_tid()             # current thread id
+268464956
+>>> rtthread.stacks_analyze()          # show thread information
+thread     pri  status      sp     stack size max used left tick  error
+---------- ---  ------- ---------- ----------  ------  ---------- ---
+elog_async  31  suspend 0x000000a8 0x00000400    26%   0x00000003 000
+tshell      20  ready   0x00000260 0x00001000    39%   0x00000003 000
+tidle       31  ready   0x00000070 0x00000100    51%   0x0000000f 000
+SysMonitor  30  suspend 0x000000a4 0x00000200    32%   0x00000005 000
+timer        4  suspend 0x00000080 0x00000200    25%   0x00000009 000
+>>> 
+```
+####1.4.2 time module
+Use the [`time`](http://docs.micropython.org/en/latest/pyboard/library/utime.html#module-utime) module:
+```
+>>> import time
+>>> 
+>>> time.sleep(1)           # sleep for 1 second
+>>> time.sleep_ms(500)      # sleep for 500 milliseconds
+>>> time.sleep_us(10)       # sleep for 10 microseconds
+>>> start = time.ticks_ms() # get value of millisecond counter
+>>> delta = time.ticks_diff(time.ticks_ms(), start) # compute time difference
+```
+####1.4.3 pyb module
+Use the [pyb](http://docs.micropython.org/en/latest/pyboard/library/pyb.html) module:
+```
+>>> import pyb
+>>>
+>>> pyb.info()              # show information about the board
+---------------------------------------------
+RT-Thread
+---------------------------------------------
+total memory: 131048
+used memory : 4920
+maximum allocated memory: 5836
+thread     pri  status      sp     stack size max used left tick  error
+---------- ---  ------- ---------- ----------  ------  ---------- ---
+elog_async  31  suspend 0x000000a8 0x00000400    26%   0x00000003 000
+tshell      20  ready   0x0000019c 0x00001000    39%   0x00000006 000
+tidle       31  ready   0x0000006c 0x00000100    50%   0x0000000b 000
+SysMonitor  30  suspend 0x000000a8 0x00000200    32%   0x00000005 000
+timer        4  suspend 0x0000007c 0x00000200    24%   0x00000009 000
+---------------------------------------------
+qstr:
+  n_pool=0
+  n_qstr=0
+  n_str_data_bytes=0
+  n_total_bytes=0
+---------------------------------------------
+GC:
+  16064 total
+  464 : 15600
+  1=14 2=6 m=3
+>>> pyb.enable_irq()        # enable interrupt
+>>> pyb.disable_irq()       # disable interrupt, WARNING: this operation is dangerous
+>>> time_start = pyb.millis()          # return the number of milliseconds
+>>> pyb.elapsed_millis(time_start)     # calculate the elapsed time of milliseconds
+2449
+>>> time_start = pyb.micros()          # return the number of microseconds
+>>> pyb.elapsed_micros(time_start)     # calculate the elapsed time of microseconds
+1769000
+>>> pyb.delay(1000)         # delay milliseconds
+>>> pyb.udelay(1000*1000)   # delay microseconds
+>>> pyb.hard_reset()        # hard reset, like push RESET button
+```
+
+
+
+## 2.MicroPython 库
+
+- MicroPython实现了python函数库每个模块的一部分。
+- 为了便于扩展,MicroPython版本的标准python模块都有一个“u”的前缀。
+- 因为资源或者一些其他限制,一个特定的MicroPython版本或者移植对比标准python模块可能会缺少一些特性或者功能。
+- 也可以使用upip来下载一些软件包。
+
+| Builtin functions and exceptions | 简介                                       | 当前版本是否支持 |
+| -------------------------------- | ---------------------------------------- | -------- |
+| array                            | arrays of numeric data                   | yes      |
+| cmath                            | mathematical functions for complex numbers | yes      |
+| gc                               | control the garbage collector            | no       |
+| math                             | mathematical functions                   | yes      |
+| sys                              | system specific functions                | no       |
+| time                             | time related functions                   | yes      |
+| ubinascii                        | binary/ASCII conversions                 | yes      |
+| ucollections                     | collection and container types           | yes      |
+| uerrno                           | system error codes                       | no       |
+| uhashlib                         | hashing algorithms                       | no       |
+| uheapq                           | heap queue algorithm                     | yes      |
+| uio                              | input/output streams                     | yes      |
+| ujson                            | JSON encoding and decoding               | yes      |
+| uos                              | basic “operating system” services        | no       |
+| ure                              | simple regular expressions               | no       |
+| uselect                          | wait for events on a set of streams      | no       |
+| usocket                          | socket module                            | no       |
+| ustruct                          | pack and unpack primitive data types     | no       |
+| uzlib                            | zlib decompression                       | no       |
+| _thread                          | multithreading support                   | no       |
+
+| micropython-specific libraries | 简介                                       | 当前版本是否支持 |
+| ------------------------------ | ---------------------------------------- | -------- |
+| btree                          | simple BTree database                    | no       |
+| framebuf                       | Frame buffer manipulation                | no       |
+| machine                        | functions related to the hardware        | yes      |
+| micropython                    | access and control MicroPython internals | yes      |
+| network                        | network configuration                    | no       |
+| uctypes                        | access binary data in a structured way   | yes      |
+
+| Libraries specific to the pyboard | 简介                             | 当前版本是否支持 |
+| --------------------------------- | ------------------------------ | -------- |
+| pyb                               | functions related to the board | yes      |
+| Time related functions            |                                | yes      |
+| Reset related functions           |                                | yes      |
+| Interrupt related functions       |                                | yes      |
+| Power related functions           |                                | yes      |
+| Miscellaneous functions           |                                | yes      |
+| Classes                           |                                | yes      |
+
+
+| rt-thread libraries for micropython | 简介                    | 当前版本是否支持 |
+| ----------------------------------- | --------------------- | -------- |
+| rtthread                            | rt-thread system call | yes      |
+
+## 3.资源占用情况