OPENMV4P中增加本地以太网口驱动

本文详细介绍了如何在OPENMV4P板上增加以太网接口驱动,包括修改配置文件以定义RMII引脚,开启LWIP编译选项,解决编译过程中的文件缺失问题,以及调整内存分配以应对内存不足的挑战。过程中涉及了STM32的硬件引脚配置、软件编译选项以及内存管理策略的调整。
摘要由CSDN通过智能技术生成

三. OPENMV4P中增加以太网接口驱动

1.增加RMII接口引脚定义

在“openmv\src\micropython\ports\stm32\boards\OPENMV4P\mpconfigboard.h”, 文件中增加RMII引脚定义

// Ethernet via RMII

#define MICROPY_HW_ETH_MDC (pin_C1)

#define MICROPY_HW_ETH_MDIO (pin_A2)

#define MICROPY_HW_ETH_RMII_REF_CLK (pin_A1)

#define MICROPY_HW_ETH_RMII_CRS_DV (pin_A7)

#define MICROPY_HW_ETH_RMII_RXD0 (pin_C4)

#define MICROPY_HW_ETH_RMII_RXD1 (pin_C5)

#define MICROPY_HW_ETH_RMII_TX_EN (pin_B11)

#define MICROPY_HW_ETH_RMII_TXD0 (pin_G13)

#define MICROPY_HW_ETH_RMII_TXD1 (pin_G12)

在“openmv\src\micropython\ports\stm32\boards\OPENMV4P\pins.csv”文件中增加RMII引脚定义”

ETH_MDC,PC1

ETH_MDIO,PA2

ETH_RMII_REF_CLK,PA1

ETH_RMII_CRS_DV,PA7

ETH_RMII_RXD0,PC4

ETH_RMII_RXD1,PC5

ETH_RMII_TX_EN,PB11

ETH_RMII_TXD0,PG13

ETH_RMII_TXD1,PG12

2.打开LWIP编译

在 “openmv\src\omv\boards\OPENMV4P\omv_boardconfig.mk”文件中,增加LWIP编译选项

MICROPY_PY_LWIP = 1

4.编译出现中的问题

make TARGET=OPENMV4P

Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.

Including User C Module from /mnt/e/openmv/src/omv/modules

GEN /mnt/e/openmv/src/build/micropython/genhdr/qstrdefs.collected.h

QSTR not updated

GEN /mnt/e/openmv/src/build/micropython/genhdr/compressed.collected

Compressed data not updated

arm-none-eabi-gcc: error: /mnt/e/openmv/src/build/micropython/sdio.o: No such file or directory

omv/ports/stm32/omv_portconfig.mk:621: recipe for target 'firmware' failed

make: *** [firmware] Error 1

注意上边的加粗部分,

打开 “openmv\src\omv\ports\stm32\omv_portconfig.mk”去掉sdio.o的链接,如下

ifeq ($(MICROPY_PY_LWIP), 1)

FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/,\

sdio.o \(删除)

lib/lwip/src/core/*.o \

lib/lwip/src/core/*/*.o \

lib/lwip/src/netif/*.o \

lib/lwip/src/apps/*/*.o \

extmod/modlwip.o \

extmod/moduwebsocket.o \

extmod/modwebrepl.o \

)

endif

5.提示内存不够用

在“openmv\src\omv\boards\OPENMV4P\omv_boardconfig.h”中,更改如下:

把512K的AXI_SRAM作为程序内存空间,把SRAM1作为Fast fb alloc memory 使用。

// The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp).
#define OMV_MAIN_MEMORY         AXI_SRAM       // data, bss and heap
#define OMV_STACK_MEMORY        ITCM        // stack memory
#define OMV_DMA_MEMORY          SRAM3       // Misc DMA buffers memory.
#define OMV_FB_MEMORY           DRAM        // Framebuffer, fb_alloc
#define OMV_JPEG_MEMORY         DRAM        // JPEG buffer memory buffer.
#define OMV_JPEG_MEMORY_OFFSET  (31M)       // JPEG buffer is placed after FB/fballoc memory.
#define OMV_VOSPI_MEMORY        SRAM4       // VoSPI buffer memory.
#define OMV_FB_OVERLAY_MEMORY   SRAM1    // Fast fb_alloc memory.
#define OMV_FB_OVERLAY_MEMORY_OFFSET    (240*1024) // Fast fb_alloc memory size.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值