四、ARM实验ADSL开发环境基础
2019年整理arm开发环境搭建流程资料

• Q…• • •■ .MM to C.IUZ3 I?» riLiu"4、A G・■■ 111)・・CWilT8r 弓•千•o —•・・—■•“・・•••厂列,■ 9 -f Q —•0■•分■ 丘&了・f S・• *'£ s S " ♦— ■■ • «A © DAP ratsc 3tt a a > ■ >te« ・x "・■ |t»« ■•»«,・ S I M * ■ “•・4* ■■ • ■ » G oai> r«3»i ; r®n e >6" ■■ !«»•MV •»!•“・X>• ■•o oa»gga 33.y ••■・ 2 D3DMU•onr'on五、实验心得这次arm 的课程,实验课比教室上课的次数多,由于初次接触嵌入式系统,整体感觉是很难的,学的时候没有下劲学,所以收获不是很大,很多的概念都比较模糊,经过这很多次的实验,才对ARM 有了一定的了解,对ARM 开发环境的搭建的整个流程有了具体的认识,虽然实验的时候没做出来,但是由于老师要求的比较严厉,写报告的时候又对实验的整个过程进行了从头至尾的认真思考,算是有了一些提高,通过本次实验,我也学会了如何去分析问题,继而去排除解决问题,这就是一个自我学习的过程,例如:在终端上的很多操作命令我们都不知道,都是从网上查过之后再做的,当我们通过实验后再去学习理论知识时,就会有侧重点,知道哪些东西是要用到的,不仅能加深我们对嵌入式的理解,更能加深我们对开发环境搭建流程的熟悉,当然,在这其中,我也发现自己的许多不足之处,由于学期伊始我没有好好学习,才落到如此地步,让老师对我很失望,这也可以说是一个教训吧!我相信在以后的学习工作中,我一定会端正自己的学习态度,一丝不苟的去对待每一件事。
实验一 ARM嵌入式系统开发环境搭建

实验一ARM嵌入式系统开发环境搭建一、虚拟机安装配置ARM嵌入式系统开发需要linux环境,为了在windows下使用linux,需要安装虚拟机。
虚拟机软件采用Virtualbox,linux操作系统的版本使用lubuntu。
lubuntu系统已制成镜像文件,只需导入到virtulbox即可。
1. 安装VirtualBox虚拟机软件。
采用默认安装。
2. 运行Virtualbox虚拟机软件,导入lubuntu虚拟机。
在“管理”菜单中,选择“导入虚拟电脑”项,在后续对话框中选择镜像文件,其余参数按照默认。
3. 启动lubuntu虚拟电脑进入linux界面。
二、建立交叉编译环境1. 查看arm gcc 编译工具# cd /opt/host/armv4l# ls bin列出的以“armv4l-unkown –linux-”开头的系列文件就是gcc编译工具软件。
#armv4l-unknown-linux-gcc –v应该显示以下信息:如果没有出现该信息,则检查~/.bashrc文件,在其中加入“PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/”。
2. 建立桥接网络当使用tftp下载程序时,为了使开发板能够访问虚拟机中的数据,需要对网络加以设置。
开发板的IP为192.168.0.115;虚拟机的IP 设为:192.168.0.100(1) 在lubuntu虚拟机的网卡配置中,选择“桥接网卡”,(2) 在windows操作系统网络配置界面中,将本地网卡和虚拟机的网卡桥接起来。
桥接参数如下:IP设置为:192.168.0.2掩码:255.255.255.0网关:192.168.0.2(3)lubuntu虚拟机的IP设置:虚拟机IP:192.168.0.100掩码:255.255.255.0网关:192.168.0.23. 配置minicom参数minicom程序用于在linux环境下通过串口和开发板通信。
如何构建ARM交叉开发环境

如何构建ARM交叉开发环境构建ARM交叉开发环境是为了在非ARM架构的主机上开发和编译ARM 架构的程序。
本文将向您介绍如何构建ARM交叉开发环境。
一、了解ARM架构在构建ARM交叉开发环境之前,我们首先要了解ARM架构。
ARM架构是一种低功耗、高性能的处理器架构,广泛用于移动设备、嵌入式系统和物联网等领域。
ARM架构有多个版本,常见的有ARMv6、ARMv7和ARMv8、我们在构建ARM交叉开发环境时需要根据需要选择适合的ARM架构版本。
三、安装交叉编译工具链四、配置交叉编译环境配置交叉编译环境是为了使操作系统和开发工具能够识别和使用交叉编译工具链。
具体配置方法取决于操作系统的不同。
1. Linux操作系统:在Linux操作系统中,我们可以通过修改.bashrc文件来配置交叉编译环境。
打开终端,输入以下命令打开.bashrc文件:```$ vi ~/.bashrc```在文件末尾添加以下行,将交叉编译工具链的路径添加到PATH环境变量中:```保存并关闭文件,然后执行以下命令使配置生效:```$ source ~/.bashrc```2. Windows操作系统:在Windows操作系统中,我们可以通过修改系统环境变量来配置交叉编译环境。
通过以下步骤来完成配置:a.打开“控制面板”并选择“系统”;b.点击“高级系统设置”并选择“高级”选项卡;c.点击“环境变量”按钮;e.在“变量值”中添加交叉编译工具链的路径;f.确认修改并关闭所有窗口。
五、验证交叉编译环境完成配置后,我们可以通过以下命令来验证交叉编译环境是否正常工作:```$ arm-none-eabi-gcc --version如果输出了交叉编译工具链的版本信息,则说明交叉编译环境已经成功搭建。
六、开发和编译ARM程序完成以上步骤后,我们就可以在非ARM架构的主机上开发和编译ARM程序了。
我们可以使用命令行或集成开发环境(IDE)来进行开发和编译。
arm开发环境搭建流程.

嵌入式课程实验报告学院:电子信息学院班级:姓名:学号:指导老师:ARM开发环境搭建实验流程经过很多次的实验,还有老师多次的讲解及示范,终于对arm有了初步的了解,对arm交叉开发环境的搭建有了一定的认识,嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统。
整个开发环境搭建的实验流程记录步骤如下:一、实验目的1、熟悉虚拟机 VMware 软件的安装和使用;2、掌握 Linux 系统软件的安装和使用;3、掌握交叉编译工具的安装4、了解 Linux 常用命令的使用及编译过程二、实验设备Pentium‖以上的PC机,EL-ARM830+实验箱,Redhat 9.0LINUX操作系统三、实验步骤1、安装虚拟机为了在计算机上运行linux系统,要安装虚拟机,首先在电脑上找到vmware的安装镜像文件,解压缩文件到linuette文件夹下,安装虚拟机后,还要完成虚拟机与计算机文件的共享,在虚拟机桌面右键点击“网上邻居”,选择“映射网络驱动器”,在“映射网络驱动器”界面中,把“登陆时重新连接”前面的对勾去掉,以便虚拟机重启时保持与共享文件夹的连接点击“浏览”进入下一步,找到刚才共享的那个文件夹,点“确定”保存,完成映射,现在,在虚拟机上的网络驱动器下可以看到共享的文件夹了至此,完成共享设置,虚拟机可以与主机之间传递文件。
2、安装linux操作系统。
我们做实验得时候,linux系统已经安装完成了,从网上搜到linux系统安装方法,如下:下载红旗7光盘镜像,把镜像解压到D盘,安红旗linux6.0装grub(或安装dos工具箱),修改menu.lst,增加下面几行内容,title安装红旗7中文版。
root(hd0,4)kernel/isolinux/vmlinuz0root=/dev/sda8roquietliveimgvga=788live_locale= zh_CN.UTF-8initrd/isolinux/initrd0.img保存这个文件后重新启动计算机,选择进入DOS工具箱,然后选择"安装红旗7中文版"3、4、在虚拟机上运行linux操作系统,打开.vmx文件。
ARM嵌入式系统原理与开发第7章 嵌入式系统开发的实验基础

将可以查看armcc的语法格式以及最常用的一些操作选项。 armcc的基本语法格式为
> armcc [options] file1 file2…filen
(2)armcpp armcpp是ARM C++编译器,它将ISO C++或EC++ 编译成32位的ARM指令代码。该编译器的命令选项和 armcc的选项基本一样,这里不再重复。 (3)tcc tcc是Thumb C编译器,它将ANSI C源代码编译成16 位的Thumb指令代码。tcc的编译选项和用法类似 armcc,具体使用请参考ADS软件的在线帮助文件。 (4)tcpp tcpp是Thumb C++编译器,它将ISO C++和EC++ 源码编译成16位Thumb指令代码。它的编译选项和用 法类似armcc,具体使用请参考ADS软件的在线帮助文 件。
(5)armasm armasm是ARM和Thumb的汇编器,它对用ARM汇编 语言和Thumb汇编语言写的源代码进行汇编。在命令 行输入
armasm–help
将会看到armasm汇编器的用法以及它的编译选项。 armasm的基本语法格式有两种: > armasm [options] sourcefile objectfile > armasm [options] -o objectfile sourcefile
(6)armlink armlink是ARM链接器,该命令既可以将编译得到的一个或多个 目标文件和相关的一个或多个库文件进行链接,生成一个可执行 文件,也可以将多个目标文件部分链接成一个目标文件,以供进 一步地链接。ARM链接器生成的是ELF格式的可执行映像文件。 armlink的语法格式如下: > armlink option-list input-file-list (7)armsd armsd是ARM和Thumb的符号调试器,它能够进行源码级的程序 调试。用户可以在用C或汇编语言写的代码中进行单步调试,设置 断点,查看变量值和内存单元的内容。armsd的语法格式如下: > armsd [options] [<imagefile> [<arguments>]]
第6章 ARM ADS集成开发环境

第6章 ARM ADS集成开发环境
选中 CreatFolder 选项后将以图6.4中的 ProjectName 或图 6.5 中的文件名为名创建目录,这样可以将所有与该工程相关的 文件放到该工程目录下,便于管理工程。在输入了工程名和选 择了工程路经后,单击“确定”,就生成一个新的工程项目。
第6章 ARM ADS集成开发环境
第6章 ARM ADS集成开发环境
②点击 “下一步”,会出现图6.2所示的对话框。
第6章 ARM ADS集成开发环境
③选默认的“Install License‖,再点击“下一步”,会出现图6.3 所示的对话框。 ④在图6.3中的注册码Code输入框和注册文件Location输入框 中两者只能输入一个,输入
第6章 ARM ADS集成开发环境 在图 6.4新建工程对话框中打开Project选项,列出了下面可供选择的 工程项目模板: ● ARM Executable Image 用于由ARM指令的代码生成一个可执行的ELF 格式的映像文件。是常选项。 ● ARM Object Library用于由ARM指令的代码生成一个armar格式的目标 文件库。 ● Empty Project 用于生成一个不包含任何源文件和库文件的空的工程项目。 ● Makefile Importer Wizard 用于将一个Visual C 的 nmake 文件转换成 CodeWarrior的工程项目文件。
第6章 ARM ADS集成开发环境
● Output Directory 用于定义本工程项目的数据目录。工程项目的生成文件 存放在该目录中。默认的取值为{Project},用户可以单击 Choose 按钮修改 该数据目录。 ● 单击 Save 按钮保存本组选项的设置。 注:通常的目标设置如图 6.7 所示。 (2)设置Access Paths选项组 Access Paths选项组中的选项如图6.8 所示。
ARM实验指导书
《嵌入式系统》实验指导书前言一.嵌入式系统实验的任务嵌入式系统实验是嵌入式系统理论课程的一部分,它的任务是:1.通过实验进一步了解和掌握嵌入式系统的基本理论、ARM的体系结构、ARM系统硬件设计基础以及嵌入式Linux软件设计2.学习和掌握嵌入式系统开发环境的使用和实现技术。
3.提高应用计算机应用能力及对操作系统有更高水平的理解。
二.实验设备嵌入式系统实验所使用的设备由计算机、CPU板、语音单元、开关量输入输出单元、液晶显示单元、键盘单元、信号扩展单元、CPLD模块单元、模拟信号源、直流电源单元等组成。
其中计算机是ARM开发软件的运行环境,是程序编辑和调试的重要工具。
语音单元是语音输入和输出模块,主要完成语音信号的采集和回放。
开关量输入输出单元可以实现开关量输入或输出。
液晶显示单元可以对运行结果进行文字和图形的显示。
模拟信号源可以产生频率和幅度可调的正弦波、方波、三角波。
直流电源单元可以提供3.3V、+5V、-12V和+12V的直流电源。
装有ARM开发软件和Linux操作系统的计算机与整个实验系统共同构成整个的嵌入式系统的软、硬件开发环境。
所有的嵌入式系统的实验都是在这套实验装置上完成的。
三.对参加实验学生的要求1.阅读实验指导书,复习与实验有关的理论知识,明确实验目的。
2.按实验指导书要求进行程序设计、程序修改。
3.在实验中注意观察,记录有关数据和图像,并由指导教师复查后才能结束实验。
4.实验后应断电,整理实验台,恢复到实验前的情况。
5.认真写实验报告,按规定格式对实验结果分析。
字迹要清楚,结论要明确。
爱护实验设备,遵守实验室纪律。
目录第一章嵌入式系统实验 (3)实验一ADS1.2开发环境创建 (3)实验二基于ARM的汇编语言程序设计 (5)实验三基于ARM的C语言程序设计简介 (7)实验四ARM的I/O接口实验 (9)实验五ARM的中断实验 (11)实验六ARM的UART实验 (14)实验七LCD的显示实验 (16)实验八Linux的实验环境的搭建 (18)实验九linux的移植、内核、文件系统的生成与下载 (21)实验十基于linux的跑马灯应用程序的编写 (29)第二章EL-ARM-挂箱型实验系统的资源介绍 (31)第一节 ARM实验箱硬件资源概述 (31)第二节实验系统的硬件资源总览 (32)第三节核心板的资源介绍 (33)第一章嵌入式系统实验实验一 ADS1.2开发环境创建一.实验目的熟悉ADS1.2开发环境,正确使用仿真调试电缆进行编译、下载、调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统实验四 ADS1.2 开发环境基础 一、实验目的 1、熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。 2、使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。 二、实验内容
本次实验使用ADS 集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。 三、预备知识 C 语言的基础知识、程序调试的基础知识和方法。
四、实验步骤 1、ADS工程建立 (1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。选择File| New„菜单,在对话框中选择Project,如图1B-1 所示,新建一个工程文件。图中示例的工 程名为Exp6.mcp。点set„按钮可为该工程选择路径(选中CreatFolder 选项),以图2-1 中的ProjectName为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。 在图2-1 中工程模板列表中的2410 ARM Executable Image 是专为本嵌入式开发板设置的工程模板,后文有具体说明。在此也可选择ARM Executable Image 通用模板。
图2-1 (2)在新建的工程中,如图2-2 所示,选择Debug 版本,使用Edit | Debug Settings 菜单对Debug 版本进行参数设置。
图2-2 (3)在Debug Settings 对话框中选择Target Settings 项,如图2-3 所示。在Post-linker 一栏中选择ARM fromELF。
图2-3 (4)在Debug Settings 对话框中选择ARM Linker 项,如图2-4。在Output 选项卡的Simple image 框中设置连接的Read-Only(只读)和Read-Write(读写)地址。地址0x30008000是开发板上SDRAM 的真实地址,是由系统的硬件决定的;0x30200000 指的是系统可读写的内存地址。也就是说,在0x30008000∼0x30200000 之间是只读区域,存放程序的代码段,在0x30200000 开始是程序的数据段。
图2-4 图2-4 所示的设置只是一种简单设置,如果程序需要用到标准C 库函数的话需要按图2-6 进行连接地址的设置。 标准C 中如果使用malloc 及其相关的函数,需要使用系统的堆(Heap)空间,可以通 过scatter 文件来描述系统HEAP 段的位置。针对2410-S 开发板,把程序的入口定位在 0x30008000,并定义scatter 文件为scat_ram.scf。在图2-5 中选择LinkType 为Scattered, 输入scatter 文件名scat_ram.scf;然后切换到Options 选项卡在Image Entry Point 框 中输入0x30008000。也可以在图2-5 的Command Line 框中直接输入-entry 0x30008000 -scatter scat_ram.scf 进行上述设置。
图2-5 提示: 1)程序移植到ADS 后,程序最开始首先执行用汇编写的初始化代码——包括中断向量和堆栈的初始化。在该段代码中使用IMPORT __main ;注意main 前面是两个下划线B __main 进行系统内部的标准C 函数初始化,然后调用用户在C 中定义的main()函数(注意:两个main 都是小写),并且在嵌入式应用中用户C 的main 函数中不能有参数(intmain(void))。 2)不能有系统定义的软中断,在汇编中可以使用IMPORT __use_no_semihosting_swi 来检测,在C 中使用 #pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting 3)scatter 文件内容如下,创建了一个RAM_LOAD 的程序和数据的装载区域,起始地址0x30008000。 RAM_LOAD 0x30008000 { RAM_EXEC +0 { startup.o (init, +First) * (+RO) } L0PAGETABLE 0x30200000 UNINIT ;about 2MByte offset SDRAM {pagetable.o (+ZI)} STACKS +0x100000 UNINIT ;64KByte under L0 pagetable {stack.o (+ZI)} RAM +0 { * (+RW,+ZI) } HEAP +0 UNINIT { heap.o (+ZI) } EXCEPTION_EXEC 0 OVERLAY ;exception region exception.o (+RO) } } 4)定义retarget.c 函数,重新定位标准C 库中stdio 的一些相关函数。主要有: struct __FILE { int handle; /* Add whatever you need here */}; FILE __stdout; //文件的定义 int fputc(int ch, FILE *f) //fputc 函数 int ferror(FILE *f) //ferror 函数 void _sys_exit(int return_code) //系统退出函数 int __raise(int signal, int argument) __value_in_regs struct __initial_stackheap __user_initial_stackheap(unsigned R0, unsigned SP, unsigned R2, unsigned SL)// 用户的堆空间和栈空间函数具体定义,可以参考init/retarget.c (5)在第(4)步中如果不选择简单的连接地址设置,则需按图2-6 所示设置C 编译器。 在Debug Settings 对话框中选择ARM C Compiler 项,在ATPCS 选项卡中选择ARM/Thump interwork,或者在命令行中添加-apcs /interwork。
图2-6 (6)在第四步中如果选择简单的地址连接设置,在Debug Settings 对话框中选择ARM Linker 项,如图2-7。在Layout 选项卡的Place at beginning of image 框中设置程序的 入口模块。指定在生成的代码中,程序是从startup.s 开始运行的。Object 设为startup.o, section 设为init。图 2-7 设置入口模块
(7)在Debug Settings 对话框中选择ARM fromELF 项,如图2-8。在Output file name 框中设置输出文件名为system.bin,这就是要下载到开发板的嵌入式应用程序文件。 (8)回到图2-9工程窗口中,选择Release 版本,使用Edit | ReleaseSettings 菜单对Release 版本进行参数设置。
图2-9 (9)参照第(3)、(4)、(5)、(6)、(7)步在Release Settings 对话框中设置Release 版本的Post-linker、连接地址范围、入口模块和输出文件。 (10)回到如图2-2 所示的工程窗口中,选择Targets 选项卡,如图2-9 所示。选中DebugRel 版本,按Del 键将其删除。DebugRel 子树是一个折衷版本,通常用不到,所以在这里删除。 (11)设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用。将工程文件名改为2410 ARM Executable.mcp。然后在ADS1.2 软件安装目录下的Stationery 目录下新建名为2410 ARM Executable Image 的模板目录,再将刚设置完的2410 ARM Executable.mcp工程模板文件存放到该目录下即可。这样以后新建工程的时候如图2-1 所示就能看到以2410ARM Executable Image 为名字的模板了。 提示: 1)建议用户直接将光盘Template/ADS 下的2410 ARM Executable Image 子目录直接拷贝到ADS1.2 安装目录下的Stationery 目录中,这样也能在图1B-1 所示的新建工程对话框中看到这个模板,其中具有已经设置好的针对本开发板的参数。注意ARMLinker Linktype 设置为Scattered,请参阅第(4)步内容。 2)如果用户原来已安装了ARM SDT 软件的话,再安装ADS1.2 后可能导致ARM SDT不能正常使用,需要用户更改系统环境变量:ARMINC 设置为%ARMSDTPATH%\INCLUDE,ARMLIB 设置为 %ARMSDTPATH%\LIB,其中%ARMSDTPATH%指ARM SDT 的安装目录。 (12)新建工程后,可以执行菜单Project | Add Files 把和工程相关的所有文件即除inti 的所有文件加入到工程中。ADS1.2 不能自动按文件类别对这些文件进行分类,需要的话用户可以执行菜单Project | Create Group 创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。如图2-10 所示。更为简单的办法是,在新建工程时ADS 创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。选中所有目录拖动到任务栏上的ADS 任务条上,不要松开鼠标当ADS 窗口恢复后再拖动到工程文件窗口,松开鼠标。这样ADS 将以子目录名建立同名文件组并以此对文件分类。