STM32用STLINK烧写外置FLASH遇到的问题

发布者:chunying最新更新时间:2021-10-18 来源: eefocus关键字:STM32 手机看文章 扫描二维码
随时随地手机看文章

由于项目需要大量的图片字库还有音频文件,所以外挂了NOR flash和NAND flash,需要用到烧写算法STLDR(就是包含几段在SRAM里面运行的代码),调试的时候遇到了几个问题,都是大意造成的,所以写出来记录一下


首先烧写用到PC端软件是STM32 STLINK Utility,在安装目录下附带了一些常用的flash的烧写算法,但没有我用到的那种,所以只能参考ST-LINK Utility UM手册在…ST-LINK UtilityExternalLoader目录下的工程模板上修改,修改需要用到对FLASH的初始化、读写、擦除函数,这个要提前调试好,填到对应的函数内就可以了,后面由上位机自己调用


问题来了,主要是三方面的问题,第一个是编译出错,第二个是延时,第三个是地址


1)编译出错:在修改完模板第一次编译的时候可能会报错.xxx.axf: Error: L6265E: Non-PI Section loader_src.o(.data) cannot be assigned to PI Exec region PrgData.,这个问题需要修改target.sct文件,添加ABSOLUTE,这个是偶然在一个论坛上看到的,在此表示感谢

在这里插入图片描述在这里插入图片描述

2)延时问题:工程用的cubemx的HAL库开发,所有延时部分都是用的HAL_Delay()函数,但是在模板中并没有使用中断,一直卡死在延时函数里面出不来,所以最终改为常用的自减法来达到延时的目的


3)地址问题:flash接在OSPI2接口上,起始基地址是0x70000000,但是OSPI的库函数使用的地址是不包括基地址的,而在模板中读写函数传入的地址参数是带着基地址的,所以需要与0x0FFFFFFF相与再使用


这三个问题解决好就可以正常读写了,就是感觉速度不快,带校验也就50k/s,可能是HAL库函数注重稳定性和兼容性,代码冗余多,直接操作寄存器可能会快点

关键字:STM32 引用地址:STM32用STLINK烧写外置FLASH遇到的问题

上一篇:STM32f407驱动hc-sr04超声波测距模块
下一篇:如何用ST-LINK给STM32下载HEX文件

推荐阅读最新更新时间:2024-11-19 21:51

stm32 IO操作备注
#define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //输出 #define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) //输入 for example : PAout(0)=1 PA0输出高电平 GPIOx_CRH 端口配置高位寄存器 IO 15:8 GPIOG- CRH&=0xFF0FFFFF 清除PG13的模式 GPIOG- CRH|=0x00300000 PG13推挽输出 GPIOG- CRH&=0xFF0FFFFF 清除PG13的模式 GPIOG- CRH|=0x00800000 PG13上拉输入
[单片机]
WS2812灯珠(三)-- STM32 PWM+DMA方式驱动
一、理论 PWM输出就是对外输出脉宽(即占空比)可调的方波信号,信号频率由自动重装载寄存器ARR的值决定,占空比由比较寄存器CCR的值决定。 由WS2812规格书可知: WS2812灯珠的通信速度为800Kbit/s。 数据传输时间(TH+TL=1.25us+/-600ns) 故在配置STM32定时器时可设置,预分频因子为0,自动重装载初值为90-1,则频率为72M/90 = 800K。 设值占空比为45可满足1码的时间要求,设值占空比为30可满足0码的时间要求。 二、代码实践 这里在代码中具体用到的时PA0引脚(TIM2的CH1) 头文件:通过宏配置需要控制的灯珠数目 #ifndef __BSP_W
[单片机]
WS2812灯珠(三)-- <font color='red'>STM32</font> PWM+DMA方式驱动
STM32 IIC 详解 之 stm32 IIC 从机模式(中断方式收发数据)
1、IIC简介 第二节代码会用到该部分内容,对于IIC来说,从机是不能主动发送数据的,开始条件都是由主机生成。 1.1、主机发送数据流程 1) 主机在检测到总线为“空闲状态”(即 SDA、SCL 线均为高电平)时,发送一个启动信号“S”,开始一次通信的开始 2) 主机接着发送一个命令字节。该字节由 7 位的外围器件地址和 1 位读写控制位 R/W组成(此时 R/W=0) 3) 相对应的从机收到命令字节后向主机回馈应答信号 ACK(ACK=0) 4) 主机收到从机的应答信号后开始发送第一个字节的数据 5) 从机收到数据后返回一个应答信号 ACK 6) 主机收到应答信号后再发送下一个数据字节 7) 当主机发送最
[单片机]
STM32的官方库函数调用
例如添加 #include stm32f10x.h 添加stm32f10x_gpio.c、stm32f10x_usart.c 再在stm32f10x_conf.h 中去掉相应的头文件注释
[单片机]
<font color='red'>STM32</font>的官方库函数调用
STM32学习之路-中断优先级
优先级的问题可以分为以下情况: 抢占优先级和响应优先级 (1)抢占优先级高的可以打断抢占优先级低的,形成嵌套. (2)抢占优先级相同时,看响应优先级.如果两个中断前后发生的话,后来的中断不能打断前一个中断 只能等,如果两个中断同时发生的话,则响应优先级高的先响应. (3)抢占级别和响应级别都一样时,按照中断的地址来响应,地址低的先响应 这样就解决了优先级的问题. 哪个级别高呢? 0 1 2 ...... STM32共有5组分别是0-4组,还是借那个图 可以看到第4组所有的位都用来设置抢占式优先级了(占先式),所以它能嵌套15个中断,然后自身一个中断,一次类推 0组只有响应式优先级,所以它不能
[单片机]
<font color='red'>STM32</font>学习之路-中断优先级<NIVC(2)>
STM32开发板基础教程(十) - RTC初探
STM32的RTC实际是一个独立的定时器。 下面将介绍如何使用RTC。 我们将头一次牵扯到振源的问题。 首先介绍一下STM32使用的各种振源。 有三种 HSE: 外置晶振 HSI: 内置RC振荡 LSE: 外置RTC振荡(32768居多) APB1 和 APB2 是经过PLL以后的振荡源。 STM32启动,首先使用的HSI振荡,在确认HSE振荡可用的情况下,才可以转而使用HSE, 当HSE出现问题,STM32可自动切换回HSI振荡,维持工作。 LSE振荡则是专门供RTC使用。 LSE晶振需要特别注意。 STM32非常奇怪,要求使用 6p负载的晶振, 市面买到的时钟晶振,绝大多是是12.5pF的 算是一个不小的bug, 大家
[单片机]
电力行业,米尔STM32MP135开发板IEC61850协议移植笔记
1. 概述 IEC61850是变电站自动化系统(SAS)中通信系统和分散能源(DER)管理的国际标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得智能变电站的工程实施变得规范、统一和透明,在电力和储能系统中应用非常广泛。 本文基于米尔MYD-YF13X开发板,在Linux系统上移植和使用开源的libIEC61850库,该库提供了用C语言编写的IEC 61850 / MMS,IEC 61850 / GOOSE和IEC 61850-9-2 /采样值通信协议的服务端和客户端库。 2. 搭建配置环境 本章节讲述libIEC61850库的编译环境配置过程。 2.1. 安装JAVA环境 IEC61850库中
[嵌入式]
电力行业,米尔STM32MP135开发板IEC61850协议移植笔记
STM32超值系列探索套件为低成本设计项目带来32位的设计优势
意法半导体最近发布了STM32F030超值系列微控制器探索套件(Discovery Kit)。STM32F030于今年7月发布,拥有32位的性能,而价格仅为32美分,是该产品的最大亮点。 STM32F0308探索套件是是一个价格亲民而又简单易用的开发工具套件,让设计人员能够快速评估STM32F030超值系列微控制器的功能,并迅速启动开发项目。该套件在出厂前已经过配置,设计人员可以直接使用。通过USB端口供电或使用单独的电源,套件上上有扩展排针,可快速连接微控制器的全部I/O引脚。STM32F030R8T6微控制器采用64引脚封装,内置64KB闪存和8KB RAM。 STM32F030超值系列微控制器让低端嵌入式设计使用
[单片机]

推荐帖子

电子设计师必读-可靠性设计100条
据说来自于航天部一位已去世的前辈呕心沥血之作电子设计师必读-可靠性设计100条haodongdong收藏了
tonytong 单片机
【STM32H7S78-DK】 七 特殊功能计算器
【STM32H7S78-DK】七特殊功能计算器【STM32H7S78-DK】一开箱贴【STM32H7S78-DK】二touchgxf环境搭建和基本测试【STM32H7S78-DK】三touchgxf和stm32cubeide和led按键测试【STM32H7S78-DK】四下载失败问题及解决、计数器实现及分析【STM32H7S78-DK】五乱序键盘实现及分析【STM32H7S78-DK
damiaa stm32/stm8
心电图(ECG)信号链的模拟基础(一)
ECG机的基本功能包括ECG波形显示(通过LCD显示屏或印刷纸媒质显示)、心跳律动指示以及通过按钮控制的简单用户界面。越来越多的ECG产品要求具备更多的功能,例如通过便携式媒体存储电子病历、无线/有线传输以及在具有触摸功能的大型LCD显示屏上显示2D/3D图像。在本视频中,德州仪器的应用工程师将为您介绍TI的ECG解决方案和最新产品。本视频共分为四个部分,本视频为第一部分。欲知更多,请关注我的其他分享~ 心电图(ECG)信号链的模拟基础(一)看看视频,学习学习
德州仪器_视频 模拟与混合信号
【R7F0C809】之学习笔记-温度记录器
1下载相关学习文档拿到开发板,可以学习了,先下载相关文档,整理如下所示【R7F0C809】之学习笔记-温度记录器感谢分享~软件相关文档低功耗MCU实战手册
lansebuluo 瑞萨电子MCU
【CY8CKIT-149 PSoC 4100S测评】+LED开关计数与LCD显示(结项报告)
本项目将CY8CKIT-149PSoC4100S作为控制核心,通过外接LCD1602作为显示设备,外接按键和LED作为信号接收与显示测试。整个项目硬件如下图所示。其中PSoC板子上的按键和外接的按键共用一个引脚,目的是测试外接的按键与板子上的按键效果一样。PPSoC板子上的LED和外接的LED也共用一个引脚,但PSoC板子上的LED为低电平点亮,自制板子上的LED为高电平点亮。项目实现的功能通过按键来控制LED的亮灭,同时将LED的状态(PSoC板子上的那个LED)显示在LCD
DDZZ669 单片机
用ccs 调试出来的tm4c123gh6pz的彩屏
记得在编译链接之前要添加好预编译指令:用ccs调试出来的tm4c123gh6pz的彩屏
binboy123 微控制器 MCU
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved