发现背景:以前有个工程是用的STM32F103RBT6(FLASH 128K)做的,从第127K(0x0801FC00)开始用来存储几十个字节的系统参数。
同时程序具有远程升级功能,没用网上流行的bootloader方式,自己研究了一个笨方案,因为我们的程序不足50K,把新固件先存在50K的位置,
然后覆盖回前面重启即可(覆盖这一段的程序指定存放在0x801B000的位置)。
后来公司又要做个精简版的产品,用了STM32103C8T6(FLASH 64K),CODE大概20几K。以前的程序直接下载进去,发现能正常工作!!!
参数也能正常保存和读取!!!!参数存在127K后面啊!!!
然后测试远程升级,居然也正常运行。。。。
照这看来,果然C8T6和RBT6,根本就是同一个东西打了不同的标也已,估计出厂的时候在内部ROM配置成了两种型号。。。
然而问题来了:C8T6 FLASH 64K 以后的位置能不能愉快的使用?多大风险?
|