[求助] 正点原子阿波罗f767上如何移植micropython

海边的小椰子   2022-3-23 15:31 楼主

如题,试了很多天一直移植失败,始终没有出现mpy的虚拟串口和虚拟磁盘。编译文件是根据f767zi改的,时钟频率应该是正确的。然后烧写方式是用stm32cubeprog把编译出来的hex文件烧写进去连接方式为stlink。但是烧写完成后并未出现虚拟串口和磁盘。 因为对串口的不了解现想询问如下问题: 1.移植过程和移植后是否仅需要stlink连接即可,因为有的教程上移植成功stlink的连接就会变成虚拟串口,有的教程是要把板子上的两个usb都连接到电脑上 2. 编译文件中的.h文件中的MICROPY_HW_USB_VBUS_DETECT_PIN的作用是啥,有的教程说要把里面的端口和3.3v连接才能识别usb,基本上都是PA9,但是尽管我连接了他和3.3v也未出现虚拟串口和磁盘 3. .h文件中的改动每次都会报错,说是增添的引脚未定义,这个定义是在.csv文件吗?那为什么原.h中有的引脚比如PA9在.csv文件中没有呢 4.stlink烧写hex文件和用usb转串口烧写hex文件和用dfuse Demo烧写dfu文件这些有没有区别呢。 5.如果移植失败的原因出在.h文件和.csv文件等等上,出了时钟频率这种问题还有哪些问题是容易导致失败的呢 6.除开文件修改移植过程中有哪些是容易出错或忽略的步骤或者操作 还有些来天就要提交报告了 恳请各位大神解惑解答,郑重感谢 (救救孩子,快疯了)

回复评论 (13)

  1. 虚拟磁盘pybflash和虚拟串口cdc,必须连接STM32自己的USB接口,不能用stlink的usb。并且mpconfigboard.h中需要定义
    #define MICROPY_HW_ENABLE_USB       (1)。
  2. MICROPY_HW_USB_VBUS_DETECT_PIN是硬件USB连接检测引脚,是通过将引脚连接到 VBUS上实现检测的。如果没有引脚连接到 VBUS,就需要禁用这个功能。默认是PA9,也是STM32规定的引脚,用其它引脚也可以。
  3. 一般引脚在 pins.cvs 中定义,相当于引脚的别名
  4. 无论哪种方式下载文件都可以,区别在于stlink会覆盖以前的内容,不能保留 pybflash 磁盘内容,用 dfu 方式可以保留。
  5. 编译失败,多看看错误提示,根据提示查找原因

 

点赞 (1) 2022-3-23 16:29

可以查找一下论坛本版块的以前移植心得帖子,虽然是移植到其它芯片的,也有参考作用。

点赞  2022-3-23 16:30

比如这种:https://bbs.eeworld.com.cn/thread-1127334-1-1.html 可以通过搜索搜一下。

加油!在电子行业默默贡献自己的力量!:)
点赞  2022-3-23 16:39
引用: dcexpert 发表于 2022-3-23 16:29 虚拟磁盘pybflash和虚拟串口cdc,必须连接STM32自己的USB接口,不能用stlink的usb。并且mpconfigboard.h ...

#define MICROPY_HW_ENABLE_USB   (1)已经定义过了

''连接STM32自己的USB接口''这个是指的开发板上的USB 232转串口还是USB slave还是两个都可以呢。不太了解stm32

点赞  2022-3-23 20:50
引用: soso 发表于 2022-3-23 16:39 比如这种:https://bbs.eeworld.com.cn/thread-1127334-1-1.html 可以通过搜索搜一下。

这一篇刚开始学习移植的时候尝试过了,包括其他的一些移植。但是还是无法成功移植

 

 

点赞  2022-3-23 20:51
引用: 海边的小椰子 发表于 2022-3-23 20:50 #define MICROPY_HW_ENABLE_USB   (1)已经定义过了 ''连接STM32自己的USB接口 ...

当然是 STM32 自身的 USBOTG接口,也就是 PA11/PA12。USB装串口是无法模拟出 U 盘的。

点赞  2022-3-23 21:32
引用: 海边的小椰子 发表于 2022-3-23 20:51 这一篇刚开始学习移植的时候尝试过了,包括其他的一些移植。但是还是无法成功移植    

其实没有太多技巧,就是按照说明多尝试,仔细检查每个步骤。从官方例子开始,多对照看看

点赞  2022-3-23 21:38
引用: dcexpert 发表于 2022-3-23 21:32 当然是 STM32 自身的 USBOTG接口,也就是 PA11/PA12。USB装串口是无法模拟出 U 盘的。

“usb转串口无法模拟出u盘”一语点醒了,现已移植成功,感谢感谢(磕头)

点赞  2022-3-24 00:55
引用: dcexpert 发表于 2022-3-23 21:38 其实没有太多技巧,就是按照说明多尝试,仔细检查每个步骤。从官方例子开始,多对照看看

大佬,还有一个问题想问的就是csv文件的两边,左边的是定义引脚名右边的是芯片的实际引脚对吧。那么比如我有一个灯接的PF9,那就在csv添加 led1 PF9就可以了是吗,那然后在编程里是写让pf9变高电平还是led1变高电平呢。有点搞不懂csv文件设置引脚和编程中引脚使用的关系

点赞  2022-3-24 01:44
引用: 海边的小椰子 发表于 2022-3-24 01:44 大佬,还有一个问题想问的就是csv文件的两边,左边的是定义引脚名右边的是芯片的实际引脚对吧。那么比如 ...

cvs只是一个别名,有没有都不影响。比如 pybv10的定义


 

X1,PA0
X2,PA1

...

Y15,3.3V
Y16,VIN
SW,PB3
LED_RED,PA13
LED_GREEN,PA14
LED_YELLOW,PA15
LED_BLUE,PB4

MMA_INT,PB2
MMA_AVDD,PB5
SD_D0,PC8
SD_D1,PC9
SD_D2,PC10
SD_D3,PC11
SD_CMD,PD2
SD_CK,PC12
SD,PA8
SD_SW,PA8
USB_VBUS,PA9
USB_ID,PA10
USB_DM,PA11
USB_DP,PA12


左边是名称(别名),右边是引脚。实际使用时,两种都是可以的,效果也是一样。

 

点赞  2022-3-24 08:19

我上回移植过一次,也遇到不少问题,不过我移植的是F429的,相对教程较多。

点赞  2022-3-24 09:46
引用: dcexpert 发表于 2022-3-24 08:19 cvs只是一个别名,有没有都不影响。比如 pybv10的定义   X1,PA0 X2,PA1 ... Y15,3 ...

先谢谢版主的指点。也就说在micropython中使用的引脚可以不用在csv文件定义是吧,但是在.h中出现的引脚就需要吗

点赞  2022-3-24 11:35
引用: 海边的小椰子 发表于 2022-3-24 11:35 先谢谢版主的指点。也就说在micropython中使用的引脚可以不用在csv文件定义是吧,但是在.h中出现的引脚就 ...

。h文件规定了可以使用的 GPIO。

点赞  2022-3-24 11:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复