Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
STM32H7
使用openOCD擦写ART_Pi外部qspi_flash
1.00
发布于 2022-05-31 19:59:53 浏览:2796
订阅该版
[tocm] 附件: [art_pi.cfg](https://club.rt-thread.org/file_download/f942b10b134ef2d0) [gpio_conf_stm32.pl](https://club.rt-thread.org/file_download/86481b1ee400fdc6) ### 0、前言 目前stm32h750多数使用keil(仿真器不限)、cubeprog(仅限stlink)和SEGGER(仅限jlink)擦写片内和qspi flash,而开源的pyocd无法很好的支持qspi flash的擦写。随着对openocd环境知识的积累了解到它已经支持stmqspi,今天尝试配置openocd来支持ART_Pi外部flash的擦写。 ### 1、实操 openocd版本为 "xPack OpenOCD x86_64 Open On-Chip Debugger 0.11.0+dev (2022-03-25-17:32)" 首先来看看我编写的脚本art_pi.cfg: ``` # Port F: PF10:AF09:H, PF09:AF10:H, PF08:AF10:H, PF07:AF09:H, PF06:AF09:H mmw 0x58021400 0x002AA000 0x00155000 ;# MODER mmw 0x58021408 0x002AA000 0x00155000 ;# OSPEEDR mmw 0x5802140C 0x00000000 0x003FF000 ;# PUPDR mmw 0x58021420 0x99000000 0x66000000 ;# AFRL mmw 0x58021424 0x000009AA 0x00000655 ;# AFRH # Port G: PG06:AF10:H mmw 0x58021800 0x00002000 0x00001000 ;# MODER mmw 0x58021808 0x00002000 0x00001000 ;# OSPEEDR mmw 0x5802180C 0x00000000 0x00003000 ;# PUPDR mmw 0x58021820 0x0A000000 0x05000000 ;# AFRL ``` 以上是使用gpio_conf_stm32.pl脚本生成的引脚配置,脚本中有以下内容用于自动生成寄存器配置: ``` # ART_Pi dual quad $GPIO_BASE = 0x58020000; $Conf = "PG06:AF10:H, PF06:AF09:H, PF07:AF09:H, PF08:AF10:H, PF09:AF10:H, PF10:AF09:H"; ``` 字段的意思分别是引脚编号、复用功能、引脚速率。运行gpio_conf_stm32.pl会有如下输出: ``` u@WINDOWS10:/mnt/c/Users/u/Desktop/openocd$ ./gpio_conf_stm32.pl 0x3FC 0x58021814 6 0x58021414 6 \ 0x58021414 7 0x58021414 8 \ 0x58021414 9 0x58021414 10 # PF10:AF09:H, PF09:AF10:H, PF08:AF10:H, PF07:AF09:H, PF06:AF09:H, PG06:AF10:H # Port F: PF10:AF09:H, PF09:AF10:H, PF08:AF10:H, PF07:AF09:H, PF06:AF09:H mmw 0x58021400 0x002AA000 0x00155000 ;# MODER mmw 0x58021408 0x002AA000 0x00155000 ;# OSPEEDR mmw 0x5802140C 0x00000000 0x003FF000 ;# PUPDR mmw 0x58021420 0x99000000 0x66000000 ;# AFRL mmw 0x58021424 0x000009AA 0x00000655 ;# AFRH # Port G: PG06:AF10:H mmw 0x58021800 0x00002000 0x00001000 ;# MODER mmw 0x58021808 0x00002000 0x00001000 ;# OSPEEDR mmw 0x5802180C 0x00000000 0x00003000 ;# PUPDR mmw 0x58021820 0x0A000000 0x05000000 ;# AFRL u@WINDOWS10:/mnt/c/Users/u/Desktop/openocd$ ``` art_pi.cfg脚本中的qspi_init函数的其它寄存器可以根据注释自己参考stm32h7参考手册做修改配置。 2、连接openocd 运行命令 ``` PS C:\Users\u\Desktop\openocd> openocd -f .\art_pi.cfg xPack OpenOCD x86_64 Open On-Chip Debugger 0.11.0+dev (2022-03-25-17:32) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : clock speed 1800 kHz Info : STLINK V2J38M27 (API v2) VID:PID 0483:374B Info : Target voltage: 3.245093 Info : [stm32h750xbh6.cpu0] Cortex-M7 r1p1 processor detected Info : [stm32h750xbh6.cpu0] target has 8 breakpoints, 4 watchpoints Info : starting gdb server for stm32h750xbh6.cpu0 on 3333 Info : Listening on port 3333 for gdb connections ``` 使用telnet localhost 4444链接到openocd端口: ``` > reset init > flash read_bank 1 xx.bin 0x0 0x20000 flash1 'win w25q64fv/jv' id = 0x1740ef size = 8192kbytes wrote 131072 bytes to file xx.bin from flash bank 1 at offset 0x00000000 in 0.978964s (130.750 KiB/s) > flash write_image erase u-boot.bin 0x90000000 Device: STM32H74x/75x flash size probed value 128k STM32H7 flash has a single bank Bank (0) size is 128 kb, base address is 0x08000000 Adding extra erase range, 0x90043a69 .. 0x9004ffff auto erase enabled wrote 277097 bytes from file u-boot.bin in 3.508002s (77.139 KiB/s) ``` 以上三条命令分别是初始化、读取128kb flash、擦写qspi flash。
12
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
lizimu
这家伙很懒,什么也没写!
文章
9
回答
22
被采纳
3
关注TA
发私信
相关文章
1
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
2
stm32h743 usb vcom无法启动
3
有stm32h7 adc驱动吗?
4
STM32H7可以用rtthread的通用bootloader吗?
5
STM32H750 FDCAN通信异常
6
将rt-thread工程移植到正点原子的H7板子上 RW_IRAM1如何修改
7
从文件系统中循环显示图片,该怎么操作?
8
STM32H7移植RT-thread卡在hardfault中
9
STM32H7 LWIP移植
10
stm32h743+dm9162 ping不通
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
5
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
7
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
张世争
1
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
2
次点赞
Ghost_Girls
1
篇文章
6
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部