arm6

合集下载

arm是什么意思及如何造句

arm是什么意思及如何造句

arm是什么意思及如何造句arm的意思名词:臂;武器;[复数]战事;权力动词:准备(斗争),准备行动 arm的英语音标英 [ɑ:m] 美 [ɑrm]arm的用法 arm的用法1:arm用作动词的基本意思是“把…武装起来”,可以表示“提供”“配备”“支持”,也可以表示“以(武器)装备”。

就目的而言可仅指为加强力量或安全做准备而提供,也可指为有效行为或作战而准备进攻或防御的装备。

arm引申还可指精神上、道德上或身体上的准备。

arm的用法2:arm可用作不及物动词,也可用作及物动词。

用作及物动词时,以被武装的对象作宾语。

arm的英语例句1. when you are sitting, keep your elbow on the arm rest. 坐立时,把胳膊肘靠在扶手上。

2. amy lifted her armto wave. “goodbye,” she called. 埃米举起胳膊挥挥手。

“再见,”她喊道。

3. he is recovering from an operation to reset his arm. 他做了一个手臂复位手术,正在恢复。

4. a roll of fat jiggled on the underside of her arm. 她胳膊下侧有一层肥肉一颤一颤的。

5. the paper is openly critical of the strong-arm president. 该报纸对这位铁腕总统进行公开的批评。

6. he has never put an arm around his wifeto accommodate photographers. 他从未为了迎合摄影师而搂住妻子。

7. he struck a match, and held it at arm’s length. 他划亮一根火柴,伸长胳膊举着。

8. she hesitated, then put her hand on grace’s arm. 她犹豫了一下,然后把手放到格雷斯的胳膊上。

初一新生必须掌握的189个英语单词

初一新生必须掌握的189个英语单词

1 一个a(an)2 下午afternoon3 和and4 苹果apple5 手臂arm6 学习study7 秋天autumn 8 书包bag 9 篮球basketball 10 起立stand up 11 be动词be (am, is, are) 12 床bed13 大的big 14 自行车bike 15 鸟bird16 黑的black 17 学生student 18 蓝的blue19 书book 20 男孩boy 21 公共汽车bus22 但是but 23 蛋糕cake 24 能够can25 帽子cap 26 小汽车car 27 猫cat28 椅子chair 29 中国China 30 汉语Chinese31 班级class 32 教室classroom 33 外套coat34 寒冷的cold 35 颜色colour 36 计算机computer 37 做饭cook 38 凉爽的cool 39 茶杯cup40 爸爸dad 41 跳舞dance 42 女儿daughter 43 亲爱的dear 44 书桌desk 45 做do46 狗dog 47 门door 48 画draw49 喝drink 50 驾驶drive 51 耳朵ear52 吃eat 53 鸡蛋egg 54 八eight55 英语的English 56 眼睛eye 57 胖的fat58 父亲father 59 最喜欢的favourite 60 好的fine61 鱼肉fish 62 五five 63 花flower64 食物food 65 脚foot 66 足球football67 四four 68 朋友friend 69 游戏game70 女孩girl 71 好的good 72 再见goodbye 73 绿色的green 74 头发hair 75 手hand76 快乐的happy 77 他he 78 头head79 你好hello 80 爱好hobby 81 家home82 家庭作业homework 83 热的hot 84 怎样how85 我I 86 在---里面in 87 它it88 大的large 89 腿leg 90 喜欢like91 听listen 92 看look 93 许多many94 地图map 95 我(宾格)me 96 肉meat97 小姐Miss 98 月亮moon 99 早上morning 100 母亲mother 101 嘴mouth 102 先生Mr.103 女士Ms 104 妈妈mum 105 音乐music106 我的my 107 名字name 108 新的new109 美味的nice 110 九nine 111 不no112 鼻子nose 113 不not 114 现在now115 年长的old 116 夏天summer 117 在---上面on118 一one 119 梨pear 120 钢笔pen121 钢琴piano 122 玩,打(球)play 123 请please124 分point 125 放put 126 阅读read127 红的red 128 米饭rice 129 乘坐ride130 跑run 131 说say 132 学校school133 看;明白,理解see 134 七seven 135 她she136 鞋shoes 137 矮的short 138 唱sing139 坐下sit down 140 六six 141 小的small142 儿子son 143 歌曲song 144 抱歉sorry145 讲speak 146 拼写spell 147 运动sports148 春天spring 149 太阳sun 150 游泳swim151 高的tall 152 茶tea 153 教师teacher154 电视television 155 十ten 156 谢谢thank157 (复数)谢谢thanks 158 那个that 159 那(这)个(些)the 160 这些these 161 他们they 162 瘦的thin163 这个this 164 三three 165 给---;向to166 触摸touch 167 树tree 168 电视TV169 二two 170 打字type 171 在---下面under 172 非常very 173 散步walk 174 温暖warm175 看watch 176 水water 177 我们we178 天气weather 179 什么what 180 哪里where181 白色的white 182 窗户window 183 冬天winter184 单词word 185 工作work 186 黄色的yellow187 是的yes 188 你you 189 你的your。

