ARM开发环境

上传人:xy****7 文档编号:54219464 上传时间:2018-09-09 格式:PPT 页数:70 大小:5.68MB
返回 下载 相关 举报
ARM开发环境_第1页
第1页 / 共70页
ARM开发环境_第2页
第2页 / 共70页
ARM开发环境_第3页
第3页 / 共70页
ARM开发环境_第4页
第4页 / 共70页
ARM开发环境_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《ARM开发环境》由会员分享,可在线阅读,更多相关《ARM开发环境(70页珍藏版)》请在金锄头文库上搜索。

1、ARM开发环境,课程安排,ARM技术与发展 ARM开发工具RVDS 使用RVDS开发LED灯驱动,什么是ARM,ARM(Advanced RISC Machines) 一个公司的名字,一类微处理器的通称,一种技术的名字。,ARM公司,1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权 目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微 处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系 统等各类产品市场,占据了32位RISC微处理器75以上的市场份额。,全球雇员800+,ARM芯片,ARM提供设计CPU所需的IP核(电路图、代码、文档等),处

2、理核心逻辑运算(ALU) 其他CPU生产商(如SAMSUNG)利用IP核技术生成出自己的CPU(如S3C6410) S3C6410除了ARM核,还加入自身的外围设备控制器(如实时钟、定时器、中断等),ARM核处理器,嵌入式系统用于控制各种不同外设,一个基于ARM的嵌入式处理器的主要部 件如下:,CPU/MCU/SOC,MCU(micro controller unit),俗称单片机 SOC(system on a chip) ,系统级芯片SOC = CPU + 运算模块 + 控制模块 + 寄存模块 + 前端模拟A/D模块 + 功能十分强大,单一芯片集合多种功能模块 ARM核为CPU,而S3C6

3、410为SOC(好比PC的主板:CPU+南北桥),ARM裸机运算RISC指令集,ARM核采用RISC指令结构,具有高性能、高代码密度和低功耗等特是移动嵌入式设备的最佳选择 RISC(精简指令集),其目标是设计出一套能在高时钟频率下单周期执行,简单有效的指令集,ARM产品,ARM产业链,ARM技术,ARM架构命名,| ARMv | n | variants | x(variants) | ARMv:固定字符,即ARM Versionn :指令集版本号。迄今为之,ARM架构版本发布了7个版本,n=1:7variants:变种x(variants):排除x后指定的变种常见的变种有:例如: ARMv5

4、TxM表示ARM指令集版本为5,支持T变种,不支持M变种。,ARM处理器命名,采用上述的架构,形成一系列的处理器 ARMxyzTDMIEJF-Sx - 处理器系列y - 存储管理/保护单元z - cacheT - 支持Thumb指令集D - 支持片上调试M - 支持快速乘法器I - 支持Embedded ICE,支持嵌入式跟踪调试E - 支持增强型DSP指令J - 支持JazelleF - 具备向量浮点单元VFP-S - 可综合版本ARM7TDMI之后的所有ARM内核,即使“ARM”标志后没有包含那些字符,但也包含了TDMI特性例如,本课程使用的开发板处理器是ARM11ZJF-S,ARM处理器

5、系列,处理器系列是共享相同硬件特性的一组处理器的具体实现如ARM7TDMI、ARM740T、ARM720T都属于ARM7系列系列划分是基于ARM7,ARM9,ARM10和ARM11内核的后缀数字7,9,10,11表示不同的内核设计,升序说明了性能和复杂性的提高ARM7系列:冯.诺伊曼体系结构,3级流水线,执行ARMv4指令集,1995年提出的ARM7TDMI是目前非常流行的内核ARM9系列: 1997年问世,使用哈佛结构,5级流水线,能够运行在更高的时钟频率上,加入了D+I cache、MMU,大大提供处理器性能ARM10系列:1999年发布,把ARM9流水线扩展到6级。执行ARMv5TE指令

6、集,ARM处理器系列,ARM11系列:发布于2003年,执行ARMv6架构指令集, ARMv6包含了针对媒体处理的SIMD扩展,改善视频处理性能。它由8级流水线组成,可以使8条指令同时被执行。本课程使用的开发板处理器是ARM11ZJF-SCortex系列: ARMV7架构及之后的最新的ARM系列产品取名Cortex,由A、R、M三个系列组成:Cortex-A:应用处理器(Application Processor)系列Cortex-R:实时处理器(Real Time Control)系列Cortex-M:微控制器(Micro Cotroller)系列如iphone4手机采用Cortex-A8核

7、,教学ARM芯片选择,根据大专、高职院校的实际情况结合当前及未来一段时间的市场人才需求, 本课程教学选取的是SAMSUNG公司的S3C6410A芯片S3C6410A是一款基于ARM11JZF-S核心的微处理器芯片,运行ARMv6架构 指令集带MMU,矢量中断,高效的视频处理性能,完全支持Linux + Android双系统后面课程将在S3C6410开发板上详细介绍S3C6410A接口驱动和ARMv6架构编程,6410开发板,采用Samsung S3C6410 为微处理器1. CPU 处理器Samsung S3C6410A,ARM11JZF-S核,运行主频533MHz,最高667Mhz2. SD

8、RAM 内存在板128MB/256MB DDR RAM,32bit 数据总线,6410开发板,底板+核心板,核心板,S3C6410 DataSheet,S3C6410芯片描述文档,描述了SOC与外设的连接与控制方法,是驱动开 发人员编程手册手册中描述的S3C6410功能框图:,接口资源,启动模式,6410开发板选择了其中两种启动方式,nand flash启动和SD卡启动:拨动S2 开关到SDBOOT标识一侧时,系统将从SD卡启动:引导程序固化在SD卡中拨动S2 开关到Nand标识一侧时,系统将从Nand Flash 启动:引导程序固化在Nand中,什么是引导程序,开机后第一个运行的程序,如PC

9、的BIOS,完成必要硬件(CPU、SDRAM)的初始化, 然后加载操作系统(OS)不同平台的引导程序有不同的称谓(如BIOS、BSP),而在Linux平台称为 Bootloader常用的开源Bootloader有blod、Uboot,Uboot号称通用Bootloader,可以支持包括 ARM在内的大多数CPU体系和SOC,使用前只要进行必要的移植,引导程序,开发板系统启动过程:1、Bootloader启动2、OS加载3、App运行,开发板Uboot引导,Uboot存放在哪里?-固态存储设备NAND FLASH Uboot在哪里运行?-从NAND拷贝到内部SRAM(静态内存)中运行而其他程序需

10、要加载到SDRAM(动态内存运行) SRAM运行速度很快,但成本很高,只用作内部高速缓存 而SDRAM成本较低,运行时需要动态刷新,用作外部主存,Uboot从哪里来?,所以uboot启动后,可以将程序下载到 0x0c001000(偏移4K)和0x50000000安全运行,进入Uboot命令行,1、从Nand Flash启动,终止OS加载过程,进入Uboot菜单2、进入Uboot命令行shell,3秒内按下任意键,进入shell,Uboot常用命令,1、命令帮助help2、查看环境变量printenv,Uboot常用命令,3、设置环境变量setenv,Uboot常用命令,4、测试网络联通情况pi

11、ng,Uboot常用命令,5、通过网络下载文件tftp,Uboot通过tftp服务从服务器/tftp目录下载文件 前提必须在PC-Linux上配置好tftp服务器 参考附录“RHEL5-TFTP服务器安装配置”,Uboot常用命令,6、显示内存区内容md,Uboot常用命令,7、下载可执行程序映像8、运行可执行程序映像 go,课程安排,ARM技术与发展 ARM开发工具RVDS 使用RVDS开发LED灯驱动,什么是RVDS,1、 RealView Developer Suite工具是ARM公司是推出的新一代ARM集成开发 工具:支持ARM工程代码的编辑、编译、调试、运行2、我们重点集在这两个图形

12、界面工具的使用:(1)、Code Warrior是一个集成界面提供代码编辑,目标代码编译,链接的一 个图形GUI环境.(2)、AXD (ARM eXtended Debugger):提供在线仿真功能,RVDS交叉开发环境,RVDS创建源码工程,1、新建工程:在RVDS集成开发环境中,点 File-New,打开窗口,RVDS创建源码工程,2、选择ARM Executable Image,点击set选择源码工程目录,RVDS创建源码工程,3、输入工程名为“proj”,并确定,RVDS创建源码工程,4、右键点击在工程面板,弹出文件、组管理菜单,RVDS创建源码工程,5、为工程增加6410_drive

13、r组,RVDS创建源码工程,6、将源代码分别添加到6410_driver,RVDS创建源码工程,7、先择生产目标调试信息选项 (1)Debug:为每一个源代码生成最完整的调试信息 (2)Release:不会生成任何调试信息,RVDS配置源码工程,1、点击Edit 菜单,选择“DebugRelSetting”,进行项目配置,RVDS配置源码工程,2、Target Setting配置:Post-Linker选择ARM fromELF,表示在链接生成映 象文件后,再调用fromELF命令将含有调试信息的 ELF格式的映象文件转换为 其他格式的文件,RVDS配置源码工程,3、汇编器选项: RVDS汇编

14、器是 armasm,体系结构选择ARM1176JZF-S,RVDS配置源码工程,4、编译器选项:RVDS编译器是armcc, 体系结构选择ARM1176JZF-S,RVDS配置源码工程,5、链接器选项:代码段入口地址设为0x50000000,RVDS配置源码工程,6、设置起始代码段:start.o的init段,RVDS配置源码工程,7、选择输出裸机程序bin文件,RVDS配置源码工程,8、清除已有编译目标,RVDS编译源码工程,1:编译工程,构造程序(F7),RVDS编译源码工程,2:proj工程目录内下生成6410.bin程序映像将6410.bin通过tftp下载到开发板0x50000000

15、地址,go 50000000运行,RVDS在线调试,RVDS上集成的ADX在线调试功能需要用到JLINK仿真器,通过JTAG接口与CPU 连接实现硬件仿真:在线调试在以后课程中介绍,课程安排,ARM技术与发展 ARM开发工具RVDS 使用RVDS开发LED灯驱动,LED灯驱动程序,硬件接口原理图:1、LED与GPIO连接:参考主板原理图Tiny6410-1107.pdfLED1LED4对应的GPK4GPK7 引脚,LED灯驱动程序,硬件控制原理:2、当某一管脚(nLed1-nLed4)置低:电路接地,跟3.3v电源之间有压差,Led电路被导通,电流流经Led发光二极管使其点亮。3、当某一管脚(

16、nLed1-nLed4)置高:电路被切断,Led发光二极管被熄灭 。4、因此,驱动程序只要将GPIO管脚设置为输出,对某个GPIO管脚置低、置高,就会控发光二极管的点亮和熄灭。,LED灯驱动程序,硬件接口资源:5、LED占用GPIO接口资源6、接口控制器参考s3c6410用户手册第10章GPIO,LED灯驱动实现,驱动程序实现: 7、驱动程序源码,LED灯驱动程序实现,8、编译程序9、下载到开发板并运行tftp 50000000 6410.bingo 50000000观察开发板LED1状态!,C语言驱动硬件,1、寄存器定义解析 /GPK控制寄存器 #define rGPKCON0 (*(volatile unsigned long*)(0x7F008800)2、从上述定义中,请思考,如下问题 为什么要用无符号长整型unsigned long的数字? volatile表示什么含意? 宏定义的最前面*表示什么含意?,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号