北理工嵌入式系统实验报告

合集下载

嵌入式系统实验报告一

嵌入式系统实验报告一

实验一实验要求:1、了解一种非VxWorks的嵌入式系统开发环境,简述开发环境的组成。

答:除VxWorks外一般主流的嵌入系统有Linux、PalmOS、Windows CE、Symbian等,一般开发环境包含目标机和宿主机,目标机一般是自己开发的板子,上面运行操作系统所开发的应用程序,宿主机上有一个集成开发环境来辅助进行软件的开发。

2、在Windows操作系统平台上安装Tornado2.2集成开发环境,完成一个downloadable工程,新建两个文件,每个文件包含一个打印字符串的函数,一个函数调用另外一个函数,编译、调试、下载并运行,将打印输出结果显示在Tornado的VxSIM目标系统上。

实验目的:1、了解嵌入式开发环境。

2、熟悉Tornado的安装和程序设计、编译、调试、下载的步骤,并注意函数执行与下载的顺序的关系。

熟悉Tornado的使用环境。

一、实验原理在Windows操作系统平台上安装Tornado2.2集成开发环境,完成一个downloadable工程,新建两个文件,每个文件包含一个打印字符串的函数,一个函数调用另外一个函数,编译、调试、下载并运行,将打印输出结果显示在Tornado的VxSIM目标系统上。

二、设计说明按照实验要求,首先在工程里新建了两个C源文件helloworld.c和test.c 来编写C代码,每个文件包含一个打印字符串的函数,并且每个文件都有一个主函数分别为main1和main2,每个主函数都调用本文件和另一个文件中的打印字符串函数。

在helloworld.c文件里主函数为main1,它将调用test.c文件里的test函数(打印字符串“This is test!”)和本文件里的hello函数(打印字符串“Hello world!”),而在test.c文件里则先调用test函数和helloworld.c 文件的hello函数。

这样即完成了实验要求,helloworld.c文件调用了test.c 文件里的函数,而test.c文件里的这个函数又调用了helloworld.c文件里的函数。

嵌入式系统设计性实验报告

嵌入式系统设计性实验报告

嵌入式系统设计性实验报告本次实验的目标是设计一个能够追踪并控制智能小车运动的嵌入式系统。

具体来说,我们需要设计一套硬件电路和相应的软件程序,使得小车能够通过传感器感知周围环境,并通过控制器控制电机的转动实现运动。

实验中使用了Arduino开发板作为嵌入式系统的核心。

Arduino开发板集成了一个微控制器和一系列输入输出接口,可以通过编写简单的代码控制各种外设。

在本次实验中,我们使用了超声波传感器作为感知器,直流电机作为执行器。

首先,我们需要连接硬件电路。

超声波传感器负责感知周围环境,通过发送超声波脉冲并接收回弹的信号来计算距离。

直流电机则负责控制小车的运动,根据软件的控制信号,控制电机的转速和方向。

在连接硬件电路时需要注意电路的正确连接,以免出现短路或其他损坏。

接下来,我们需要编写软件程序。

首先,我们需要初始化传感器和电机的接口,并设置合适的参数。

然后,在主循环中,我们不断地读取传感器的数值,并根据读取到的数值进行相应的处理。

比如,当距离超过一定阈值时,我们可以控制电机停止运动;当距离小于阈值时,我们可以控制电机朝一些方向运动。

除了距离的处理,我们还可以根据需要处理其他的传感器读数,比如温度、压力等。

最后,当实验结束时,我们需要关闭接口并释放相应的资源。

经过实验,我们成功地设计并实现了一个能够追踪并控制智能小车运动的嵌入式系统。

实验结果表明,我们的系统可以准确地感知周围环境,并根据环境的变化来控制小车的运动。

系统的性能良好,响应速度较快,可以在实际应用中发挥较好的作用。

总结而言,本次实验通过设计一个能够追踪并控制智能小车运动的嵌入式系统,使我们对嵌入式系统设计有了更深入的认识。

通过实验,我们熟悉了嵌入式系统的硬件电路和软件程序的设计过程,提高了对嵌入式系统设计的理解和实践能力。

此外,我们还深刻认识到嵌入式系统在实际应用中的广泛性和重要性。

希望通过今后进一步的学习和实践,能够在嵌入式系统设计领域取得更好的成绩。

嵌入式系统 实验报告

嵌入式系统 实验报告

使能 IRQ 中断。
4 装载并使能外中断;
5 选用 DebugInExram 生成目标,然后编译连接工程。
6 选择【Project】->【Debug】,启动 AXD 进行 JTAG 仿真调试。
7 全速运行程序,LED 闪烁;
8 每一次按键 Key,蜂鸣器就会转换静音或鸣响状态。
四.测试数据及运行结果
1
五.总结
1.实验过程中遇到的问题及解决办法;
由于本次实验较简单,且我们之前学习的微机原理课程也进行了流水灯的设
计实验,所以对于本次实验,我完成地很顺利,在实验中没有遇到问题。
2.对设计及调试过程的心得体会。
本次实验是本学期该课程我们进行的第一次实验,总的来说,实验不是很难,
设计过程也相对简单,其主要目的是让我们熟悉一下实验环境,并且能在实验环
6
五.总结 1.实验过程中遇到的问题及解决办法;
实验第一次运行时,蜂鸣器一直处于鸣响状态,及时按了按键,蜂鸣器还是 一直鸣叫,不产生外中断。后来仔细检查了程序,发现原来是忘记使能 EINT0 中 断了,加上 VICIntEnable = 1<<0x0e 代码,程序就能正常运行了。 2. 对设计及调试过程的心得体会。
境下进行简单的实验操作,为之后的实验打下坚实的基础。
六.附录:源代码(电子版)
#include "config.h"
const uint32 LEDS8 = 0xFF << 18;//P1[25:18]控制 LED1~LED8,低电平点亮
const uint32 KEY = 1 << 16;
//P0.16 连接 KEY1
三.方案设计
① 启动 ADS1.2IDE 集成开发环境,选择 ARM Executable Image for lpc2131

嵌入式实验设计实训报告

嵌入式实验设计实训报告

一、实验背景随着信息技术的飞速发展,嵌入式系统在各个领域得到了广泛的应用。

为了让学生更好地掌握嵌入式系统设计的相关知识,提高学生的动手能力和实际操作能力,我们开展了嵌入式实验设计实训。

本次实训以ARM处理器为平台,通过实际操作,让学生了解嵌入式系统的基本原理和设计方法。

二、实验目的1. 熟悉ARM处理器的基本架构和编程环境。

2. 掌握嵌入式系统设计的基本流程和方法。

3. 培养学生的动手能力和实际操作能力。

4. 提高学生对嵌入式系统的认知和应用能力。

三、实验内容1. 实验环境(1)硬件平台:ARM处理器开发板(2)软件平台:Keil uVision5、GNU ARM Embedded Toolchain2. 实验步骤(1)搭建实验环境首先,将开发板连接到计算机,并安装Keil uVision5和GNU ARM Embedded Toolchain软件。

接着,配置开发板,使其能够正常运行。

(2)编写程序根据实验要求,编写嵌入式系统程序。

程序主要包括以下几个方面:1)初始化:设置时钟、GPIO、中断等。

2)主循环:实现程序的主要功能。

3)中断处理:处理外部中断。

4)延时函数:实现延时功能。

(3)编译程序将编写好的程序编译成可执行文件。

(4)下载程序将编译好的程序下载到开发板上。

(5)调试程序在开发板上运行程序,通过串口调试软件观察程序运行情况,并对程序进行调试。

(6)实验报告根据实验内容,撰写实验报告。

3. 实验项目(1)点亮LED灯通过控制GPIO端口,实现LED灯的点亮和熄灭。

(2)按键控制LED灯通过检测按键状态,控制LED灯的点亮和熄灭。

(3)定时器实现定时功能使用定时器实现定时功能,例如定时关闭LED灯。

(4)串口通信实现串口通信,发送和接收数据。

四、实验结果与分析1. 点亮LED灯实验成功实现了通过控制GPIO端口点亮LED灯的功能。

2. 按键控制LED灯实验成功实现了通过检测按键状态控制LED灯的功能。

嵌入式系统实验报告一

嵌入式系统实验报告一

2008221104210068 陈见08计科2班嵌入式系统实验报告一一.实验目的:1.了解嵌入式开发中的硬件(e.g.EELIOD)与软件(e.g.bootloader)2.了解嵌入式系统的开发环境,内核的下载和启动过程3.了解Linux内核配置和编译过程•了解Linux内核源代码的目录结构以及各目录的相关内容•了解Linux内核一些基本配置选项内容和作用•掌握Linux内核的编译过程4.了解嵌入式文件系统的构建过程•了解嵌入式操作系统种文件系统的类型和作用•掌握利用BusyBox 软件制作嵌入式文件系统的方法•掌握嵌入式Linux 文件系统的的挂载过程二.实验内容:<1>嵌入式系统开发1、bootloader嵌入式系统中通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务完全由bootloader来完成。

其主要作用是:初始化硬件设备;建立内存空间的映射图;完成内核的加载,为内核设置启动参数。

bootloader 就是在操作系统内核运行之前运行的一段小程序。

通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

2、串口设置(minicom)多数嵌入式系统都通过异步串行接口(UART)进行初级引导。

这种通信方式是将字符一位一位地传送,一般是先低位、后高位。

因此,采用串行方式,双方最少可以只用一对连线便可实现全双工通信。

字符与字符之间的同步靠每个字框的起始位协调,而不需要双方的时钟频率严格一致,因此实现比较容易。

启动minicom▪主机运行minicom,该程序通过串口(RS232)和目标机连接。

▪ minicom-s表示对串口进行设置,普通用户不需要这一步。

▪串口设置/dev/ttys0 bps=115200,8位数据,无检验,无流控制。

▪bootloader提示符下面可设定本机IP,宿主机IP,将要下载的内核文件名,文件系统名及其它参数。

嵌入式系统实验报告三

嵌入式系统实验报告三

试验三【1 】试验请求:装配Tornado ULIP仿真网卡驱动,启动2个vxSim目标体系,个中一个vxSim为TCP Client,另一个为TCP Server.TCP Server与Client经由过程socket API进行数据的收发.别的请求在VxWorks中集成target shell组件及ping相干组件,可以或许在两个vxsim上互相ping通,验证收集情形.最根本请求是可以或许完成数据收发.具体通讯内容及方法不限,可以自由施展,简略的可所以新闻收发,庞杂的可所以协定通讯.须要将target shell中ping通的截图放在试验陈述中.试验目标:熟习Tornado ULIP仿真网卡驱动的装配和运用;熟习VxWorks bootable工程的创建和VxWorks映像的生成;熟习VxWorks收集编程.一.试验道理TCP的双机通讯是基于socket套接字树立衔接的.收集的Socket数据传输是一种特别的I/O,Socket也是一种文件描写符.Socket也具有一个相似于打开文件的函数挪用Socket(),该函数返回一个整型的Socket描写符,随后的衔接树立.数据传输等操纵都是经由过程该Socket实现的.经常运用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM).流式是一种面向衔接的Socket,针对于面向衔接的TC P办事运用;数据报式Socket是一种无衔接的Socket,对应于无衔接的UDP办事运用.在本次试验中要用到的就是流式Socket.两个收集程序之间的一个收集衔接包含五种信息:通讯协定.当地协定地址.当地主机端口.远端主机地址和远端协定端口.Socket数据构造中包含这五种信息.二.设计解释本试验是一个须要运用到客户端/办事器通讯模式的问题.重要的设计流程为,底层的网卡驱动装配好后,挪用尺度的Socket套接字经由过程TCP/IP 协定进行通讯.办事器端等待办事.一旦有客户端的通讯请求,假如通讯协定相符,则树立衔接,进行通讯.办事器一方运用TCP套接字与客户端通讯.在办事的主轮回中,义务tcpServerWorkTask起首读取来自客户端的请求,并想掌握台输出客户信息,假如须要,将向客户端发送应答信息.客户端经由过程掌握台提醒输入,树立请求报文,然后发送到办事器,假如须要应答,则等待来自办事器端的回应.具体的通讯流程如下图:试验具体步调:1.装配ULIP适配器在掌握面板里选择“添加删除硬件”->“添加/消除装备故障”->“添加新设备”-> “从列表选择硬件”->“网卡”->”从磁盘装配”,接着选择tornado\host\x86-win32\bin\下的,然后肯定并封闭窗口;装好之后,在ipconfig /all的输出中可看到多了一个网卡windriver ulip;2.3.设置装备摆设ULIP适配器在IP栏输入(可所以),子网掩码设为,点高等,在wins页选择禁用TCP/IP上的NETBIOS,然后肯定封闭,然后可用验证适配器是否工作正常;4.启动Routing and Remote Access这个办事,并将该办事设为主动启动;5. 中的 #if TRUE 为#if FALSE.6.新建一个Bootable的工程,BSP选为simpc,然后编译,假如你想磨练一下收集功效,可在workspace的vxworks页的network components->networking protocols ->network applications->ping client点右键include ping client,从新build;7.Launch simulator,选择custom-built simulator,阅读选中适才编译出来的,processor no.设为0(full simulator可支撑16个simulator,并且可以或许互相通讯,它们的processor no.分离是0-15),肯定;8.Launch target server,封闭Launch simulator后会提醒你launch target server,点Details,选中Full simulator,修正上面的敕令行参数,将C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/tsfs改为体系中消失的目次,点OK 启动target server,然后你可以双击窗口右下方的target server图标检讨启动情形;也可以经由过程Tornado菜单(Tools->target server->configure)进行target server的设置装备摆设并启动它;9.假如Target server启动成功,你点launch shell启动一个shell,输入“ping "host 的ip",3”,回车,ping通了就解释收集仿真已经成功;10.将所需文件添加到工程,然后build工程.为每一台目标机设置装备摆设一个ta rgetserver,然后启动它们.为了实现双向通讯,必须将build生成的tcpServer.o和tcpClient .o都分离下载到两台目标机.在两台目标机的敕令行下将tcpServer.o和tcpClient.o load到内存,敕令如下:-> ld < tcpServer.o和-> ld < tcpClient.o.11. 在每一台目标机下启动办事器端的义务,敕令如下:-> sp tcpServer检讨当前的义务,即可以发明每一台目标机上都启动了tcpServer这个义务,暗示都处于监听状况.可以双向通讯了,两台目标机ip分离为192.168.225.1和192.168.225.2.三.运行成果图片(1) VxSim0 为TCP Client,先履行ping函数,ping办事器的ip地址,成功ping通,接着运行了函数client(“”,“my name is Dongwenjing, my number is 2011111785”),192.168.255.2为server的IP地址.Client顺遂与Server衔接后输入要发送的字符串,肯定后成功发送,并收到了server的答复.(2) VxSim1 为TCP Server,同样ping客户端的ip地址,成功.履行server函数,可以看到client发来的新闻.四.程序调试记载在程序调试的进程中消费时光较多的是在前期预备上,主如果ULIP仿真网卡的装配和设置装备摆设上,可能是因为本身在装配和设置装备摆设进程中的纰漏和步调漏掉,使得在敕令行中ping并没有ping通,后来查找原因又试验了一次,总算在敕令行中ping通.后来在同时启动两个VxSim的进程中也碰到了问题,经由向师兄们就教,解决了这个问题.。

嵌入式系统实验报告

----WORD格式--可编辑--------嵌入式系统实验报告内容第一章: ARM2410CL 嵌入式系统基础实验实验一 ARM2410CL嵌入式教学实验系统实验报告要求:(1)简述嵌入式 LINUX 开发的流程。

实验二嵌入式 LINUX 开发环境的配置实验报告要求:(1)简述嵌入式 LINUX 开发环境配置的具体步骤。

(2)简述网络文件系统( NFS)。

第二章:系统实验实验一LINUX基本应用程序编写实验实验报告要求:(1)简述交叉编译器基本概念及简述计算机平台和ARM 平台编译环境的异同。

(2)简述 Makefile 文件作用和基本组成。

(3)ARM 中怎样将编写的应用程序下载到LINUX中?怎样在 LINUX 中运行该程序?实验二串行端口程序设计实验报告要求:(1)简述 LINUX 下的串口程序设计的基本步骤。

(2)编写一个简单的文件收发程序完成串口文件的下载并画出实验流程图。

第三章:内核与根文件系统实验实验一内核移植与编译实验实验报告要求:(1) LINUX 内核移植的基本概念。

(2)简述 LINUX 内核配置和编译步骤。

实验二根文件系统实验实验报告要求:(1)简述文件系统的基本概念并列出LINUX 下根文件系统的目录结构及习惯用法。

(2)在 LINUX 下,怎样制作 cramfs 格式的根文件系统?实验心得:(要求写出关于本次实验收获及实验教学的意见及建议)注: 1.实验报告要求使用实验报告纸完成。

2.实验报告需在 17 周周五之前完成统一交与班长处。

嵌入式实验报告编程实验(3篇)

第1篇一、实验目的1. 熟悉嵌入式系统开发环境。

2. 掌握嵌入式编程的基本方法。

3. 理解嵌入式程序的结构和运行机制。

4. 提高实际编程能力,为后续嵌入式系统开发打下基础。

二、实验环境1. 操作系统:Windows 102. 开发工具:Keil uVision53. 嵌入式平台:STM32F103C8T64. 编程语言:C语言三、实验内容本次实验主要完成以下任务:1. 创建工程,配置工程参数。

2. 编写嵌入式程序,实现基本功能。

3. 编译、下载程序到目标板。

4. 观察程序运行效果,调试程序。

四、实验步骤1. 创建工程(1)打开Keil uVision5,点击“Project”菜单,选择“New uVision Project”。

(2)选择目标芯片型号STM32F103C8T6,点击“OK”。

(3)在弹出的对话框中,选择项目保存路径,输入项目名称,点击“Save”。

(4)点击“OK”,完成工程创建。

2. 配置工程参数(1)双击“Target 1”,打开目标配置界面。

(2)在“Device”下拉列表中选择STM32F103C8T6。

(3)根据实际情况配置时钟、中断、外设等参数。

(4)点击“OK”,保存配置。

3. 编写嵌入式程序(1)在工程目录下,找到“User”文件夹,打开“main.c”文件。

(2)根据实验要求,编写嵌入式程序代码。

以下为示例代码:```cinclude "stm32f10x.h"void delay(unsigned int ms){unsigned int i, j;for (i = ms; i > 0; i--)for (j = 720; j > 0; j--);}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能GPIOA 时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 设置PA0GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化GPIOAwhile (1){GPIO_SetBits(GPIOA, GPIO_Pin_0); // PA0输出高电平delay(500);GPIO_ResetBits(GPIOA, GPIO_Pin_0); // PA0输出低电平delay(500);}}```4. 编译、下载程序(1)点击“Project”菜单,选择“Build Target”编译程序。

嵌入式综合实训实验报告

一、实验背景与目的随着信息技术的飞速发展,嵌入式系统在各个领域的应用越来越广泛。

为了提升学生对嵌入式系统的理解和应用能力,本实验课程旨在通过综合实训,让学生全面掌握嵌入式系统的开发流程,包括硬件选型、软件开发、系统调试以及项目实施等环节。

通过本实验,学生能够熟悉嵌入式系统的基本原理,提高实际操作能力,为今后从事嵌入式系统相关工作打下坚实基础。

二、实验环境与工具1. 硬件平台:选用某型号嵌入式开发板作为实验平台,具备丰富的外设接口,如GPIO、UART、SPI、I2C等。

2. 软件平台:采用某主流嵌入式Linux操作系统,支持交叉编译工具链,方便软件开发和调试。

3. 开发工具:集成开发环境(IDE),如Eclipse、Keil等,提供代码编辑、编译、调试等功能。

4. 其他工具:示波器、逻辑分析仪、电源适配器等。

三、实验内容与步骤1. 硬件平台搭建(1)根据实验要求,连接嵌入式开发板与计算机,确保硬件连接正确无误。

(2)配置开发板电源,检查开发板各个外设是否正常工作。

2. 软件环境搭建(1)在计算机上安装嵌入式Linux操作系统,并配置交叉编译工具链。

(2)安装集成开发环境(IDE),如Eclipse或Keil,并进行相关配置。

3. 嵌入式系统开发(1)根据实验要求,设计嵌入式系统功能模块,编写相关代码。

(2)利用IDE进行代码编辑、编译、调试,确保程序正常运行。

4. 系统调试与优化(1)使用示波器、逻辑分析仪等工具,对系统进行调试,检查各个模块是否正常工作。

(2)根据调试结果,对系统进行优化,提高系统性能和稳定性。

5. 项目实施(1)根据实验要求,设计并实现一个嵌入式系统项目,如智能家居控制系统、工业自动化控制系统等。

(2)编写项目报告,总结项目实施过程和心得体会。

四、实验结果与分析通过本次嵌入式综合实训,我们完成了以下实验内容:1. 熟悉嵌入式开发平台的基本硬件和软件环境。

2. 掌握嵌入式系统开发流程,包括硬件选型、软件开发、系统调试等环节。

嵌入式系统课程设计报告实验报告

- - -. 嵌入式系统课程设计必做部分学院:电控学院专业:通信工程设计名称:IIC同步串行通讯1、设计的目的:1.掌握S3C44B0IIC控制器的编程方法2.编程实现串行EEPROM存储器24C16的数据存储和访问。

2、设计的内容:1.学习S3C44B0 IIC控制器的原理与编程方法;2.学习IIC存储器24C16的编程方法;3.理解IIC存储器24C16的与S3C44B0的电路连接原理;4.掌握C语言中断程序设计方法;5.编程实现对24C16的数据存储和访问。

3、设计思路、遇到的问题及解决方法:此次试验,我们结合《嵌入式系统原理及应用》教材以及老师提供的各种pdf和word资料,了解到了各种寄存器的配置方法,如IICDS等。

对于例程中的各种函数,如Wr24C16(), Rd24C16(),__irq IicInt()等,通过对程序的仔细研读,最终了解了它们的各自用途,并在此基础上,编写了主函数。

实现了从0-255共256个字节的写入及读取操作。

这次实验我们遇到了不少的难题,像开始使用ARM-Project Manager平台一开始,由于对此平台的不了解,我们走了许都弯路。

像对于头文件的配置问题,总是配置不对,后来发现头文件为程序自主生成,无需配置。

还有关于程序中的一些.s文件,开始并不知道是有何作用,后来在老师的指点下,发现有必要将其加入到sourse文件栏中调用,同时调用的同时,由于不理解调用的路径问题,多次编译失败,后来发现了问题,是路径配置不当,最终更改了路径,解决了问题。

再有,在对老师提供的例程进行阅读时候,发现了不少的啰嗦以及错误语句,例如Uart_Printf("%d\n",k);语句就不应该为Uart_Printf("%d\n",&k);这些问题我们都通过调试最终给予了改正。

4、设计的结果及验证正确输出结果如下截图,从超级终端中回显显示了正确数据,实验成立。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统实验报告目录实验二 (1)实验三 (4)实验四 (7)实验六 (17)填充三角形实验 (24)实验二基于ARM的汇编语言程序设计简介一、实验目的1. 了解ARM 汇编语言的基本框架,学会使用ARM 的汇编语言编程二、实验内容1. 用汇编语言编写一个简单的应用程序三、实验设备1. EL-ARM-830 教学实验箱,PentiumII 以上的PC 机,仿真调试电缆,串口电缆。

2. PC 操作系统WIN98 或WIN2000 或WINXP,ADS1.2 集成开发环境,仿真调试驱动程序四、汇编语言简介1. ARM汇编的一些简要的书写规范ARM 汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。

ARM 汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。

在ARM 汇编中,ARM 指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。

注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行的顶格书写。

详细的汇编语句及规范请参照ARM汇编的相关书籍、文档,也可参照我们提供的文档。

2. ARM汇编语言程序的基本结构在ARM 汇编语言程序中,是以程序段为单位来组织代码。

段是相对独立的指令或数据序列,具有特定的名称。

段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。

一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。

可执行映像文件通常由以下几部分构成:◆一个或多个代码段,代码段为只读属性。

◆零个或多个包含初始化数据的数据段,数据段的属性为可读写。

◆零个或多个不包含初始化数据的数据段,数据段的属性为可读写。

链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位EL - ARM - 830 实验指导书39置。

源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。

五、实验步骤1. 本实验仅使用实验教学系统的CPU 板,串口。

在进行本实验时,LCD 电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。