苏教版牛津英语小学五年级上Unit3知识汇总及习题

苏教版牛津英语小学五年级上Unit3知识汇总及习题

精心整理UnitThree【词汇】1.one…,theother…一个……,另一个……2.body身体3.no没有,无4.leg腿5.or也不,也没有6.arm手臂7.wing翅膀8.foot脚,足9.rabbit兔子10.give给11.finger手指【词组短语】1.ouranimalfriends我们的动物朋友2.bigeyes大眼睛3.one…andtheother…一个……,另一个……4.bigbodies大身体5.nolegsorarms没有腿也没有胳膊6.ananimalfriend一个动物朋友.7.bigtails大尾巴8.ashorttail一条短尾巴9.big/longears大/长耳朵10.runandjump又跑又跳11.redeyes红眼睛12.twowings一对翅膀13.bodyparts身体部位14.abigmouth一张大嘴巴15.anewfriend一位新朋友16.yourfingers你的手指17.twofish两条鱼18.beafraid害怕19.givesb.sth.=givesth.tosb.把某物给某人20.onthefarm在农场【语法】一、have、has的用法1.have用于第一人称(I,we),第二人称(you)以及第三人称复数(they)或复数名词,has用于第三人称单数(he,she,it)或单数名词。

2.have、has的句型转换(1)否定句:主语+don’t(doesn’t)+have+…例:Wedon’thaveanywaterhere.我们这儿没有水。

(2)一般疑问句:Do(Does)+主语+have+…?肯定回答:Yes,I/we/you/theydo.Yes,he/she/itdoes.否定回答:No,I/we/you/theydon’t.No,he/she/itdoesn’t.例:Doyouhaveapencil?你有铅笔吗?Yes,Ido./No,Idon’t.是的,我有。

实用ARM指令全

实用ARM指令全

在讲指令之前,先简单地介绍一下Cortex-M3 中支持的算术与逻辑标志。

本书在后面还会展开论述。

它们是:APSR 中的5 个标志位4.2.1 分类指令表表4.2 16位数据操作指令表4.3 16位转移指令IT If-Then表4.4 16位存储器数据传送指令16 数据传送指令没有任何新内容,因为它们是Thumb 指令,在v4T 时就已经定格了——译注表4.5 其它16位指令表4.6 32位数据操作指令UXTH 半字被无符号扩展到32 位(高16 位清0——译注)表4.7 32位存储器数据传送指令表4.8 32位转移指令表4.9 其它32位指令4.2.2 未支持的指令有若干条Thumb 指令没有得到Cortex-M3 的支持,下表列出了未被支持的指令,以及不支持的原因。

表4.10 因为不再是传统的架构,导致有些指令已失去意义未支持的指令以前的功能BLX #im 在使用立即数做操作数时,BLX 总是要切入ARM 状态。

因为Cortex-M3 只在Thumb 态下运行,故以此指令为代表的,凡是试图切入ARM 态的操作,都将引发一个用法fault。

SETEND由ARMv6 引入的,在运行时改变处理器端设置的指令(大端或小端)。

因为Cortex-M3 不支持动态端的功能,所以此指令也将引发faultCM3 也不支持有少量在ARMv7-M 中列出的指令。

比如,ARMv7M 支持Thumb2 的协处理器指令,但是CM3 却不能挂协处理器。

表4.11 列出了这些与协处理器相关的指令。

如果试图执行它们,则将引发用法fault(NVIC 中的NOCP (No CoProcessor)标志置位)。

