簡 介: 本文給出了 MicroPython內核開發筆記:書內嵌入實驗任務 中的第三章的基本操軟件用例部分內容。
關鍵詞
:MicroPython,基礎實驗
軟件用例: 基本使用方法
這部分書稿內容包括有:
- 基礎實驗:將內核編譯完,下載到實驗電路板之後,上電看到的信息和部分交互信息;
- 使用Python直接訪問內存。
- 書稿內位置:第三章後的實驗用例
當 MicroPython 內核編譯下載到 MM32F3273 之後,可以通過以下實驗初步驗證硬件平台和MicroPython內核軟件工作正常。
按照本書中關於Thonny開發環境配置方法,將MicroPython硬件平台(比如PLUS-F3270、F3277面包板實驗模塊)通過USB接入電腦。並配置Thonny開發環境,使其能夠連通硬件平台對應的USB串口。
MicroPython 內核通過 REPL 與用戶進行交互。將 MicroPython 硬件上電後,可以觀察到 Thonny 的 Shell 信息窗口顯示一下內容:
MicroPython v1.16 on 2022-06-29; PLUS-F3270 with MM32F3277G9P
Type "help()" for more information.
>>>
輸入 help() 命令後,信息框給出進一步的提示信息:
MicroPython v1.16 on 2022-06-29; PLUS-F3270 with MM32F3277G9P
Type "help()" for more information.
>>> help()
Welcome to MicroPython!
For online docs please visit http://docs.micropython.org/
Control commands:
CTRL-A -- on a blank line, enter raw REPL mode
CTRL-B -- on a blank line, enter normal REPL mode
CTRL-C -- interrupt a running program
CTRL-D -- on a blank line, exit or do a soft reset
CTRL-E -- on a blank line, enter paste mode
For further help on a specific object, type help(obj)
>>>
請注意,在 MicroPython 交互界面中,所有的命令都是通過函數執行的方式完成,所以 help() 命令後面帶有圓括號。
在 MicroPython 中,大部分內核模塊通過 machine 對象提供調用。輸入一下命令,可以查看到當前 MicroPython 版本內核 machine 所提供的硬件模塊內容。
>>> import machine
>>> dir(machine)
['__name__', 'ADC', 'DAC', 'I2C', 'PWM', 'Pin', 'SDCard', 'SPI', 'SoftI2C', 'SoftSPI', 'Timer', 'UART', 'freq', 'mem16', 'mem32', 'mem8', 'reset']
>>>
下面程序是利用 machine.Pin 模塊驅動 PB2,改變外部LED狀態。
from machine import Pin
import time
led = Pin('PB2', mode=Pin.OUT_PUSHPULL)
print('Test LED.')
while True:
led(1)
time.sleep_ms(100)
led(0)
time.sleep_ms(100)
運行好,在信息窗口會顯示:
Test LED.
板上的 LED 將會閃爍。
▲ 圖1.1.1 .LED閃爍
在 MicroPython 中可以利用 machine 中的 mem8,mem16, mem32 對 ARM內核中的內存直接訪問。利用這種機制,不僅可以繞過 MicroPython 軟件內核機制直接操作 ARM 中的模塊,提高程序執行效率,同時也可以補充一些與芯片特殊硬件相關的功能。 這部分的內容將會在本書後面 第17章進行詳細討論。這裡僅僅給出一個演示程序。
下面程序將內存中 0x0000 ~ 0x0040 中的內容打印出來。
import machine
for i in range(0x10):
print('[%04x]: %04x'%(i<<2, machine.mem32[i<<2]))
程序執行結果為:
[0000]: 20010000
[0004]: 800042d
[0008]: 8000491
[000c]: 8000495
[0010]: 800048d
[0014]: 800048d
[0018]: 800048d
[001c]: 0000
[0020]: 0000
[0024]: 0000
[0028]: 0000
[002c]: 8000499
[0030]: 800048d
[0034]: 0000
[0038]: 800049d
[003c]: 8016225
上面結果顯示了ARM程序一開始的程序代碼。根據ARM程序結構,第一個字為程序的堆棧起始地址,對應著是 0x20010000 內部SRAM存儲空間。
本文給出了 MicroPython內核開發筆記:書內嵌入實驗任務 中的第三章的基本操軟件用例部分內容。
■ 相關文獻鏈接:
● 相關圖表鏈接: