arm开发经验!(适合初学者入门)

发布者:Aningmeng最新更新时间:2015-03-16 来源: laogu关键字:arm  开发经验  初学者入门 手机看文章 扫描二维码
随时随地手机看文章
前一段时间做了arm的一些开发,主要是编写了arm的启动软件和移植了uCOS-II到arm7。我做事情喜欢深入简出,及从最简单,最原理的方面先做一个框架,然后在这个框架里面进行补充。我还是一个很喜欢和别人讨论的人,希望有人可以给我提出意见和建议。我的这个心得很初级,都是一些基本的东西。现在拿出来和大家分享,希望在我毕业之前能给大家留一些纪念。^_^ 

    由于这些东西发paper实在是没有价值,但是我感觉可以作为arm开发的入门。由于我的水平和经验有限,错误也是难免的。但是如果不拿出来和大家分享,就算有错误我也发现不了,是么?呵呵。我现试试发连载的第一篇,看看有多少价值,如果大家觉得有价值,我会继续连载的。 
连载一: 
前言 
这个文档是我学习ARM编程的总结和心得。阅读这个文档的人应当首先阅读ADS1.2的帮助文档及相关内容。这个文档不会对编译器及连接器做出详细的说明,在需要的时候会指出具体内容在相关资料的章节。同时阅读这个文档的人需要了解ARM指令集和一些ARM汇编的基本内容以及C和C++的相关编程内容。同时还需要了解ARM的流水线结构及一些基本的编程知识。同时为了方便查阅英文文档,所有的相关术语都使用英文原文

第一章 STARTUP 
1 ARM的启动 
一般的嵌入式系统在主程序执行之前都需要执行一些初始化的过程以创造嵌入式程序运行的环境,尤其是一些高级的嵌入式系统,由于核心芯片使用内存映射、内存保护等机制以及编程使用高级语言C,C++甚至JAVA语言,都需要先创建一个适合程序运行的硬件环境,然后初始化或者配置或者剪裁run-time library, 这些工作都必须在主程序运行前完成,所以一个startup程序或者程序组对于一个嵌入式系统来说是非常重要的。要编写startup程序,需要对编译器、链接器和汇编器的细节有一定的了解,同时对ARM芯片硬件本身的地址分配以及memory mapping机制也需要有一些了解。 
2 ARM 程序的工作过程 
首先由各种source file经过编译产生object文件,然后object文件经过链接生成Image文件,然后通过ICE的方法,根据描述文件的指定下载到目标板上的固态存储器指定地址当中,比如flash,EEPROM, ROM等等。在程序执行之前,根据某些描述文件,将需要读写数据的部分读出放入动态存储器比如RAM当中,然后程序从ROM开始执行。或者有时为了提高程序的运行速度,也可以将所有的程序(有一些root的部分除外,以后会提及)通过一个描述文件放入指定的RAM当中,然后程序从RAM开始执行,但是这样会耗费大量的动态存储器,所以大部分程序会取折中的方法,将需要快速运行的部分和要读写的部分放入RAM中(一般读固态存储器的过程和动态存储器的过程是一样的,但是写就不同了,所以读写的部分一定要放到RAM中),而只读的部分和对速度要求不是那么高的部分放入固态存储器。同时ARM结构的异常向量表规定放在地址为0x00000000开始的地址空间上,而一般的CPU为了提高异常相应速度,会将这个向量段remap到其他的RAM当中,所以在描述文件当中必须精确指定异常向量跳转程序的地址到remap的地方。在application程序执行前,还需要由一些文件描述application程序执行的环境。比如系统工作时钟,总线频率。现在一般嵌入式编程语言为C,C++等。如果在使用它们的时候使用的runtime-library,那么在程序执行前还需要为这些库函数初始化heap。然后ARM可能工作在不同的模式,还需要为不同的工作模式设置stack。这样,描述链接地址的文件,以及在application运行前所有的初始化程序就是startup程序组 
3 STARTUP分类 
这样,将startup程序所完成的功能分类。一类是链接地址描述,一类是各种初始化的程序。根据不同的应用,描述文件和初始化程序的内容以及结构和复杂程度都会不同。但是基本上,它们都必须实现以下功能。 
3.1 描述文件实现功能 
描述文件可以是链接命令行上简单的几个字符,也可以是一个非常复杂的文件,但是它必须完成如下功能: 
; 指定程序下载的地址 
; 指定程序执行的地址 
3.2 初始化程序实现的功能 
初始化程序根据不同的应用,其结构和复杂度也不同,但是它必须完成如下基本功能: 
; 异常向量初始化 
; 内存环境初始化 
; 其他硬件环境初始化

关键字:arm  开发经验  初学者入门 引用地址:arm开发经验!(适合初学者入门)

上一篇:arm开发经验!(连载2)
下一篇:44b0X的中断控制

推荐阅读最新更新时间:2024-03-16 13:55