表4.11 不支持的协处理器相关指令未支持的指令以前的功能MCR 把通用寄存器的值传送到协处理器的寄存器中MCR2把通用寄存器的值传送到协处理器的寄存器中MCRR 把通用寄存器的值传送到协处理器的寄存器中,一次操作两个MRC把协处理器寄存器的值传送到通用寄存器中MRC2 把协处理器寄存器的值传送到通用寄存器中MRRC把协处理器寄存器的值传送到通用寄存器中,一次操作两个LDC 把某个连续地址空间中的一串数值传送至协处理器中STC从协处理器中传送一串数值到地址连续的一段地址空间中还有一个是改变处理器状态指令(CPS),它的一些用法也不再支持。

arm x86 对应关系

arm x86 对应关系

arm x86 对应关系
ARM和x86是两种不同的处理器架构。

它们在计算机领域中扮
演着重要的角色,分别用于不同类型的设备和系统。

首先,让我们来谈谈ARM处理器架构。

ARM是一种精简指令集(RISC)处理器架构,最初设计用于低功耗和高效能的嵌入式系统,如智能手机、平板电脑和物联网设备。

ARM处理器以其低功耗和高
性能而闻名,适用于移动设备和嵌入式系统。

由于其低功耗特性,ARM处理器还被广泛应用于便携式设备和电池供电设备。

而x86处理器架构则是一种复杂指令集(CISC)处理器架构,
最初由英特尔开发,后来被AMD等公司采用。

x86处理器广泛应用
于个人电脑、服务器和工作站等大型计算机系统。

它以其强大的计
算能力和广泛的软件支持而闻名,适用于需要处理大量数据和运行
复杂应用程序的系统。

在对应关系方面,ARM和x86处理器通常用于不同类型的设备
和系统。

虽然在某些情况下可能会出现跨界应用,但一般来说,ARM
处理器更多地用于移动设备和嵌入式系统,而x86处理器更多地用
于个人电脑和服务器等大型计算机系统。

此外,由于两者的指令集
和架构差异,它们之间的软件兼容性和移植性也存在一定的挑战。

总的来说,ARM和x86处理器在不同的领域有着各自的优势和特点,对应着不同类型的设备和系统,而它们之间并非直接的一一对应关系,而是在不同领域各自发挥着重要的作用。

armcc6 单条指令

armcc6 单条指令

armcc6 单条指令“armcc6单条指令”是一款基于ARM架构的编译器,用于编译和优化C、C++和汇编语言代码。

在本文中,我们将详细介绍armcc6的单条指令,并逐步回答与其相关的主题。

1. 什么是armcc6?armcc6是ARM公司开发的一款编译器,用于将C、C++和汇编语言代码转换为可执行的ARM指令。

它广泛应用于嵌入式系统开发和ARM架构的应用程序开发中。

armcc6可以生成高效的机器码,并提供了丰富的优化选项,以提高代码执行的性能和效率。

2. armcc6的主要特性是什么?armcc6具有以下主要特性:a. 支持ARM,Thumb和Thumb-2指令集,可以根据编译器选项进行切换;b. 提供了丰富的编译器选项,以控制代码生成和优化;c. 内置了强大的优化功能,包括指令调度、循环展开和代码压缩等;d. 支持多种代码生成器和调试器,以适应不同的目标平台和调试环境;e. 提供了全面的警告和错误检查,以帮助开发人员捕获潜在的问题。

3. 如何使用armcc6进行单条指令编程?使用armcc6进行单条指令编程涉及以下步骤:步骤1:安装和配置armcc6编译器。

首先,从ARM官方网站上下载armcc6编译器,并按照安装说明进行安装。

接下来,设置环境变量和编译器选项,以便编译器能够找到所需的文件和库。

步骤2:编写代码。

使用文本编辑器创建一个新的源文件,编写C、C++或汇编语言代码。

根据需求,编写相应的单条指令,可以使用armcc6的内联汇编功能或者直接在源代码中嵌入汇编语句。

步骤3:编译代码。

使用armcc6编译器对源代码进行编译。

打开命令行终端,导航到源文件所在目录,运行armcc6编译器命令,指定源文件和编译选项。

编译器将会生成相应的目标文件。

步骤4:链接代码。

使用armcc6编译器进行链接,将目标文件与所需的库文件链接在一起。

运行链接器命令,指定目标文件和链接选项。

链接器将会生成最终的可执行文件。

ARM入门教程.pdf

ARM入门教程.pdf

