今天遇到了OTA功能失效问题,可是我又代码备份,几乎没啥大改动..把以前的备份代码烧进去,也没用,经常还会碰到printenv显示不全,并且遇到了setenv可以删除环境变量,却不能新增环境变量的经历。 问题多多啊,这到底是有几个问题呢,反正一头雾水。
拿自己的备份代码反复烧录,既然无法通过setenv的命令来手动设置环境变量,那么我想到直接通过代码来设置。最终也是依靠这一点想法,慢慢摸索,解决了我遇到的问题。
终于搞定了,就是这个参数导致的,每次修改此ENV_AREA_SIZE参数后,如果你的产品里(我用的是基于SPI flash的easyflash)本来已经有了ENV参数, 那么需要在使用最新的ENV_AREA_SIZE参数的keil工程内去重新把那些ENV参数设置一遍。 然后在烧录一次bootloader, 最后再烧录你的工作程序。
尽量以后不要修改此参数了,改完一次就OK了。