
|
USB_CDC_HOST 标准库里边USBH_DeAllocate_AllChannel()函数的疑问?
STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常,发现不进tick中断,IIC读数卡死在准备查询循环中。
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
STM32F407的flash读写问题
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
询问STM32F407两种USB可以实现的功能
TOF传感器(VL53L5),无法得到data ready
中断如果没有多线程情况下,搬运到RAM可以在擦FLASH时可以正常执行,一旦加了RT多线程,我把中断搬到RAM区其擦FLASH时不会执行中断,其他线程也不会被调度
我使用了Bootloader引导启动,程序烧录FLASH,Bootloader将该程序拷贝到RAM区,然后跳转到该RAM区,FLASH相当于只做存储。任然不能使程序在擦FLASH期间正常运行。
在看汇编时发现,其执行的时候还是在执行FLASH区域的程序,并没有执行RAM区程序
(这有可能是因为我调试主程序并没有经过Bootloader引导)
不知道你是部分函数搬迁还是所有的代码都在RAM执行。如果是前者,我记得常量数据初始化的时候是没有搬迁的,另外你搬迁的这个函数调用的子函数的执行地址按道理也没有搬迁。(我不太确定,需要你自己做个试验。有结果告诉我。)
围观高手解答
理论上这时候如果产生中断,中断服务函数也应该放在RAM中。
.sct文件中加载与运行地址之前均为FLASH区,我尝试把加载,运行改到片外RAM区,可以编译,烧录时出现Error-Flash Download failed Cortex-M4错误
如果是只有中断,可以放在ram区执行,擦FLASH不影响中断执行。可是我加了线程,中断放进ram他也不执行了,主要我还想要在擦FLASH时执行其他线程
[md]我主程序烧录地址是0x8020000,大小:0x20000,我拷贝的时候是直接从这个地址开始所有数据全部拷贝到片外RAM
这个是物理上的特征。 程序擦除和烧录时,是不能访问FLASH的。
所以此时任何放在FLASH中的代码都不能被执行。 这也是为什么后面的芯片有双BANK的原因之一。
[md]比方说你函数相互调用的时候,你的程序挑战的地址应该在那里?你可以单步调试看一下。我感觉只是这样copy好像不行。
双bank是一个解决方案。