2.在PC 机并口和实验箱的CPU 板上的JTAG 接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。

3.检查连接是否可靠,可靠后,接入电源线,系统上电。

4.打开ADS1.2 开发环境,从里面打开\实验程序\HARDW ARE\ADS\实验二\asm.mcp 项目文件,进行编译。

EL - ARM - 830 实验指导书405.编译通过后,进入ADS1.2 调试界面,加载\实验程序\HARDW ARE\ADS\实验二\asm_Data\Debug 中的映象文件程序映像asm.axf。

6.打开超级终端,配置波特率为115200,校验位无,数据位为8,停止位为1。

之后,在ADS 调试环境下全速运行映象文件,应出现图2-2-1 界面:图2-2-1六、所用主程序://呼叫主应用程序b UARTUARTldr r0, =GPHCON ;//设置GPIO(RxD0,TxD0 引脚)ldr r1, =0x2afaaastr r1, [r0]ldr r0, =GPHUPldr r1, =0x7ffstr r1, [r0] ; //GPH[10:0]禁止上拉ldr r0, =UFCON0 ;//禁用FIFOEL - ARM - 830 实验指导书41ldr r1, =0x0str r1, [r0]ldr r0, =UMCON0 ;//禁用AFCldr r1, =0x0str r1, [r0]ldr r0, =ULCON0 ;//设置线寄存器ldr r1, =0x3 ; //正常模式,无奇偶校验,一个停止位,8 个数据位str r1, [r0]ldr r0, =UCON0 ;//设置Uart0 控制器ldr r1, =0x245;//RX 边沿触发,TX 电平触发,禁用延时中断,使用RX 错误中断,正常操作模式,中断请求或表决模式str r1, [r0]ldr r0, =UBRDIV0 ;//设置波特率为115200ldr r1, =0x1a ;//int(50700000 / 16 / 115200) - 1 = 26str r1, [r0]mov r1, #100Delaysub r1, r1, #0x1bne Delay;//开中断ldr r0, =INTMSKldr r1, [r0]and r1, r1, #0xefffffffstr r1, [r0]MOV R5 , #127 ; //设置要打印的字符的个数MOV R1 , #0x0 ; //设置要打印的字符LOOPLDR R3 , =UTRSTA T0LDR R2 , [R3]TST R2 ,#0x04 ; //判断发送缓冲区是否为空BEQ LOOP ;//为空则执行下边的语句,不为空则跳转到LOOPLDR R0 , =UTXH0STR R1 ,[R0] ;//向数据缓冲区放置要发送的数据ADD R1, R1, #1EL - ARM - 830 实验指导书42SUB R5 ,R5, #0x01 ;//计数器减一CMP R5 ,#0x0BNE LOOPLOOP2 B LOOP2分析清楚之后,我们改变R1 的数据,换成其他的数据,然后保存、编译、调试。

观察结果,比如0xaa,0x01 等等。

七、实验总结经过该实验,我们了解了EL-ARM-830 型教学实验系统属于一种综合的教学实验系统,ARM 程序的结构,并学习ARM与上位机通讯的相关知识。

同时学习了codewarrior和超级终端以及调试程序的使用,对三星的2410 ARM处理器基本架构和外设有了一定程度的了解。

实验三(辅助实验:基于ARM的C语言程序设计简介)一、实验目的1.了解ARM C 语言的基本框架,学会使用ARM 的C 语言编程二、实验内容1. 用C 语言编写一个简单的应用程序三、实验设备1. EL-ARM-830 教学实验箱,PentiumII 以上的PC 机,仿真调试电缆,串口电缆。

2. PC 操作系统WIN98 或WIN2000 或WINXP,ADS1.2 集成开发环境,仿真调试驱动程序四、ARM C语言简介与使用规则1. ARM使用C语言编程是大势所趋在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且不易移植。

由于ARM 的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C 语言的特点充分发挥,使得应用程序的开发时间大为缩短,代码的移植十分方便,程序的重复使用率提高,程序架构清晰易懂,管理较为容易等等。

因此,C 语言的在ARM 编程中具有重要地位。

2. ARM C语言程序的基本规则在ARM 程序的开发中,需要大量读写硬件寄存器,并且尽量缩短程序的执行时间的代码一般使用汇编语言来编写,比如ARM 的启动代码,ARM 的操作系统的移植代码等,除此之外,绝大多数代码可以使用C 语言来完成。

C 语言使用的是标准的C 语言,ARM 的开发环境实际上就是嵌入了一个C 语言的集成开发环境,只不过这个开发环境和ARM 的硬件紧密相关。

在使用C 语言时,要用到和汇编语言的混合编程。

当汇编代码较为简洁,则可使用直接内嵌汇编的方法,否则,使用将汇编文件以文件的形式加入项目当中,通过ATPCS 的规定与C 程序相互调用与访问。

ATPCS,就是ARM、Thumb 的过程调用标准(ARM/Thumb Procedure Call Standard),它规定了一些子程序间调用的基本规则。

如寄存器的使用规则,堆栈的使用规则,参数的传递规则等。

EL - ARM - 830 实验指导书44在C 程序和ARM 的汇编程序之间相互调用必须遵守A TPCS。

而使用ADS 的C语言编译器编译的C 语言子程序满足用户指定的ATPCS 的规则。

但是,对于汇编语言来说,完全要依赖用户保证各个子程序遵循ATPCS 的规则。

具体来说,汇编语言的子程序应满足下面3 个条件:●在子程序编写时,必须遵守相应的ATPCS 规则;●堆栈的使用要遵守相应的A TPCS 规则;●在汇编编译器中使用-atpcs 选项。

基本的ATPCS 规定,请详见提供的相关PDF 文档。

汇编程序调用C程序汇编程序的设置要遵循ATPCS 规则,保证程序调用时参数正确传递。

在汇编程序中使用IMPORT 伪指令声明将要调用的C 程序函数。

在调用C 程序时,要正确设置入口参数,然后使用BL 调用。

C程序调用汇编程序汇编程序的设置要遵循ATPCS 规则,保证程序调用时参数正确传递。

在汇编程序中使用EXPORT 伪指令声明本子程序,使其他程序可以调用此子程序。

在C 语言中使用extern 关键字声明外部函数(声明要调用的汇编子程序)。

在C 语言的环境内开发应用程序,一般需要一个汇编的启动程序,从汇编的启动程序,跳到C 语言下的主程序,然后,执行C 程序,在C 环境下读写硬件的寄存器,一般是通过宏调用,在每个项目文件的Startup2410/INC 目录下都有一个2410addr.h 的头文件,那里面定义了所有关于2410 的硬件寄存器的宏,对宏的读写,就能操作2410 的硬件。

具体的编程规则同标准C 语言。

五、实验步骤1.本实验仅使用实验教学系统的CPU 板,串口。

在进行本实验时,LCD 电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。

2.在PC 机并口和实验箱的CPU 板上的JTAG 接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。

3.检查连接是否可靠,可靠后,接入电源线,系统上电。

4.打开ADS1.2 开发环境,从里面打开\实验程序\HARDW ARE\ADS\实验三\C.mcp 项目文件,进行编译。

EL - ARM - 830 实验指导书465.编译通过后,进入ADS1.2 调试界面,加载\实验程序\HARDW ARE\ADS\实验三\C_Data\Debug 中的映象文件程序映像C.axf。

6.打开/实验软件/tools/目录下的串口调试助手工具,配置为波特率为115200,校验位无,数据位为8,停止位为1。

不要选十六进制显示。

之后,在ADS 调试环境下全速运行映象文件,应出现图2-3-1 界面。

本程序连续发送55。

图2-3-1下边分析一下主程序的源码。

在C 程序前的部分为系统的初始化,这在后边BOOTLOADER 的章节里,要详细介绍。

#include "..\inc\config.h" //嵌入包括硬件的头文件unsigned char data; //定义全局变量void Main(void){Target_Init(); //目标板初始化,定义串口的硬件初始化在//target.c 中定义Delay(10); //延时data = 0x55; //给全局变量赋值while(1)EL - ARM - 830 实验指导书47{Uart_Printf("%x ",data); //串口0 输出Delay(10);}}把data = 0x55;语句中的0x55,换成其他8 位数,重新编译,下载,看看串口工具上输出是什么内容。

相关文档
最新文档