当前位置:首页 > 实验二 ARM汇编指令实验
实 验 报 告
课程名称 嵌入式系统 实验名称 ARM汇编语言与C程序设计 姓 名 王闯 学 号 200907040318 专业班级 软件0903 实验日期 年 月 日 成绩 指导教师 王彩玲
一、 实验目的
(1)掌握在Embest IDE for ARM开发环境下编写汇编与C语言混合调用程序的方法; (2)掌握在集成环境下的调试方法。
二、 实验设备
(1)硬件:嵌入式实验平台一套、仿真器一个、PC机一台;
(2)软件:Embest IDE for ARM集成开发环境,Windows 98/2000/NT/XP。
三、 实验内容
(1)编写7-led程序,完成7-led模块循环显示F-0的程序实验报告要求 (2)要求在程序中设置断点,位置在显示’F’的程序之前。
四、 实验步骤
(1)准备实验环境。使用Embest仿真器连接目标板,使用Embest S3CEV40实验板附带的串口线连接实验板上的UART0和PC机的串口。
(2)在PC机上运行Windows自带的超级终端串口通信程序(波特率为1152000b/s,1个停止位,无校验位,无硬件流控制);或者使用其他串口通信程序。
(3)使用Embest IDE通过Embest仿真器连接实验板,打开实验例程目录下LED-test子目录中的led-test.ews例程,编译、链接通过后连接目标板,下载并运行它。 (4)观察超级终端输出如下内容:
Embest 44BOX Evaluation Board(S3CEV40)
7-segment Digit LED Test Example(Please look at LED) (5)实验板上8段数码管循环显示0~F字符。
五、实验参考代码
#include \
#define LED7ADDR (*(volatile unsigned char *)(0x2140000))
void Uart_Init(int mclk,int baud) { int i;
if(mclk==0) mclk=MCLK;
rUFCON0=0x0; //FIFO disable rUFCON1=0x0; rUMCON0=0x0; rUMCON1=0x0; //UART0
rULCON0=0x3; //Normal,No parity,1 stop,8 bit rUCON0=0x245; //rx=edge,tx=level,disable int.,normal,interrupt or polling
rUBRDIV0=( (int)(mclk/16./baud + 0.5) -1 ); //UART1
rULCON1=0x3; rUCON1=0x245;
rUBRDIV1=( (int)(mclk/16./baud + 0.5) -1 ); for(i=0;i<100;i++); }
void Delay(int i) {
for(;i>0;i++); //for(j=0;j<10;j++); }
void Uart_SendByte (int data) {
if(data=='\\n')
{
while(!(rUTRSTAT0 & 0x2)); Delay(10); WrUTXH0('\\r'); }
while(!(rUTRSTAT0 & 0x2)); //等待直到THR为空 Delay(10);
timeout
int.,enable
rx
error
WrUTXH0(data);
}
char Uart_Getch(void) { }
/*
void Main(void) {
LED7ADDR=0x9f; } */
while(!(rUTRSTAT0 & 0x1)); //接收读入数据
return RdURXH0();
void Main(void) {
char input_char;
/* 用户输入类型char */
int i;
char pt_str[10]={0,0,0,0,0, 0,0,0,0,0};
//sys_Init();
Uart_Init(0,115200);
Uart_SendByte('a');
for( i=0;i<10 ; i++ ) {
pt_str[i] = Uart_Getch(); Uart_SendByte(pt_str[i]); }
}
六、实验总结
通过本次实验,我熟悉了在Embest IDE for ARM开发环境下编写汇编与C语言混合调用程序的方法;掌握在集成环境下的调试方法。虽然实验做得不是很顺利,但是我还是学会了好多知识。同时感谢老师的悉心指导和耐心讲解,使我对实验中的基本知识点还算比较清晰地了解。
共分享92篇相关文档