揭 开 BOOT LOAD 升 级 过 程 的 神 秘 面 纱【 整 理 者 】 61ic.com【 提 供 者 】 毅 毅【 详 细 说 明 】 揭 开 BOOT LOAD 升 级 过 程 的 神 秘 面 纱在 没 有 接 触 BOOTLOAD 之 前 , 看 着 别 人 搞 这 “玩 意 儿 ”, 觉 得 是 一 个 很 有 技 术 含 量 的 事 , 当 细 细的 去 “品 ”过 后 , 也 就 是 那 么 一 回 事 , 作 技 术 就 是 要 深 专 , 只 要 “钻 ”进 去 了 , 在 某 一 时 刻 就 会 恍然 大 悟 。 今 天 就 将 我 对 BOOTLOAD 升 级 过 程 的 理 解 和 大 家 分 享 分 享 。BOOTLOAD 并 不 是 只 有 arm 中 才 有 的 , 其 它 的 嵌 入 式 系 统 甚 至 PC 上 都 会 有 bootloader, 主要 的 作 用 就 是 引 导 操 作 系 统 。 在 硬 件 起 动 后 , 硬 件 设 备 尚 未 初 始 化 , 直 接 加 载 体 积 较 大 的 系 统比 较 困 难, 有 时 甚 至 无法加 载 , 如系 统 内核在 网络上 的 情况, 所以常常在 系 统 运行前 , 提 供 一个 体 积 较 小但又具体 初 始 化 基本软硬 件 环境的 程 序来运行, 由它 来载 入 系 统 并 设 置系 统 运行参数, 并 最终运行系 统 , 这 就 是 bootloader。它 可以分 为两大 类, 一 类BOOTLOAD 是 芯片在 出厂时 , 生产商固化 在 ROM 中 的 BOOTLOAD;二类BOOTLOAD 是 用 户在 设 计过 程 中 , 根据实际工程 的 需要 设 计一 小段代码, 使新的 应用 程 序从非JATG 接 口引 导 到ROM 区或RAM 区。 其 实这 两类在 功能上 都 差不 多。 本文讨论二类BOOTLOAD, 讨论以Cotex-M3内核的 LM3S 系 列处理 器为对 象。 代码和 编译器是 基于IAR5.11版本。我 们都 知道任何程 序都 是 从复位开 始 执行起 走的 , BOOTLOAD 也 不 例外。 当 芯片复位后(软、硬 件 复位, 掉电复位等), 系 统 产生复位中 断, 执行复位中 断服务程 序, 复位中 断的 优先级 最高, 所以不 需要 考虑有 谁可以打断它 (专 心做它 自己的 事 )。 当 然 , 程 序员就 可以在 复位中 断里面 打芯片的 主 意 了 ...