这个问题问的好, 涉及到了很多问题. 我这里抛砖引玉, 大家来指正.<br />1, 一般来说, 烧写在FLASH里的代码是RO+RW, 所谓的更新代码也就是把新的RO+RW烧写进去.<br />2, 烧写好用户代码后, 要保证用户能正确运行, 必须初始化RW+ZI(RW复制, ZI清零), 这个是用户程序的职责, 如果你使用keil, 调用__main会自动完成这个工作, 然后跳转到用户主程序main.<br />3, bootloader一般用来更新全部用户或部分用户代码, 当然, 它也只是更新RO+RW部分, 至于初始化RW+ZI, 那就是你刚刚更新的代码的工作了.<br />参考资料<ARM体系结构与编程>
|