实验六 ARM 环境下汇编语言与C 语言实验 一、 实验目的 1 掌握基本的 ARM 汇编语言和 C 语言编程方法 2 掌握 ADS 下C 语言和汇编语言互相调用的方法 3 深入理解 ARM 开发环境的体系结构 4 初步掌握 S3C2410 的 I/O 口德操作方法 5 巩固使用 AXD 和 Multi-ICE 调试的方法 二、 实验内容 1 单独使用 ARM 汇编语言编写一个程序,在 AXD 下调试,观察结果。 2 采用内嵌汇编和 C 完成一个工程在 AXD 下调试,观察结果。 3 用 C 语言实现跑马灯功能。 三 、实验设备 1 硬件:DM2410B+实验系统 PC 机 JTAG 仿真器串口线 2 软 件 : PC 机 操 作 系 统 ARM Developer Suiter v1.2Multi-ICE v2.2.5(Build1319)DNW2410(或超级终端) 四、 实验说明 汇编语言程序实验程序 程序代码如下: #include #include "2410addr.h" #include "2410lib.h" //================================ //名称:Led_Test //功能:LED 循环显示 //参数: void //返回值: void //================================ void Led_Test() { unsigned long LED; Uart_Printf("Led_Test.\n"); //GPBCON GPB10 [21:20] = 01 : Output //GPBCON GPB10 [19:18] = 01 : Output //GPBCON GPB10 [17:16] = 01 : Output //GPBCON GPB10 [15:14] = 01 : Output rGPBCON &= (~(0x3<<20)); rGPBCON |= ((0x1<<20)); rGPBCON &= (~(0x3<<18)); rGPBCON |= ((0x1<<18)); rGPBCON &= (~(0x3<<16)); rGPBCON |= ((0x1<<16)); rGPBCON &= (~(0x3<<14)); rGPBCON |= ((0x1<<14)); //GPBDAT GPB[10:0] [10:0] : Output Data rGPBDAT = 0xf7f; Delay(100); Uart_Printf("PRESS ANY KEY TO STOP."); while (!Uart_GetKey()) { LED = rGPBDAT; LED = (LED<<1); //下一个灯亮 rGPBDAT = LED; Delay(200); if(!(rGPBDAT & 0x400)) //保证第四个 LED 点亮后重新点亮第一个LED; rGPBDAT=0xf7f; Delay(200); } Uart_Printf("\nTEST FINISHED."); } //============================ //名称:delay //功能:延迟指定时间 //参数: x //返回值: void //============================ void delay(unsigned int x) { unsigned int i,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0...