



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式实验指导书(计算机专业适用)08版计算机专业适用信息科学与工程学院2008年4月目录目录 2第一章嵌入式系统开发与应用概TOC\o"1-5"\h\z述 31.1嵌入式系统开发与应用 32基于ARM的嵌入式开发环境概述 3第二章EmbestARM实验教学系统 5教学系统介绍 5教学系统安装 ...103教学系统的硬件电路 112.4集成开发环境使用说TOC\o"1-5"\h\z明 12第三章嵌入式软件开发基础实验 261ARM汇编指令实验一 262C语言程序实验32第四章基本接口实验 36存储器实验 36I/O接口实验 46数码管显示实验 ...53第五章人机接口实验 ・・・・・・・・571液晶显示实验 575x4键盘控制实验 70触摸屏控制实验 ...74第六章实时操作系统实验 ..831uC/OS-II应用实验 832第一章嵌入式系统开发与应用概述1.1嵌入式系统开发与应用以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。就我们周围的日常生活用品而言,各种电子手表、电话、手机、PDA、洗衣机、电视机、电饭锅、微波炉、空调器都有嵌入式系统的存在,如果说我们生活在一个充满嵌入式的世界,是毫不夸张的。据统计,一般家用汽车的嵌入式计算机在24个以上,豪华汽车的在60个以上。ARM系列处理器核是英国先进RISC机器公司(AdvancedRISCMachines,ARM)的产品。ARM公司自成立以来,一直以IP(IntelligenceProperty)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,它提供一些高性能、低功耗、低成本和高可靠性的RISC处理器核、外围部件和系统级芯片的应用解决设计方案。ARM处理器核具有低功耗、低成本等卓越性能和显著优点,越来越多的芯片厂商早已看好ARM的前景。目前非常流行的ARM芯核有ARM7TDMI,ARM720T,ARM9TDMI,ARM920T,XScale等。此外,ARM芯片还获得了许多实时操作系统(RealTimeOperatingSystem)供应商的支持,比较知名的有:WindowsCE、uCLinux、VxWorks、uC/OS等。ARM公司具有完整的产业链,ARM的全球合作伙伴主要为半导体和系统伙伴、操作系统伙伴、开发工具伙伴、应用伙伴、ARM技术共享计划(ATAP),ARM的紧密合作伙伴已发展为122家半导体和系统合作伙伴、50家操作系统合作伙伴,35家技术共享合作伙伴,并在2002年在上海成立中国全资子公司。早在1999年,ARM就已突破L5亿个,市场份额超过了50%,而在最新的市场调查表明,在2001年度里,ARM占据了整个32、64位嵌入式微处理器市场的75%,在2002年度里,占据了整个32、64位嵌入式微处理器市场的79.5%,全世界已使用了20多亿个ARM核。ARM已经成为业界的龙头老大,“每个人口袋中装着ARM”,是毫不夸张的。因为几乎所有的手机、移动设备、PDA几乎都是用具有ARM核的系统芯片开发的。2基于ARM的嵌入式开发环境概述1交叉开发环境作为嵌入式系统应用的ARM处理器,其应用软件的开发属跨平台开发,因此需要一个交叉开发环境。交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行运行调试的开发方式。用来开发的通用计算机可以选用比较常见的PC机、工作站等,运行通用的Windows或Unix操作系统。开发计算机一般称宿主机,嵌入式设备称为目标机,3在宿主机上编译好的程序,下载到目标机上运行,交叉开发环境提供调试工具对目标机上运行的程序进行调试。交叉开发环境一般由运行于宿主机上的交叉开发软件(最少必须包含编译调试模块)、宿主机到目标机的调试通道组成。运行于宿主机上的交叉开发软件最少必须包含编译调试模块,其编译器为交叉编译器。作为宿主机的一般为基于x86体系的桌上型计算机,而编译出的代码必须在ARM体系结构的目标机上运行,这就是所谓的交叉编译了。在宿主机上编译好目标代码后,通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。为了方便调试开发,交叉开发软件一般为一个整合编辑、编译汇编链接、调试、工程管理及函数库等功能模块的集成开发环境IDE(IntegratedDevelopmentEnvironment)o模拟开发环境模拟开发环境建立在交叉开发环境基础之上,是对交叉开发环境的补充。这时,除了宿主机和目标机之外,还需要提供一个在宿主机上模拟目标机的环境,使得开发好的程序直接在这个环境里运行调试。软件模拟不可能完全代替真正的硬件环境,这种模拟调试只能作为一种初步调试,主要是用作用户程序的模拟运行,用来检查语法、程序的结构等简单错误,用户最终还必须在真实的硬件环境中实际运行调试,完成整个应用的开发。评估电路板评估电路板,也称作开发板,一般用来作为开发者学习板、实验板,可以作为应用目标板出来之前的软件测试、硬件调试的电路板。尤其是对应用系统的功能没有完全确定、初步进行嵌入式开发且没有相关开发经验的非常重要。开发评估电路板并不是ARM应用开发必须的,对于有经验的工程师完全可以自行独立设计自己的应用电路板和根据开发需要设计实验板。选购合适于自己实际应用的开发板可以加快开发进度,可以减少自行设计开发的工作量。嵌入式操作系统很多初学者认为嵌入式开发必须采用嵌入式操作系统。实际上,一个嵌入式应用是否采用嵌入式操作系统,采用哪种嵌入式操作系统完全由项目的复杂程度、实时性要求、应用软件规模、目标板硬件资源以及产品成本等因素决定。嵌入式操作系统一般可以提供内存管理、多任务管理、外围资源管理,给应用程序设计带来很多好处,但嵌入式操作系统同时也会占用一定的系统资源,并且要在用户自己的目标板上运行起来,并基于操作系统来设计自己的应用程序,也会相应地带来很多新的问题。所以对于不太复杂的应用完全可以不用操作系统,而对于应用软件规模较大的场合,采用操作系统则可以省掉很多麻烦。一般来说一套具备最基本功能的交叉开发环境是ARM嵌入式开发必不可少的,至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。4第二章EmbestARM实验教学系统2.1教学系统介绍
EmbestARM教学系统包括EmbestIDE集成开发环境,EmbestJTAG仿真器,Flash编程器,EmbestArmEduKitII开发板、各种连接线、电源适配器以及实验指导书等。基本实验模型示意图如2T所示:图2-1实验模型示意图1.1EmbestIDE集成开发环境1)EmbestIDE开发环境界面如图2-2所示&r”ilgrjF======『f・ircAE::«*“二”三1)EmbestIDE开发环境界面如图2-2所示&r”ilgrjF======『f・ircAE::«*“二”三图2-2EmbestIDE开发环境软件界面EmbestIDE主要特征EmbestIDE可在Windows98、2000、NT及XP等操作系统上运行,主要支持ARM系列处理器。对于ARM系列处理器,EmbestIDE目前支持ARM7以及ARM9系列。EmbestIDEforARM主要特性如下:,支持开发语言:C和汇编。,界面友好,使用方便:类似MSVisualStudio的用户界面。,工程管理器:图形化的工程管理工具,负责应用源程序的文件组织和管理,提供编译、链接、库文件的设置窗口,可在一个工作区中同时管理多个应用软件和库工程。,源码编辑器:标准的文本编辑功能,支持语法关键字、关键字色彩显示等。IDE同时提供了高效的FindinFiles引擎,可迅速查找定位指定的字符串信息。,编译工具:集成著名优秀自由软件GNU的GCC编译器,并经过优化和严格测试,运行在Win32环境;同时兼容ARMSDT2.51编译器,可以方便ARMSDT及ADS的用户在EmbestIDE下编译工程代码。IDE提供了图形化的编译器开关设置界面,用户可以简单、直观、快捷地完成工程编译选项设置。编译信息的输出,条理清晰,可迅速定位产生语法错误的源文件行。,调试器:提供对ARMAXD调试器的支持,可以方便使用EmbestJTAG仿真器调试ARMSDT及ADS环境的工程代码。源码级调试,提供了图形和命令行两种调试式,可进行断点设置、单步执行、异常处理,可查看修改内存、寄存器、变量等,可查看函数栈,可进行反汇编等。支持ARM/Thumb指令调试。,调试设备:EmbestJTAG仿真器,连接到主机的通信接口可以是DB25的LPT口、USB接口或Ethernet接口,另外一端是IDC插头,连接到目标板的JTAG接口。用户可以使用EmbestIDE配合EmbestJTAG仿真器进行应用软件的开发,EmbestIDE同时也支持一些国内外常用的JtagCable线。,脱机调试:EmbestIDEforARM带ARM指令集模拟器,用户可以在PC上模拟调试ARM应用软件。,丰富的例程:提供ADI、Atmel,Samsung、CirrusLogic^OKI、Philips、Sharp等多家公司ARM处理器的调试程序示例和使用说明。,联机帮助:中、英文两种版本的在线帮助文档。在嵌入式软件开发时,完成设计和编码后,即开始调试程序,这是软件开发的第三步。EmbestIDE的调试功能包括:,断点功能:断点设置、断点屏蔽、断点取消、条件断点、查看断点列表。,程序的单步执行。,变量监视功能:随程序运行同步更新变量,变量值即时修改。,寄存器即时查看与修改。提供外围寄存器编辑器,可查看编辑ARM处理器的外围寄存器定义,存储器查看与修改,存储器内容显示格式定制。,堆栈显示。,同时提供图形界面操作和命令行操作方式。,支持被调试代码的多种显示模式,能以源码的形式、汇编的形式、混合的形式来显示程序。,提供外围寄存器细节属性窗口,调试过程中可动态修改外围寄存器单元的配置6,具有与MSVisualStudio类似的调试菜单功能:Go,Stop,Reset,Stepinto,Stepover,Stepout,RuntoCursor等。,程序的上载和下载。2.1.2EmbestJTAG仿真器JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。"AG仿真器连接比较方便,通过现有的JTAG边界扫描口与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。EmbestJTAG仿真器如下图所示。
(a)EmbestEmulatorforARM(b)EmbestPowerICEforARM♦♦♦, FMKJiilmmIUUNetICEM二 -U- *一一 -(c)EmbestUnetICEforARM图2-3EmbestJTAG仿真器图EmbestJTAG仿真器目前分为三种类型,包括标准型(EmbestEmulatorforARM),增强型(EmbestPowerlCEforARM)和通用型(EmbestUnetICEforARM),主要区别在于下载调试的速度不同。其中EmbestEmulatorforARM,EmbestPowerlCEforARM根据采用打印机并口(LPTx)与主机通讯,即仿真器一端是一个DB25的接口,用于连接计算机的并行口,另外一端是20针的IDC插头,用于连接目标板。EmbestUnetICEforARM则
可以使用USB接口或EthernetRJ45接口与主机通讯,分别使用USB线或交叉网线与主机USB或RJ45接口相连。EmbestJTAG仿真器面板上面都有三只指示灯,对当前的工作状态做出指示。1.3Flash编程器当用户程序编写完之后,需要把程序生成的二进制执行文件烧写到开发板的Flash存储器中观察实际运行结果。英禧特公司提供了一套完善的Flash编程器,用户可以直接使用该编程器对开发板上的Flash进行读写(使用时需要配合前面提到的EmbestJTAG仿真器)。其运行界面如图2-4所示:图2-4Flash编程器界面Flash编程器的主要特征:,支持所有基于ARM7和ARM9核的处理器,如ATMEL公司AT91系列,SAMSUNG公司S3c系列等。用户也可以通过选择自定义(USER->DEFINE),来定义编程使用的CPU类型。,支持大多数厂家生产的FLASH芯片,如AMD公司AM29系列,INTEL公司28列,SST公司29\39\49系列。英禧特公司可免费提供新Flash芯片型号支支持对FLASH进行空白检查、擦除、编程、文件校验、计算校验和、保护、上载。,支持8位、16位和32位读写访问宽度。,支持Windows98、2000、NT及XP操作系统。81.4EmbestArmEduKitII开发板EmbestArmEduKitII开发板是实验系统的主要硬件平台,它是英禧特公司开发的一款全功能ARM开发板,基于Samsung公司的S3C44B0X处理器(ARM7TDMI),资源丰富。硬件系统包含了嵌入式系统开发应用所需的大部分设备,如串口、以太网口、USB口、音频输出、LCD及TSP触摸屏、4*4的小键盘、固态硬盘、大容量的Flash和SDRAM等等。用户不仅可以在该硬件平台上完成实验系统提供的实验例子,还可以参考该平台设计自己的目标系统。该硬件平台如下图所示:图2-5实验系统硬件平台EmbestArmEduKit11开发板的基本资源如下:,电源:外部5V电源供电或者由USB接PC供电,电源指示LED以及500mA保险丝,lMX16bitFlash,4XlMX16bitSDRAM,4KbitIICBUS的串行EEPROM,2个串口,其中一个为简单接口,一个为全接线接口,可跳接RS232MODEM,复位开关,两个中断按钮,两个LED,外部IDE硬盘接口,LCD及TSP触摸屏接口9,20针JTAG接口,USB连接器,4X4键盘接口,4个2X20PINCPU扩展接口,10M以太网接口,8段数码管,MICROPHONE输入口,IIS音频信号输出口,可接双声道SPEAKER,固态硬盘16Mx8bit,320*240带触摸功能的显示屏1.5各种连接线与电源适配器实验系统除了提供以上的组件以外,还提供了各种连接时候需要的电缆线。包括直通网线,USB线,串口线,并口线和两根JTAG线(分别是20针和14针接□)o实验系统还提供一个5V电源适配器(EmbestArmEduKitII实验板用)2.2教学系统安装EmbestARM教学系统包括EmbestIDE集成开发环境,Flash编程器,EmbestJTAG仿真器,EmbestEduKitII开发板、各种连接线及电源适配器。其中EmbestIDE和Flash编程器是属软件平台部分,其余属于硬件平台部分。本章主要介绍如何安装实验系统的软件平台、如何搭建和如何进行软件平台与硬件平台的连接。软件平台的搭建包括两个部分EmbestIDE集成开发环境的安装EmbestFlash编程器的安装软件安装完毕后,请详细阅读相关软件说明及软件使用手册。下面介绍如何进行软件平台和硬件平台的连接。,实验软件平台和硬件平台的连接如图2-1所示,PC端与仿真器通过实验系统提供的并口线连接,仿真器和开发板通过一根20针的JTAG线连接。其中需要注意:1)开发板使用5VDC电源供电,建议使用实验系统提供的变压器2)仿真器侧面的Jtag跳线拨到20位置3)硬件平台最好预先参照EmbestEduKitII用户手册(在EmbestARM教学系统光盘中)进行基本硬件检测102.3教学系统的硬件电路3.1概述EMBESTARMEDUKIT?教学试验平台是一款功能强大的32位的嵌入式开发板,里面采用了SAMSUNG公司的以ARM7TDMI-S为内核的处理器S3C44B0X,同时可以兼容S3c2410,具有JTAG调试等功能。板上提供了一些键盘、LED和串口等一些常用的功能模块,并且具有IDE硬件接口,CF存储卡接口、以太网接口和SD卡接口等等,对用户在32位ARM嵌入式领域进行开发试验非常方便。功能特点,使用CPU扩展接口,可以使用SAMSUNG公司的S3c44B0X和S3C24101,系统核心板包括SDRAM、CPU、核心电压模块、实时时钟、系统跳线、系统时钟、核心板接口等;,SDRAM用量与CPU有关,2410采用64M,44B0采用8/16M兼容芯片为HY57V561620或HY57V641620;,完全自主设计的软硬件系统,可以支持"AG仿真技术,支持ADS、SDT和IDE等集成环境开发;,具有2/4M兼容的NorFlash和8/16/32/64/128M兼容的NandFlash;,两个以太网口,一个为44B0和4510专用,另外一个为MII接口的CPU专用,用到的芯片分别是CS8900A和RTL8201;,具有USB接口电路;,具有串行口2个,可以跟上位机进行通讯;,内部包含采用UDA1341Ts芯片的音频电路模块,方便进行音频调试试验;,内部包含IIC器件,采用支持IIC的EEPROM-AT24C08;,显示部分包括STN/TFT兼容接口的彩色LCD、LED指示灯和6个数码管;,采用变阻器形式的ADC数据采集电路;提供实时时钟控制试验;,提供触摸屏接口电路;,4X4键盘,可以扩展至64键,使用芯片SD7218;,用PWM控制的蜂鸣器电路,可以发出不同频率的声音;,提供用I/O控制的跑马灯试验;,提供由MAX485控制的RS422和RS485接口电路;,提供CAN接口电路,方便组装现场总线;,具有IDE硬盘接口、CF存储卡接口、SD卡接口和PS2接口;,WDT控制电路,提供SPI接口;,包含红外线接口模块;,具有采用扩展子板形式的GPRS模块电路和GPS模块电路;11EMBESTARMEDVKIT?教学试验平台主要功能模块如下:USB控制器以太网接口IIS控制器UART接口IIS控制器RS232驱动器LCD接口1USB控制器LCD接口2PS2接口JTAG调试接口SPI接口ADC接口以太网控制器SDCARD接口TSP接口PCI接口CFCARD接口S3C44B0X_PACKNANDFLASHCPLDIDE接口LED显示CAN接口调试接口CPLDBUFFERLED驱动CAN控制器键盘接口复位AIN输入电源电源开关BUZZERVGA图2-13ARM开发板功能模块原理说明(略)硬件结构(略)2.4集成开发环境使用说明2.4.1EmbestIDE主框架窗口在Windows98/NT/2000/XP环境中运行EmbestIDEforARM(主应用程序为EmbestIDE.exe)后,即进入EmbestIDE集成开发环境。EmbestIDE集成开发环境主界面见下图。12图2-27EmbestIDE主界面图EmbestIDE集成开发环境的主框架窗口由标题栏、菜单条、工具条、工程管理窗口、源文件窗口、输出窗口和状态条等组成。标题栏显示当前打开的文件名。工程管理窗口用于显示当前打开工程的有关信息,包括工程的文件组成等内容。源文件窗口用于文本编辑器进行C、汇编等源文件的编辑以及调试时的源代码执行跟踪。输出窗口输出编译信息、调试信息、命令行输入输出和输出一些查询结果信息等。主框架窗口的最底端为状态栏,用于显示关于菜单条、工具条等的简单说明信息以及文本编辑器中当前光标所在的行列号等。用户可以通过鼠标拖动,将菜单条、工具条、工程管理窗口、源文件窗口和输出窗口等随意更换顺序和位置,也可以隐藏其中的某些窗口。在调试过程中,可以根据需要打开和关闭寄存器窗口、函数栈窗口、变量窗口、存储器窗口、数据观察窗口以及反汇编窗。2.4.2工程管理.工程管理介绍在EmbestIDE集成开发环境中,工程是一个非常重要的概念,它是用户组织一个应用的所有源文件、设置编译链接选项、生成调试信息文件和最终的目标Bin文件的一个基本结构。一个工程管理一个应用的所有源文件、库文件、其它输入文件,并根据实际情况进行相应的编译链接设置,一个工程须生成一个相对应的目录,以进行文件管理。EmbestIDE工程管理提供以下功能:,将所有源文件组成一个有机整体,实现一个具体的应用。在工程管理窗口中可方便地管理组成工程的所有源文件(见下图)。,以工程为单位定义设置应用程序的各选项,包括目标处理器和调试设备的选择与设置,调试相关信息的配置,以及编译、汇编、链接等选项的设置等。系统提供一个专门的对话框来设置这些选项。Workspace臼啕Workspace'Examples':12projectfs]r:53analogjesttiles♦:」CSourceFilesRLJASMSourceFiles省adc_irq.s牙cstartup.s♦」HeaderSourceFiles'4LinkScriptFilet:国example」2cHiesuTMTTiiTdaffBF*品interruptfiles«led_blinkfilesCiNertFolder...3uTMTTiiTdaffBF*品interruptfiles«led_blinkfilesCiNertFolder...3国led_swingfilest:留pollingtilesAddHestoProject...5e<asActiveProject♦留set_flash_sramfileS扉termfiles图辱timefiles♦国timerfiles♦品ucosfilesJetting...DockingViewHxfe杳Properbes图2-28工程管理窗及右键菜单,提供build菜单和工具按钮,让用户轻松进行工程的编译、链接。编译、链接信息输出到输出窗口中的Build标签窗中(见下图),编译链接出现的错误,通过标左键双击错误信息提示行来定位相应的源文件行。RuiIdlnjproj«ct:raatrttvlt4sO:\tliivstHUM.ugenytlvtfcii:ll:\t八1V .c .3<«ratHlIIIIciMiii11IMt7NNNMNN .rll.♦f*T.BMiid<chuX:«La5.}tu4-n11图2-29编译链接输出子窗口,一个应用工程编译链接后根据编译器的设置生成相应格式的调试信息文件,调试通过的程序转换成二进制格式的可执行文件后最终在目标板上运行。2.工程的创建工程是置于工作区中管理的,因此在创建一个工程的同时,会创建一个工作区。操作过程:1)点击菜单项File>NewWorkspace,系统弹出一个对话框,如下图所示。CreateaNewProtectProjectname:|NewProjectNameLocation:|E:\EmbestlDE\Examples\Samsung\NICancel图2-30创建一个新工程142)在Projectname框中输入新建工程名,Location框中输入该工程要保存的目录路0径,或点击选择要保存的目录路径。3)点击0K按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程。.建立一个新的源文件点击菜单项File>New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第一行,用户即可编辑输入源文件代码。默认情况下,在用户编辑输入时,按C语法来进行颜色加亮显示。编辑完后,保存该文件。.工程中文件的加入
选择Project菜单中AddToProject>Files命令,或单击工程管理窗口中的相应右键菜单命令,弹出文件选择对话框,在工程目录下使用CTRL键同时选择要加入的源文件:图2-31加入的源文件:图2-31加入源文件到工程中.设置活动工程在一个工作区中可以存在几个同时打开的工程,但只有一个工程处于活动状态,处于活动状态的工程才可以作为调试工程。在工作区窗口中,处于活动状态的工程,其工程图标将显示为加亮彩色。如图2-32所示。0弱Workspace'term':5project(s)©犀term_eb40filestermeb40,ffi国term_eb42 旦3dffl国term_eb55QjNewFolder...®掣®掣termeb63AddFilestoProject...SetasActiveProject活动工程彩色图标vDockingView
Hide活动工程彩色图标vDockingView
Hide囱Properties图2-32彩色图标及右键菜单设置活动工程15在工作区窗口中,选中要设置为活动状态的工程,点击鼠标右键,弹出右键菜单,选择SaveasActiveProject项,可将该工程设置为活动状态,如图2-32所示..4.3工程基本配置选择菜单项Project>Settings…或快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框中,选择相16应的配置页面可对处理器、仿真器、调试器、编译器和汇编器等作配置。如对处理器Processor设置对话框,如图2-33,其它设置类同图2-33处理器配置对话框.4.4工程的编译链接图2-54工程build菜单和工具条完成工程的设置后,就可以对工程进行编译链接了。用户可以通过选择主窗口Build菜单项或Build工具条按钮,编译相应的文件或工程,同时将在输出窗的Build子窗口中输出有关信息。如果在编译链接过程中,出现任何错误,包括源文件语法错误和其它错误时,编译链接操作立刻终止,并在输出窗的Build子窗口中提示错误,如果是语法错误,用户可以通过鼠标左键双击错误提示行,来定位引起错误的源文件行。172.4.5加载调试EmbestIDEforARM包含ARM模拟器,支持脱离目标板的ARM应用模拟调试,是开发人员进行在线调试前的开发辅助工具。在线调试时,首先将集成环境与JTAG仿真器连接,点击Debug>RemoteConnect菜单项可激活连接,然后点击Download菜单将目标文件下载到目标系统的指定存储区中。如果在工程设置对话框调试选项中设置了自动下载选项,EmbestIDE中的调试器会在与仿真器连接后自动进行下载,文件下载后即可进行在线仿真调试。
1.断点和单步调试器可以控制目标程序的运行和停止,并反汇编正在调试的二进制代码,同时可通过设置断点来控制程序的运行,辅助用户更快的调试目标程序。EmbestIDE的调试器可以在源程序、反汇编程序、以及源程序汇编程序混合模式窗口中设置和删除断点。设置断点的有以下几种方法:.将鼠标指向源程序行左边需设定断点处,鼠标形状会变成手形指针,然后单击鼠标左键,这时,程序行左边会出现红色圆形含黄色条的断点标志。.将光标设置在需要设置断点的代码行处,按F9快捷键。.将光标设置在需要设置断点的代码行处,点击Debug菜单,选取ToggleBreakpoint菜单项。第一次设置的断点均为有效断点,设置了有效断点的源程序界面如图2-55所示,青色圈处为有效断点标志://»,量足时时间BtSIt»(»TC8_0€SC.tinar.ualue):〃•-一SoftMareTriggeronTieer,,八一generateasoftiT,tri”“simultaneouslyfor♦»ch chac//X启动,时4atS1_irq_open(TC0_DE5C.p®«-iph_id,?.ftlC.SRCTVPE.IHT.EDSE.TRIGGEBEO80图2-55有效断点标志在源程序窗,若在一条非执行语句设断点,EmbestIDE不会做出任何响应。断点状态分为有效和无效状态,程序不会在无效状态的断点停止。无效断点的源程序界面如图2-56所示,青色圈处为无效断点标志://*defin*ledatPIOoutputat31.pio.open(4tf>I0.DESC.LEO_NA$K,PIO.OUTPUT):〃*<defineewxtchatPIOinputOat91.pio.open(GPIO.DESC.SU.NASK.PID.INPUT);//*Ti«<rinitializationfits1_tc_open(aTCO_OESC.TC_MftUEITC_CPCTRG|TC_CLKS_HCK8.G.0);图2-56无效断点标志当程序运行到有效断点处时,会停止在有效断点处,其界面如图2-57所示:
18//■•tf1.te.Mr)t»(<TCt.0ESC.〃・--〃・-- .MftaST*tFi■coiiBkaF/X]eTC8_0CSCrjTRIG/MfiOMeLi•r•laMltwouslu,・rMeheftfxchunwii〃•定内H•til.sr(uo*^(TCO.XSC|wr&ph.id.T.01C.皿TVFf_nn_£0tt_YltlG«U£DMtTictil图2-57停止在断点处的程序界面用户可使用断点列表来查询所有断点信息和状态。点击Debug菜单,选取“Breakpoint…”菜单项,即可弹出断点列表对话框,断点列表对话框如图2-58所示:Dreafrpomts3ID!AddreteLocation CountWhen Commant1214567R00000000DxD?0D01?ceVmbewtjdeVnrgettWtSIV… 1214567R00000000TOC\o"1-5"\h\z1)x02000138cAcmbcddeVargeW•d1礼“ (IOxOPOnOI70cVfnbc7tidWxrqf*;\a91W.. (IUxU^UUUl64 cAcmbcstide03ts怪刑母.. (If)xft?nnniRR cymbeaMRurjjetWi恰iv… (IUxOZQUDWB trAriiQbUeiirgtH叫由1L. 00x02000194 cAefnbeMdeV,r0eH\al91V… 0DxOPODDI9c eAcmbesbiirVlargrt^at9lM-- 0ModifyDeleteIDeleteAilModifyDeleteIDeleteAilIViewCodeOK|CancelI图2-58断点列表对话框界面在断点列表对话框点击Delete按钮将会删除当前选择的断点,点击DeleteALL按钮将删除当前列表中所有断点,点击ViewCode按钮将显示当前所选择断点对应的源文件,如果是汇编断点并且不对应任何源文件,点击ViewCode按钮将没有任何反应,双击某一断点行或者点击Modify按钮,将可修改断点信息,修改界面如图2-59所示:BreakpointModifyLocation:|0x0200012c I? !Function:| CancelSourceFile:|e^embestidcMargets\at91\targPEnable Countfb Advanced»图2-59断点信息修改界面若要设置断点条件属性,点击断点信息修改窗口的Advanced按钮,将下拉出另一附加窗口,界面如图2-60所示,“When”输入栏用于输入断点条件表达式,“Command”输入栏用于输入程序到达断点时候系统自动执行的命令。19图2-60条件断点信息修改界面.反汇编窗反汇编窗用于显示反汇编二进制代码后得到的汇编级代码,可以混合源代码显示,也可以混合二进制代码显示。反汇编窗可以设置和清除汇编级别断点。图2-61源文件与反汇编指令交叉显示窗口界面.寄存器窗点击菜单项View>debugwindows>Variables可以打开和关闭寄存器窗口。寄存器窗用于显示和修改目标系统中处理器内核寄存器及其外围接口寄存器值。寄存器名称和数目依赖20于目标系统处理器类型,当调试不同目标系统的时候,显示的内容会不一样。寄存器值可以按照十进制、十六进制或者二进制格式显示,并可自动刷新或者根据需要由用户手动刷新显示。寄存器显示按照寄存器组方式,每组寄存器都可以分别设置不同的显示格式。注:如果在工程配置的Processor设置对话框没有选择相应的处理器厂家及芯片型号,Peripheral窗口将显示空白寄存器窗的界面如图2-62所示:凶u»4xflaRe®affl—Current User FIQ——SUC——Abort IRQ——UndeF 出Register[遇,Peripheral|图2-62寄存器窗界面点击某一个寄存器,该寄存器的名字和值会显示在寄存器窗上部的输入栏中,在输入栏可以改变该寄存器的值,输入栏如图2-63所示:RegR2jnxe50b3014图2-63寄存器值修改输入栏当寄存器的值被修改后会以红色显示该值,如图2-64所示:[RegistersRegR4|D..',02i:Cb468曰. Current 金gR0:0x00000001fR1:0x02021224。R2:0x00000000\R3:取@29204。9§।,R5:0x00000001。R6:0x000000000R7:8x00000000.R8:0X00000000,R9:0x00000000R10:0x02020000$R11:0x00000000.R12:0x000080007R13:0X020203F0:.学R14:0x02033e28
.[内5:8x02a2b4784s?:@xu2021ru 二I器Register|晶PeripheralR4:0x0202b468图2-64寄存器值被修改的寄存器窗界面.存储区窗存储区窗用于显示和修改目标系统中存储区的内容。存储区窗显示从输入的起始地址开始存储的存储区内容,显示长度根据存储区窗大小而自动匹配。存储区内容可以按照字节、半字21或字长度显示,并同时以十六进制数和对应的ASCH字符显示存储区内容。当存储区窗显示范围内的存储区数据有变化的时候,会以红色显示这些数据。IDE同时提供了两个内存显示窗口Memory1窗和Memory2窗(功能同Memory1窗)。按照字节长度显示的存储区窗的界面如图2-65所示:图2-65存储区窗界面用户可以在窗口上部的存储区起始地址栏修改显示起始地址,修改后存储区窗会自动从新的地址开始显示存储区内容;地址输入栏可以记录用户最近查看的10个起始地址值,用户可从下拉菜单中选择想要查看的起始地址。存储区起始地址栏如图2-66所示:图2-66存储区起始地址输入栏若要修改存储区内容,可在十六进制数据栏或者ASCH字符数据栏直接修改,修改的数据会立刻写到对应的存储区中,并以红色显示改变了的数据。.watch窗点击菜单项View>DebugWindows>Watch可以打开和关闭数据观察窗(watch)o数据观察窗用于显示用户想要观察的变量或表达式值,用户可以随时增加或删除观察数据。观察数据值可以按照十进制或者十六进制格式显示。观察数据值会跟随用户的每一步操作而自动重新计算和显示。数据观察窗有两个页面:“Watch1”和“Watch2",每个页面可以单独输入不同的数据。观察数据名会跟随工程自动存储,当下一次打开同一个工程的时候,会自动调入原先存在的观察数据名。数据观察窗缺省显示为十六进制,其界面如图2-67所示:22用户可以使用以下两种方法增加观察数据:.双击数据观察窗最后的空行的名字栏,数据观察会在此处出现一个输入框,输入数据回车或者点击其它行,调试器将计算数据值,并显示在对应的值栏目。.在数据观察窗在点击鼠标右键,在数据观察窗菜单中选取“Add”菜单项,将弹出输入对话框,在其中输入想要观察的数据或者表达式。.变量窗点击菜单项View>DebugWindows>Variables可以打开和关闭变量窗。变量窗用于显示全局以及局部变量信息,并可修改变量值。变量窗有两个页面:“Global”和“Local”,分别用于显示全局变量和函数局部变量。变量值以及局部变量名会跟随用户的每一步操作而自动重新计算和显示。当变量窗中变量值有变化的时候,变量窗会变红显示这些数据值。变量窗缺省显示为十六进制,其界面如图2-68所示:23用户可以察看变量的属性,其中包括变量名字、变量值和变量类型。用户可以修改变量值,方法是双击要修改的变量值栏,在显示的输入框中输入新值。当输入的数据为合法数据时候,调试器会修改目标系统中对应变量的值,并变红显示修改后的数据。.函数栈窗点击菜单项View>DebugWindows>CallStack可以打开和关闭函数栈窗。函数栈窗用于显示函数运行调用关系,函数参数值可以按照十六进制或者十进制格式显示。最后调用的函数(即当前运行函数)在窗口最上部的第一行,按照调用关系依次往下排列,起始函数在窗口末的最后一行。函数栈窗的界面如图2-69所示(设置所有函数参数属性显示):c«usnstructmtest3(intuoidtest2(intz»rr=0x0)intloop_teet(intloop_num:0x5)intt»et1(inta-Bb=8d:8e=0xa.in1intnain()1L. 1 /图2-69函数栈窗界面函数参数的名字、类型或值都可以单独设置是否显示。如果关闭所有函数参数显示,将只显示函数名字和返回类型。双击函数栈窗的某一函数所在行,源文件窗会显示出该函数调用函数栈中上一函数返回后将要执行的下一句代码,并在该源代码行前面放置一蓝色向右箭头标志(见下图的青色圆圈包围处),函数栈窗同时会高亮显示该函数栈函数信息行。双击后调试器界面变化如图2-70所示:IZ•,•■~“D-UO>RBIZ•,•■~“D-UO>RB图2-70双击函数行后的调试器界面244.6Flash编程工具EmbestIDEforARM提供了Flash编程工具,可以在板(onboard)橡除Faish或将文件烧写到Flash中。软件界面如图2-71所示FlashProgrammer其他特点:,编程配置数据的保存和载入。,编程前的寄存器读取功能和目标测试功能。,FLASH扇区地址指示功能。,简单直接的处理器寄存器设置界面图2-71,简单直接的处理器寄存器设置界面图2-71FlashProgrammer软件界面25第三章嵌入式软件开发基础实验1ARM汇编指令实验一1.1实验目的,初步学会使用EmbestIDEforARM开发环境及ARM软件模拟器;,通过实验掌握简单ARM汇编指令的使用方法。1.2实验设备,硬件:PC机,软件:EmbestIDEProARM集成开发环境,Windows98/2000/NT/XPo3.1.3实验内容,熟悉开发环境的使用并使用Idr/str,mov等指令访问寄存器或存储单元。,使用add/sub/lsl/lsr/and/orr等指令,完成基本数学/逻辑运算。3.1.4实验原理.存储器格式ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。1)大端格式在这种格式中,字数据的高位字节存储在低地址中,而字数据的低位字节则存放在高地址中,如下图所示。高地址3123221615870字地址89101184567401230低地址2)小端格式在这种格式中,字数据的高位字节存储在高地址中,而字数据的低位字节则存放在低地址中,如下图所示。高地址3123221615870字地址109887654432100低地址26GNU基础知识EmbestIDE集成了GNU汇编器as,编译器gcc,链接器Id。因此,我们写程序要符合GNU的语法和规则。关于as、gcc和Id的具体使用,请参照EmbestIDE所带的电子文档ProgRef.chm,在此不再赘述。这里简单介绍几点基本知识:1)程序默认入口点为“一start”,代码段默认起始地址为0x80002)as常用伪操作符.equ.equ伪操作为数字常量、基于寄存器的值和程序中的标号定义一个字符名称。语法格式.equsymbol,expr其中,expr为基于寄存器的地址值、程序中的标号,32位的地址常量或者32位的常量。Symbol为.equ伪操作为expr定义的字符名称。示例.equVersion,"0.1”.global及.globl.global,global声明一个符号可以被其他文件引用。相当于声明了一个全局变量,.globl与相同。语法格式.globalsymbol其中,symbol为声明的符号的名称。它是区分大小写的。示例,globalMyAsmFunc・text,text伪操作将操作符开始的代码编译到代码段或代码段子段(subsection)语法格式.text{subsection)示例.text.end标记汇编文件的结束行,即标号后的代码不作处理。语法格式.end1.5实验操作步骤1)新建工程:NewWorkspace,系统弹出一个运行EmbestIDE集成开发环境,选择菜单项File?对话框,按照图3T所示输入相关内容。27图3T新建工作区点击0K按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程。2)建立源文件:点击菜单项File?New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件asmla.s。3)添加源文件:选择Project?AddToProject?Files命令,或单击工程管理窗口中的相应右键菜单命令,弹出文件选择对话框,在工程目录下选择刚才建立的源文件asmla.s。4)基本配置:选择菜单项Project?Settings…或快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框中,选择Processor设置对话框,按照图3-2所示,进行目标板所用处理器的配置。
图3-2新的工作区处理器配置5)生成目标代码:选择菜单项Build?Buildasml_a或快捷键F7,生成目标代码。28图3-3EmbestIDE编译按钮面板6)调试设置:选择菜单项Project?Settings…或快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框中,选择Remote设置对话框,按照图3-4所示对调试设备模块进行设置。
图3-4新工作区仿真器配置选择Debug设置对话框,按照下面各图进行调试模块配置。Processor|RemoteDebug|Directory|Compiler|Assemb、Processor|RemoteCategory:Category:Symbolfile:|.\debug\asm1_a.elfActionafterconnectedGSymbolfile:|.\debug\asm1_a.elfActionafterconnectedGNone「Autodownload「Commandscript(a)连接相关配置29(a)连接相关配置29Processor|RemoteDebug|Directory|Compiler|Assemb«I>Category:DownloadCategory:DownloadPDownloadverifyPDownloadverifyDownloadfile:.\debug\asm1_a.elfExecuteprogramkom
rDon'tcare「DownloadaddressGProgramentrypoint(b)下载相关配置图3-5新工作区调试器配置注意:Symbolfile与Downloadfile设置应该相同,用户可以从Linker页面拷贝系统默认的输出文件配置;且该实验输入下载地址为0x8000,即为AS默认的代码段起始地址。由于汇编和链接选项在本实验中没有进行配置,完全使用其默认选项,所以,代码段是从0x8000开始的,下载地址应该与它保持一致。7)选择Debug菜单RemoteConnect进行连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。打开memory窗口,观察地址0x8000~0x801f的内容,与地址0xff0~0xfff的内容。8)单步执行程序并观察和记录寄存器与memory的值变化。9)结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用。10)理解和掌握实验后,完成实验练习题。1.6实验参考程序实验A参考程序:NAME:asmla.s*Author:Embest*Desc:ARMinstructionexamples*History:shw.He2005.02.22*30/*constantdefine*//* */.equx,45/*x=45*/.equy,64/*y=64*/.equstack_top,0x1000/*definethetopaddressforstacks*/•global_start*//*code*//*- */.text_start:/*codestart*/movsp,#stack_topmovrO,#x/*putxvalueintoR0*/strrO,[sp]/*savethevalueofR0intostacks*/movrO,#y/*putyvalueintoR0*/Idrrl,[sp]/*readthedatafromstack,andputitintoRI*/addrO,rO,rlstrrO,[sp]stop:bstop/*endthecode,cycling*/.end1.7练习题序循环对R4~R11进行累加8次赋值,R4〜R11起始值为1,8,每次加操作后把R4〜R11的内容放入SP栈中,SP初始设置为0x800。最后把R4~R11用LDMFD指令清空赋值为0o验A中x、y的值,观察执行结果。31C语言程序实验一1实验目的,学会使用EmbestIDE编写简单的C语言程序并进行调试;,学会编写和使用命令脚本文件;,掌握通过memory/register/watch/variable窗口分析判断运行结果。实验设备,硬件:PC机。,软件:EmbestIDEProARM集成开发环境,Windows98/2000/NT/XPo实验内容利用命令脚本初始化栈指针,并使用c语言完成延时函数。实验原理.命令脚本文件用户在集成环境与目标板连接时、软件调试过程中以及复位目标板后,有时需要集成环境自动完成一些特定的功能,比如复位目标板、清除看门狗、屏蔽中断寄存器、存储区映射等,这些特定的功能可以通过执行一组命令序列完成,保存一组命令序列的文本文件称为命令脚本文件(EmbestlDE使用.cs作为命令脚本文件扩展名)。命令脚本文件中各行以半角格式的“;”号开始作为注释内容,分号前是一条命令。凡是可以在调试命令窗口使用的命令,都可以在脚本文件中使用,包括执行脚本文件命令"SCRIPT"。调试命令及详细请参照EmbestIDE所带的文档UserGuide.chm中"调试命令列表”一节。命令脚本文件执行时按照命令在脚本文件中排列的先后顺序自动连续地执行。.命令脚本文件的执行方法命令脚本文件有两种执行方法:,在命令输入窗口,输入:script脚本文件名,在项目设置对话框调试属性页指定连接后的行为(Actionafterconnected),此时,可选择命令脚本文件(Commandscript),并在编辑框中设定命令脚本文件名,则在IDE与目标系统连接后首先自动执行指定的脚本文件。.常用命令介绍GO-执行程序说明:从当前PC执行目标程序。MEMWRITE-存储区写语法:memwrite[-e]地址数值说明:向存储区指定地址写入数值。选项:-e大印第安方式写入示例:memwrite0x10000x5A向地址0x1000处写入数值0x5A32memwrite-e0x20000000x22334455等效于memwrite0x20000000x554433223)REFRESH-刷新窗口说明:刷新所有窗口命令,调试命令执行后,各窗口相关内容并不更新,用户可以调用本命令刷新界面各窗口保持与实际内容一致。REGWRITE-寄存器写语法:regwrite寄存器名称寄存器值示例:regwritepc0x3840向PC寄存器写入数值0x3840RESET-复位目标设备STOP-停止执行程序3.2.5实验操作步骤1)参考前面实验创建新的工程(工程名为C1);2)按照参考程序,编写源文件Cl.c和Cl.cs,并把它们加入工程里面。Cl.cs加在工程根目录即可。3)参考前面例子进行标准的设置,其中需要注意的是,在调试Debug对话框设置的时候,增加连接后自动执行脚本文件:图3-10EmbestIDE调试配置4)参考前面实验步骤进行编译;335)下载,打开Memory/Register/Watch/Variable窗口,单步执行,通过memory/register/watch/variable窗口分析判断结果,在watch框中输入要观察变量I和变量J的值,并记录下来。特别注意在variable窗口观察变量I的变化并记录下来;6)结合实验内容和相关资料,观察程序运行,通过实验;7)理解和掌握实验后,完成实验练习题。2.6实验参考程序cl.c参考源代码:***************************File:cl.cAuthor:embestDesc:clanguageexample1History:/*- — — *//*functiondeclare*//* */voiddelay(intnTime);***************************name:startfunc:entrypointpara:noneret:nonemodify:comment:*************************/start()(inti=5;for(;;)delay(i);))34name:delayfunc:delaysometimepara:nTime-inputret:nonemodify:*comment:voiddelay(nTime)(inti,j=0;for(i=0;i<nTime;i++)(for(j=0;j<10;j++)())}CLcs参考源代码stop;stoptargetboardregwritesp0x1000;initializethesp,sp=0x10002.7练习题参考汇编实验,编写程序,实现从汇编语言中使用B或BL命令跳转到C语言程序的Main。函数中执行,并从Main。函数中调用delay()函数;调试时使用common目录下ev40boot.cs命令脚本文件,观察该命令脚本文件所完成的存储单元配置的情况。35第四章基本接口实验4.1存储器实验4.1.1实验目的,通过实验熟悉ARM的内部存储空间分配。,熟悉使用寄存器配置存储空间的方法。,掌握对存储区进行访问的方法。4.1.2实验设备,硬件:EmbestArmEduKit-H实验平台,EmbestARM标准/增强型仿真器套件,PC机。,软件:EmbestIDEProARM集成开发环境,Windows98/2000/NT/XPo1.3实验内容掌握S3C44B0X处理器对存储空间的配置和读写访问的方法:,熟练使用命令脚本文件对ARM存储控制寄存器进行正确配置;,使用汇编编程,对RAM按字、半字和字节读写;,C语言编程,对RAM按字、半字和字节读写。4.1.4实验原理1.存储控制器图4-1S3C44B0X复位后的存储器地址分配36S3C44B0X处理器的存储控制器可以为片外存储器访问提供必要的控制信号,它主要包括以下特点:,支持大、小端模式(通过外部引脚来选择),地址空间:包含8个地址空间,每个地址空间的大小为32M字节,总共有256M字节的地址空间。,所有地址空间都可以通过编程设置为8位、16位或32位对准访问。,8个地址空间中,6个地址空间可以用于ROM、SRAM等存储器,2个用于ROM、SRAM、FP/EDO/SDRAM等存储器。,7个地址空间的起始地址及空间大小是固定的。,1个地址空间的起始地址和空间大小是可变的。,所有存储器空间的访问周期都可以通过编程配置。,提供外部扩展总线的等待周期。,支持DRAM/SDARM自动刷新。,支持地址对称或非地址对称的DRAMo从图4-1中可以看出,特殊功能寄存器位于0X01C00000到0X02000000的4M空间内。Bank0-Bank5的起始地址和空间大小都是固定的,Bank6的起始地址是固定的,但是空间大小和Bank7一样是可变的,可以配置为2/4/8/16/32M。Bank6和Bank7的详细的地址和空间大小的关系可以参考表4-1表4-1Bank6/Bank7地址大/小ENDIAN模式选择处理器复位时(nRESET为低),通过ENDIAN引脚选择所使用的ENDIAN模式。ENDIAN引脚通过下拉电阻与Vss连接,定义为Littleendian模式;ENDIAN引脚通过上拉电阻和Vdd连接,则定义为Bigendian模式。如表4-2所示。表4-2大/小endian模式ENDIANInputENDIANMode0Littleendian1BigendianBANKO总线宽度BANKO(nGCSO)的数据总线宽度可以配置为8位、16位或32位。因为BANKO为启动ROM(映射地址为0X00000000)所在的空间,所以必须在第一次访问ROM前设置BANKO数据宽度,该数据宽度是由复位后的逻辑电平决定的,表4-3所zjso表4-3数据宽度选择37Citi(OpBOtinq〜bOMO(Op«<atioQMode0kBootrmROMD«Uwidth0020118-bk1032bi1,存储器控制专用寄存器总线宽度/等待控制寄存器(BWSCON)RWD**crl|itonValueH*VS(:uNIMH1CIKXHX)R-AKi.-. AVil [,:MrT寄存器各位功能:[ENDIAN]:只读,指示系统选定的大/小端模式,0表示小端模式,1表示大端模式。[DWi]:i=0,7,其中DWO为只读,因为bank。数据总线宽度在复位后已经由的电平决定。DW1,DW7可写,用于配置bankl,bank7的数据总线宽度,00表示8位数据总线宽度,01表示16位数据总线宽度,10表示32位数据总线宽度。[SWi]:i=l,7,写入0则对应的banki等待状态不使用,写入1则对应的banki等待状态使能。7,决定SRAM是否使用UB/LB。0表示不使用UB/LB,引脚[14:11]定义[STi]:i=l,为nWBE[3:0];l表示使用UB/LB,引脚[14:11]定义为nBE[3:0]。Bank控制寄存器(BANKCONn:nGCS0-nGCS5)RWStHRMD^KrlptlQnValue•■<l<iRWBunk•ouiilnHtOkiin*r)RANK0州11»RWPank1ainlHil0koMHANK'-ONU1G9QOOCHWRank?oontrrilE。a。rwRANKCihli«RWBank\ixinbnlcxnr»»OAHKCd।<kgchBank4ociiliulcmottoHankSauiliulBank控制寄存器(BANKCONn:nGCS6-nGCS7)RpstzAddr«MR'WD»UflpdO«lWValu*BAHKCONe••i>hiRMaxitijfjyMoxin但DAHKC"WCSCMGL「愤DafA78ili<J 7r0x10X4刷新控制寄存器(REFRESH)ReghtefAddressRAMDescrlptonResetValue-3KMiAM',IXW nnif-t—:•'HlBANK大小寄存器(BANKSIZE)Re^istcfAddressR¥VDucripltonRefcvtValueHAHKSI/F'*'1 >»'/■<OMI模式设置寄存器(MRSR)38RegisterAOdTM£RWD«<crtpeonRttetMRSRE60<1C«C«KV.V.(MGrtAjlitWSt!-ejtel-f:5lk6XftXMksW<ht»nh«,X钾r.nMn :juhux以上寄存器的详细定义可以查看S3C44B0X的数据手册下面列举了13个存储控制寄存器的配置示例:Idrr0,=SMRDATAIdmiarO,{rl-rl3}
IdrrO,=0x01c80000;BWSCONAddressstmiarO,{rl-rl3}SMRDATA:.long0x22221210;BWSCON.long0x00000600;GCSO.long0x00000700;GCS1.long0x00000700:GCS2.long0x00000700:GCS3.long0x00000700:GCS4.long0x00000700;GCS5.long0x00010000;GCS6,EDODRAM(Tacc=.long0x22221210;BWSCON.long0x00000600;GCSO.long0x00000700;GCS1.long0x00000700:GCS2.long0x00000700:GCS3.long0x00000700:GCS4.long0x00000700;GCS5.long0x00010000;GCS6,EDODRAM(Tacc=1).long0x00018000:GCS7,nouse.long0x00860459:Refresh(REFEN=1,TREFMD=O,Trp=0,Trc=5,Tchr=3).long.long0x0;BankSize,32MB/32MB.long0x20;MRSR6(CL=2).long0x20;MRSR7(CL=2).long0x20;MRSR6(CL=2).long0x20;MRSR7(CL=2)观察上面寄存器介绍中的寄存器地址可以发现,13个寄存器分布在从0x01c80000开始的连续地址空间,所以上面的程序可以利用指令“stmiar0,{rl-rl3)”实现将配置好的寄存器的值依次写入到相应的寄存器中。存储器(SROM/DRAM/SDRAM)地址线连接如表4-4所示,数据宽度不同,连接方式也不同。表4-4存储器地址线连接MEMORYADOR.PIMS3C4480XADOR9DAIABUS&1C4490XADDR41&«ltDATABUS&3C4480XADDA.DATABUSAOAlA2AlA2A3AiAlA4A5使用命令脚本文件配置存储空间在使用仿真器对目标系统进行硬件仿真调试前,需要把代码下载到目标系统的RAM空间中,所以调试前首先应该配置CPU的存储控制寄存器,初始化可读写空间。EmbestIDEProARM集成环境下可以使用一系列存储写命令来完成存储控制寄存器的配置,称为命令脚本文件(*.cs,有关命令脚本文件请参考EmbestIDE在线用户手册),通过命令脚本文件(*.cs)还可以配置目标系统的其他CPU控制寄存器,如中断控制寄存器。39EmbestArmEduKitTI的调试配置使用的命令脚本文件如下:reset;Resetboardmemwrite0x01D300000x00000000;WTCON(watchdogtimercontrolRegister)disablewarchdogmemwriteOxOlEOOOOC0x07ffffff;INTMSK(disableallinterrupt)memwrite0x01E00024Oxffffffff;Clearallinterruptmemwrite0x01C800000x11110102;BWSCON(BusWidth&WaitStatusControlRegister)memwrite0x01C800040x00000600:BANKCONOmemwrite0x01C800080x00007FFC;BANKCONImemwrite0x01C8000C0x00007FFC;BANKCON2memwrite0x01C800100x00007FFC;BANKCON3memwrite0x01C800140x00007FFC;BANKC0N4memwrite0x01C800180x00007FFC;BANKCON5memwrite0x01C8001C0x00018000;BANKC0N6memwrite0x01C800200x00018000;BANKCON7memwrite0x01C800240x00860459;REFRESHmemwrite0x01C800280x00000010;BANKSIZEmemwrite0x01C8002C0x00000020;MRSRB6memwrite0x01C800300x00000020;MRSRB7,片选信号设置EmbestArmEduKit-II实验板的片选信号设置如表4-5所示:表4-5片选信号设置片选信号选择的接口或器件片选控制寄存器NGCSOFLASHBANKCONONGCS6SDRAMBANKC0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高级专业技术职务工作经历证明(7篇)
- 农业智能化灌溉技术应用服务协议
- 教育培训市场调查报告
- 室内设计空间分析
- 水利工程的玄机与考点解读试题及答案
- 校园设施承包协议
- 中级经济师复习知识体系评估试题及答案
- 工程经济理论与实际案例结合2025年试题及答案
- 水利水电工程应急响应策略与试题及答案
- 水电工程相关课题研究试题及答案
- 2024年甘肃省大数据中心招聘工作人员笔试真题
- 崇左市人民检察院招聘机关文员笔试真题2024
- 2025-2030煤油产业规划专项研究报告
- (二模)2025年4月潍坊市高三高考模拟考试地理试卷(含答案)
- 香港劳务服务合同协议
- 园林喷洒器企业数字化转型与智慧升级战略研究报告
- GB/T 9065.2-2025液压传动连接软管接头第2部分:24°锥形
- 高二下学期感恩母亲节主题班会课件
- 道路运输汛期教育培训
- 高一信息技术Python编程课程讲解
- 患者投诉处理与护理试题及答案
评论
0/150
提交评论