单片机实验二

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

实验二

一、实验目的

(1)阅读S3C44B0X启动代码,观察处理器启动过程

(2)学会使用ADS辅助信息窗口分析判断调试过程和结果

(3)学会在ADS环境中编写、编译与调试汇编和C语言相互调用的程序。

二、实验设备

PC机、ADS1.2集成开发环境

三、实验内容

使用汇编语言完成一个随机数产生函数,通过C语言调用该函数,产生一系列随机数,存放到数组中。

四、实验代码

(1)randomtest.c参考源代码

/**************************************************************************

;* File:randtest.c

;* Author:

;* Desc:Random number generator demo program

;* Calls assembler function 'randomnumber' defined in random.s

;* History:

;***********************************************************************/

/*------------------------------------------------------------------------------------------*/

/* extern function

*/

/*------------------------------------------------------------------------------------------*/

extern unsigned int randomnumber( void );

/************************************************************************

;* name: main

;* func: c code entry

;* para: none

;* ret: none

;* modify:

;* comment:

;********************************************************************/

;C语言程序

int Main()

{

unsigned int i,nTemp;

unsigned int unRandom[10];

for( i = 0; i < 10; i++ )

{

nTemp = randomnumber();

unRandom[i] = nTemp;

}

return(0);

}

(2)unit.s参考源代码

;/***********************************************************************

;# File:init.s

*

;# Author: embest

*

;# Desc: C start up codes.Configure memory, Initialize ISR ,stacks,

*

;# initialize C-variables

*

;# Fill zeros into zero-initialized C-variables

*

;# History:

*

;#***************************************************************************/

;/*------------------------------------------------------------------------------------------*/

;/* global symbol define

*/

;/*------------------------------------------------------------------------------------------*/

AREA start,CODE,READONL Y

;/*.global __gccmain */

;/*------------------------------------------------------------------------------------------*/

;/* code

*/

;/*------------------------------------------------------------------------------------------*/

ENTRY

;设置中断/异常向量

b Reset_Handler

Undefined_Handler

b Undefined_Handler

SWI_Handler

b SWI_Handler

Prefetch_Handler

b Prefetch_Handler

Abort_Handler

b Abort_Handler

nop ; /* Reserved vector */

IRQ_Handler

b IRQ_Handler

FIQ_Handler

b FIQ_Handler

Reset_Handler

ldr sp, =0x00002000

;/ ***************************************************************************** ;该段代码实现:从汇编调用C函数

;重点关注IMPORT伪操作

*****************************************************************************/ IMPORT Main;引用外部程序Main

ldr r0, = Main;将Mian函数的地址加载到R0中

mov lr, pc ;将pc指向子程序

bx r0

;/ ***************************************************************************** ;无限循环

;应用结束,通常情况下不会再产生

;能调转到软件复位(B0x0)

*****************************************************************************/

相关文档
最新文档