
本帖最后由 rcwind_3027982 于 2018-4-22 19:59 编辑 我们现在开发的一个产品需要使用BootLoader功能做程序跳转用,产品代码使用的stm32cube mx配置的,芯片是stm32f407vet6,但是发现一些问题: 1.BootLoader使用usart2的dma发送功能打印日志用,如果程序在跳转前不__set_PRIMASK(1)关全局中断,APP里初始化usart2(使用dma发送接收功能)的时候会死掉,注释usart2的初始化就正常了,看起来像是死在了dma配置这里; 以下是BootLoader跳转代码: 以下是APP的初始化代码: jlink跟踪调试call stack: 2。基于第一个问题,跳转前__set_PRIMASK(1)关全局中断,在APP里__set_PRIMASK(0)开全局中断,APP跑不起来,也是死在了usart2初始化里,这个开全局中断位置有点讲究,放到usart2初始化后面可以跑起来。 3.使用BootLoader功能似乎会影响APP程序,APP配置起始地址为0x800C000,tim1的ch1和ch2映射到pa8,pa9,配置为正交编码器模式,无法计数,jlink跟踪tim1的cnt一直不变,但是配置成pwm输出是有pwm波形的。如果不使用BootLoader,APP起始地址设置为0x8000000,那tim1配置为正交编码器是可以计数的。 不知道啥原因? 以上,keil使用的版本如下: cubemx版本如下: 哪位大哥可以解答一下,困扰好久了!!! 附件是编译的bin文件,工程配置只有rom偏移地址和VECT_TAB_OFFSET配置不一致,其他的都是一样的。 |
binæ件.zip
下载324.9 KB, 下载次数: 8, 下载积分: ST金币 -1
盘古UE-STM32F407工控板原理图
STM32F407 定时器触发DMA 求助大神
【MCU实战经验】基于STM32F407的音频播放器设计
【STM32F429心得\疑问】+STM32F4之FSMC和FMC
STM32F429读取IO口传输的数据速率
STM32F407ZGT6 手摸芯片背部重启
STM32F4 SPI 动作时,软件片选信号被拉高,IO口程序逻辑失控
STM32F401RE NUCLEO求助,串口一直不能进中断
读取STM32F407内部温度传感器值错误
STM32F429多路内部ADC独立采集的办法
评分
查看全部评分
评分
查看全部评分