pyboard通过upip安装库

STM32系列
pyboard相关
回复
haorongMango
帖子: 2
注册时间: 2019年 12月 11日 15:03

pyboard通过upip安装库

#1

帖子 haorongMango » 2019年 12月 28日 17:04

1.下载源码并安装所有子模块
$ git clone https://github.com/micropython/micropython.git
$ cd ports/stm32 && make submodules

# 最好安装完所有子模块, 否者编译会很蛋疼
$ git submodule update --init --recursive

2.修改modusocket.c文件:

// 添加函数
mp_uint_t socket_read(mp_obj_t self_in, void *buf, mp_uint_t size, int *errcode){
mod_network_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
return self->nic_type->recv(self, buf, size, errcode);
}

// 添加函数
mp_uint_t socket_write(mp_obj_t self_in, const void *buf, mp_uint_t size, int *errcode){
mod_network_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
return self->nic_type->send(self, buf, size, errcode);
}

// 修改该结构
STATIC const mp_stream_p_t socket_stream_p = {
.ioctl = socket_ioctl,
.read = socket_read, // 添加该字段
.write = socket_write, // 添加该字段
.is_text = false,
};


3.编译固件(支持SSL)
$ make BOARD=PYBCNV2 MICROPY_PY_USSL=1 MICROPY_SSL_MBEDTLS=1 MICROPY_PY_WIZNET5K=5500 MICROPY_FLOAT_IMPL=double -j4
编译固件后通过stlink、DFU方式烧写固件


4.在pyboard模拟的U盘里找到main.py文件并添加以下内容:
import sys
import pyb

import network


# 设置以太网卡, MAC地址暂不支持修改(需要国外W5500模块并接好线)
nic = network.WIZNET5K(pyb.SPI(1), pyb.Pin.board.X5, pyb.Pin.board.X1)
nic.ifconfig(('192.168.0.180','255.255.255.0','192.168.0.1','8.8.8.8', "e7-85-43-ab-62-73"))


5.将upip.py、upip_utarfile.py拷贝到U盘的lib目录(文件位于源码树的tools目录里)
并修改upip.py文件:

# 在源文件的19行, 默认install_path=None, 当前使用的库目录为/flash/lib
install_path = "/flash/lib/"

def url_open(url):
...
try:
# 源文件的120行注释掉
# ai = usocket.getaddrinfo(host, 443, 0, usocket.SOCK_STREAM)
# 替换成以下内容(API使用 - getaddrinfo(host, port)):
ai = usocket.getaddrinfo(host, 443)
except OSError as e:
fatal("Unable to resolve %s (no Internet?)" % host, e)
...


6. 执行machine.reset()重启板子并执行以下代码安装库:
>>>machine.reset()

>>>import upip
>>>upip.install("micropython-base64")


对于踩的坑,这里以笔记的形式保存一份→_→

头像
shaoziyang
帖子: 964
注册时间: 2019年 10月 21日 13:48

Re: pyboard通过upip安装库

#2

帖子 shaoziyang » 2019年 12月 28日 21:47

pyboard也可以用上pip,厉害!

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章