当前位置: 首页> 汽车> 时评 > 动态网页设计实训总结_广州网络营销系统_石家庄seo_手机360优化大师官网

动态网页设计实训总结_广州网络营销系统_石家庄seo_手机360优化大师官网

时间:2025/7/11 0:27:50来源:https://blog.csdn.net/heraldww/article/details/144107417 浏览次数: 0次
动态网页设计实训总结_广州网络营销系统_石家庄seo_手机360优化大师官网

在做一个OTA升级程序的时候,发现单片机的一些flash问题
#首先第一个问题
当程序调用函数OTA_erase_middleWay_sector()之后,程序继续运行,程序运行速度明显减慢,而且运行会出现异常,比如内部的读写指针和读写计数器紊乱,但是没死机:

		OTA_erase_middleWay_sector(); //这个函数调用了系统函数void OTA_erase_middleWay_sector(){FLASH_Unlock(); //解锁写保护FLASH_EraseSector(dltSector,VoltageRange_3);//擦除这个扇区,按照字(32bit)擦除		FLASH_Lock();//上锁写保护		}

但是把函数OTA_erase_middleWay_sector()放在程序启动的时候运行一下,就没问题了。

#第二个问题
407的一些数据块是128K的数据块,如果拆分成2k,一次一次写入的话,在写到第二个包的时候会出错。
表现的现象也是写入后运行速度变慢,且写入的数据回读发现不对
但是我每次写入2k数据块之前、之后调用FLASH_Status()函数,它返回的总是9,也就是FLASH_COMPLETE
解决方法,一次写入整个大数据块,取消分块写入

void OTA_write_a_2k_block(struct pretty_buffer* pb,int block2k_sn)
{struct ptr_and_length pl;pl=pbuf_get_buf_PL(pb);u32 ba=STM32_dltFLASH_BASE+(2048*block2k_sn);Flash_WriteMoreData(ba,pl);	
}以下是OTA_write_a_2k_block层层调用的库函数
//-----------------------------------------------------					
/*******************************************************************************
* Function Name  : flash_write
* Description    : 内部flash写函数
* Input          : StartAddr flash起始地址*p_data 待写入数据指针countToWrite    写入数据的数量
* Output         : 0:正确执行,非0:出错
* Return         : None
* Attention      : 输入数据一定是u32 的指针,即数据一定是按照4字
节对齐写入的。所以:size也是u32的个数(字节数的4分之一)
*******************************************************************************///使用本函数要擦除,再用本函数写入,从指定地址开始写入多个数据
void FLash_WriteMoreData(uint32_t startAddress,uint16_t *writeData,uint16_t countToWrite)//每次写要128K,因为擦除时,一擦就是128K
{FLASH_Unlock();         //解锁写保护for(uint16_t di=0;di<countToWrite;di++){FLASH_ProgramHalfWord(startAddress+di*2,writeData[di]);}FLASH_Lock();//上锁写保护//return 1;
}
//-----------------------------------------------------
void Flash_WriteMoreData(uint32_t startAddress,struct ptr_and_length pl)
{u16* a=(u16*)pl.ptr;u16 b=pl.len;FLash_WriteMoreData(startAddress,a,b);
}
关键字:动态网页设计实训总结_广州网络营销系统_石家庄seo_手机360优化大师官网

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: