共2条
1/1 1 跳转至页
问
看了相关的帖子,说在2104上用IAP除了要关中断还要关MAM和PLL
于是在执行IAP函数之前添加一个IAPEnter,执行完后添加一个函数IAPExit
__inline void IAPEnter(void)
{
__asm{MSR CPSR_c,#0xdf}
MAMBack=MAMCR;
MAMCR=0;
PLLBack=PLLCON;
PLLCON=0;
PLLFEED=0xAA;
PLLFEED=0x55;
}
__inline void IAPExit(void)
{
MAMCR=MAMBack;
PLLCON=PLLBack;
PLLFEED=0xAA;
PLLFEED=0x55;
__asm{MSR CPSR_c,#0x5f}
}
将RAM的一段数据复制到FLASH,成功后点亮一个LED,发现自从添加了这2个函数,点亮LED的时间间隔很长,估计要将近1秒,而且10次里面还有可能1,2次操作没成功,这个IAP到底要注意什么啊?我可是要在整个系统中用的,不是一个单独的测试啊 答 1: re:您关闭PLL后重新设置PLL的时候,都没有等待PLL锁定。
请参考PLL的使用说明,参考启动代码进行设置。
于是在执行IAP函数之前添加一个IAPEnter,执行完后添加一个函数IAPExit
__inline void IAPEnter(void)
{
__asm{MSR CPSR_c,#0xdf}
MAMBack=MAMCR;
MAMCR=0;
PLLBack=PLLCON;
PLLCON=0;
PLLFEED=0xAA;
PLLFEED=0x55;
}
__inline void IAPExit(void)
{
MAMCR=MAMBack;
PLLCON=PLLBack;
PLLFEED=0xAA;
PLLFEED=0x55;
__asm{MSR CPSR_c,#0x5f}
}
将RAM的一段数据复制到FLASH,成功后点亮一个LED,发现自从添加了这2个函数,点亮LED的时间间隔很长,估计要将近1秒,而且10次里面还有可能1,2次操作没成功,这个IAP到底要注意什么啊?我可是要在整个系统中用的,不是一个单独的测试啊 答 1: re:您关闭PLL后重新设置PLL的时候,都没有等待PLL锁定。
请参考PLL的使用说明,参考启动代码进行设置。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |