程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

MicroPython內核開發筆記書內軟件用例 :第三章-基礎實驗

編輯:Python

簡 介: 本文給出了 MicroPython內核開發筆記:書內嵌入實驗任務 中的第三章的基本操軟件用例部分內容。

關鍵詞MicroPython基礎實驗

書稿內容 目 錄
Contents
基礎實驗 實驗條件 實驗內容 直接內存訪問 總 結

 

  • 本書稿內容隸屬於 MicroPython內核開發筆記:書內嵌入實驗任務 中的內容。

 

§01書稿內容


軟件用例: 基本使用方法
這部分書稿內容包括有:

  1. 基礎實驗:將內核編譯完,下載到實驗電路板之後,上電看到的信息和部分交互信息;
  2. 使用Python直接訪問內存。
  • 書稿內位置:第三章後的實驗用例

一、基礎實驗

當 MicroPython 內核編譯下載到 MM32F3273 之後,可以通過以下實驗初步驗證硬件平台和MicroPython內核軟件工作正常。

1、實驗條件

按照本書中關於Thonny開發環境配置方法,將MicroPython硬件平台(比如PLUS-F3270、F3277面包板實驗模塊)通過USB接入電腦。並配置Thonny開發環境,使其能夠連通硬件平台對應的USB串口。

2、實驗內容

(1)上電REPL交互操作

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']
>>>

(2)簡單LED程序

下面程序是利用 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內核開發筆記:書內嵌入實驗任務 中的第三章的基本操軟件用例部分內容。


■ 相關文獻鏈接:

  • MicroPython內核開發筆記:書內嵌入實驗任務

● 相關圖表鏈接:

  • 圖1.1.1 .LED閃爍

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved