3)偶然的机会发现,写入数据后,使用 “flash erase_check” 走一下,然后再通过 “flash mdw” 命令就可以看到正常值,然后就把 “flash erase_check” 对应的回调函数 “default_flash_blank_check” 添加到每次更新操作的后面,结果非常消耗时间。这样不行啊,再去翻 AIR105.FLM 解析内容,通过 “Cache_CleanAll()...
3)解析 AIR105.FLM 文件见 “附录1:调用 AIR105.FLM 算法的尝试”。 1.4 第四次尝试 1)再回头去仔细研究上面的大佬代码,这位大佬的情况好像是先从 FLASH 中读取出 ROM API 的代码,然后将代码写入到 SRAM 中运行的。再看一下 Air105 官方的 ROM API 地址间隔 4 个字节,不像是一个函数的大小啊。 2)经...
这样不行啊,再去翻 AIR105.FLM 解析内容,通过 “Cache_CleanAll()” 函数猜测可能是缓存问题。 4)找到官方数据手册,把清除缓存的功能实现一下,再测试,终于正常烧录了。 通过 “flash read_bank 0 [filename]” 命令读取出来后,与镜像 HEX 文件一致。 2.3 header 2.3.1 无法正常启动 1)程序已经烧录成功,...
1.1 第一次尝试 1.2 第二次尝试 1.3 第三次尝试 1.4 第四次尝试 1.5 第五次尝试 2 测试 2.1 汇编传参问题 2.2 缓存 2.3 header 2.3.1 无法正常启动 2.3.2 串口烧录程序 2.4 烧录 .elf 文件 3 优化 3.1 DMA 3.2 多扇区擦除 4 附录1:调用 AIR105 FLM 算法的尝试 4...
这样不行啊,再去翻 AIR105.FLM 解析内容,通过 “Cache_CleanAll()” 函数猜测可能是缓存问题。 4)找到官方数据手册,把清除缓存的功能实现一下,再测试,终于正常烧录了。 通过 “flash read_bank 0 [filename]” 命令读取出来后,与镜像 HEX 文件一致。