
我在做一个IAP, 发现在跳转的时候栈顶指针的值会随着程序的Ram的使用量变化而变化, 多的时候0x20020000多,少的时候0x20010000多. 这样就导致完全没法判断了呀, 万一程序一升级使用的Ram少了那么使用0x20020000来判断不是过不了了吗? 以下是判断程序: if ((((__IO uint32_t )USER_FLASH_FIRST_PAGE_ADDRESS) & 0x2FFB0000) == 0x20020000) return (1); else return (0); |
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
STM32F407的flash读写问题
询问STM32F407两种USB可以实现的功能
TOF传感器(VL53L5),无法得到data ready
在CUBEMX生成的STM32F407VET6的I2S主机接收模式与I2S主机发送模式能正常运行,如何进行动态调整或者如何实现主机全双工?
STM32F407 多机RS485串口通讯+地址位唤醒+DMA空闲线接收,无法进入中断服务程序。
设置RDP等级为2的同时,有什么办法可以确保后续还能够烧录程序
STM32F407VET6 I2S 采用DMA传输问题
有STM32F4倒车雷达响应例程吗?
每个工程的栈指针是IDE根据链接文件生成的,也是各自独立的。
所以升级的时候,编译器添加的启动代码会重新分配RAM的。
那我这个地方怎么处理比较好呢?
if((((vu32)USER_FLASH_FIRST_PAGE_ADDRESS)&0x2FF00000)==0x20000000) 这样??放宽松点?
理论上和栈顶指针位置大小没什么关系了。
我看到例程也是这样判断的。