优 秀 工 具 助 力 嵌 入 式 应 用 的 开 发 效 率 盛 磊 东 亚 区 高 级 工 程 师 IAR 上 海 办 事 处 2005-07 07-0909 Tel: 021-6267 0236
IAR 公 司 概 要 成 立 于 1983 年 总 部 位 于 瑞 典 第 四 大 城 市 乌 普 萨 拉 于 1986 年 推 出 世 界 上 首 个 嵌 入 式 C 编 译 器 是 一 家 世 界 领 先 的 8/16/32 位 嵌 入 式 开 发 软 件 工 具 供 应 商 2000 年 在 瑞 典 斯 德 哥 尔 摩 证 券 市 场 成 功 上 市 在 世 界 各 地 拥 有 70 000 多 个 用 户 业 务 遍 及 世 界 各 地, 共 有 50 多 个 代 理 商 www.iar.com *) AVR 芯 片 是 IAR 与 Atmel 合 作 设 计 的 经 典 案 例
From Idea to Target IAR 产 品 IAR 产 品
IAR 工 具, 成 就 您 快 速 的 嵌 入 式 开 发 传 统 的 开 发 典 型 的 借 助 辅 助 工 具 的 开 发 基 于 IAR 工 具 的 开 发 分 析 不 规 范 的 分 析 一 些 需 求 分 析 和 建 模 设 计 工 具 UML SDL SA Informal method 设 计 验 证 不 充 分 的 设 计 测 试 & 错 误 定 义 非 常 严 格 IAR visual STATE 编 码 集 成 手 工 编 码 手 工 编 码 Embedded Workbench MakeApp 手 工 编 码 我 们 的 宗 旨, 就 是 帮 助 用 户 做 出 优 质 紧 凑 的 代 码
IAR Embedded Workbench - 模 块 组 成 IDE Host Application Text Editor Project Manager Debugger GUI Custom editors, HW configurators, PROM programmers etc. Tool chain C-SPY Debugger kernel Compilers, assemblers Linker, libraries Simulator Driver JTAG emulator, BDM, ROM-monitor, etc. RTOS support (optional) Custom plug-ins
使 用 IAR WorkBench 的 软 件 开 发 流 程 <design>.c (C-Code) <design>.h (Include Files) <design>.s79 (Assembly Code) IAR C/C++ Compiler IAR Assembler <various>.r79 (Library Files) <design>.r79 (Object File) <design>.r79 (Object File) <design>.xcl (Linker File) IAR Linker <design>.map (Map File) UBROF Object File with Debug Information <design>.d79 <design>.a79 Linker can produce multiple output files at the same time e.g. Motorola- S19, Intel- Hex... ddf-file IAR Debugge r OS support for CMX-RTX ThreadX Segger- Embos uc-osii RTXC Quadros Fusion IAR Simulator RDI-support from ARM Jeeni/ EPI Raven Wiggler Angel -Monitor
用 户 会 关 心 的 一 些 问 题 如 何 开 发 出 具 有 成 本 竞 争 优 势 的 产 品? 可 以 选 择 更 低 主 频 的 芯 片 吗? 可 以 选 择 更 少 片 上 内 存 的 芯 片 吗? 如 何 提 高 产 品 的 可 靠 性? 系 统 结 构 有 缺 陷 吗? 程 序 中 除 了 语 法 错 误 以 外, 还 有 其 他 不 可 靠 的 隐 患 因 素 吗? 如 何 缩 短 研 发 周 期, 提 高 研 发 成 功 率? 有 更 好 更 快 的 开 发 方 法 吗? 能 有 效 地 重 复 利 用 已 有 代 码 吗?
IAR 优 化 技 术 帮 助 用 户 降 低 芯 片 使 用 成 本 同 等 条 件 下,IAR, 的 工 具 能 帮 助 用 户 产 生 最 为 精 简 的 代 码, 这 是 IAR 在 大 规 模 生 产 的 电 子 行 业 获 得 佳 绩 的 原 因 ; 同 等 条 件 下, IAR 的 工 具 能 帮 助 用 户 产 生 执 行 速 度 非 常 快 的 代 码, 这 是 IAR 在 对 代 码 速 度 要 求 颇 为 苛 刻 的 汽 车 电 子 行 业 成 为 领 先 工 具 供 应 商 的 原 因 ; 用 户 可 以 灵 活 平 衡 速 度 和 代 码 大 小 的 配 置 ;
出 色 的 编 译 效 率 IAR EWAVR v3.20a 和 ICCAVR Pro version 6.30D 140 120 100 128K 测 试 程 序 EIT: 在 Atmel Embedded Internet Toolkit 上 的 C 源 代 码 EPS: 一 个 完 整 的 嵌 入 式 协 议 栈, 大 约 50 万 行 C 代 码 80 60 40 20 64K 32K 测 试 说 明 测 试 芯 片 : ATmega103 两 者 都 设 定 了 最 高 级 别 的 优 化 率 EWAVR:-Z9 ICCAVR: Enable code compression 0 EIT EPS 1 2 图 例 显 示 了 编 译 后 的 程 序 大 小, 单 位 是 bytes, 表 示 所 需 ROM 总 容 量 大 小, IAR ICC 包 括 常 量
使 用 不 同 工 具 对 最 终 产 品 成 本 的 影 响 以 下 价 格 差 别 基 于 大 批 量 采 购 ATmega 芯 片 的 假 设 芯 片 类 型 1,000 片 10,000 片 Type A 4.60 USD per unit 3.80 USD per unit Type B 6.75 USD per unit 5.50 USD per unit 我 们 可 以 看 到, 使 用 低 端 编 译 器 的 公 司, 每 个 产 品 上 将 多 使 用 约 1.70 美 元 的 额 外 片 上 内 存 : 年 使 用 量 10,000 片 的 话 => 每 年 节 约 17,000 USD/ 年 假 设 该 产 品 生 命 周 期 为 3 年... 在 3 年 中,IAR, 编 译 工 具 可 为 公 司 节 约 51,000 美 元 *)AVR 的 具 体 价 格 请 咨 询 Atmel 各 代 理 商
开 发 方 法 : 从 ANSI C 到 C++? 需 求 应 用 更 大 更 复 杂, 要 求 简 化 开 发 方 法 ; 有 效 地 重 复 利 用 已 开 发 代 码 ; 自 身 的 代 码 将 更 多 与 第 三 方 库 供 应 商 的 库 结 合 ; 嵌 入 式 开 发 需 要 C++ 的 方 法? 问 题 C++ C++ 的 一 些 特 性 如 多 重 继 承 等 和 C++ C++ 的 一 些 标 准 函 数 库 将 导 致 产 生 大 量 的 冗 余 代 码, 而 嵌 入 式 环 境 中 硬 件 资 源 非 常 有 限 ; IAR 解 决 方 案 Embedded C++ 支 持 (1998 年 ) 由 嵌 入 式 C++ 国 际 组 织 制 定 ; 是 标 准 C++ 的 一 个 子 集, 针 对 嵌 入 式 开 发 ; 保 留 了 C++ 面 向 对 象 开 发 的 方 法 ; 去 除 了 C++ 会 产 生 冗 余 代 码 的 特 性 ; IAR Extended Embedded C++ 支 持 (2004( 年 ) 由 IAR 的 工 程 师 制 定 ; 增 补 了 适 合 嵌 入 式 开 发 的 标 准 模 板 库 (STL); 增 补 了 适 合 嵌 入 式 开 发 的 多 重 继 承 和 虚 函 数 继 承 ; IAR Debugger 支 持 STL 容 器 的 显 示 ; C++ C++ 的 标 准 尚 在 变 化 中, 工 具 也 很 难 做 定 型 ; C++ 不 适 合 嵌 入 式 开 发?
MISRA C 检 查 模 块 : 帮 助 找 出 不 安 全 的 C 代 码 关 于 MISRA Motor Industry Software Reliability Association( ( 汽 车 工 业 软 件 可 靠 性 协 会 ) 关 于 MISRA C ISO C 定 义 了 Syntax,, 但 没 有 指 出 怎 样 才 能 写 出 好 的 代 码 ; MISRA C 定 义 了 一 套 编 程 规 则, 以 描 述 如 何 开 发 安 全 C 代 码 ; 最 新 的 定 义 是 Guidelines For the Use Of The C Language In Vehicle Based Software 由 MISRA 协 会 于 1998 年 4 月 发 布 ; IAR 从 04 年 起 首 家 提 供 MISRA C 校 验 模 块, 涵 盖 了 所 有 127 条 规 则
开 发 方 法 : 图 形 化 UML 建 模 和 系 统 验 证? 紧 凑 的 ANSI C/C++ 代 码 生 成, 主 体 程 序 :600: byte 到 2k 即 时 生 成 的 开 发 文 档 实 时 性 要 求 不 高 的 应 用 中, 其 任 务 安 排 的 功 能 相 当 于 简 单 操 作 系 统
思 考 : 从 8051 到 AVR 再 到 ARM,, 重 组 研 发 团 队 架 构 的 可 能? 总 工 程 师 高 级 工 程 师 系 统 建 模 项 目 管 理 系 统 建 模 项 目 管 理 系 统 建 模 主 程 序 生 成 主 程 序 编 写 主 程 序 编 写 工 程 师 函 数 编 写 8051 团 队 函 数 编 写 AVR, ARM 团 队 函 数 编 写 芯 片 对 应 统 一 的 研 发 团 队 传 统 研 发 团 队 主 要 由 大 量 中 高 级 工 程 师 构 成, 人 力 成 本 高 ; 因 芯 片 更 替 不 断 重 组 研 发 队 伍 ; 工 具 芯 片 学 习 成 本 昂 贵 ; 原 有 代 码 无 法 被 重 用, 应 用 发 展 缓 慢 ; 理 想 的 研 发 团 队 高 中 低 层 次 工 程 师 有 机 结 合 ; 系 统 架 构 队 伍 稳 定, 不 需 重 组 ; 工 具 芯 片 学 习 周 期 短 ; 原 有 代 码 可 重 复 使 用 ; 研 发 团 队 专 注 于 发 展 应 用 ; 案 例 : 爱 立 信 公 司 在 手 机 芯 片 从 Zilog 升 级 到 AVR 的 平 台 时, 使 用 了 IAR 的 工 具,200 万 行 代 码 1 周 内 全 部 移 植 完 毕, 创 造 了 业 界 的 一 个 传 奇
IAR 针 对 Atmel 芯 片 的 系 列 工 具 类 别 8052 AVR ARM 说 明 Embedded WorkBench EW8051-BL EW8051-LE EW8051 EW8051-PRO EW8051-KS EW8051-EV EWAVR-BL EWARM-BL C 编 译 代 码 限 制, 带 函 数 库, 全 功 能 EWAVR-LE EWARM-LE 没 有 调 试 模 块 EWAVR EWARM 全 功 能 EWAVR-PRO EWARM-PRO 标 准 版 基 础 上 增 加 图 形 化 建 模 模 块 EWAVR-KS EWARM-KS C 编 译 代 码 限 制, 无 函 数 库, 汇 编 无 限 制 EWAVR-EV EWARM-EV 全 功 能, 无 函 数 库,30 天 有 效 期 MakeAPP MP8051 MPAVR MPARM 自 动 生 成 驱 动 VS8051 VSAVR VSARM 针 对 单 类 芯 片,UML 建 模, 代 码 和 文 档 生 成 VisualSTATE VisualSTATE Premium Open All VisualSTATE-KS 适 用 于 所 有 8 位 /16 位 /32 位 的 单 片 机 20 个 状 态 机 限 制 的 学 习 版 *) IAR 和 Atmel 于 3 月 初 共 同 推 出 了 低 价 的 AT91SAM7 开 发 工 具 包
在 iar.com 上 可 找 到 的 资 源 学 习 素 材 4k EWAVR, 32K EWARM,MPAVR MPAVR Mega 等 免 费 软 件 ; 软 件 使 用 演 示 (Flash 格 式 ) 例 程 技 术 白 皮 书 技 巧 与 评 测 技 巧 : 如 何 调 试 Embedded WorkBench 以 得 到 最 优 代 码 ; 第 三 方 报 告 : 和 其 他 同 类 工 具 的 性 能 评 测 ;
Embedded Workbench Demo
谢 谢