Hi3507 Linux开发环境用户指南



Similar documents
I

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

深圳市新亚电子制程股份有限公司

修改版-操作手册.doc

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 ( 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 ( 首 页

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

Template BR_Rec_2005.dot

《C语言基础入门》课程教学大纲

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

世华财讯模拟操作手册

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

登录、注册功能的测试用例设计.doc

Microsoft Word - 第7章 图表反转形态.doc

云信Linux SSH认证代理用户手册

2006年顺德区高中阶段学校招生录取分数线

第 一 部 分 MagiCAD for Revit 安 装 流 程

珠江钢琴股东大会


采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

全国教师资格认定管理信息系统

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

 编号:

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

Cybozu Garoon 3 管理员手册

上证指数

<443A5C6D B5C30312EB9A4D7F7CEC4B5B55C30322EBACFCDACCEC4B5B55C C30342EC8CBC9E7CCFC5C31332ECFEEC4BFC5E0D1B55C E30385C322EB2D9D7F7CAD6B2E12E646F63>

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

教师上报成绩流程图

<4D F736F F D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

Microsoft Word - 第3章.doc

目 录 第 一 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 硬 件 使 用 介 绍... 3 第 二 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 管 理 员 端 功 能 使 用 介 绍 系 统 管 理 员 登 陆 班

第2章 数据类型、常量与变量

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类


<4D F736F F D D323630D6D0B9FAD3A6B6D4C6F8BAF2B1E4BBAFB5C4D5FEB2DFD3EBD0D0B6AF C4EAB6C8B1A8B8E6>

中 国 软 科 学 年 第 期!!!

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以

证券代码: 证券简称:长城电脑 公告编号:

操作手册

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业


龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

生产支援功能 使用说明书(IP-110 篇)

Microsoft Word - 文件汇编.doc

4 进 入 交 互 区 设 置 的 组 件 管 理, 在 组 件 管 理 中, 教 师 可 以 选 择 课 程 空 间 中 的 所 有 组 件, 并 通 过 点 击 启 用 或 不 启 用 选 定 组 件 在 课 程 空 间 中 的 显 示 5 进 入 工 作 室 管 理 的 工 作 室 首 页,

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2

ETF、分级基金规模、份额变化统计

合 并 计 算 配 售 对 象 持 有 多 个 证 券 账 户 的, 多 个 证 券 账 户 市 值 合 并 计 算 确 认 多 个 证 券 账 户 为 同 一 配 售 对 象 持 有 的 原 则 为 证 券 账 户 注 册 资 料 中 的 账 户 持 有 人 名 称 有 效 身 份 证 明 文 件

网络保险箱客户端使用手册

(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc)

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日

名 称 生 命 科 学 学 院 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院

中国银行股份有限公司首次公开发行A股发行安排及初步询价公告

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅

收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 一 人 员 经 费 一 般 财 力 人 员 支 出 成 品

现 场 会 议 时 间 为 :2016 年 5 月 19 日 网 络 投 票 时 间 为 :2016 年 5 月 18 日 年 5 月 19 日 其 中 通 过 深 圳 证 券 交 易 所 交 易 系 统 进 行 网 络 投 票 的 时 间 为 2016 年 5 月 19 日 9:30-

01

徐天宏:《基因天堂》.doc

1 系统概述

中国石化油品销售企业CRM调研报告

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

<4D F736F F D C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>


Microsoft Word - 资料分析练习题09.doc

目 录 一 激 活 账 号... 2 二 忘 记 密 码 后 如 何 找 回 密 码?... 3 三 如 何 管 理 学 校 信 息 及 球 队 学 生 教 师 等 信 息... 6 四 如 何 发 布 本 校 校 园 文 化? 五 如 何 向 教 师 发 送 通 知? 六

联想电子订单操作指南

白皮书

2014年中央财经大学研究生招生录取工作简报

第 四 条 建 设 单 位 对 可 能 产 生 职 业 病 危 害 的 建 设 项 目, 应 当 依 照 本 办 法 向 安 全 生 产 监 督 管 理 部 门 申 请 职 业 卫 生 三 同 时 的 备 案 审 核 审 查 和 竣 工 验 收 建 设 项 目 职 业 卫 生 三 同 时 工 作 可

微软用户

!!!!!!!!!!

Transcription:

文 档 版 本 01 发 布 日 期 2011-07-12

2010 保 留 一 切 权 利 非 经 本 公 司 书 面 许 可, 任 何 单 位 和 个 人 不 得 擅 自 摘 抄 复 制 本 文 档 内 容 的 部 分 或 全 部, 并 不 得 以 任 何 形 式 传 播 商 标 声 明 海 思 和 其 他 海 思 商 标 均 为 深 圳 市 海 思 半 导 体 有 限 公 司 的 商 标 本 文 档 提 及 的 其 他 所 有 商 标 或 注 册 商 标, 由 各 自 的 所 有 人 拥 有 注 意 您 购 买 的 产 品 服 务 或 特 性 等 应 受 海 思 公 司 商 业 合 同 和 条 款 的 约 束, 本 文 档 中 描 述 的 全 部 或 部 分 产 品 服 务 或 特 性 可 能 不 在 您 的 购 买 或 使 用 范 围 之 内 除 非 合 同 另 有 约 定, 海 思 公 司 对 本 文 档 内 容 不 做 任 何 明 示 或 默 示 的 声 明 或 保 证 由 于 产 品 版 本 升 级 或 其 他 原 因, 本 文 档 内 容 会 不 定 期 进 行 更 新 除 非 另 有 约 定, 本 文 档 仅 作 为 使 用 指 导, 本 文 档 中 的 所 有 陈 述 信 息 和 建 议 不 构 成 任 何 明 示 或 暗 示 的 担 保 深 圳 市 海 思 半 导 体 有 限 公 司 地 址 : 深 圳 市 龙 岗 区 坂 田 华 为 基 地 华 为 电 气 生 产 中 心 邮 编 :518129 网 址 : http://www.hisilicon.com 客 户 服 务 电 话 : +86-755-28788858 客 户 服 务 传 真 : +86-755-28357515 客 户 服 务 邮 箱 : support@hisilicon.com

前 言 前 言 概 述 本 文 档 主 要 介 绍 Hi3507 Linux 开 发 环 境 的 搭 建, 列 出 开 发 时 的 Linux 服 务 器 需 要 的 开 发 环 境 本 文 档 提 供 Hi3507 单 板 环 境 参 数 设 置 参 考 产 品 版 本 与 本 文 档 相 对 应 的 产 品 版 本 如 下 产 品 名 称 Hi3507 芯 片 产 品 版 本 V100 读 者 对 象 本 文 档 ( 本 指 南 ) 主 要 适 用 于 以 下 工 程 师 : 技 术 支 持 工 程 师 软 件 开 发 工 程 师 符 号 约 定 在 本 文 中 可 能 出 现 下 列 标 志, 它 们 所 代 表 的 含 义 如 下 符 号 说 明 表 示 有 高 度 潜 在 危 险, 如 果 不 能 避 免, 会 导 致 人 员 死 亡 或 严 重 伤 害 i

前 言 符 号 说 明 表 示 有 中 度 或 低 度 潜 在 危 险, 如 果 不 能 避 免, 可 能 导 致 人 员 轻 微 或 中 等 伤 害 表 示 有 潜 在 风 险, 如 果 忽 视 这 些 文 本, 可 能 导 致 设 备 损 坏 数 据 丢 失 设 备 性 能 降 低 或 不 可 预 知 的 结 果 表 示 能 帮 助 您 解 决 某 个 问 题 或 节 省 您 的 时 间 表 示 是 正 文 的 附 加 信 息, 是 对 正 文 的 强 调 和 补 充 数 值 单 位 约 定 数 据 容 量 频 率 数 据 速 率 等 的 表 达 方 式 说 明 如 下 类 别 符 号 对 应 的 数 值 数 据 容 量 ( 如 RAM 容 量 ) 1K 1024 1M 1,048,576 1G 1,073,741,824 频 率 数 据 速 率 等 1k 1000 1M 1,000,000 1G 1,000,000,000 地 址 数 据 的 表 达 方 式 说 明 如 下 符 号 举 例 说 明 0x 0xFE04 0x18 用 16 进 制 表 示 的 数 据 值 地 址 值 0b 0b000 0b00 00000000 表 示 2 进 制 的 数 据 值 以 及 2 进 制 序 列 ( 寄 存 器 描 述 中 除 外 ) X 00X 1XX 在 数 据 的 表 达 方 式 中,X 表 示 0 或 1 例 如 :00X 表 示 000 或 001; 1XX 表 示 100 101 110 或 111 ii

前 言 修 订 记 录 文 档 版 本 01 (2011-06-16) 修 订 记 录 累 积 了 每 次 文 档 更 新 的 说 明 最 新 版 本 的 文 档 包 含 以 前 所 有 文 档 版 本 的 更 新 内 容 第 1 次 正 式 发 布 iii

目 录 目 录 前 言... i 1 概 述... 1 1.1 嵌 入 式 开 发 环 境... 1 1.2 Hi3507 Linux 开 发 环 境... 1 1.3 搭 建 Linux 开 发 环 境... 3 1.3.1 安 装 Linux 服 务 器... 3 1.3.2 安 装 交 叉 编 译 工 具... 3 1.3.3 安 装 Hi3507 SDK... 3 2 U-boot... 4 2.1 U-boot 简 介... 4 2.2 启 动 U-boot... 4 2.3 编 译 U-boot... 5 2.4 烧 写 U-boot... 5 2.5 U-boot 常 用 命 令... 5 2.6 U-boot 环 境 变 量... 9 3 Linux 内 核... 12 3.1 内 核 源 代 码... 12 3.2 配 置 内 核... 12 3.3 编 译 内 核... 13 3.4 编 译 驱 动... 13 3.5 使 用 mkimage 工 具... 13 4 根 文 件 系 统... 15 4.1 根 文 件 系 统 简 介... 15 4.2 利 用 busybox 制 作 根 文 件 系 统... 16 4.2.1 获 取 busybox 源 代 码... 16 4.2.2 配 置 busybox... 16 4.2.3 编 译 和 安 装 busybox... 16 4.2.4 制 作 根 文 件 系 统... 17 4.3 文 件 系 统 简 介... 17 iv

目 录 4.3.1 cramfs... 18 4.3.2 JFFS2... 18 4.3.3 NFS... 19 4.3.4 initrd... 20 5 烧 写 内 核 和 根 文 件 系 统... 21 5.1 存 储 器 地 址 空 间... 21 5.2 通 过 网 口 烧 写... 21 5.2.1 参 数 设 置 和 建 立 tftp 服 务... 22 5.2.2 下 载 内 核... 22 5.2.3 下 载 根 文 件 系 统... 22 5.3 通 过 串 口 烧 写... 23 5.3.1 连 接 设 备... 23 5.3.2 下 载 内 核... 24 5.3.3 下 载 根 文 件 系 统... 25 6 启 动 Linux... 26 6.1 设 置 启 动 参 数... 26 6.2 启 动 Linux... 27 6.3 设 置 U-boot 自 动 启 动 Linux... 27 7 应 用 程 序 开 发 简 介... 28 7.1 编 写 代 码... 28 7.2 运 行 应 用 程 序... 28 7.3 使 用 gdbserver 调 试 应 用 程 序... 29 A 建 立 Linux 开 发 环 境... 7-1 A.1 安 装 Linux 系 统 的 配 置 选 项... 7-1 A.2 配 置 必 要 的 系 统 服 务... 7-1 B 缩 略 语... 3 v

插 图 目 录 插 图 目 录 图 1-1 嵌 入 式 开 发 图 例... 1 图 1-2 Hi3507 Linux 开 发 环 境 示 意 图... 2 图 4-1 根 文 件 系 统 顶 层 目 录 结 构 图... 15 图 5-1 Flash(32MB) 地 址 空 间 分 配 示 意 图 ( 仅 供 参 考 )... 21 图 5-2 串 口 设 置... 24 图 5-3 发 送 文 件 窗 口... 24 vi

表 格 目 录 表 格 目 录 表 1-1 Hi3507 Linux 开 发 环 境 的 各 部 分 软 件 描 述... 2 表 2-1 U-boot 常 用 命 令 说 明... 5 表 2-2 U-boot 常 用 环 境 变 量 说 明... 10 表 3-1 mkimage 参 数 表... 14 表 4-1 嵌 入 式 系 统 中 可 忽 略 的 目 录 说 明... 16 表 4-2 JFFS2 参 数 表... 19 表 7-1 安 装 Linux 系 统 的 配 置 选 项 说 明... 7-1 vii

1 概 述 1 概 述 1.1 嵌 入 式 开 发 环 境 由 于 嵌 入 式 单 板 的 资 源 有 限, 不 能 在 单 板 上 运 行 开 发 和 调 试 工 具, 通 常 以 交 叉 编 译 调 试 的 方 式 进 行 开 发 和 调 试, 即 宿 主 机 + 目 标 机 ( 评 估 板 ) 的 形 式 宿 主 机 和 目 标 机 一 般 采 用 串 口 连 接, 也 可 同 时 通 过 网 口 或 者 JTAG 连 接, 如 图 1-1 所 示 宿 主 机 和 目 标 机 的 处 理 器 一 般 不 相 同 宿 主 机 需 要 建 立 适 合 于 目 标 机 的 交 叉 编 译 环 境 程 序 在 宿 主 机 上 经 过 编 译 (compile)- 连 接 (linking)- 定 位 (location) 得 到 可 执 行 文 件, 通 过 一 定 的 方 法 将 可 执 行 文 件 烧 写 到 目 标 机 中, 然 后 在 目 标 机 上 运 行 目 标 机 上 的 Bootloader 启 动 后, 目 标 机 中 的 操 作 信 息 通 过 串 口 或 者 网 口 输 出 到 宿 主 机 上 显 示 在 宿 主 机 上 的 控 制 台 中 输 入 命 令, 可 以 控 制 目 标 机 图 1-1 嵌 入 式 开 发 图 例 宿 主 机 JTAG RS232 目 标 机 Ethernet 1.2 Hi3507 Linux 开 发 环 境 Hi3507 Linux 开 发 环 境 通 常 包 括 Linux 服 务 器 Windows 工 作 台 和 Hi3507 DMEB( 目 标 板 ), 三 者 同 处 于 一 个 网 络 中, 如 图 1-2 所 示 1

1 概 述 图 1-2 Hi3507 Linux 开 发 环 境 示 意 图 Linux 服 务 器 Ethernet Windows 工 作 台 RS232 JTAG 目 标 板 在 Linux 服 务 器 上 建 立 交 叉 编 译 环 境,Windows 工 作 台 通 过 串 口 和 JTAG 与 Hi3507 DMEB 连 接 (JTAG 应 用 于 ADS/RealView Debugger 等 软 件 ), 开 发 人 员 可 以 在 Windows 工 作 台 中 进 行 程 序 开 发 或 者 远 程 登 录 到 Linux 服 务 器 进 行 程 序 开 发 各 部 分 具 体 软 件 介 绍 如 表 1-1 所 示 开 发 环 境 中 使 用 了 Windows 工 作 台, 实 际 上 很 多 工 作 也 可 以 在 Linux 服 务 器 上 完 成, 如 使 用 minicom 代 替 超 级 终 端 等, 用 户 可 自 行 选 择 表 1-1 Hi3507 Linux 开 发 环 境 的 各 部 分 软 件 描 述 软 件 描 述 Windows 工 作 台 操 作 系 统 Windows 98/me/2000/XP 应 用 软 件 putty 超 级 终 端 tftp 服 务 器 ADS/RealView Debugger 等 软 件 Linux 服 务 器 操 作 系 统 无 特 别 要 求, 可 为 Redhat Debian 等 内 核 版 本 支 持 2.6.x 或 者 2.4.x 安 装 时 建 议 选 择 完 全 安 装 应 用 软 件 NFS telnetd samba VIM arm 交 叉 编 译 环 境 (Binutils 版 本 2.16.91,Gcc 版 本 3.4.3) 等 其 他 应 用 软 件 根 据 具 体 开 发 需 要 而 定, 通 常 系 统 都 已 默 认 安 装, 只 要 适 当 配 置 即 可 Hi3507 DMEB 引 导 程 序 U-boot 基 于 U-Boot 1.1.4 开 发 而 成 操 作 系 统 Hisilicon Linux( 简 称 HiLinux) HiLinux 内 核 基 于 Linux 标 准 内 核 2.6.14 版 本 移 植 开 发, 根 文 件 系 统 基 于 busybox 1.1.2 版 本 制 作 而 成 应 用 软 件 包 含 telnetd gdb server 等 Linux 常 用 命 令 程 序 开 发 库 glibc 2.3.4 版 本 2

1 概 述 1.3 搭 建 Linux 开 发 环 境 1.3.1 安 装 Linux 服 务 器 建 议 选 择 常 用 的 Linux 发 行 版, 便 于 寻 找 各 类 技 术 资 源 例 如 : RedHat 较 新 的 发 行 版, 如 RedHat Fedora Core 系 列 和 Redhat Enterprise Linux RedHat 较 老 的 发 行 版, 如 RedHat 9.0 等 推 荐 使 用 较 新 版 本, 以 方 便 获 取 各 类 资 源, 如 Fedora Core 系 列 Debian 的 各 类 发 行 版 也 是 常 用 的 使 用 Debian 的 好 处 是 各 类 安 装 包 都 可 以 随 时 在 线 更 新, 各 类 软 件 包 资 源 也 很 丰 富 1.3.2 安 装 交 叉 编 译 工 具 在 安 装 Linux 时, 请 确 保 安 装 基 本 编 译 工 具 (gcc), 如 需 要 开 启 samba nfs 等 服 务, 请 参 考 各 自 发 行 版 本 说 明 手 册 使 用 从 网 络 等 渠 道 得 到 的 交 叉 编 译 工 具 可 能 与 使 用 的 内 核 并 不 配 套, 并 可 能 造 成 开 发 过 程 中 一 些 不 可 预 料 的 问 题 如 使 用 从 其 他 渠 道 得 到 的 ARM 交 叉 编 译 工 具 ( 如 网 络 下 载 ), 就 需 要 用 户 熟 悉 交 叉 编 译 环 境 的 安 装 及 使 用 过 程 建 议 使 用 与 Hi3507 SDK 配 套 的 交 叉 编 译 环 境, 请 参 见 1.3.3 安 装 Hi3507 SDK 1.3.3 安 装 Hi3507 SDK Hi3507 SDK 是 基 于 Hi3507 DMEB 的 软 件 开 发 工 具, 包 含 在 Linux 相 关 应 用 开 发 时 使 用 的 各 种 工 具 及 其 源 代 码, 是 用 户 开 发 中 最 基 本 的 平 台 软 件 将 Hi3507 SDK 安 装 到 Linux 服 务 器 中 的 步 骤 如 下 : 1. 拷 贝 将 Hi3511_VSSDK_Vx.x.x.x.tgz(XX 是 版 本 号 ) 拷 贝 到 Linux 服 务 器 上 2. 解 压 解 压 文 件, 使 用 命 令 :tar zxf Hi3511_BVT_V100R001XX.tar.gz, 过 程 中 没 有 提 示 信 息, 请 等 待 命 令 执 行 完 毕 3. 安 装 解 压 完 成 后, 进 入 Hi3511_VSSDK_Vx.x.x.x 目 录, 执 行./ sdk.unpack, 执 行 完 毕 后 安 装 成 功 如 果 用 户 不 是 root 权 限, 安 装 过 程 中 必 要 的 时 候 会 提 示 输 入 root 密 码 或 sudo 密 码 ---- 结 束 3

2 U-boot 2 U-boot 2.1 U-boot 简 介 U-boot 是 在 U-Boot 1.1.4( 或 以 上 版 本 ) 基 础 上 进 行 开 发 的 Bootloader 是 在 操 作 系 统 内 核 运 行 之 前 运 行 的 一 段 小 程 序 通 过 这 段 小 程 序, 可 以 实 现 以 下 功 能 : 初 始 化 硬 件 设 备 使 系 统 的 软 硬 件 环 境 处 于 一 个 确 定 的 状 态, 为 最 终 调 用 操 作 系 统 内 核 准 备 好 正 确 的 环 境 U-boot 除 了 是 一 个 Bootloader 外, 还 是 一 个 烧 写 器 在 U-boot 里 包 含 FLASH 烧 写 工 具 网 络 下 载 内 存 工 具 等, 通 过 这 些 工 具 可 以 通 过 串 口 网 口 下 载 Linux 内 核 或 者 应 用 程 序 到 内 存 或 Flash 中 2.2 启 动 U-boot 给 Hi3507 DMEB 上 电 后, 在 控 制 台 上 出 现 命 令 提 示 符 Hi3507DMEB 的 标 准 输 入 标 准 输 出 重 定 位 到 UART0 UART0 连 接 到 调 试 主 机 (Host) 上, 调 试 主 机 是 Windows 工 作 台, 采 用 Windows 超 级 终 端 ( 如 果 调 试 主 机 是 Linux 服 务 器, 采 用 MiniCOM) UART0 的 连 接 设 置 为 : 波 特 率 :115200 数 据 位 :8 奇 偶 校 验 : 无 停 止 位 :1 流 控 : 无 系 统 上 电 后, 控 制 台 上 有 如 下 类 似 的 信 息 显 示, 表 示 U-boot 已 经 启 动 : U-Boot code: E0500000 -> E0517440 BSS: -> E051E1BC HI_VERSION=U_BOOT_1_1_4-M02C0301B0101 @Hi3511v100_OSDrv_1_1_0_0 2008-05-16 10:28:44 RAM Configuration: Bank #0: e0000000 256 MB Flash: 32 MB 4

2 U-boot In: serial Out: serial Err: serial MAC: 00-10-85-18-40-67 Hit any key to stop autoboot: 0 hilinux # 2.3 编 译 U-boot U-boot 可 以 通 过 修 改 配 置 文 件 include/configs/hi3511v100.h 实 现 某 些 具 体 属 性 的 配 置 如 想 了 解 相 关 参 数 的 具 体 含 义 及 功 能 请 认 真 阅 读 Hi3507 U-boot 移 植 应 用 指 南 编 译 U-boot 操 作 为 : 进 入 U-boot 所 在 目 录, 输 入 如 下 命 令 进 行 配 置 操 作 hisilicon$make hiconfig hisilicon$make all 如 果 编 译 过 程 中 编 译 example 目 录 时 出 现 错 误, 进 入 example 目 录, 执 行 touch * 命 令 : hisilicon$cd example hisilicon$touch * 在 当 前 路 径 下 可 以 看 到 编 译 生 成 的 目 标 文 件 : 可 通 过 仿 真 器 使 用 的 elf 文 件 :u-boot 直 接 烧 写 到 Flash 中 的 二 进 制 文 件 :u-boot.bin 2.4 烧 写 U-boot 烧 写 U-boot 的 具 体 内 容 请 参 见 Hi3507 U-boot 移 植 应 用 2.5 U-boot 常 用 命 令 U-boot 常 用 命 令 的 描 述 如 表 2-1 所 示 U-boot 支 持 命 令 自 动 补 齐, 当 输 入 命 令 的 部 分 字 母 时, 按 下 Tab 键, 系 统 将 自 动 补 齐 或 者 列 出 可 能 的 命 令 列 表 表 2-1 U-boot 常 用 命 令 说 明 命 令 描 述? 得 到 所 有 命 令 列 表 或 者 列 出 某 个 命 令 的 帮 助 用 法 :? [command...] 说 明 : 列 出 命 令 的 帮 助 信 息 当 不 带 参 数 时, 列 出 所 有 命 令 及 简 要 说 明 5

2 U-boot 命 令 help 描 述 help printenv 打 印 环 境 变 量 用 法 :printenv [name...] 说 明 : 打 印 环 境 变 量 当 不 带 参 数 时, 打 印 所 有 变 量 setenv 设 置 或 者 删 除 变 量 用 法 :setenv name [ value ] 说 明 :name 一 般 是 U-boot 环 境 变 量 的 名 字, 也 可 以 是 用 户 自 定 义 的 变 量 当 value 为 空 时, 删 除 变 量 name, 否 则 设 置 变 量 name, 且 值 为 value saveenv 保 存 变 量 用 法 :saveenv 说 明 : 保 存 变 量 及 其 值 至 Flash ping 用 于 简 单 判 断 目 的 主 机 网 络 状 态 或 本 机 网 络 工 作 状 态 用 法 :ping <ipaddr> 说 明 :ipaddr 表 示 目 的 主 机 的 IP 当 网 络 正 常 工 作 时, 结 果 显 示 host <ipaddr> is alive ; 否 则 显 示 ping failed;host <ipaddr> is not alive loadb 通 过 串 口 Kermit 协 议 下 载 二 进 制 文 件 用 法 :loadb [ addr ] [ baud ] 说 明 :addr 参 数 为 存 储 文 件 的 地 址,baud 为 串 口 下 载 速 率 输 入 命 令 后, 在 超 级 终 端 的 菜 单 中 选 择 [ 传 送 > 发 送 文 件 ], 在 弹 出 的 窗 口 中, 协 议 必 须 选 择 Kermit 例 子 :loadb 0xf1000000 57600 注 意 : 使 用 loadb, 只 能 下 载 到 内 存 中, 不 能 直 接 下 载 到 Flash tftp 通 过 tftp 服 务 器 下 载 文 件 至 内 存 或 者 Flash 中 用 法 :tftp addr file 说 明 : 将 file 文 件 下 载 到 地 址 为 addr 的 内 存 或 者 Flash 中 注 意 : 使 用 tftp 时, 必 须 先 设 置 好 网 络 配 置, 使 用 setenv 配 置 ipaddr netmask serverip eth 参 数 例 如 : hisilicon > setenv ipaddr 192.168.1.1 /* 设 置 IP 地 址 */ hisilicon > setenv netmask 255.255.255.0 /* 设 置 子 网 掩 码 */ hisilicon > setenv serverip 192.168.1.254 /* 设 置 服 务 器 地 址 */ hisilicon > setenv ethaddr 19:16:80:01:01 /* 设 置 单 板 MAC 地 址 */ hisilicon > tftp 0xe1000000 kernel-hi3511v100dmeb_full_debug.img 说 明 : 把 tftp 服 务 器 (IP 为 环 境 变 量 中 设 置 的 serverip) 中 kernelhi3511v100dmeb_full_debug.img 通 过 tftp 写 入 到 内 存 0xE1000000 处 6

2 U-boot 命 令 描 述 cp 拷 贝 内 存 用 法 :cp [.b,.w,.l ] source target count 说 明 : 从 内 存 地 址 source 中 拷 贝 到 target, 大 小 为 count 实 际 拷 贝 的 大 小, 因 命 令 的 不 同 而 不 同 使 用 cp.b, 拷 贝 1%count 字 节 使 用 cp.w, 拷 贝 2%count 字 节 使 用 cp.l, 拷 贝 4%count 字 节 简 单 使 用 cp 时, 等 价 于 cp.1 说 明 :source 和 target 可 以 是 DDR SDRAM 的 地 址 范 围, 也 可 以 是 Flash 的 地 址 范 围 protect Flash 写 保 护 操 作 用 法 一 :protect on off start end 说 明 : 对 Flash 从 地 址 start 到 地 址 end 区 域 进 行 写 保 护 操 作 注 意 :Flash 的 写 保 护 操 作 必 须 以 块 为 最 小 单 位, 因 此 地 址 start 必 须 为 某 块 的 起 始 地 址, 地 址 end 则 必 须 为 某 块 的 结 束 地 址, 如 Flash 的 基 地 址 为 0x34000000, 块 大 小 为 0x20000, 则 操 作 protect on 0x34000000 0x3401FFFF 为 可 操 作 的 而 protect on 0x34000003 0x3401FFFF 或 者 protect off 0x34000000 0x3401FF00 均 不 可 操 作 用 法 二 :protect on off N:SF [ -SL ] 说 明 : 对 第 N 块 Flash 的 SF 扇 区 到 SL 扇 区 进 行 写 保 护 操 作 用 法 三 :protect on off bank N 说 明 : 对 第 N 块 Flash 进 行 写 保 护 操 作 用 法 四 :protect on off all 说 明 : 对 所 有 Flash 进 行 写 保 护 操 作 go 跳 转 到 指 定 地 址, 执 行 代 码 用 法 :go addr [ arg ] 说 明 : 执 行 地 址 addr 处 的 二 进 制 代 码, 可 传 递 arg 参 数 bootm 设 置 运 行 环 境, 并 开 始 执 行 二 进 制 代 码 用 法 :bootm [ addr [ arg ] ] 说 明 : 执 行 addr 地 址 处 的 代 码, 要 求 二 进 制 代 码 为 mkimage 处 理 过 的 二 进 制 文 件 flinfo 列 出 Flash 信 息 用 法 :flinfo [ N ] 说 明 : 不 带 参 数 时 列 出 所 有 Flash 的 信 息, 否 则 列 出 第 N 块 Flash 的 信 息 7

2 U-boot 命 令 描 述 md 显 示 内 存 区 的 内 容 用 法 :md [.b,.w,.l ] address 说 明 : 显 示 地 址 address 内 存 区 内 容 使 用 md.b, 显 示 单 位 为 1 字 节 使 用 md.w, 显 示 单 位 为 2 字 节 使 用 md.l, 显 示 单 位 为 4 字 节 简 单 使 用 md 时, 等 价 于 md.l mm 修 改 内 存 区 的 内 容 地 址 自 动 增 加 用 法 :mm [.b,.w,.l ] address 说 明 : 修 改 地 址 address 内 存 区 内 容 使 用 mm.b, 每 次 修 改 1 字 节 使 用 mm.w, 每 次 修 改 2 字 节 使 用 mm.l, 每 次 修 改 4 字 节 简 单 使 用 mm 时, 等 价 于 mm.l nm 修 改 内 存 区 的 内 容 地 址 不 自 动 增 加 用 法 :nm [.b,.w,.l ] address 说 明 : 修 改 地 址 address 内 存 区 内 容 使 用 nm.b, 每 次 修 改 1 字 节 使 用 nm.w, 每 次 修 改 2 字 节 使 用 nm.l, 每 次 修 改 4 字 节 简 单 使 用 nm 时, 等 价 于 nm.l mw 填 充 内 存 用 法 :mw [.b,.w,.l ] address value [ count ] 说 明 : 设 置 从 地 址 address 开 始 的 count 大 小 的 内 存 为 value 使 用 mw.b, 填 充 内 存 大 小 为 1%count 字 节 使 用 mw.w, 填 充 内 存 大 小 为 2%count 字 节 使 用 mw.l, 填 充 内 存 大 小 为 4%count 字 节 简 单 使 用 mw 时, 等 价 于 mw.l 例 子 :mw.b 0xE1000000 FF 10000 说 明 : 把 内 存 0xE1000000 开 始 的 0x10000 字 节 设 为 0xFF 8

2 U-boot 命 令 描 述 cmp 比 较 两 块 内 存 区 用 法 :cmp [.b,.w,.l ] addr1 addr2 count 说 明 : 比 较 地 址 addr1 和 地 址 addr2, 大 小 count 的 内 存 内 容 比 较 使 用 cmp.b, 比 较 大 小 为 1%count 字 节 使 用 cmp.w, 比 较 大 小 为 2%count 字 节 使 用 cmp.l, 比 较 大 小 为 4%count 字 节 简 单 使 用 cmp 时, 等 价 于 cmp.l erase 擦 除 Flash 内 容 用 法 一 :erase start end 说 明 : 擦 除 从 地 址 start 到 地 址 end 区 域 的 内 容 注 意 :Flash 的 擦 除 操 作 必 须 以 块 为 最 小 单 位, 因 此 地 址 start 必 须 为 某 块 的 起 始 地 址, 地 址 end 则 必 须 为 某 块 的 结 束 地 址, 如 Flash 的 基 地 址 为 0x34000000, 块 大 小 为 0x20000, 则 操 作 erase 0x34000000 0x3401FFFF 为 可 操 作 的 而 erase 0x34000003 0x3401FFFF 或 者 erase 0x34000000 0x3401FF00 均 不 可 操 作 用 法 二 :erase N:SF [ -SL ] 说 明 : 擦 除 第 N 块 Flash 的 从 扇 区 SF 到 SL 扇 区 的 内 容 用 法 三 :erase bank N 说 明 : 擦 除 第 N 块 Flash 的 内 容 用 法 四 :erase all 说 明 : 擦 除 所 有 Flash 的 内 容 用 法 五 :erase start +SIZE 说 明 : 擦 除 从 start 开 始 SIZE bytes 大 小 的 扇 区 注 : 以 上 命 令 必 须 在 同 一 行 内 输 入 2.6 U-boot 环 境 变 量 使 用 U-boot 常 用 命 令 setenv 可 以 设 置 U-boot 环 境 变 量, 表 2-2 列 出 常 用 环 境 变 量 及 其 设 置 格 式 等 信 息 9

2 U-boot 表 2-2 U-boot 常 用 环 境 变 量 说 明 环 境 变 量 描 述 ipaddr 设 置 单 板 的 IP 地 址 格 式 :xxx.xxx.xxx.xxx 例 子 :setenv ipaddr 192.168.0.100 说 明 : 设 置 IP 地 址 为 192.168.0.100 serverip 设 置 服 务 端 IP 地 址, 在 tftp 中 被 使 用 格 式 :xxx.xxx.xxx.xxx 例 子 :setenv serverip 192.168.0.10 说 明 : 设 置 tftp 服 务 器 IP 地 址 为 192.168.0.10 netmask 设 置 子 网 掩 码 格 式 :xxx.xxx.xxx.xxx 例 子 :setenv netmask 255.255.255.0 说 明 : 设 置 子 网 掩 码 为 255.255.255.0 gatewayip 设 置 网 关 格 式 :xxx.xxx.xxx.xxx 例 子 :setenv gatewayip 192.168.0.1 说 明 : 设 置 网 关 IP 地 址 为 192.168.0.1 bootargs 启 动 OS 时 的 启 动 参 数 格 式 :arg1=value1 arg2=value2 argn=valuen 例 子 :setenv bootargs 'mem=32m console=ttyama0,115200 root=1f01 rootfstype=cramfs mtdparts=phys_mapped_flash:2m(boot),14m(rootfs)' 说 明 : 传 递 参 数, 包 括 内 存 大 小 根 文 件 系 统 设 备 等 bootcmd 设 置 U-boot 自 动 启 动 及 执 行 命 令 启 动 延 时 依 据 bootdelay 变 量 值 ( 详 见 bootdelay 参 数 描 述 ), 若 bootdelay 未 被 设 置, 则 默 认 延 时 时 间 为 2s 格 式 :cmd1; cmd2; ; cmdn 例 子 1:setenv bootcmd bootm 0x34100000 说 明 : 设 置 启 动 后 自 动 执 行 0x34100000 处 的 代 码 例 子 2:setenv bootcmd printenv;bootm 0x34100000 说 明 : 设 置 启 动 后 自 动 依 次 执 行 打 印 参 数 和 执 行 0x34100000 处 的 代 码 注 意 : 多 个 参 数 时, 参 数 之 间 使 用 分 号 相 隔 将 整 个 参 数 字 串 用 单 引 号 包 含 起 来 10

2 U-boot 环 境 变 量 bootdelay 描 述 设 置 自 启 动 延 时 时 间 单 位 为 s 只 有 当 bootcmd 变 量 被 设 置 后, 该 变 量 才 有 效 该 变 量 值 范 围 为 大 于 等 于 1 的 整 数 当 设 置 为 -1 时, 关 闭 自 启 动 的 功 能 格 式 :value 例 子 1:setenv bootdelay 4 说 明 : 设 置 自 启 动 延 时 4s 例 子 2:setenv bootdelay -1 说 明 : 关 闭 自 启 动 功 能 提 示 : 在 延 迟 时 间 内 可 按 任 意 键 切 换 到 命 令 行 模 式 注 意 : 在 产 品 开 发 调 试 阶 段 请 勿 设 置 延 迟 时 间 为 0 若 设 置, 可 以 在 启 动 瞬 间 使 用 CTRL+C 中 断 程 序 而 进 入 命 令 行 模 式 注 : 以 上 命 令 必 须 在 同 一 行 内 输 入 11

3 Linux 内 核 3 Linux 内 核 3.1 内 核 源 代 码 成 功 安 装 Hi3507SDK 后, 内 核 源 代 码 已 存 放 于 SDK 目 录 下 的 source/os 目 录 中, 用 户 可 直 接 进 入 目 录 进 行 相 关 操 作 3.2 配 置 内 核 如 果 对 内 核 和 Hi3507 平 台 没 有 足 够 了 解, 请 勿 修 改 默 认 配 置 但 可 增 加 需 要 的 模 块 配 置 内 核 的 操 作 如 下 : hisilicon$cd source/os/linux-2.6.14 hisilicon$make mrproper hisilicon$make menuconfig 其 中 make mrproper 为 可 选, 用 户 可 直 接 通 过 make menuconfig 进 行 内 核 配 置 如 果 执 行 了 make mrporper, 必 须 重 新 加 载.config 文 件, 具 体 步 骤 如 下 : 1. 执 行 make menuconfig 2. 选 择 Load an Alternate Configuration File 菜 单 项 3. 输 入 arch/arm/configs/hi3511v100_full_debug_defconfig( 如 果 希 望 配 成 release 版 本 则 为 hi3511v100_full_release_defconfig) 4. 选 择 需 要 的 模 块 5. 选 择 完 毕 后, 保 存 并 退 出 ---- 结 束 也 可 以 手 动 拷 贝.config 文 件, 方 法 为 : 12

3 Linux 内 核 cp arch/arm/configs/hi3511v100_full_debug_defconfig.config( 如 果 希 望 配 成 release 版 本 则 使 用 hi3511v100_full_release_defconfig) 配 置 操 作 中 可 以 使 用 make config 和 make xconfig 替 代 make menuconfig, 但 make config 界 面 不 直 观 操 作 繁 琐 make xconfig 需 要 XWindow 支 持 所 以 建 议 使 用 make menuconfig, 便 于 远 程 操 作, 而 且 界 面 比 较 直 观 3.3 编 译 内 核 配 置 保 存 后, 可 直 接 输 入 make 命 令 编 译 内 核, 此 时 需 要 等 待 几 分 钟 如 果 编 译 过 程 中 出 现 错 误, 可 执 行 make clean 或 者 make mrproper, 然 后 重 新 运 行 make menuconfig, 加 载 配 置 文 件, 最 后 执 行 make 3.4 编 译 驱 动 请 以 海 思 提 供 的 驱 动 代 码 为 模 板, 在 编 写 完 代 码 后 修 改 Makefile 文 件 中 的 KERNEL_MAKE, 指 定 内 核 头 文 件 目 录 例 如 : 头 文 件 在 /home/kbuild/, 则 Makefile 文 件 中 修 改 KERNEL_MAKE := -C /home/kbuild/ 内 核 驱 动 编 译 请 参 见 Linux Device Drivers 3.5 使 用 mkimage 工 具 内 核 编 译 成 功 后, 在 arch/arm/boot 目 录 下 生 成 内 核 文 件, 其 中 包 括 压 缩 文 件 zimage 和 未 压 缩 文 件 Image 在 U-boot 中 使 用 bootm 命 令 引 导 内 核, 必 须 使 用 mkimage 工 具 对 zimage 文 件 进 行 处 理, 增 加 相 应 的 入 口 信 息 等 mkimage 存 放 在 SDK 目 录 下 的 tools/bin 中 为 了 方 便 地 访 问 如 下 命 令, 需 要 设 置 PATH 环 境 变 量 ( 在 /etc/profile 中 增 加 PATH="$PATH:/your_mkimage_file_path" ), 也 可 以 将 mkimage 拷 贝 到 /usr/local/bin 目 录 中 具 体 操 作 如 下 : hisilicon$ mkimage -A arm -T kernel -C none -a 0xE0A00000 -e 0xE0A00000 -n hilinux -d arch/arm/boot/zimage hikernel 参 数 说 明 如 表 3-1 所 示 13

3 Linux 内 核 表 3-1 mkimage 参 数 表 参 数 A T C a e n d 说 明 指 定 体 系 结 构 类 型 ARM 指 定 image 类 型 为 kernel 设 置 压 缩 类 型 none 设 置 加 载 地 址 设 置 入 口 地 址 设 置 image 名 字 需 要 处 理 的 文 件 执 行 上 面 的 命 令 后 将 在 当 前 目 录 下 生 成 名 为 hikernel 的 文 件 ( 内 核 映 像 文 件 ) 该 内 核 映 像 文 件 可 以 被 下 载 到 单 板 的 任 何 地 址 ( 除 了 覆 盖 U-boot 和 解 压 目 的 地 址 等 特 殊 位 置 ) 运 行, 如 烧 写 到 Flash 或 者 放 在 内 存 中 最 好 将 加 载 地 址 和 入 口 地 址 设 置 成 相 同, 并 且 都 是 在 内 存 中 的 地 址 加 载 地 址 用 于 U-boot 将 内 核 image 文 件 拷 贝 到 该 地 址 ; 入 口 地 址 用 于 U-boot 加 载 内 核 image 之 后 跳 转 到 该 地 址 发 布 包 里 已 制 作 的 文 件 系 统 内 可 使 用 modprobe 直 接 加 载 主 要 驱 动, 是 通 过 解 析 /lib/modules/yourversion/modules.dep 文 件 来 找 寻 驱 动 所 在 目 录 14

4 根 文 件 系 统 4 根 文 件 系 统 4.1 根 文 件 系 统 简 介 Linux 目 录 结 构 的 最 顶 层 是 一 个 被 称 为 / 的 根 目 录 系 统 加 载 Linux 内 核 之 后, 就 会 挂 载 一 个 设 备 到 根 目 录 上 存 在 于 这 个 设 备 中 的 文 件 系 统 被 称 为 根 文 件 系 统 所 有 的 系 统 命 令 系 统 配 置 以 及 其 他 文 件 系 统 的 挂 载 点 都 位 于 这 个 根 文 件 系 统 中 根 文 件 系 统 通 常 存 放 于 内 存 和 Flash 中, 或 是 网 络 的 文 件 系 统 根 文 件 系 统 中 存 放 嵌 入 式 系 统 使 用 的 所 有 应 用 程 序 库 以 及 其 他 需 要 用 到 的 服 务 图 4-1 列 出 了 根 文 件 系 统 的 顶 层 目 录 图 4-1 根 文 件 系 统 顶 层 目 录 结 构 图 / bin boot dev etc home lib mnt opt proc root sbin tmp usr var 根 目 录 基 本 命 令 的 可 执 行 文 件 内 核 映 像 以 及 启 动 时 需 要 用 到 的 一 些 文 件 设 备 文 件 系 统 配 置 文 件, 包 括 启 动 文 件 用 户 目 录 基 本 库, 例 如 C 库 和 内 核 模 块 临 时 文 件 系 统 的 挂 载 点 添 加 的 软 件 包 内 核 以 及 进 程 信 息 的 虚 拟 文 件 系 统 root 用 户 目 录 用 于 系 统 管 理 的 可 执 行 程 序 临 时 文 件 该 目 录 的 二 级 目 录 包 含 许 多 对 用 户 很 有 用 的 应 用 程 序 和 文 档 存 放 系 统 日 志 或 一 些 服 务 程 序 的 临 时 文 件 通 用 的 Linux 系 统 的 根 文 件 系 统 中 包 括 根 文 件 系 统 顶 层 目 录 结 构 图 中 所 有 的 目 录, 不 过 在 嵌 入 式 系 统 中, 需 要 精 简 根 文 件 系 统 在 嵌 入 式 系 统 中 可 以 被 忽 略 的 目 录 如 表 4-1 所 示 15

4 根 文 件 系 统 表 4-1 嵌 入 式 系 统 中 可 忽 略 的 目 录 说 明 目 录 名 称 描 述 /home /mnt /opt 和 /root 所 有 适 合 提 供 给 多 用 户 扩 展 的 目 录, 都 可 以 被 忽 略 /var 和 /tmp /var 是 存 放 系 统 日 志 或 一 些 服 务 程 序 的 临 时 文 件 /tmp 是 存 放 用 户 的 一 些 临 时 文 件, 可 以 被 忽 略 /boot /boot 目 录 一 般 用 于 存 放 内 核 映 像,PC 机 启 动 时 一 般 会 从 该 目 录 加 载 内 核, 但 在 嵌 入 式 系 统 中, 为 了 节 省 空 间, 内 核 映 像 存 在 于 Flash 或 网 络 服 务 器 中, 而 不 是 在 根 文 件 系 统 中 因 此 也 可 以 忽 略 这 个 目 录 注 : 空 目 录 并 不 会 增 大 文 件 系 统 的 体 积, 如 果 没 有 特 殊 原 因, 建 议 保 留 这 些 目 录 4.2 利 用 busybox 制 作 根 文 件 系 统 利 用 busybox 制 作 根 文 件 系 统 需 要 先 获 取 busybox 源 代 码, 然 后 配 置 编 译 和 安 装 busybox, 操 作 成 功 后 开 始 制 作 根 文 件 系 统 4.2.1 获 取 busybox 源 代 码 4.2.2 配 置 busybox 成 功 安 装 SDK 后,busybox 完 整 源 代 码 存 放 在 source/os 目 录 下 要 获 取 busybox 源 代 码 也 可 以 从 网 站 http://www.busybox.net 下 载 进 入 busybox 所 在 目 录, 进 行 配 置 操 作 需 要 输 入 如 下 命 令 : hisilicon$ make menuconfig busybox 的 配 置 界 面 和 内 核 配 置 相 似, 其 功 能 选 项 容 易 理 解, 可 以 根 据 用 户 的 需 求 选 择 配 置 在 Busybox Settings ---> Build Options 中 注 意 下 面 两 个 选 项 : [*]Build BusyBox as a static binary (no shared libs) [*]Do you want to build BusyBox with a Cross Compiler? (arm-hismall-linux-) Cross Compiler prefix 第 一 个 选 项 选 择 是 否 把 busybox 编 译 成 静 态 链 接 的 可 执 行 文 件 如 果 选 择 该 选 项, 编 译 出 来 的 busybox 就 是 静 态 链 接 的, 运 行 时 不 依 赖 于 动 态 库, 但 体 积 较 大 ; 清 除 该 选 项 将 得 到 动 态 链 接 的 busybox, 体 积 较 小, 但 需 要 动 态 库 的 支 持 第 二 个 选 项 选 择 交 叉 编 译 器, 并 配 置 交 叉 编 译 器 为 arm-hismall-linux- 配 置 好 后 保 存 并 退 出 欲 了 解 busybox 各 选 项 含 义 请 参 考 busybox 配 置 帮 助 4.2.3 编 译 和 安 装 busybox 编 译 和 安 装 busybox 的 具 体 操 作 如 下 : hisilicon$ make 16

4 根 文 件 系 统 hisilicon$ make install 4.2.4 制 作 根 文 件 系 统 编 译 并 安 装 成 功 后, 在 busybox 目 录 下 的 _install 目 录 下 生 成 以 下 目 录 及 文 件 : drwxr-xr-x 2 linux linux 4096 2005-04-22 11:01 bin lrwxrwxrwx 1 linux linux 11 2005-04-22 11:01 linuxrc->bin/busybox drwxr-xr-x 2 linux linux 4096 2005-04-22 11:01 sbin drwxr-xr-x 4 linux linux 4096 2005-04-22 11:01 usr 成 功 安 装 SDK 后, 在 rootbox/ 目 录 中 存 放 已 制 作 好 的 根 文 件 系 统 用 户 如 有 需 要 可 在 busybox 的 基 础 上 制 作 根 文 件 系 统,busybox 源 代 码 存 放 在 SDK 目 录 中 的 source/os/ 目 录 下 制 作 根 文 件 系 统 的 具 体 操 作 步 骤 如 下 : 1. hisilicon$mkdir rootbox hisilicon$cd rootbox hisilicon$cp R source/os/busybox-1.1.2/_intsall/*. hisilicon$mkdir etc dev lib tmp var mnt home proc 2. 配 置 etc lib dev 目 录 的 必 需 文 件 a. etc 目 录 可 参 考 系 统 /etc 下 的 文 件, 其 中 最 主 要 的 文 件 包 括 inittab fstab init.d/rcs 文 件 等, 建 议 将 这 些 文 件 从 busybox 的 examples 目 录 下 拷 贝 过 来, 根 据 需 要 自 行 修 改 b. dev 目 录 下 的 设 备 文 件, 可 以 直 接 从 系 统 中 拷 贝 过 来 或 者 使 用 mknod 命 令 生 成 需 要 的 设 备 文 件 拷 贝 文 件 时 请 使 用 cp R file c. lib 目 录 是 存 放 应 用 程 序 所 需 要 的 库 文 件, 请 根 据 应 用 程 序 需 要 拷 贝 相 应 的 库 文 件 ---- 结 束 完 成 以 上 两 个 步 骤, 一 个 完 整 的 根 文 件 系 统 就 生 成 了 SDK 软 件 包 中 已 经 包 括 配 置 好 的 完 整 的 根 文 件 系 统, 如 果 无 特 别 需 求, 可 直 接 使 用 要 添 加 自 己 开 发 的 应 用 程 序, 只 需 将 应 用 程 序 和 相 应 的 库 文 件 拷 贝 到 根 文 件 系 统 的 对 应 目 录 即 可 4.3 文 件 系 统 简 介 嵌 入 式 系 统 中 常 用 文 件 系 统 包 括 cramfs JFFS2 NFS 和 yaffs2 如 果 将 NANDFlash 驱 动 以 模 块 方 式 提 供, 则 还 需 要 initrd 的 支 持 它 们 的 特 点 如 下 : cramfs 和 JFFS2 具 有 好 的 空 间 特 性, 很 适 合 嵌 入 式 产 品 应 用 cramfs 为 只 读 文 件 系 统 JFFS2 为 可 读 写 文 件 系 统 17

4 根 文 件 系 统 NFS 文 件 系 统 适 用 于 开 发 初 期 的 调 试 阶 段 yaffs2 文 件 系 统 只 用 于 NANDFlash, 没 有 编 入 内 核, 以 模 块 形 式 存 在, 依 赖 于 initrd initrd 采 用 cramfs 为 只 读 文 件 系 统 4.3.1 cramfs 4.3.2 JFFS2 cramfs 是 针 对 Linux 内 核 2.4 之 后 的 版 本 所 设 计 的 一 种 新 型 文 件 系 统, 使 用 简 单, 加 载 容 易, 速 度 快 cramfs 的 优 缺 点 如 下 : 优 点 : 将 文 件 数 据 以 压 缩 形 式 存 储, 在 需 要 运 行 时 进 行 解 压 缩, 能 节 省 Flash 存 储 空 间 缺 点 : 由 于 它 存 储 的 文 件 是 压 缩 的 格 式, 所 以 文 件 系 统 不 能 直 接 在 Flash 上 运 行 同 时, 文 件 系 统 运 行 时 需 要 解 压 数 据 并 拷 贝 至 内 存 中, 在 一 定 程 度 上 降 低 读 取 效 率 另 外 cramfs 文 件 系 统 是 只 读 的 如 果 想 要 在 单 板 运 行 的 Linux 中 提 供 cramfs 的 能 力, 必 须 要 在 编 译 内 核 时 把 cramfs 的 选 项 加 入 在 make menuconfig 后, 进 入 File>systems, 选 择 miscellaneous filesystems, 最 后 选 中 其 中 的 Compressed ROM file system support (SDK 里 面 提 供 的 内 核 默 认 已 经 选 择 了 该 文 件 系 统 的 支 持 ) mkfs.cramfs 是 用 来 制 作 cramfs 文 件 系 统 映 象 的 工 具 通 过 这 个 工 具 处 理 已 经 制 作 好 的 根 文 件 系 统, 可 以 生 成 cramfs 文 件 系 统 的 映 象 ( 这 类 似 于 我 们 把 光 盘 制 作 成 ISO 文 件 映 像 ) 具 体 操 作 如 下 : hisilicon$mkfs.cramfs./rootbox./cramfs-root.img 其 中,rootbox 是 之 前 已 经 制 作 好 的 根 文 件 系 统,cramfs-root.img 是 生 成 的 cramfs 文 件 系 统 映 像 文 件 JFFS2 是 RedHat 的 David Woodhouse 在 JFFS 基 础 上 改 进 的 文 件 系 统, 是 用 于 微 型 嵌 入 式 设 备 的 原 始 闪 存 芯 片 的 实 际 文 件 系 统 JFFS2 文 件 系 统 是 日 志 结 构 化 的 可 读 写 的 文 件 系 统 JFFS2 的 优 缺 点 如 下 : 优 点 : 使 用 了 压 缩 的 文 件 格 式 最 重 要 的 特 性 是 可 读 写 操 作 缺 点 :JFFS2 文 件 系 统 挂 载 时 需 要 扫 描 整 个 JFFS2 文 件 系 统, 因 此 当 JFFS2 文 件 系 统 分 区 增 大 时, 挂 载 时 间 也 会 相 应 的 变 长 使 用 JFFS2 格 式 可 能 带 来 少 量 的 Flash 空 间 的 浪 费 这 主 要 是 由 于 日 志 文 件 的 过 度 开 销 和 用 于 回 收 系 统 的 无 用 存 储 单 元, 浪 费 的 空 间 大 小 大 致 是 若 干 个 数 据 段 JFFS2 的 另 一 缺 点 是 当 文 件 系 统 已 满 或 接 近 满 时,JFFS2 运 行 速 度 会 迅 速 降 低 这 是 因 为 垃 圾 收 集 的 问 题 加 载 JFFS2 文 件 系 统 时 的 步 骤 如 下 : 1. 扫 描 整 个 芯 片, 对 日 志 节 点 进 行 校 验, 并 且 将 日 志 节 点 全 部 装 入 内 存 缓 存 2. 对 所 有 日 志 节 点 进 行 整 理, 抽 取 有 效 的 节 点 并 整 理 出 文 件 目 录 信 息 18

4 根 文 件 系 统 3. 找 出 文 件 系 统 中 无 效 节 点 并 且 将 它 们 删 除 4. 最 后 整 理 内 存 中 的 信 息, 将 加 载 到 缓 存 中 的 无 效 节 点 释 放 ---- 结 束 由 此 可 以 看 出 虽 然 这 样 能 有 效 地 提 高 系 统 的 可 靠 性, 但 是 在 一 定 程 度 上 降 低 了 系 统 的 速 度 尤 其 对 于 较 大 的 闪 存 芯 片, 加 载 过 程 会 更 慢 为 了 使 内 核 支 持 JFFS2 文 件 系 统, 必 须 在 编 译 内 核 时 把 JFFS2 的 选 项 加 入 ( 我 们 发 布 的 内 核 默 认 已 经 加 入 了 支 持 ) 在 make menuconfig 后, 进 入 File>systems, 选 择 miscellaneous filesystems, 最 后 选 中 其 中 的 Journalling FLASH File System v2 (JFFS2) support 选 项 (SDK 里 面 提 供 的 内 核 默 认 已 经 选 择 了 该 文 件 系 统 的 支 持 ) JFFS2 的 制 作 方 法 为 : hisilicon$mkfs.jffs2 d./rootbox -l e 0x20000 -o jffs2-root.img 其 中,mkfs.jffs2 工 具 可 以 从 互 联 网 中 下 载, 也 可 以 在 SDK 包 中 找 到 rootbox 为 之 前 已 经 制 作 好 的 根 文 件 系 统 参 数 说 明 如 表 4-2 所 示 表 4-2 JFFS2 参 数 表 参 数 d l e o 说 明 指 定 根 文 件 系 统 little-endian 小 端 模 式 Flash 的 块 大 小 输 出 映 像 文 件 4.3.3 NFS 使 用 cramfs 和 JFFS2 时, 需 要 先 将 根 文 件 系 统 映 像 烧 入 Flash, 系 统 启 动 时 会 从 Flash 中 加 载 但 是 在 系 统 开 发 或 移 植 的 初 期, 需 要 经 常 修 改 或 者 添 加 应 用 程 序 每 修 改 一 次 就 需 要 重 新 烧 入 一 次, 这 样 做 不 仅 耗 费 时 间, 而 且 对 Flash 的 寿 命 会 有 影 响 NFS 是 一 种 分 布 式 的 文 件 系 统, 用 于 共 享 文 件 和 打 印 机 它 允 许 用 户 调 用 挂 载 远 端 的 文 件 系 统 或 设 备 来 实 现 共 享, 使 用 方 式 与 挂 载 本 机 的 文 件 系 统 一 样 NFS 使 用 客 户 - 服 务 器 模 型 在 这 种 模 型 中, 服 务 器 输 出 需 要 共 享 的 目 录, 客 户 可 通 过 网 络 挂 载 这 些 目 录 并 访 问 其 中 的 文 件 使 用 NFS 作 为 根 文 件 系 统, 内 核 会 根 据 预 先 设 置 好 的 内 核 命 令 参 数 挂 载 一 个 NFS sever 中 输 出 的 目 录 作 为 其 根 目 录 这 个 过 程 不 需 要 任 何 对 Flash 的 操 作, 修 改 应 用 程 序 完 全 在 Linux 服 务 器 中 进 行, 非 常 适 于 开 发 初 期 的 调 试 阶 段 在 Linux 服 务 器 配 置 NFS 根 文 件 系 统 的 方 法 为 : 编 辑 /etc/exports 配 置 文 件, 添 加 路 径 及 参 数, 然 后 执 行 /etc/init.d/ nfs start 启 动 NFS 服 务 以 上 操 作 必 须 超 级 用 户 完 成, 且 导 出 的 目 录 必 须 是 绝 对 路 径 如 果 NFS 服 务 已 经 开 启, 在 配 置 文 件 后 只 需 重 新 启 动 NFS 服 务, 即 /etc/init.d/ nfs restart 19

4 根 文 件 系 统 在 Linux 服 务 器 上 配 置 好 NFS 根 文 件 系 统 后, 在 单 板 侧 挂 载 NFS 文 件 系 统, 具 体 操 作 如 下 : modprobe libphy /* 插 入 网 口 PHY 驱 动 模 块 */ modprobe hiether /* 插 入 网 口 驱 动 模 块 */ ifconfig eth0 hw ether 00:10:85:18:01:84 /* 配 置 MAC 地 址 */ ifconfig eth0 10.85.180.184 netmask 255.255.254.0 /* 配 置 IP 地 址 和 子 网 掩 码 */ route add default gw 10.85.180.1 /* 配 置 默 认 网 关 */ modprobe nfs /* 插 入 NFS 模 块 */ mount -t nfs -o nolock 10.85.180.133:/home/glibc-nfs /mnt /* 挂 载 NFS 目 录 至 JFFS2 文 件 系 统 的 mnt 目 录 下 */ 4.3.4 initrd 本 节 中 的 U-boot 即 boot loader, 和 具 体 的 存 储 介 质 无 关 initrd 是 由 U-boot 初 始 化 的 内 存 盘 如 果 内 核 支 持 initrd, 在 U-boot 配 置 了 initrd 的 情 况 下, 内 核 的 启 动 被 分 成 两 个 阶 段 : 第 一 阶 段 U-boot 会 先 将 存 储 介 质 中 的 initrd 文 件 加 载 到 内 存, 然 后 挂 载 initrd 文 件 系 统, 完 成 加 载 驱 动 模 块 的 任 务 第 二 阶 段 可 根 据 用 户 需 要 挂 载 yaffs2 文 件 系 统 NFS 文 件 系 统 等 initrd 相 当 于 存 储 介 质, 它 支 持 的 文 件 系 统 格 式 包 括 ext2 cramfs 等, 因 此 内 核 除 了 支 持 initrd 之 外, 还 要 支 持 cramfs 文 件 系 统 内 核 需 要 做 如 下 配 置,initrd 才 可 以 正 常 工 作 : 进 入 Device Drivers->Block devices, 选 择 支 持 RAM disk support 和 Initial RAM disk (initrd) support 进 入 File>systems, 选 择 miscellaneous filesystems, 最 后 选 中 其 中 的 Compressed ROM file system support 当 前 SDK 中 都 已 经 默 认 选 中 了 以 上 两 项 制 作 initrd 的 步 骤 如 下 : 1. 制 作 cramfs 镜 像 文 件, 具 体 制 作 方 法 请 参 见 4.3.1 cramfs 2. 以 步 骤 1 制 作 的 镜 像 文 件 作 为 输 入, 制 作 initrd 文 件, 制 作 命 令 为 mkimage -A arm -T ramdisk -C none -a 0 -e 0 -n cramfs-initrd -d./cramfs-image cramfs-initrd ---- 结 束 20

5 烧 写 内 核 和 根 文 件 系 统 5 烧 写 内 核 和 根 文 件 系 统 5.1 存 储 器 地 址 空 间 Hi3507DMEB 包 含 DDR 存 储 器 和 Flash 存 储 器 DDR 的 地 址 空 间 从 0xE0000000 开 始 ;Flash 的 地 址 空 间 从 0x34000000 开 始 具 体 大 小 随 单 板 不 同, 可 从 单 板 硬 件 手 册 中 获 取 Flash 的 使 用 有 特 殊 要 求 : 0x34000000~0x340FFFFF: 保 留 空 间, 供 存 放 U-boot 开 机 画 面 等 数 据 0x34100000~0x341FFFFF: 保 留 空 间, 供 存 放 内 核 其 余 空 间 可 自 行 分 配 随 单 板 发 布 的 软 件 在 Flash 的 存 放 位 置 如 图 5-1 所 示 其 余 则 保 留 或 有 其 他 用 途 图 5-1 Flash(32MB) 地 址 空 间 分 配 示 意 图 ( 仅 供 参 考 ) 0x35FFFFFF RootFS 0x341FFFFF 0x340FFFFF 0x34000000 Kernel Uboot 5.2 通 过 网 口 烧 写 通 过 网 口 烧 写 内 核 和 根 文 件 系 统, 首 先 需 要 进 行 参 数 设 置 和 建 立 tftp 服 务, 然 后 才 能 下 载 内 核 和 根 文 件 系 统 21

5 烧 写 内 核 和 根 文 件 系 统 5.2.1 参 数 设 置 和 建 立 tftp 服 务 5.2.2 下 载 内 核 用 普 通 网 线 连 接 Hi3507 DMEB 的 ETH 网 口, 然 后 在 U-boot 中 设 置 相 关 参 数 U-boot 只 支 持 tftp 协 议 设 置 参 数 的 具 体 操 作 如 下 : hisilicon#setenv serverip 10.85.180.211 /* 设 置 服 务 器 端 的 IP 地 址, 可 根 据 需 要 具 体 设 定 */ hisilicon#setenv ipaddr 10.85.180.130 /* 设 置 Hi3507 DMEB 板 的 IP 地 址 */ hisilicon#setenv netmask 255.255.254.0 /* 设 置 netmask*/ hisilicon#setenv gatewayip 10.85.180.1 /* 设 置 网 关 */ hisilicon#saveenv hisilicon# ping 10.85.77.69 /* 用 来 判 断 网 络 是 否 正 常 */ U-boot 不 支 持 广 播 包 的 接 收, 不 能 响 应 ping 包, 无 法 通 过 主 机 (Host)ping 单 板 判 断 网 络 是 否 通 畅 U-boot 支 持 向 外 发 ping 包, 并 能 接 收 ping 包 的 响 应 包 可 通 过 单 板 ping 主 机 来 验 证 网 络 是 否 连 接 正 常 上 述 最 后 一 个 操 作 中, 返 回 host 10.85.77.69 is alive 表 示 网 络 工 作 正 常 ; 显 示 ping failed;host 10.85.77.69 is not alive, 说 明 网 络 不 正 常, 需 要 重 新 检 查 网 络 设 置 另 外 还 需 要 在 Windows 工 作 台 或 者 Linux 服 务 器 中 建 立 tftp 服 务, 建 议 在 Windows 工 作 台 上 建 立 tftp 服 务 器, 简 单 方 便 下 载 内 核 的 操 作 如 下 : hisilicon#erase 0x34100000 +0x100000 /* 在 进 行 FLASH 写 入 之 前 必 须 先 手 动 擦 除 FLASH, 否 则 cp 命 令 可 能 会 报 错, 或 者 写 入 FLASH 的 数 据 错 误 */ hisilicon#tftp 0x34100000 kernel-hi3511v100xxxx_full_debug.img /* 将 tftp 服 务 器 上 的 kernel-hi3511v100xxxx_full_debug.img 文 件 下 载 到 0x34100000 的 位 置 */ 正 常 的 下 载 过 程 超 级 终 端 中 显 示 的 信 息 如 下 : MAC: 00-10-85-18-01-30 TFTP from server 10.85.180.211; our IP address is 10.85.180.130 Download Filename 'kernel-hi3511v100_full_debug.img'. Download to address: 0x34100000 Downloading: %T%T%# [ Connected ] ############################## 0.988 MB download ok. Bytes transferred = 1012660 (f73b4 hex) 5.2.3 下 载 根 文 件 系 统 下 载 根 文 件 系 统 的 操 作 如 下 : hisilicon#erase 0x34200000 +0xE00000 /* 首 先 擦 除 FLASH 的 文 件 系 统 分 区,FLASH 分 区 信 息 参 见 后 面 的 启 动 参 数 设 置 */ hisilicon#tftp 0x34200000 rootfs-full_dbg.jffs2 /* 将 rootfs-full_dbg.jffs2 文 件 下 载 到 0x34200000*/ 正 常 的 下 载 过 程 超 级 终 端 中 显 示 的 信 息 如 下 : MAC: 00-10-85-18-01-30 TFTP from server 10.85.180.211; our IP address is 10.85.180.130 Download Filename 'rootfs-full_dbg.jffs2'. 22

5 烧 写 内 核 和 根 文 件 系 统 Download to address: 0x34200000 Downloading: %# [ Connected ] ################################ [ 1.000 MB] ################################ [ 2.000 MB] ################################ [ 3.000 MB] ################################ [ 4.000 MB] ################################ [ 5.000 MB] ################################ [ 6.000 MB] ################## 6.591 MB download ok. Bytes transferred = 6897136 (693df0 hex) 由 于 Flash 的 写 操 作 速 度 较 慢, 如 果 下 载 的 文 件 较 大, 则 需 要 花 费 一 定 的 时 间, 等 到 重 新 回 到 hisilicon# 的 提 示 符, 表 示 下 载 完 成 当 下 载 文 件 系 统 为 cramfs 时, 同 样 需 要 先 对 Flash 分 区 进 行 擦 除, 然 后 再 下 载, 操 作 如 下 : hisilicon#erase 0x34200000 +0xE00000 hisilicon#tftp 0x34200000 rootfs-full_dbg.cramfs 5.3 通 过 串 口 烧 写 5.3.1 连 接 设 备 通 过 串 口 烧 写 内 核 和 根 文 件 系 统, 首 先 需 要 在 Windows 工 作 台 和 Hi3507 DMEB 之 间 通 过 串 口 连 接, 然 后 才 能 下 载 内 核 和 根 文 件 系 统 连 接 设 备 的 步 骤 如 下 : 1. 使 用 串 口 线 (DB9 接 口 ) 连 接 Windows 工 作 台 的 COM1( 也 可 以 是 其 他 串 口, 这 里 假 设 使 用 COM1) 和 Hi3507 DMEB 的 COM1 2. 启 动 Windows 工 作 台 的 超 级 终 端 软 件, 设 置 COM1 的 参 数 如 图 5-2 所 示 3. 启 动 Hi3507 DMEB, 系 统 进 入 U-boot 命 令 行 操 作 界 面, 表 示 系 统 工 作 正 常, 可 进 行 下 载 或 其 他 操 作 ---- 结 束 23

5 烧 写 内 核 和 根 文 件 系 统 图 5-2 串 口 设 置 5.3.2 下 载 内 核 在 超 级 终 端 的 U-boot 命 令 行 中 输 入 loadb 0xE1000000( 存 放 内 核 的 内 存 地 址 ), 打 开 菜 单 传 输 下 的 发 送 文 件, 弹 出 对 话 框, 如 图 5-3 所 示, 选 择 Protocol>Kermit, 在 Filename 中 选 择 内 核 文 件 图 5-3 发 送 文 件 窗 口 24

5 烧 写 内 核 和 根 文 件 系 统 5.3.3 下 载 根 文 件 系 统 等 待 下 载 完 成 后, 使 用 U-boot 的 cp 命 令 将 内 核 从 内 存 拷 贝 到 Flash 中, 操 作 方 法 如 下 : hisilicon#erase 0x34100000 +0x100000 /* 擦 除 Flash*/ hisilicon$cp.b 0xe1000000 0x34100000 0x100000 /* 拷 贝 内 核 到 0x34100000 位 置 */ 如 果 提 示 Flash 写 保 护 无 法 写 入, 则 先 将 Flash 写 保 护 关 闭, 然 后 再 进 行 拷 贝, 操 作 如 下 : hisilicon#protect off all hisilicon#erase 0x34100000 +0x100000 /* 擦 除 Flash*/ hisilicon#cp.b 0xe1000000 0x34100000 0x100000 /* 拷 贝 内 核 到 0x34100000 位 置 */ 下 载 根 文 件 系 统 和 下 载 内 核 的 操 作 方 法 相 同, 具 体 步 骤 如 下 : 1. 在 超 级 终 端 的 U-boot 命 令 行 中 输 入 loadb 0xe1000000( 存 放 根 文 件 系 统 映 像 文 件 的 内 存 地 址 ) 2. 选 择 传 输 > 发 送 文 件, 弹 出 对 话 框, 在 Protocol 的 下 拉 列 表 中 选 择 Kermit 选 项, 在 Filename 中 选 择 根 文 件 系 统 映 像 文 件 ( 在 4 根 文 件 系 统 中 已 经 制 作 好 的 rootfs-full_dbg.cramfs 或 者 rootfs-full_dbg.jffs2 ) 3. 等 待 下 载 完 成 后, 使 用 U-boot 的 cp 命 令 将 文 件 从 内 存 拷 贝 到 Flash 中 具 体 操 作 方 法 如 下 : hisilicon#erase 0x34200000 +0xE00000 /* 擦 除 Flash*/ hisilicon#cp.b 0xe1000000 0x34200000 0x693DF0 /* 拷 贝 文 件 到 0x34200000 位 置, 大 小 为 6897136B, 注 意 : 指 定 的 字 节 数 必 须 严 格 等 于 文 件 系 统 实 际 的 字 节 数, 否 则 文 件 系 统 可 能 会 出 错 */ ---- 结 束 使 用 串 口 下 载 操 作 简 单 但 速 度 很 慢, 适 合 下 载 小 文 件, 而 通 过 网 口 下 载 速 度 很 快, 可 提 高 工 作 效 率 建 议 使 用 网 口 下 载 25

6 启 动 Linux 6 启 动 Linux 6.1 设 置 启 动 参 数 从 U-boot 引 导 内 核, 需 要 给 内 核 传 递 参 数, 包 括 内 存 大 小 根 文 件 系 统 挂 载 设 备 等 根 据 根 文 件 系 统 类 型 不 同, 相 应 设 置 也 不 同 各 参 数 的 含 义 如 下 : mem: 设 置 操 作 系 统 内 存 大 小 设 置 mem=32m 表 示 分 配 给 操 作 系 统 内 存 为 32M, 起 始 地 址 为 0xE0000000 console: 设 置 控 制 台 设 备 格 式 为 console=ttyama0,115200 表 示 控 制 台 为 串 口 0, 波 特 率 115200 root: 设 置 根 文 件 系 统 挂 载 设 备 格 式 为 root=1f01 表 示 从 Flash 第 1 个 分 区 挂 载 (Flash 分 区 编 号 从 0 开 始 ), 其 中 系 统 根 目 录 挂 载 在 作 为 mtdblock 设 备 的 Flash 上, 该 设 备 主 设 备 号 为 31( 即 0x1f), 而 Flash 的 第 一 个 分 区 ( 即 编 号 为 0) 用 作 u-boot 和 内 核 存 放, 因 此 使 用 第 二 个 分 区 ( 编 号 为 0x01) rootfstype: 设 置 挂 载 文 件 系 统 类 型 mtdparts:flash 分 区 描 述, 格 式 为 mtdparts=phys_mapped_flash:3m(boot), 13M (rootfs) 表 示 有 两 个 分 区, 分 区 0 大 小 为 3M, 用 于 内 核 启 动, 分 区 1 大 小 为 13M, 用 于 文 件 系 统 以 下 参 数 设 置, 必 须 在 同 一 行 中 输 入 cramfs 根 文 件 系 统 类 型 为 cramfs 时, 设 置 如 下 : hisilicon# setenv bootargs mem=32m console=ttyama0,115200 root=1f01 rootfstype=cramfs mtdparts=phys_mapped_flash:3m(boot),13m(rootfs) hisilicon#saveenv 26

6 启 动 Linux JFFS2 根 文 件 系 统 类 型 为 JFFS2 时, 设 置 如 下 : hisilicon# setenv bootargs mem=32m console=ttyama0,115200 root=1f01 rootfstype=jffs2 mtdparts=phys_mapped_flash:3m(boot),13m(rootfs) hisilicon#saveenv PCI 启 动 单 板 为 PCI 主 设 备 时, 设 置 如 下 : hisilicon# setenv bootargs mem=32m console=ttyama0,115200 root=1f01 rootfstype=jffs2 mtdparts=phys_mapped_flash:3m(boot),13m(rootfs) pcimod=host pciclksel=16 hisilicon#saveenv pcimod 可 以 设 置 为 host 或 slave, 用 于 区 分 是 PCI 主 设 备 还 是 从 设 备 pciclksel 表 示 PCI 总 线 频 率 相 对 PLL 分 频 比, 例 如 pciclksel=16, 而 此 时 PLL 为 528MHZ, 则 PCI 总 线 频 率 为 528MHZ / 16 = 33MHZ 6.2 启 动 Linux 在 U-boot 命 令 行 中 输 入 如 下 : hisilicon#bootm 0x34100000 /* 从 0x34100000 处 启 动 Linux*/ 6.3 设 置 U-boot 自 动 启 动 Linux 设 置 U-boot 自 动 启 动 Linux 的 操 作 如 下 : hisilicon#setenv bootcmd bootm 0x34100000 /* 设 置 自 启 动 命 令 参 数 */ hisilicon#setenv bootdelay 2 /* 设 置 启 动 延 时 为 2s*/ hisilicon#saveenv 27

7 应 用 程 序 开 发 简 介 7 应 用 程 序 开 发 简 介 7.1 编 写 代 码 用 户 可 根 据 个 人 习 惯 选 择 代 码 编 写 工 具 通 常 在 Windows 环 境 下 使 用 Source Insight, 在 Linux 环 境 下 使 用 Vim+ctags+cscope 7.2 运 行 应 用 程 序 要 运 行 编 译 好 的 应 用 程 序, 首 先 需 要 完 成 以 下 工 作 : 将 应 用 程 序 和 需 要 的 库 文 件 ( 如 果 有 ) 等 添 加 到 目 标 机 的 根 文 件 系 统 相 应 的 目 录 中 通 常 将 应 用 程 序 放 到 /bin 目 录 里, 库 文 件 放 到 /lib 目 录 里, 配 置 文 件 则 放 到 /etc 目 录 里 制 作 包 含 新 应 用 程 序 的 根 文 件 系 统 如 果 执 行 应 用 程 序, 需 要 读 写 文 件 系 统 操 作 请 选 择 Jffs2 文 件 系 统, 或 者 使 用 cramfs 和 Jffs2 两 者 结 合 在 调 试 阶 段 推 荐 使 用 NFS 文 件 系 统, 可 以 省 去 重 新 制 作 根 文 件 系 统 和 烧 写 工 作 设 置 和 启 动 NFS 服 务 ( 请 参 见 4.3.3 NFS ), 然 后 将 NFS 目 录 挂 载 到 JFFS2 文 件 系 统 目 录 中, 操 作 方 法 如 下 : mount -t nfs -o nolock serverip:path /mnt 其 中 serverip 表 示 NFS 目 录 所 在 服 务 器 的 ip,path 表 示 NFS 目 录 在 服 务 器 上 的 路 径, 以 后 只 需 要 简 单 的 拷 贝 应 用 程 序 到 NFS 系 统 目 录 中, 就 可 以 在 目 标 机 里 运 行 如 果 需 要 制 作 cramfs 或 JFFS2 文 件 系 统, 制 作 相 应 的 文 件 系 统 ( 请 参 见 4.3 文 件 系 统 简 介 ), 然 后 烧 写 根 文 件 系 统 到 Flash 指 定 位 置 (0x34200000)( 请 参 见 5 烧 写 内 核 和 根 文 件 系 统 ), 并 设 置 相 应 的 启 动 参 数 同 样, 启 动 Linux 后 便 可 运 行 新 的 应 用 程 序 如 果 新 添 加 的 应 用 程 序 需 要 系 统 启 动 后 自 动 运 行, 编 辑 /etc/init.d/rcs 文 件, 添 加 需 要 启 动 的 程 序 路 径 28

7 应 用 程 序 开 发 简 介 7.3 使 用 gdbserver 调 试 应 用 程 序 在 很 多 情 况 下, 用 户 需 要 对 应 用 程 序 进 行 调 试 在 Linux 下 调 试 程 序, 常 用 的 工 具 是 gdb 由 于 嵌 入 式 单 板 的 资 源 有 限, 一 般 不 直 接 在 目 标 机 上 运 行 gdb 进 行 调 试, 而 是 采 取 gdb+gdbserver 的 方 式 gdbserver 在 目 标 机 中 运 行,gdb 则 在 宿 主 机 上 运 行 根 文 件 系 统 中 已 经 包 含 gdbserver 使 用 gdbserver 调 试 应 用 程 序 的 步 骤 如 下 : 1. 启 动 Linux 并 登 陆 进 入 shell 如 要 进 行 gdb 调 试, 首 先 要 启 动 gdbserver 方 法 是 先 进 入 需 要 调 试 的 程 序 所 在 目 录, 如 被 调 试 的 程 序 文 件 名 是 hello, 则 输 入 命 令 : hisilicon$ gdbserver :2000 hello & 上 述 命 令 表 示 在 目 标 机 的 2000 端 口 开 启 了 一 个 调 试 进 程,hello 就 是 要 调 试 的 程 序 2. 在 Linux 服 务 器 上 启 动 gdb 程 序, 因 为 目 标 机 为 ARM, 所 以 启 动 arm-hismall-linuxgdb 3. 在 命 令 提 示 符 状 态 下 输 入 命 令, 与 目 标 机 进 行 连 接 (gdb) target remote 192.168.0.5:2000 /*192.168.0.5 为 单 板 IP*/ 端 口 号 和 目 标 机 开 启 的 端 口 号 要 一 致 连 接 成 功 后, 会 输 出 如 下 提 示 信 息 : remote debugging using 10.70.153.100:2000 0x40000a70 in?? () 4. 加 载 符 号 文 件 : (gdb) add-symbol-file hello 40000a70 或 者 使 用 如 下 命 令 : (gdb) file hello 5. 输 入 各 种 gdb 命 令, 如 list run next step break, 即 可 进 行 程 序 调 试 ---- 结 束 29

A 建 立 Linux 开 发 环 境 A 建 立 Linux 开 发 环 境 服 务 器 的 Linux 版 本 没 有 限 制, 但 建 议 使 用 较 新 的 Linux 发 行 版, 如 RedHat 9.0 Fedora Core Debian 和 Mandrake 等 这 里 以 Fedora Core 2.0 为 例, 介 绍 如 何 建 立 Linux 开 发 环 境 A.1 安 装 Linux 系 统 的 配 置 选 项 在 市 场 销 售 的 发 行 版 一 般 都 提 供 60~90 天 的 电 话 技 术 支 持, 因 此 建 议 购 买 在 市 场 销 售 的 发 行 版 Linux, 不 建 议 从 网 上 下 载 或 从 其 它 渠 道 获 得 请 参 考 随 发 行 版 附 带 的 Hi3507 Linux 开 发 环 境 进 行 Linux 系 统 的 安 装, 安 装 中 应 注 意 的 配 置 选 项 如 表 7-1 所 示 表 7-1 安 装 Linux 系 统 的 配 置 选 项 说 明 配 置 选 项 建 议 目 的 默 认 语 言 英 文 避 免 远 程 登 录 的 时 候, 由 于 终 端 不 支 持 中 文 而 产 生 乱 码 磁 盘 分 区 自 动 分 区 留 出 足 够 的 磁 盘 空 间 供 安 装 SDK 防 火 墙 禁 用 使 后 续 启 动 的 系 统 服 务 能 正 常 工 作 安 装 类 型 完 全 安 装 避 免 因 为 缺 少 必 要 的 组 件 导 致 后 续 安 装 失 败 A.2 配 置 必 要 的 系 统 服 务 配 置 必 要 的 系 统 服 务 的 步 骤 如 下 : 1. Linux 安 装 完 成 后 启 动 进 入 窗 口 界 面, 以 root 用 户 登 陆 30

A 建 立 Linux 开 发 环 境 2. 配 置 samba 服 务, 使 Linux 和 Windows 之 间 能 方 便 地 交 换 文 件 在 FC2 的 菜 单 中 可 以 找 到 配 置 samba 服 务 的 菜 单 项 打 开 配 置 窗 口 后, 首 先 要 建 立 samba 用 户, 然 后 再 添 加 共 享 文 件 夹, 就 可 以 在 Windows 下 测 试 是 否 能 正 常 地 访 问 samba 服 务 了 3. 输 入 /etc/init.d/ssh start 启 动 ssh 服 务 ( 如 果 是 FC2, 默 认 已 经 启 动 了 该 服 务 ), 在 Windows 下 就 可 以 使 用 putty 等 工 具 登 陆 服 务 器 4. 输 入 /etc/init.d/nfs start 启 动 NFS 服 务, 编 辑 /etc/exports 文 件, 添 加 NFS 目 录, 就 可 以 将 单 板 访 问 服 务 器 的 NFS 文 件 夹 或 是 直 接 将 服 务 器 的 NFS 文 件 夹 作 为 单 板 的 根 目 录 启 动 ( 调 试 过 程 中 常 用 的 NFS 方 式 ) ---- 结 束 至 此, 一 个 基 本 的 Linux 环 境 已 经 搭 建 成 功, 接 下 来 就 可 以 安 装 SDK, 其 安 装 过 程 请 参 见 1.3.3 安 装 Hi3507 SDK 31

B 缩 略 语 B 缩 略 语 A ADS ARM Development Suite ARM 开 发 工 具 套 件 ARM Advanced RISC Machine ARM 公 司 指 令 集 C CRAMFS Compressed RAM file system 压 缩 RAM 文 件 系 统 E ELF Executable and Linkable Format 可 执 行 连 接 格 式 文 件 G GCC GNU Complier Collection GNU 编 译 器 集 合 GDB GNU Debugger GNU 调 试 器 I IP Internet Porotocol Internet 协 议 J JFFS2 Journalling FLASH File System v2 一 种 Flash 文 件 系 统 JTAG Joint Test Action Group 联 合 测 试 行 动 组 N 32

B 缩 略 语 NFS Network File System 网 络 文 件 系 统 P PC Personal Computer 个 人 计 算 机 S SDRAM Synchronous Dynamic Random Access Memory 同 步 动 态 随 机 存 储 器 SDK Software Development Kit 软 件 开 发 工 具 集 U U-Boot Universal Boot Loader 操 作 系 统 内 核 运 行 之 前 需 要 运 行 的 引 导 程 序 33