Arm承认其Cortex M可被侧信道攻击但否认已被破解
Arm 上周五发表声明称,对其基于 TrustZone 的 Cortex-M 系统的成功侧信道攻击(side-channel attack)“并不意味着该架构提供的保护失败”。 “Armv8-M 架构的安全扩展并不意味着可以防止由于控制流或内存访问模式引起的侧信道攻击。实际上,此类攻击并非特定于 Armv8-M 架构;它们可能适用于任何代码,依赖于密码的控制流或内存访问模式。”Arm说道。 Arm 在上周的 Black Hat Asia infosec 会议上发表了一份声明——题为“把你的秘密交给我,MCU!对微控制器的微架构定时攻击是实用的”——声称该芯片设计公司的微控制器容易受到侧信道攻击。 基于 2018 年发现
[单片机]
ARM与X86 CPU架构区别
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指令来完成所需的计算任务。 RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大。 x86架构采用CISC,而ARM采用RISC。 ARM成立于1991年,是一家出售IP(技术知识产权)的公司,所谓的技术知识产权,有点像卖房屋的结构设计图,至于要怎么修改,哪边开窗户,以及要怎么添
[单片机]
<font color='red'>ARM</font>与X86 CPU架构区别
Win 8整合ARM困难重重
  【IT168 资讯】微软对ARM处理器的支持将导致Windows 8部署的严重问题。三位微软的前雇员,目前担任研究机构Directions on Microsoft的分析师,他们表示ARM和Windows 8的整合要至少等到2013年才能完成。同时,在接下来的两年里这一行为还将使很多公司和厂商面临艰难的抉择。    Windows 8整合ARM还有很多困难   负责服务器应用的主分析师维斯米勒表示,这是一个很难得项目,还有很多的工作在他们面前。这是一个全新的平台,需要新的设备驱动和生产代工厂商。   平台分析师迈克尔切瑞表示,此前Windows已经运行在各种处理器上,包括MIPS、Power PC 和Itanium。在
[嵌入式]
面对瞬息万变的IT世界 看ARM变与不变的哲学
机器的隆隆声正在“铲平”这个世界,新技术、新方案层出不穷,创业园、新公司如雨后春笋。大公司在巩固优势的同时正不断拓展自己的“蓝海”,小公司也在把握时机以待重新洗牌……如何定位自己的战略,如何制定自己的战术,如何把自己融入一个充满活力的生态系统?虽然所有公司都在考虑这个问题,但并不是所有人都能找到正确的答案——最近信息产业部公布的一则消息表明中国半导体行业的整体情况似乎不容乐观。 据信产部公布的电子信息百强企业2006年前6个月的经营情况显示,电子信息百强企业实现利润总额83.4亿元,同比下降11%,电子百强企业营业收入平均利润率为1.6%,比去年同期的2.3%下降了0.7个百分点。这是电子百强企业平均利润率连续五年半的
[焦点新闻]
面对瞬息万变的IT世界 看<font color='red'>ARM</font>变与不变的哲学
ARM的堆栈学习笔记
以下是我在学习ARM指令中记录的关于堆栈方面的知识: 1、寄存器 R13 在 ARM 指令中常用作堆栈指针 2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。采用以下的记号来区分不同的物理寄存器: R13_ mode 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。 3、寄存器R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用户应
[单片机]
第1天-ARM汇编指令MOV/MVN
MOV : 传送 (Move) MOV{条件}{S} , dest = op_1 MOV 从另一个寄存器、被移位的寄存器、或一个立即值装载一个值到目的寄存器。你可以指定相同的寄存器来实现 NOP 指令的效果,你还可以专门移位一个寄存器: MOV R0, R0 ; R0 = R0... NOP 指令 MOV R0, R0, LSL#3 ; R0 = R0 * 8 如果 R15 是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到 R15: MOV PC, R14 ; 退出到调用者 MOVS PC, R14 ;
[单片机]
数据中心时代,Arm和RISC-V将崛起
据量子位报道,因为连续押中特斯拉、Zoom和比特币,Catherine Wood被人称为“牛市女皇”,而她对科技趋势的预测也备受关注。 在其最新发布的2021年技术趋势中。列出了涉及深度学习、比特币、电动汽车、航空航天、生物医学等数十个机会领域。其中,他指出,Intel时代将终结,ARM、RISC-V和GPU将成为主流的处理器。 以ARM与x86为例。首先在市场份额上。 2020年,ARM处理器市占率仅0.1%,但到2030年,ARM处理器则将直接跃升至82%。 目前,苹果、微软等PC都在加紧努力支持ARM处理器。 然后在营收上。 2030年,ARM服务器的营收可能会增长100倍。从2020年的不到1
[物联网]
数据中心时代,<font color='red'>Arm</font>和RISC-V将崛起
ARM推64位处理器架构ARMV8及芯片
北京时间10月31日消息,ARM宣布推出ARMv8 64位架构指令集之际,Applied Micro Circuits Corporation(AMCC)就推出了面向服务器市场的处理器X-Gene。 X-Gene架构 根据介绍,X-Gene采用高度集成的SoC片上系统设计,包含多个高性能ARMv8架构核心。该处理器主频最高可达3.0GHz,拥有强悍的单线程性能,支持完整的处理器和输入输出虚拟化,整合了服务器级别的动态电源管理技术,热设计功耗可根据需要进行配置,待机功耗不超过0.3W,支持万兆网络。 X-Gene与其他平台性能对比 根据AMCC的说法,搭载X-Gene的主机将可以减少50%以上
[嵌入式]
<font color='red'>ARM</font>推64位处理器架构ARMV8及芯片
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved