嵌入式开发实验手册
- 格式:docx
- 大小:406.96 KB
- 文档页数:131
主程序流程/*************************************************************************** * 文件名:LEDCON.C* 功能:LED闪烁控制。
对发光二极管LED4进行控制,采用软件延时方法。
* 使用I/O口直接控制LED,采用灌电流方式。
* 说明:将跳线器JP4_LED4短接。
**************************************************************************** #include "config.h"#define LEDCON 0x02000000 /* P0.25引脚控制LED4,低电平点亮 *//*************************************************************************** * 名称:DelayNS()* 功能:长软件延时* 入口参数:dly 延时参数,值越大,延时越久* 出口参数:无**************************************************************************** void DelayNS(uint32 dly){ uint32 i;for(; dly>0; dly--)for(i=0; i<50000; i++);}/*************************************************************************** * 名称:main()* 功能:控制LED闪烁**************************************************************************** int main(void){ PINSEL0 = 0x00000000; // 设置所有管脚连接GPIOPINSEL1 = 0x00000000;IO0DIR = LEDCON; // 设置P0.9连接的LED4控制口为输出while(1){ IO0SET = LEDCON;DelayNS(30);(1) 仿照上册“Keil for ARM实例2:A/D程序设计与电路彷真”的例子创建工程LedCon。
嵌入式系统开发实践指南第一章嵌入式系统概述1.1 嵌入式系统的定义和特点1.2 嵌入式系统在现代社会的应用领域1.3 嵌入式系统开发的重要性和挑战第二章嵌入式系统开发流程2.1 需求分析和系统设计2.1.1 确定系统功能和性能要求2.1.2 制定系统硬件架构和软件框架2.2 嵌入式系统的硬件开发2.2.1 选择适合的处理器和外设2.2.2 进行原理图设计和电路实现2.3 嵌入式系统的软件开发2.3.1 编写设备驱动程序2.3.2 开发系统内核和应用程序2.4 硬件与软件的集成与调试2.4.1 硬件与软件的连接与测试2.4.2 嵌入式系统的功能验证和性能测试第三章嵌入式系统开发工具3.1 嵌入式系统开发语言3.1.1 C语言在嵌入式系统开发中的应用 3.1.2 特定领域语言的使用3.2 嵌入式系统仿真工具3.2.1 模拟器和仿真器的选择和使用3.2.2 虚拟环境搭建与调试3.3 嵌入式系统调试工具3.3.1 调试器的选择和使用3.3.2 调试技巧和注意事项第四章嵌入式系统性能优化与测试4.1 嵌入式系统性能优化方法4.1.1 优化算法和数据结构4.1.2 优化编译器和编译选项4.2 嵌入式系统功耗优化4.2.1 低功耗设计原则和方法4.2.2 功耗分析和优化实践4.3 嵌入式系统测试与验证4.3.1 测试用例设计和执行4.3.2 嵌入式系统的可靠性评估第五章嵌入式系统开发案例分析5.1 智能家居系统的设计与开发5.1.1 系统需求和设计思路5.1.2 硬件和软件实现细节5.2 工业自动化系统的开发实践5.2.1 系统硬件和软件的选择5.2.2 实时性和稳定性的保障5.3 嵌入式汽车电子系统的开发流程5.3.1 汽车电子系统的特点及要求5.3.2 嵌入式系统的安全性和可靠性要求第六章嵌入式系统未来发展趋势6.1 物联网对嵌入式系统的影响6.2 人工智能在嵌入式系统中的应用6.3 嵌入式系统的软硬件融合与创新结语总结嵌入式系统开发实践指南的重要内容和关键技能展望嵌入式系统未来发展的潜力和前景。
嵌入式实验指导书2016.5嵌入式实验是学习嵌入式系统原理及应用课程的一个重要环节。
通过实验加深嵌入式系统原理的认识,训练学生嵌入式系统应用及开发的基本技能,培养学生合理选择嵌入式处理器和接口芯片、正确设计嵌入式系统的接口电路、学会程序调试的基本方法以及解决实验中所遇到问题的能力,同时,培养学生理论联系实际、严谨认真的科学态度和良好的工作作风。
实验一搭建嵌入式开发环境实验 (4)实验二编译下载uboot kernel yaffs2 (18)实验三GPIO模块驱动程序及测试 (23)实验四编写串口通信程序 (27)实验一搭建嵌入式开发环境实验一、实验目的1、掌握嵌入式开发环境的搭建2、掌握嵌入式开发常用工具的使用3、掌握嵌入式交叉编译环境的搭建二、实验内容及原理1.vmware虚拟机的安装及配置2.ubuntu操作系统的安装及配置3.windows环境中常用工具的安装及使用三、实验步骤(一)、vmware虚拟机的安装及配置1)打开VMware-8.0.2-591240.exe安装程序。
2)之后操作按图进行。
3)安装完成后打开刚安装的VMware程序。
4)虚拟机使用固定IP 地址的网络方式默认情况下,虚拟机安装完成后与宿主机共享一个IP 地址,没有属于自己的IP,这里首先需要设置虚拟机的网络联系方式为桥接方式。
单击VM 菜单下面的Settings 项,弹出虚拟机设置对话框,如下图:选择Bridged 连接,确定即可。
(二)、ubuntu的安装及配置1)安装Ubuntu首先准备一张Ubuntu12.04 的安装光盘。
将光盘插入光驱,在PC的bios 中把PC启动方式设置为光驱启动,启动PC。
启动PC 后,安装盘会提示选择安装语言种类。
使用PC键盘的方向键选择在安装过程中显示的语言,在这里我们选择English>>点击“Install Ubuntu”按钮。
选择“Erase disk and install Ubuntu”>>点击“Continue”按钮硬盘空间以及挂载点的分配。
实验开始注意事项:打开终端,键入sudo -i指令将自己升级为root用户。
以后的实验内容都是在root 用户下操作实现的。
下载arm_os.tar.gz,使用cp命令将其拷贝到home文件夹下,然后运行tar zxvf arm_os.tar.gz解压缩。
实验一注意事项:1.进入Ubuntu后,需要登录终端,运行apt-get install cutecom安装。
2.配置cutecom时,按照“实验.ppt”里的设置来,但是“no line end”应设为“LF line end”。
3.实验箱和电脑主机的连接需要串口线和网线。
4.连接完毕后,打开实验箱电源,会发现cutecom上会有打印信息出现,提示进入vivi还是加载Linux内核。
5.第一次打开实验箱,需要选择进入vivi。
在vivi里设置实验箱IP和一些其它参数。
命令为:param set linux_cmd_line "noinitrd init=/init root=/dev/nfs nfsroot=172.16.55.*:/home/arm_os/filesystem/rootfs,tcp ip=172.16.55.80 console=ttySAC0"和param save。
6.在主机上,记得要运行apt-get install nfs-kernel-server安装NFS服务器。
7.在主机上用命令gedit /etc/exports编辑/etc/exports文件,而不是“实验.ppt”里所说的export。
另外设置exports时,只需在最后加一句“/home/arm_os/rootfs 172.16.55.*(rw, sync, no_subtree_check)”即可8.测试NFS服务器需要在cutecom里面进入Linux然后键入命令来实现。
测试命令为:mount -o nolock 172.16.55.*:/home/arm_os/filesystem/rootfs /mnt ,这个和“实验.ppt”里的也有区别。
嵌入式Linux系统原理及开发实验指书计算机与信息工程学院电子教研室实验一 Linux的安装、启动和关闭一、实验目的1、学习Linux的基本分区和安装;2、学习Linux的启动与关闭;二、实验要求1、了解Linux的安装过程和安装的基本要求;2、了解Linux的启动过程和关闭方法;三、预备知识1、Linux的文件系统;2、虚拟机VMware Workstation的基本操作;四、实验内容及方法光盘映像文件存放在实习机器的D:\光盘镜像\Linux.iso中;1、Linux的安装(通过光盘(映像)安装)1)安装 VMware Workstation:VMware Workstation安装在C:\VMware Workstation中,首先运行“启动服务.cmd”,启动其中的第1,2项服务;然后运行“vmware.exe”启动虚拟机。
2)选择“File”→“New”→“New Virtual Machine”创建一个 Linux 虚拟机。
要求创建的虚拟硬盘不小于3G;在“Virtual Machine Configuration”选项卡中,3)将安装光盘放入光驱或加载安装光盘的映像文件(双击“Summary”中的“CDRom”→选择“Use Iso Image”选项→指定映像文件的位置);4)选择“Power”→“Power on”或点击工具栏上的按钮启动虚拟机5)迅速在窗口的客户区点击鼠标左键让虚拟机锁定鼠标,然后在屏幕有提示时按下 F2 键进入虚拟机的 BIOS 设定;在 Boot 区设定 CDRom 为第一启动6)进入安装程序安装程序;这个过程按照选择安装内容的不同大概需要20-60分钟。
注意:在使用虚拟机时,光标是被锁定在虚拟机的客户区内的,若要取消锁定按 Ctrl+Alt 组合键。
2、Linux的启动和关闭1)启动:加电启动。
若按上面步骤安装,则Linux默认启动级别是3级,即命令行模式(文本模式);若想将默认启动改为图形登录(Xwindow登录界面),只需要以root身份登录,修改 /etc/inittab 中id : 3 : initdefault :的内容为:id : 5 : initdefault :即可。
实 验 手 册实验1 传感器认知与测试实验1.1实验目的了解和熟悉差动变压器式位移传感器的工作原理及其技术指标。
1.2实验要求1、 了解FT81位移传感器的工作原理与特性;2、 测量并记录位移传感器的移动距离与输出电压;3、 画出Uo —X 曲线,根据曲线找出线性区域及进行正、负位移测量时的最佳工作点。
1.3实验原理 1.3.1基本原理传感器的结构原理如图5-1所示。
其中由三个固定绕组和一个活动铁心,而固定绕组的布置形式有两种:图5-1(a )是将初级绕组绕在中间,每个次级绕组分别绕在两端;图5-1(b )是将初级绕组绕在两个磁极绕组的外面。
他们的电路原理图均可由图5-1(c )表示。
图1-1 差动变压器式位移传感器(a )初级绕组在中间;(b )初级绕组在外面;(c )电路原理图当初级绕组通以交流电时,两个次级绕组均有感应电动势产生。
现将两个次级绕组引线的首端分别引出,两个末端接在一起。
当铁心置于两个次级绕组中间时对称位置时,则两个次级绕组(W 1,W 2)所产生的感应电动势之差为零。
如果铁心向第一次级绕组W 1方向移动,则W 1的感应电动势增加,而W 2的感应电动势相应地减小,它们的瞬时值方向相同,但大小不同,其差值就是传感器的输出,并且动铁心位移方向不同,还有不同的极性的显示。
传感器的输出电势210U U U -= (5-1)式中,U 1 —— W 1的感应电动势; U 2 —— W 2的感应电动势。
如果铁心向W 2移动时,则有120U U U -= (5-2)1.3.2测量电路图5-2所示差动变压器式位移传感器的测量电路。
这是属于半波解调测量电路。
在其初级绕组W0上不需加400Hz的激磁电压,并要求其幅值及频率恒稳不变,否则将引入测量误差。
图1-2 半波解调测量电路另一种测量电路为全波解调电路,并且还包括了提供初级绕组激磁电压,如图5-3所示。
图1-3 全波解调测量电路1.3.3FT81位移传感器FT81位移传感器是采用差动变压器(LVDT)原理,传感器内的专用电路产生音频电压为LVDT励磁,同时将LVDT的二次电压解调、滤波成与位移量成线性关系的直流缓变信号后输出。
实验一基本接口实验(一)[实验设备]1.JXARM9-2410教学实验箱2.ADT1000仿真器和ADT IDE集成开发环境3.串口、并口连接线[实验目的]1.掌握ARM的串行口工作原理,编程实现ARM的UART通讯;2.掌握嵌入式系统中断的处理流程和ARM中断编程;3.在ADT环境下如何建立工程,对工程进行正确的设置。
添加相应文件(汇编、脚本、.c 源文件等)[实验内容一]实现查询方式串口的收发功能。
接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。
[预备知识]1.了解ADT集成开发环境的基本功能2.学习串口通讯的基本知识3. 熟悉S3C2410串口有关的寄存器[基础知识]串行通信接口电路组成1.可编程的串行接口芯片2.波特率发生器3.EIA与TTL电平转换器4.地址译码电路通信协议:1.异步协议2.同步协议异步串行通讯异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。
数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线即可进行。
接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。
为了恢复发送的信息,双方必须协调工作。
在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。
但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。
异步串行通信中的字符传送格式开始前,线路处于空闲状态,送出连续“1”。
传送开始时首先发一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据。
每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。
后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。
也可以约定不要奇偶校验,这样就取消奇偶校验位。
最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。
实验一JAVA开发环境的配置JDK(Java SE Development Kit)就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等。
jre(java runtime environment)就是java程序的运行环境。
你所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后形成机器语言给计算机。
而这个jvm就在jre中,也就是说java程序的运行要有jre来担当。
所以jdk和jre的区别就是一个用于开发,一个用于运行,联系就是他们都是java开发者所必备的(除非你就像运行java程序,那么用jre就足够了)。
大概的联系和区别就是这样,要是想进一步探究,网上有很多的介绍。
一、JDK的安装下载最新的JDK安装到默认位置JAVA已经被Oracle收购安装完成问题1?进入JAVA的安装路径查找JAVAC和JAVA?问题2?进入JAVA的安装路径查找JVM?二、Java环境的配置新建JAVA_HOME添加JDK的bin和JRE的bin%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;添加Classpath%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;三、helloworld在记事本中编写Java代码并存在自定义路径运行cmd,将当前路径切换到自定义路径运行javac编译你编写的Java代码问题3?执行完JAVAC之后,自定义路径有什么变化?实验二在ADT中建立并运行JAVA工程1.新建JAVA工程2.给工程起名字并选择JRE环境3.在SRC里面新建Package,给Package起名字问题2?做了这一步操作以后,SRC文件夹下有什么变化?4.在Package中新建Class问题3?做了这一步操作以后,SRC文件夹下有什么变化?5.编制一个学生成绩分级打印程序,通过键盘一次输入十个学生成绩,计算成绩等级并输出计算结果。
一、STM32实验部分安排:1.1、第一次实验(1)实验板和调试器(2)开发调试软件MDK和HJTAG(3)工程建立和配置、程序下载和运行1.2、第二次(4)基本程序的编写(程序结构、库函数及其说明)(5)程序调试1.3、第三次:(6)程序的ISP(7)程序编写(中断、外设)1.4、第四次:(8)程序的设计UCOSII 程序演示上机考核内容(9)上机考试二、关于实验开发板:2.1、实验板硬件说明处理器:STM32F103VBT6,主频:72MHz128KB FLASH,20K SRAM启动跳线设置一个SD存储卡接口20Pin JTAG调试接口一个USB Device接口三个功能键:Reset,Wakeup,Temper四位八段数码管输出一路AD输入RTC( 带后备电池)USB供电2个三线RS232串行口四个LED灯一个CAN总线接口,通过DB9接口引出I2C接口,连接24C02 E2PROM2.2、软件例程:BKP备份寄存器例程EXTI芯片中断实验调用配置例程DEBUG仿真模拟调试例程DMA通信实验例程8段数码管显示例程SYSTICK实验例程PWR电源管理程序RTC实时时钟程序时钟配置实验例程TIMWWDG看门狗实验例程中断向量配置实验例程NVICIWDG实验例程ADC模数转换例程GPIO的控制实验,LED(发光二极管)、KEY(按键)等CAN实验TIM实验例程串口通讯例程利用CortexM3位块管理功能读写SRAM中的变量程序RCC芯片内部时钟管理程序SPI总线通信例程USB测试例程uC/OS-II移植2.3 WIGGLER仿真器三、STM32实验开发板使用指导四、软件的安装、硬件连接及软件配置4.1、MDK4.10 prc 和HJTAG的安装4.2、实验板的硬件连接(1)保证原理图的P3跳线为:boot0=GND,boot1=GND (2)JTAG线连接连接好计算机并口线和实验板(3)实验板上电使用USB线连接号计算机和实验板,若连接成功JTAG 仿真器和实验板上相应的LED均会发亮4.3、HJTAG的启动和配置(保证实验板的硬件连接已成功)(1)运行桌面上的H-JTAG。
嵌入式系统原理与应用实验栗华编着山东大学信息科学与工程学院二零一四年三月目录第一章实验硬件平台1.1北京博创UP-TECH三合一实验箱简介本实验指导书所依赖的硬件平台为北京博创兴盛科技有限公司生产的一种ARM9/Xscale经典三核心教学科研平台(型号:UP-TECHS2410/S2440/P270),本平台兼容PXA270核心CPU及S3C2410、S2440核心CPU的全部功能,是北京博创多年来嵌入式教学产品开发经验的结晶。
这里选配的是S3C2440核心板。
图1-1UP-CUP三合一实验箱外观应用案例:※支持Linux、WinCE、Vxworks、μC/OS-Ⅱ4套操作系统;※核心板可更换,同时拥有ARM9(S3C2410和S3C2440)和XScale(PXA270);※中国电子学会嵌入式工程师认证考试和师资培训指定平台;硬件资源:软件资源结构说明图1-2UP-TECH三合一实验箱实物结构图1-2UP-TECH三合一实验箱框图结构图1-3UP-TECH三合一实验箱框图结构版图1.2跳线设置参考说明:◆PCB上所有“EXPORT”丝印字符表示168Pin扩展槽◆JP1401RESET-SEL:设置复位电路,位置JTAG20插座下方。
1-2:ICE的ICE-TRST复位信号可以控制系统复位信号RESET。
2-3:ICE的ICE-TRST复位信号不可以控制系统复位信号RESET。
◆JP1402JTAGSEL:选择JTAG电路,位置JTAG20插座下方。
1-2:使能板载的UP-LINKJTAG电路。
2-3:使用外部的JTAG电缆或者ARMICE仿真器。
◆JP1103TXD1-SEL◆JP1104RXD1-SEL:UART1选择扩展槽或者RS232的DB9插座。
1-2:UART1连接RS232-1,从DB9串口插座输出。
2-3:UART1连接到扩展槽。
◆JP1101TXD2-SEL◆JP1102RXD2-SEL:UART2选择跳线,分别为RS485、IrDA、扩展槽1-2:UART2连接到RS485总线上。
2-3:UART2连接到扩展槽上。
3-4:UART2连接到扩展槽上。
4-5:UART2连接到IrDA红外线电路上。
1.3资源占用情况表1-1UP-TECHS2410/S2440实验箱资源占用第二章嵌入式系统开发环境简介(ADS1.2安装及使用)2.1ADS介绍ADS全称为ARMDeveloperSuite,是ARM公司的,其功能非常强大。
它的前身是SDT,SDT是ARM公司几年前的开发环境,目前SDT早已经不再升级。
国内大部分开发者使用的ADS的版本是1.2。
ARMADS由六个部分组成,分别是:代码生成工具、集成开发环境、调试器、指令集模拟器、ARM开发包和ARM应用包。
1)代码生成工具代码生成工具由源程序编辑、汇编及链接工具集组成、ARM公司针对ARM系列的每一种结构都进行了专门的优化处理,其代码生成工具最终生成的可执行文件最小,可以比用其他公司工具套件生成的文件小20%。
2)集成开发环境CodeWarriorforARM是一套完整的集成开发工具,充分发挥了ARMRISC的优势,使产品开发人员能够很好的应用尖端的片上系统技术.该工具是专为基于ARMRISC的处理器而设计的,它可加速并简化嵌入式开发过程中的每一个环节,使得开发人员只需通过一个集成软件开发环境就能研制出ARM产品,在整个开发周期中,开发人员无需离开CodeWarrior开发环境,因此节省了在操做工具上花的时间,使得开发人员有更多的精力投入到代码编写上来。
3)调试器ADS中包括3个调试器,分别是ARM扩展调试器AXD、向下兼容的ADW/ADU和ARM 符号调试器armsd。
AXD是目前最常用的调试器,armsd作为命令行调试工具用于辅助调试,可以用于其他操作系统平台上。
4)指令集模拟器ARM中的指令集模拟器可以实现在PC机上对基于内核处理器的ARM和Thumb提供精确的模拟,从而可以在没有硬件支持的情况下实现部分调试工作。
5)ARM开发包ARM开发包由一些底层的例程和库组成,可以帮助用户快速开发基于ARM的应用程序和操作系统。
6)ARM应用库ADS的ARM应用库完善并且增强了SDT(ADS的前身)中的函数库,同时还包括一些非常有用的源码例程。
用户使用ARMADS开发应用程序与使用ARMSDT完全相同,可以选择使用Angel驻留模块或者JTAG仿真器。
目前大部分JTAG仿真器都支持ARMADS。
2.2安装ADS1.2软件:1.打开桌面上ADS1.2的文件夹,双击SETUP.EXE。
安装界面如下图2-1,选择“Next”继续。
图2-1ADS1.2安装界面12.选择“YES”,同意安装许可,如下图2-2。
图2-2ADS1.2安装界面23.选择安装路径,安装到适当的地方,保证空间足够(200M左右),此处默认为C:\ProgramFiles\ARM,选择“Next”继续,如下图2-3。
图2-3ADS1.2安装界面34.选择完全安装Full的方式,点击“Next”继续,如下图2-4。
图2-4ADS1.2安装界面45.连续点击“Next”继续,如下图2-5,图2-6,图2-7。
图2-5ADS1.2安装界面5图2-6ADS1.2安装界面6图2-7ADS1.2安装界面76.开始安装,界面如下图2-8。
图2-8ADS1.2安装界面87.选择“下一步”,如下图2-9。
图2-9ADS1.2安装界面98.选择“InstallLicense”项,如下图2-10,点击“下一步”,如图2-11。
图2-10ADS1.2安装界面10图2-11ADS1.2安装界面119.此步骤是安装License,需要用到安装包里的CRACK文件夹,将此文件夹复制到软件安装目录的ADSv1_2下,此处为C:\ProgramFiles\ARM\ADSv1_2。
拷贝完后点击图2-11中的“Browse”按钮,出现如图2-12所示界面,在查找范围处浏览到安装目录下C:\ProgramFiles\ARM\ADSv1_2\CRACK文件夹并双击“LICENSE.DAT”即可,此时出现如图2-13所示界面。
图2-12ADS1.2安装界面12图2-13ADS1.2安装界面1310.依次点击“下一步”,“完成”,“Finish”,完成整个安装过程。
2.3使用ADS1.2软件:1.打开CodeWarriorforARMDeveloperSuite现在可以通过“开始”—“程序”—“ARMDeveloperSuitev1.2”—“CodeWarriorforARMDeveloperSuite”来打开开发软件了,如图2-14所示。
图2-14ADS1.2使用界面1启动MetrowerksCodeWarriorforARMDeveloperSuitev1.2后界面如图2-15所示。
图2-15ADS1.2使用界面22.新建工程在CodeWarrior中新建一个工程的方法有两种,可以在工具栏中单击(New…)按钮,如图2-16所示。
也可以在“File”菜单中选择“New…”菜单,如图2-17所示。
图2-16ADS1.2使用界面3图2-17ADS1.2使用界面4这样打开一个如图2-18所示的窗口。
该窗口有Project、File和Object三个选项卡,现在我们新建工程,故选Project选项卡。
这个对话框中为用户提供了7种可选择的工程类型。
此7种工程类型已经在图中标出,大家熟悉一下。
这里我们选择第一种ARMExecutableImage工程类型,在“Projectname:”下输入工程名,如test,点击“Location:”文本框的“Set..”按钮,浏览选择想要将该工程保存的路径。
如存放在C:\armtest文件夹中,按照图2-18,图2-19的步骤完成。
图2-18ADS1.2使用界面5图2-19ADS1.2使用界面6此时点击“确定”按钮即可建立一个新的名为test的工程,这个时候会出现test.mcp的窗口,如图2-20所示。
图2-20ADS1.2使用界面7此时点击“最大化”按钮可以将test.mcp窗口扩大,如图2-21所示。
这个时候会出现一个text.cmp的窗口,如图所示,有三个标签,默认第一个标签Files。
图2-21ADS1.2使用界面8实验中由于所有的源文件都还没有建立,所以首先需要新建源文件。
在“File”菜单张选择“New”,选择标签页File,在Filename中输入要创建的文件名,输入“Init.s”,并将新建文件Init.s加入工程(勾选“AddtoProject”),Targets 多选框中的“Debug”选项。
如图2-22所示:图2-22ADS1.2使用界面9新建工程的默认目标是DebugRel,另外还有两个可选择的目标,分别是Debug 和Release,他们的含义如下:⏹DebugRel:生成目标时,为每一个源文件生成调试信息;⏹Release:生成目标时,不生成调试信息;⏹Debug:生成目标时,为每一个源文件生成最完全的调试信息。
点击确定关闭窗口,在打开的文件编辑框中输入如图2-23所示的汇编代码。
IMPORTMainAREAInit,CODE,READONLYENTRYLDRBLMainB.END图2-23ADS1.2使用界面10在这段代码中,伪操作IMPORT告诉编译器符号Main不是在该文件中定义的,而是在其他源文件中定义的符号,但是本源文件中可能要用到该符号。
接下来用伪指令AREA定义名为Init属性为只读的代码段,伪指令ENTRY指出了程序的入口点。
然后程序完成R0的赋值,再跳转到Main函数执行。
保存Init.s汇编程序。
用同样的方法,再建立一个名为Main.c的C源代码文件,图2-24ADS1.2使用界面11具体代码内容如下所示:#defineDATA(*(volatileunsigned*)0x03ff5008)voidDelay(unsignedint);intMain(){unsignedlongx;DATA=0X01;for(;;){x=DATA;x=(x<<1);DATA=x;Delay(10);if(!(x&0X0F))DATA=0X01;}return(0);}voidDelay(unsignedintx){unsignedinti;for(i=0;i<=x;i++);}如果建立新文件时没有选择将所建立文件加入工程,我们也可以通过“Project-AddFiles”菜单将源文件加入到工程中。
如下图2-25所示。
图2-25ADS1.2使用界面12加入文件之后的工程如下图2-26所示:图2-26ADS1.2使用界面133.配置、编译和链接工程在进行编译和链接前,首先进行生成目标的配置。