目录第1章 ARM微处理器概述 51.1 ARM-Advanced RISC Machines 51.2 ARM微处理器的应用领域及特点 51.2.1 ARM微处理器的应用领域 51.2.2 ARM微处理器的特点 61.3 ARM微处理器系列 61.3.1 ARM7微处理器系列 61.3.2 ARM9微处理器系列 71.3.3 ARM9E微处理器系列 71.3.4 ARM10E微处理器系列 71.3.5 SecurCore微处理器系列 81.3.6 StrongARM微处理器系列 81.3.7 Xscale处理器 81.4 ARM微处理器结构 81.4.1 RISC体系结构 81.4.2 ARM微处理器的寄存器结构 91.4.3 ARM微处理器的指令结构 91.5 ARM微处理器的应用选型 101.6 本章小节10第2章 ARM微处理器的编程模型 112.1 ARM微处理器的工作状态 112.2 ARM体系结构的存储器格式 112.3 指令长度及数据类型 122.4 处理器模式 122.5 寄存器组织 132.5.1 ARM状态下的寄存器组织 132.5.2 Thumb状态下的寄存器组织 152.5.3 程序状态寄存器 162.6 异常(Exceptions) 182.6.1 ARM体系结构所支持的异常类型 182.6.2 对异常的响应 182.6.3 从异常返回 192.6.4 各类异常的具体描述 192.6.5 异常进入/退出小节 202.6.6 异常向量(Exception Vectors) 202.6.7 异常优先级(Exception Priorities) 212.6.8 应用程序中的异常处理 212.7 本章小节21第3章 ARM微处理器的指令系统 223.1 ARM微处理器的指令集概述 223.1.1 ARM微处理器的指令的分类与格式 223.1.2 指令的条件域 233.2 ARM指令的寻址方式 233.2.1 立即寻址 243.2.2 寄存器寻址 243.2.2 寄存器间接寻址 243.2.3 基址变址寻址 243.2.4 多寄存器寻址 253.2.5 相对寻址 253.2.6 堆栈寻址 253.3 ARM指令集 253.3.1 跳转指令 253.3.2 数据处理指令 263.3.3 乘法指令与乘加指令 303.3.4 程序状态寄存器访问指令 323.3.5 加载/存储指令 323.3.6 批量数据加载/存储指令 343.3.7 数据交换指令 353.3.8 移位指令(操作) 353.3.9 协处理器指令 363.3.10 异常产生指令 383.4 Thumb指令及应用 383.5 本章小节39第4章 ARM程序设计基础 404.1 ARM汇编器所支持的伪指令 404.1.1 符号定义(Symbol Definition)伪指令 404.1.2 数据定义(Data Definition)伪指令 414.1.3 汇编控制(Assembly Control)伪指令 434.1.4 其他常用的伪指令 454.2 汇编语言的语句格式 484.2.1 在汇编语言程序中常用的符号 494.2.2 汇编语言程序中的表达式和运算符 494.3 汇编语言的程序结构 524.3.1 汇编语言的程序结构 524.3.2 汇编语言的子程序调用 524.3.3 汇编语言程序示例 534.3.4 汇编语言与C/C++的混合编程 554.4 本章小节56第5章应用系统设计与调试 575.1 系统设计概述 575.2 S3C4510B概述 585.2.1 S3C4510B及片内外围简介 585.2.2 S3C4510B的引脚分布及信号描述 615.2.3 CPU内核概述及特殊功能寄存器(Special Registers) 675.2.4 S3C4510B的系统管理器(System Manager) 725.3 系统的硬件选型与单元电路设计 825.3.1 S3C4510B芯片及引脚分析 825.3.2 电源电路 835.3.3 晶振电路与复位电路 835.3.4 Flash存储器接口电路 855.3.5 SDRAM接口电路 895.3.6 串行接口电路 935.3.7 IIC接口电路 945.3.8 JTAG接口电路 955.3.9 10M/100M以太网接口电路 965.3.10 通用I/O接口电路 1005.4 硬件系统的调试 1015.4.1 电源、晶振及复位电路 1015.4.2 S3C4510B及JTAG接口电路 1025.4.3 SDRAM接口电路的调试 1035.4.4 Flash接口电路的调试 1055.4.5 10M/100M以太网接口电路 1055.5 印刷电路板的设计注意事项 1055.5.1 电源质量与分配 1055.5.2 同类型信号线的分布 1065.6 本章小节 106 第6章部件工作原理与编程示例 1076.1 嵌入式系统的程序设计方法 1076.2 部件工作原理与编程示例 1086.2.1 通用I/O口工作原理与编程示例 1086.2.2 串行通讯工作原理与编程示例 1116.2.3 中断控制器工作原理与编程示例 1206.2.4 定时器工作原理与编程示例 1236.2.5 GDMA工作原理与编程示例 1276.2.6 IIC总线控制器工作原理 1336.2.7 以太网控制器工作原理 138主要特性139MAC功能模块 140 带缓冲DMA接口(Buffered DMA Interface) 144以太网控制器特殊功能寄存器(Ethernet Controller Special Registers) 147MAC寄存器(Media Access Control(MAC)Register) 154以太网控制器的操作(Ethernet Controller Operation) 160发送一个帧(Transmitting a Frame) 162接收一个帧(Receiving a Frame) 1626.2.8 Flash存储器工作原理与编程示例 1626.3 BootLoader简介 1676.4 本章小节 167 第7章嵌入式uClinux及其应用开发 1687.1 嵌入式uClinux系统概况 1687.2 开发工具GNU的使用 1707.2.1 GCC编译器 1707.2.2 GNU Make 1727.2.3 使用GDB调试程序 1777.3 建立uClinux开发环境 1807.3.1 建立交叉编译器 1817.3.2 uClinux针对硬件的改动 1847.3.3 编译uClinux内核 1857.3.4 内核的加载运行 1877.4 在uClinux下开发应用程序 1887.4.1 串行通信 1907.4.2 socket编程 1957.4 .3 添加用户应用程序到uClinux 2027.4.4 通过网络添加应用程序到目标系统 2057.5 本章小结 207 第8章ARM ADS集成开发环境的使用 2098.1 ADS集成开发环境组成介绍 2098.1.1 命令行开发工具 2098.1.2 ARM运行时库 2188.1.3 GUI开发环境(Code Warrior和AXD) 2198.1.4 实用程序 2218.1.5 支持的软件 2218.2 使用ADS创建工程 2228.2.1 建立一个工程 2228.2.2 编译和链接工程 2258.2.3 使用命令行工具编译应用程序 2298.3 用AXD进行代码调试 2308.4 本章小结 233第1章 ARM微处理器概述本章简介ARM微处理器的一些基本概念、应用领域及特点,引导读者进入ARM技术的殿堂。

ARM架构

ARM架构
R15(PC) 状态寄存器 CPSR SPSR R15 CPSR
R13(SP)
R13
R13
R13_svc R13_svc R14_svc R14_svc
2-3-1 ARM状态下的寄存器组织
寄存器类别 寄存器在汇编中的名 称 用户 用户 R0(a1) R1(a2) R2(a3) R3(a4) R4(v1) R5(v2) R6(v3) 通用寄存器 和程序计数 器 R7(V4) R8(V4) R9(SB,v6) R0 R0 R1 R1 R2 R2 R3 R3 R4 R4 R5 R5 R6 R6 R7 R7 R8 R8 R9 R9 R10 R10 R11 R11 R8 R9 各模式下实际访问的寄存器 系统 系统 管理 管理 中止 中止 R0 R1 R2 R3 R4 R5 R6 R7 R8_fiq R8_fiq R9_fiq R9_fiq R10_fiq R10_fiq R11_fiq R11_fiq 未定义 未定义 中断 中断 快中断 快中断
1-4-1 常见ARM微处理器系列介绍
ARM9系列微处理器在高性能和低功耗特性方面提供 最佳的性能:
5级整数流水线,指令执行效率更高。 提供1.1MIPS/MHz的哈佛结构。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 全性能的MMU,支持Windows CE、Linux、Palm OS 等多种主流 嵌入式操作系统。 MPU支持实时操作系统。 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
2-1 ARM微处理器的工作状态
处理器状态: ARM9处理器内核使用V4T版本的ARM结构,具有 两种操作状态:
ARM状态:32位,这种状态下执行的是字方式的ARM指令 Thumb状态:16位,这种状态下执行半字方式的ARM指令。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(3)、拷贝阶段2代码到RAM空间
(4)、设置好堆栈 堆栈指针sp设置在1MB 的 RAM 空 间的最顶端(堆栈向下生长)。 (5)、跳转到阶段2的C程序入口点 在上述一切都就绪后,就可以跳转 到 Bootloader 的 stage2 去执行了。
堆栈指针sp:stage_end-4 stage1为stage2可执行 映像准备的RAM地址范 围,大小:1MB RAM地址空间
6.1.3 Bootloader启动过程
Bootloader的启动可以分为两个阶段
1、第一阶段
阶段1主要包含依赖于CPU体系结构及硬 件设备的初始化等。通常都用汇编语言来实 现。这个阶段的任务有5: (1)、基本的硬件设备初始化 这是 Bootloader 一开始就执行的操作, 其目的是为阶段2 的执行、以及随后kernel 的执行准备好一些基本的硬件环境。
(5)、调用内核
Bootloader调用Linux kernel的方法是直 接跳转到内核的第一条指令处。在跳转时必 须满足下列条件: 1)、CPU寄存器的设置:R0为0;R1为机 器类型ID;R2为启动参数,标记列表在 RAM中的起始基地址。 2)、CPU模式: CPU必须设置为SVC模 式,必须禁止中断(IRQs和FIQs)。 3)、 MMU 和 Cache的设置:MMU 必须 关闭;指令 Cache 可以打开也可以关闭; 数 据 Cache 必须关闭。
2、下载(Downloading)模式
RedBoot的Bootloader
像RedBoot或U-Байду номын сангаасoot等功能强大的 Bootloader通常都可同时支持这两种工作模 式,而且允许用户在这两种工作模式之间进 行切换。
比如,RedBoot在启动时处于正常的启动 加载模式,但是它会延时3秒等待终端用户 按下任意键而将RedBoot切换到下载模式。 如在等待时间内没有接收到用户按键,则继 续启动 Linux 内核。
启动加载模式称为“自举” (Autonomous)模式。即Bootloader从 目标机上的某个固态存储设备上将操作 系统加载到 RAM 中运行,整个过程并 没有用户的介入。 启动加载模式是 Bootloader的正常工 作模式,在嵌入式产品发布的时侯, Bootloader必须工作在这种模式下。
2、下载(Downloading)模式
几种发布的Bootloader
1、vivi vivi是韩国Mizi公司开发的Bootloader, 适用于ARM9处理器。 2、RedBoot RedBoot即红帽(Red Hat)嵌入式 调试引导程序,是一种用于嵌入式系统的独立 开放源代码引导/装载器。 3、U-Boot U-Boot(Universal Bootloader)由 德国DENX小组开发,是一款目前功能较为强 大的开源Bootloader程序,它支持多种处理器 平台,包括ARM、PowerPC、MIPS等。
一、vivi源代码目录结构
vivi源代码包含的目录有:arch、 Documentation、drivers、init、include、lib、 scripts、test、util等10目录,共300多个文件。 各个目录内容如下:
1、arch(architecture)目录
它下面的文件为与CPU硬件相关的初始化 代码,此目录包含了所用vivi支持的CPU。一 般只包含S3C2410x的文件。
下载方式:在这种模式下,目标机上 的Bootloader将通过串口连接或网络连接 等通信手段从主机下载文件。 下载内容及存储:主要是下载内核映 像和根文件系统映像等。从主机下载的 文件通常首先被Bootloader保存到目标机 的RAM中,然后再被 Bootloader写到目 标机上的FLASH 类固态存储设备中。
6.1.5 vivi Bootloader接口命令
vivi有两种工作模式,一种是 “启动加载” 模式,另一种是命令行模式。利用串行口与 主机的连接,可以进行命令行操作。 vivi启动后,通过串行口发出如下信息: Press Return to start the Linux now, any other key for vivi 按下除了“Enter”之外的键,便可进入命 令行模式。 vivi的接口命令有5条。
0x0000,0000
Bootloader的阶段2可执行映像刚被拷贝到 RAM空间时的系统内存布局
2、第二阶段
阶段2通常用C语言来实现,以便 实现更复杂的功能,也使程序有更好 的可读性和可移植性。这个阶段的主 要任务有5: (1)、初始化本阶段要使用到的硬 件 至少初始化一个串口,以便和终端 用户进行 I/O 输出信息等。
2、Documentation目录
其下文件为vivi使用指南。
3、drivers目录
存放的为MTD(数据存储媒质)设备读 写控制文件和串行口操作文件,对串行口支 持xmodem和ymodem协议。
4、include目录
存放所有的头文件,包括S3C2410微处理 器的和S3C2410开发板的头文件。
stage2_start
. . . . . . . . .
...(blank)
ramdisk
...(blank) 内核映像 Flash地址空间 ...(blank) stage2可执行映像可能 的最大大小:1MB 0x0000,0400(1KB) stage1可执行映像大 小:1MB 0x0001,0000(64KB)
它通常包括以下工作:屏蔽所有的 中断、设置 CPU 的速度和时钟频率、 关闭处理器内部指令/数据cache等。
(2)、为阶段2代码准备RAM空间 为了获得更快的执行速度,通常把 阶段2 的代码加载到 RAM 空间中来执 行。 准备RAM空间考虑的因素:阶段2 代码大小、堆栈、页大小(4KB的倍 数)、安排位置等。 总的空间有1MB足够,安排在RAM 的顶端较恰当。
下载模式应用场合:Bootloader的这 种模式通常在第一次安装内核与根文件 系统时被使用;此外,以后的系统更新 也会使用到这种工作模式。 用户应用接口:工作于这种模式下的 Bootloader通常都会向它的终端用户提供 一个简单的命令行接口。 如在RedBoot 下,将出现“RedBoot>”提示符;在vivi Bootloader 下出现“vivi>”提示符。
6.1.2 Bootloader操作模式
大多数Bootloader都有两种不同的操 作模式:“启动加载”模式和“下载” 模式。其区别对于开发人员才有意义。
从最终用户的角度看,Bootloader的 作用就是用来加载操作系统,而并不存 在所谓的启动加载模式与下载模式的区 别。
1、启动加载(Bootloading)模式
嵌入式系统讲义
第6章 嵌入式系统软件移植 与Linux下程序开发 周国运
2007.9
本章主要内容
1、Bootloader及vivi移植 2、嵌入式Linux内核及移植 3、基于Linux的应用程序开发 4、基于Linux的驱动程序开发 5、驱动程序开发实例
6.1 Bootloader 及vivi移植
5、init目录
该目录下是系统初始化文件main.c、 version.c,后者是vivi版本信息,main.c为 vivi整个初始化的结构。
6、lib目录
该目录下是公共应用及接口代码,如时 钟功能文件time.c,堆栈初始化文件heap.c 等文件。
7、scripts目录
该目录存放的是系统配置需要的脚本文 件,如menuconfig和configue文件。
本节内容
1、Bootloader简介 2、Bootloader工作模式 3、Bootloader启动过程 4、vivi Bootloader源代码分析 5、vivi Bootloader接口命令 6、vivi 源代码修改移植
嵌入式系统软件开发流程
建立交叉编译环境
Bootloader的/移植/配置/编译
例1:vivi>load flash kernel x 表示下载压缩的内核映像文件zImage到 flash存储器的内核分区中,采用xmodem传 输协议。 例2:vivi>load flash 0x80000 0xc0000 x
2、part---MTD分区操作命令 操作命令:显示、增加、删除、复位、 保存MTD分区等。 各个命令格式: part show:显示分区信息 part del <partname>:删除指定的分区 part reset:恢复分区的默认值 part save:在flash中保存分区和参数值
8、CVS目录
所有的目录下面都有一个CVS目录,存 放的是该目录的路径和它的子目录。
二、vivi源代码文件与功能结构
vivi源代码文件: 1、vivi/arch/s3c2410/head.s 2、一段过度,实现循环调用,main返回后 重新复位 LDR SP, DW_STACK_START MOV FP, #0 MOV A2, #0 BL MAIN MOV PC, #FLASH_BASE 3、vivi/init/main.c
(机器类型参见 linux/arch/arm/tools/mach-types目录)
6.1.4 vivi Bootloader源码分析
vivi是韩国Mizi公司开发的Bootloader,适 用于ARM9处理器。 vivi有两种工作模式,在启动时可以选择。 在vivi启动时,通过串行口发出如下信息: Press Return to start the Linux now, any other key for vivi 按回车键启动Linux OS,按其它键进入 vivi命令接口模式,可以使用vivi提供的命令 进行一些操作。
1、load---下载文件命令 功能:将二进制文件下载到Flash或RAM 格式:load <media_type> [<partname>|<addr> <size>] <x|y|z> media_type:存储器类型,Flash或RAM partname:分区名称 addr size:下载的地址及占用空间大小 x|y|z:文件的传输协议。x表示采用 xmodem协议,y表示采用ymodem协议,z表 示采用zmodem协议。目前vivi仅支持 xmodem协议。
相关文档
最新文档