欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    ARM学习法Word下载.docx

    • 资源ID:21721003       资源大小:29.78KB        全文页数:10页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ARM学习法Word下载.docx

    1、学习uCOS鉴于你已经购买了嵌入式实时操作系统COS-II(第二版),除开以下三个文件:1、OS_CPU_C.c 2、OS_CPU.H, 3、OS_CPU_A.asm(这个是MDK环境下的汇编文件)或OS_CPU_A.a(这个是IAR开发环境下的汇编)这三个文件的处理机制暂时可以不用先了解怎么做的,怎么移植的,以后再说第一次读这本书时,搞清楚什么是任务,什么是前后台,为什么要在系统中加入嵌入式操作系统。第二次读这本书时,详细了解他的TCB(Task Control Block)和ECB(Event Control Block)的数据结构,搞清楚整个uCOS的实现机制(这里不要先就去看uCOS的

    2、移植,这样只会让你云里雾里的).第三次读这本书是,详细了解信号量,互斥信号量、消息队列、邮箱和时间标志组鉴于你又购买了C/OS-标准教程,你 可以想在VC+ 6.0开发环境下实现对信号量,互斥信号量、消息队列、邮箱和事件标志组的上机实验代码。如果还是不能了解uCOS怎么工作的,建议你多看几遍(我可是足足看了6、7遍了,书都翻得脱页了。汗说明我很笨,希望各位看官都比我聪明,呵呵) .第三步:建立对uCOS的初步认识在网上下载对应你的开发板ARM芯片移植好了文件OS_CPU_C.c,OS_CPU.H,OS_CPU_A.asm(当然有的开发板已经提供了这样的基础实验)在你的开发板上跑跑uCOS,建立

    3、起自己对于uCOS在ARM7开发板上的认识。在你所购买的ARM7开发板上编写一个自己跑uCOS得任务(这里先不要去搞中断,初学者对于uCOS下的中断程序设计根本就搞不清楚) .第四步:熟悉ARM体系结构因为是基于ARM7的移植,建议英文不好的去看看这本书ARM体系结构与编程(虽然这本书的作者在翻译时有很多操作,但是还是建议初学者去购买来好好看看),对于英文好的直接在网上下载ARM+Architecture+Reference+Manual(2nd+Edition)看就可以了在看这个ARM体系结构与编程或ARM+Architecture+Reference+Manual(2nd+Edition)

    4、时,务必注意多看几次,了解以下几个方面的知识:1、ARM模式下的指令集2、Thumd模式下的指令集3、异常模式及进入异常时ARM如何处理4、一定能熟悉ARM中的汇编指令5、熟悉CPSR,R0-R7,R8-R14,R15及在各个模式下,这些寄存器的映射。熟悉以后,再来自己做uCOS的移植了。第五步:uCOS移植当然在自己编写代码做移植uCOS之前,有必要看看别人的移植代码。其实对于uCOS的移植,我们只需要编写关键的三个文件,文件如下:1、OS_CPU_C.c(堆栈初始化操作OSTaskStkInit函数)。2、OS_CPU.H:完成在该芯片下的数据定义,比如什么unsigned char 之类

    5、的,注意一下OS_STK和OS_CPU_SR的定义,定义下关中断和开中断的方式,有三个只能选择1个,ARM芯片一般是定义为第三种方式。3、OS_CPU_A.asm(这个是MDK环境下的汇编文件)或OS_CPU_A.a(这个是IAR开发环境下的汇编),这个文件的内容就多了,要做以下几个函数的重写:1、OSStartHighRdy函数2、任务级的任务切换函数OSCtxSw,3、中断级的任务切换OSIntCtxSw,其实只要写好了OSCtxSw,OSIntCtxSw自然就copy一下就完了(copy的时候记者要把保存当前任务的寄存器去掉就可以了。第六步:测试自己的uCOS移植代码第七步:在自己写的u

    6、COS移植代码中跑跑任务。分享ARM初学者学习ARM的步骤很多人学完单片机就想学arm,但不知如何去学现在列出一下学习这方面的步骤-基于linux系统的学习步骤如下:(一步步来哦:)其实这也只是个基础,以后实际做项目了还要去学很多1、Linux 基础安装Linux操作系统 /Linux文件系统 /Linux常用命令 /Linux启动过程详解 /熟悉Linux服务 能够独立安装Linux操作系统 /能够熟练使用Linux系统的基本命令 /认识Linux系统的常用服务 安装Linux操作系统 /Linux基本命令实践 /设置Linux环境变量 /定制Linux的服务 Shell 编程基础使用vi编

    7、辑文件 /使用Emacs编辑文件/使用其他编辑器2、Shell 编程基础Shell简介 /认识后台程序/Bash编程熟悉Linux系统下的编辑环境 /熟悉Linux下的各种Shell /熟练进行shell编程熟悉vi基本操作 /熟悉Emacs的基本操作 /比较不同shell的区别 /编写一个测试服务器是否连通的shell脚本程序 /编写一个查看进程是否存在的shell脚本程序 /编写一个带有循环语句的shell脚本程序3、Linux 下的 C 编程基础linux C语言环境概述 /Gcc使用方法 /Gdb调试技术 /Autoconf /Automake /Makefile 代码优化 熟悉Lin

    8、ux系统下的开发环境 熟悉Gcc编译器 /熟悉Makefile规则编写Hello,World程序 /使用 make命令编译程序 /编写带有一个循环的程序 /调试一个有问题的程序4、嵌入式系统开发基础嵌入式系统概述 /交叉编译 /配置TFTP服务 /配置NFS服务 /下载Bootloader和内核 /嵌入式Linux应用软件开发流程/熟悉嵌入式系统概念以及开发流程 /建立嵌入式系统开发环境制作cross_gcc工具链 /编译并下载U-boot /编译并下载Linux内核 /编译并下载Linux应用程序4、嵌入式系统移植Linux内核代码 /平台相关代码分析 /ARM平台介绍 /平台移植的关键技术

    9、 /移植Linux内核到 ARM平台 了解移植的概念 /能够移植Linux内核移植Linux2.6内核到 ARM9开发板5、嵌入式 Linux 下串口通信串行I/O的基本概念 /嵌入式Linux应用软件开发流程 /Linux系统的文件和设备 /与文件相关的系统调用 /配置超级终端和MiniCOM 能够熟悉进行串口通信 /熟悉文件I/O 编写串口通信程序 /编写多串口通信程序6、嵌入式系统中多进程程序设计Linux系统进程概述 /嵌入式系统的进程特点 /进程操作 /守护进程 /相关的系统调用了解Linux系统中进程的概念 /能够编写多进程程序编写多进程程序 /编写一个守护进程程序 /sleep系

    10、统调用任务管理、同步与通信 Linux任务概述/任务调度 /管道 /信号 /共享内存 /任务管理 API 了解Linux系统任务管理机制 /熟悉进程间通信的几种方式 /熟悉嵌入式Linux中的任务间同步与通信/编写一个简单的管道程序实现文件传输 /编写一个使用共享内存的程序7、嵌入式系统中多线程程序设计线程的基础知识 /多线程编程方法 /线程应用中的同步问题了解线程的概念 /能够编写简单的多线程程序编写一个多线程程序8、嵌入式 Linux 网络编程网络基础知识 /嵌入式Linux中TCP/IP网络结构 /socket 编程 /常用 API函数 /分析Ping命令的实现 /基本UDP套接口编程

    11、/许可证管理 /PPP协议 /GPRS 了解嵌入式Linux网络体系结构 /能够进行嵌入式Linux环境下的socket 编程 /熟悉UDP协议、PPP协议 熟悉GPRS 使用socket 编写代理服务器 /使用socket 编写路由器 /编写许可证服务器 /指出TCP和UDP的优缺点 /编写一个web服务器 /编写一个运行在 ARM平台的网络播放器9、GUI 程序开发GUI基础 /嵌入式系统GUI类型 /编译QT /进行QT开发熟悉嵌入式系统常用的GUI /能够进行QT编程使用QT编写“Hello,World”程序 /调试一个加入信号/槽的实例 /通过重载QWidget 类方法处理事件10、

    12、Linux 字符设备驱动程序设备驱动程序基础知识 /Linux系统的模块 /字符设备驱动分析 /fs_operation结构 /加载驱动程序了解设备驱动程序的概念 /了解Linux字符设备驱动程序结构 /能够编写字符设备驱动程序编写Skull驱动 /编写键盘驱动 /编写I/O驱动 /分析一个看门狗驱动程序 对比Linux2.6内核与2.4内核中字符设备驱动的不同/Linux 块设备驱动程序块设备驱动程序工作原理 /典型的块设备驱动程序分析 /块设备的读写请求队列了解Linux块设备驱动程序结构 /能够编写简单的块设备驱动程序比较字符设备与块设备的异同 /编写MMC卡驱动程序 /分析一个文件系统

    13、 /对比Linux2.6内核与2.4内核中块设备驱动的不同11、文件系统虚拟文件系统 /文件系统的建立 /ramfs内存文件系统 /proc文件系统 /devfs 文件系统 /MTD技术简介 /MTD块设备初始化 /MTD块设备的读写操作了解Linux系统的文件系统 /了解嵌入式Linux的文件系统 /了解MTD技术 /能够编写简单的文件系统为 ARM9开发板添加 MTD支持 /移植JFFS2文件系统 /通过proc文件系统修改操作系统参数 /分析romfs 文件系统源代码 /创建一个cramfs 文件系统009-08-16 00:55 ARM初学者必读本文是写给准备学习ARM技术,而又没想好

    14、要学ARM7还是ARM9或者对ARM7与ARM9的区别不是很了解的初学者。希望本文对你们有点用处。由于职业的关系,经常会回答一些ARM初学者的问题,虽然问题千奇百怪,但以下两个问题绝对很有代表性。1.ARM7和ARM9的都有些什么区别?2.我准备学ARM,但不知是选ARM7还是ARM9好?也许这些问题在大虾们的眼里已不是问题,但对于初学者确实很具必要弄清楚。先说下:ARM7和ARM9的区别。1 时钟频率的提高虽然ARM7和ARM9内河架构相同,但ARM7处理器采用3级流水线的冯诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个

    15、指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9E则至少在200MHz以上。2. MMU(内存管理单元)ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。ARM9一般是有MMU的,ARM9940T只有MPU ,不是一个完整的MMU。这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统

    16、,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。4. ARM7比ARM9提供了更好的性能功耗比。它包含了THUMB指令集快速乘法指令和ICE调试技术的内核。5. 在从ARM7到ARM9的平台转变过程中,有一件事情是非常值得庆幸的,即ARM9E能够完全地向后兼容ARM7上的软件;并且开发人员面对的编程模型和架构基础也保持一致。在来说一下初学者是选ARM7还是ARM9。1.明确目的学习为应用。你学ARM准备用在什么地方,如果是一般性控制系统或仅仅用来替换8获16位机,ARM7显然是首选;但如果用在网络通信或大型的音视频处理等,则ARM

    17、9较合适。2.自身基础学习ARM的一般有三类人:一是计算机专业的这类人对操作系统等软件知识了解较多,而对硬件知识知之甚少,显然这类人学ARM的话还是做软件好,可以基于LINUX;WINCE等操作系统的ARM9更能符合这类人的要求,当然也有很多计算机专业的人从事ARM7系统的应用软件编写的。但是搞底层的就很少了。二是电子类专业的这类人的硬件基础了相对较好,相反操作系统,数据库等软件知识则差强人意。因此人多电子专业的人员都熟悉单片机,用单片编写点小程序还不在话下,但要用ARM做较大型的软件则有点力不从心。尤其是LINUX;WINCE这种操作系统不是三两个月能轻松搞定的。建议这类人员如无特别需要还是

    18、从ARM7和小型操作系统学起。够用就好,不要盲目追求高端。有一点要注意并不是从事ARM9的就比ARM7工资高,反而ARM7的就业机会比ARM9多,这很好理解,好比金字塔,越往顶肯越小。三是软硬件基础都不太好的这类人员有确实需要的,也有赶时髦的,如无大的学习决心还是参加培训的好。当然也可曲线救国,搞懂单片机后,ARM7就不难了。最后说一点关于开发板的,初学者买个开发板确实很有必要,但也要选择合适的,初学者合适的就是,资料齐全,有配套教程和学习指导,再加上较及时的技术支持。目前能做到的很少,开发板这东西不是说哪家公司有名气,售后就好,很多大公司一般不理个人买家的问题的,我感觉多半是运气,运气好了也

    19、许能碰到一家售后好的嵌入式学习步骤嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬雪终将化去,春风定会吹来。具体步骤如下:1、C语言第二版 谭浩强 ; C程序设计语言第二版 徐宝文译 机械工业出版社你能区分开指针数组和数组指针吗?你知道函数指针吗?你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?2、数据结构C语言版 黄国愉、叶乃青编清华大学出版社你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?3、实用C+程序设计第二板 中国电力出版社 Steve_Oualline著此阶段主要是学习其面向对象的编程思想

    20、,加深对C语言和数据结构的理解。4、学习单片机,最好能找个前辈带一带。你能用51单片机做出一样实际的东西吗?即使它再简单!要注意加深对中断的理解。5、学习ARM单片机。(1)、细读ARM微控制器基础与实战周立工编写(注:即使你不用书中的开发板)(2)、细读相关芯片的原版英文文档。如:arm920TE.pdfS3C2410_1.2.pdf6、学习uCOS!操作系统。(1)、细读嵌入式实时操作系统uCOS!第二版召贝贝译 你能把uCOS!移植到自己的平台上吗?(2)、能编写在uCOS!操作系统环境下运行的针对具体硬件的驱动程序7、熟悉inux环境,学习inux环境编程,学习交叉编程(1)、细读li

    21、nux命令大全.pdf(2)、细读GNU Make 使用手册(中译版).pdf(3)、学习创建交叉编程环境8、学习Linux操作系统。(1)、UNIX环境高级编程(2)、细读“joyfire 笔记”,可在“”网站的好书下载栏目获取(3)、细读linux内核完全注释(4)、细读understanding the linux kernel 2(5)、利用源代码阅读利器工具Source Insight进行真正的linux内核原码刨析(6)、最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序9、学习Linux设备驱动编写。可参考inux设备驱动程序10、复习C+,学习用Q

    22、T进行图形界面编程(1)、细读QT编程宝典(2)、学会通过查看QT电子文档进行QT GUI实地编程(3)、学习交叉编程(其实就是把命令qmake变为tmake)11、当然,你也可学习一下PCB的制作和设计一个自己的CPU(即软壳)在嵌入式软件方面最重要的课程包括:(1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬

    23、件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),你必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如B

    24、ootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前还会用到汇编写程序的,尽管用到的机会相对C要小得多。当你在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时你就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。小知识 目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire (冷火)等,但ARM占据了绝对主流(有资料说手机中几乎90%都是ARM处理器)。ARM是一个只卖

    25、知识产权的公司,目前获得购买了ARM CPU核授权许可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他们都在ARM CPU核的基础上进行了一些外围扩展,形成自己的处理器(如Samsung S3C2410,Motorola i.MXL9328等处理器都是采用ARM 9内核,指令一级是相同的)。而众多中小公司又购买了这些处理器,设计了各种各样的开发板,如华恒等国内很多著名嵌入式公司都生产基于SamsungS3C2410的开发板,供最终用户使用或供教学实验。在ARM这个食物链上,ARM公司是大鱼,Intel、Samsung等公司是小鱼,而华恒等则是虾米

    26、,最终用户(我们这些要采购嵌入式开发板的)则是喂虾米的。Intel早期生产的是低端ARM(Strong ARM,相当于ARM 7),现在转向主要生产高端ARM(即Intel Xscale处理器,属于ARMv5家族,主要用在高端PDA上,如HP和DELL生产的PDA都采用Intel Xscale,价格较高)。目前应用最多的是ARM 7和ARM 9两类处理器。 ARM 7较便宜,可跑uclinux(是一个不支持高级内存管理功能的嵌入式Linux系统统)、Vxworks、uc/os II等实时操作系统,但因处理器不带内存管理单元MMU(无内存分页和地址映射机制,所以不能使用虚拟内存),所以不能跑Wi

    27、ndows CE,另外通用Linux中的某些内存管理功能也不能用在ARM 7上。ARM 9大都是一个带MMU功能的高端处理器,可跑WinCE或通用Linux的大多数功能。ARM7和ARM9的区别是在与体系结构上,前者是冯诺伊曼结 构,后者是哈佛结构指令和数据总线是分开的。以上是我的一点了解,可能有不对的地方。我们学院有十几套ARM 7开发系统(采用Samsung S3C44b0x开发板,主要用于嵌入式处理器结构、实时操作系统等课程实验用),ARM 9的系统好象也已经到了(采用的芯片我不知道也没去问),还有以前的十几套MPC860开发板(听说价格都很贵,很容易损坏),同学应爱护使用和珍惜这样 的

    28、实验机会。(2) 嵌入式操作系统类课程除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统,这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半 疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell- alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不 起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似 的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最


    注意事项

    本文(ARM学习法Word下载.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开