STM32 iap 关键点记录

发布者:星光闪耀最新更新时间:2021-03-18 来源: eefocus关键字:STM32  iap  关键点 手机看文章 扫描二维码
随时随地手机看文章

想到公司的单片机程序更新太频繁,而且都是在生产现场作业,而下载程序对我来说太费时间,对操作员来说又太复杂,于是就研究研究iap,看看能不能降低复杂度。


我是在st官网的iap例程基础上调试的,例程里芯片是stm32f2xx,而我的板子是stm32f103,需要些调整,改下芯片,掉换下函数库,编译不过的地方改一改,ok,编译下载跑起来。。。


接下来就比较费时间了,例程里只有bootloader部分,没有app部分的工程,对与一个没有接触过iap的人来说就不知从哪下手了,于是各种baidu,气人的是Jlink和stlink不知道被人拿哪里去了,只能用串口各种调试,最后终于能从Bootloader跳转到app里了。下面给些关键部分的截图,防止下次再做时忘了。




这张是app工程里设置程序的起始地址,第一张和第二张红色部分都要选上,尤其是第二张粗笔框的地方,我忘了选上,结果程序怎么改都跑不起来。



这个命令用来把hex文件转换成bin文件,bin文件用超级终端下载后才能跑起来。



这个是在例程里需要改的,应用程序放在哪个地址上,根据bootloader的大小调整。



app的主函数的第一句话,重定位向量表。


关键字:STM32  iap  关键点 引用地址:STM32 iap 关键点记录

上一篇:STM32的瞬态运动参数存储测试系统设计
下一篇:关于STM32的中断问题集锦

推荐阅读最新更新时间:2024-11-09 13:11

STM32Cube.AI将神经网络转换为STM32的优化代码
STM32Cube.AI是业界最先进的工具包,能够与流行的深度学习库互操作,以转换任何用于 STM32 微控制器的人工神经网络( MCU)运行优化推理。该软件套件包括 X-Cube 扩展软件X-CUBE-AI 、为我们的SensorTile 开发套件 (STEVAL-STLKT01V1)提供应用示例的功能包FP-AI-SENSING1,以及对我们的ST BLE 传感器的更新为功能包的演示提供 GUI 和控件的 iOS 和 Android 应用程序。仅发布这些解决方案已经是一个开创性的公告,因为目前没有任何工具可以与此功能集相媲美。然而,STM32Cube.AI 不仅仅是一个简单的工具包,而是反映了我们希望通过将神经网络带给所有 S
[单片机]
stm32串口dma发送/接收程序
  串口可以配置成用DMA的方式接收数据,不过DMA需要定长才能产生接收中断,如何接收可变长度的数据呢?   方法有以下3种:   1.将RX脚与一路时钟外部引脚相连,当串口一帧发完,即可利用此定时器产生超时中断。这个实时性较高,可以做到1个字节实时监测。   2.不改变硬件,开启一个定时器监控DMA接收,如果超时则产生中断。这个实时性不高,因为超时时间必须要大于需要接收帧的时间,精度不好控制。   3.STM32单片机有的串口可以监测总线是否处于空闲,如果空闲则产生中断。可以用它来监测DMA接收是否完毕。这种方式实时性很高。   串口DMA发送:   发送数据的流程:   前台程序中有数据要发送,则需要做如下几件事   1.
[单片机]
<font color='red'>stm32</font>串口dma发送/接收程序
STM32系列芯片的命名规则
  示例:     从上面的料号可以看出以下信息:   ST品牌ARMCortex-Mx系列内核32位超值型MCU,LQFP-48封装闪存容量32KB温度范围-40℃-85℃;      1.产品系列:   STM32代表ST品牌Cortex-Mx系列内核(ARM)的32位MCU;   2.产品类型: F:通用快闪(FlashMemory);   L:低电压(1.65~3.6V);   F类型中F0xx和F1xx系列为2.0~3.6V;F2xx和F4xx系列为1.8~3.6V;   W:无线系统芯片,开发版。   3.产品子系列:   050:ARMCortex-M0内核;   051:ARMCortex-M0内核;  
[单片机]
<font color='red'>STM32</font>系列芯片的命名规则
基于STM32中调试与串口之间的信息传输
问题:在使用STM32调试时,经常使用串口发送信息,为了方便调试与串口发送信息,用printf()函数实现通过串口打印信息。 方法一: 1.添加包含printf()函数的头文件:#include “stdio.h” 2.重写 stdio.h 头文件中的 int fputc(int ch, FILE *f) 函数 int fputc(int ch, FILE *f) { while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); //等待先前的字符发送完成 USART_SendData(USART1, (uint8_t) ch); //发送字符 return ch;
[单片机]
操作BASEPRI特殊功能寄存器时无效解决方法(上)
有STM32用户发现在操作BASEPRI特殊功能寄存器时,根本不起作用。比方,它目前配置了几个中断,优先级各不相同,按照STM32CubeMx里的配置分别为2、3、4不等,当他在BASEPRI寄存器里写这几个数字中的任意一个时,发现BASEPRI的数字始终是0,没有任何效果。 我们知道,通过配置BASEPRI寄存器非0值来给系统中的中断响应设置门槛,当中断优先级低于某个级别时将不会得到CPU的响应执行,也就是说只有中断优先级高于某个级别时才能得到响应。下面截图是来自ARM CORTEX M4技术手册中有关BASEPRI寄存器的描述。 从这里可以看到该寄存器的有效配置位有8位,对其写0无意义,或者说放弃设置中断响应门槛功
[单片机]
操作BASEPRI特殊功能寄存器时无效解决方法(上)
STM32失能时钟和复位外设的区别
在STM32参考手册中,都有Reset and Clock Control(RCC)复位和时钟控制的章节。 在这一章节就可以看到有两类寄存器: peripheral reset register(RSTR)外设复位寄存器。 peripheral clock enable register(ENR)外设时钟使能寄存器。 我们拿STM32F1参考手册为例,可以看到如下图寄存器: 一种是控制外设时钟的寄存器,一种是复位外设的寄存器。 外设时钟使能和失能 我们都知道,配置STM32外设,会先开启对应的时钟(也就是使能外设时钟)。 比如使能USART1时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph
[单片机]
<font color='red'>STM32</font>失能时钟和复位外设的区别
STM32内部EEPROM的使用方法
STM32内部的EEPROM其实是Flash模拟的,也就是会占用程序的存储空间,下载的程序也放在这个地方,不过L系列单独给eeprom分配的有位置,理论上所有的STM32都可以使用这个方法,但是要注意程序越大占用的空间越多,不要和程序覆盖在一起。 大家可能使用的型号都不同,我们首先在官网下载对应型号的参考手册 网址:意法半导体STM | STM32/STM8微控制器 | MCU单片机 STEP.2 打开pdf文档找到 Flash program memory and data EEPROM (FLASH) 这里有详细的说明 找到对应的内存的设备 示意: L071是196KB的所以是这个表格 STEP.3 开
[单片机]
<font color='red'>STM32</font>内部EEPROM的使用方法
STM32如何确定执行哪个中断函数
如下面所示: NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; //NRF24L01 中断响应 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级 0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子优先级为1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能 NVIC_Init(&NVIC_InitStructure); 则对应的中断函数就是 STM3210x_
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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