-
/******************************
*********************************************
Copyright (c) 2004-2007
threewater@, All rights reserved.
by threewter
2004.5.12
******************************************** *******************************/
/*****
**************************************************
********************
#
说明
: C
main
函数,
ucos-
ii
初始化等定义
----------------------------------
Bug
--------------------------------------
----------------------------------
TODO list
--------------------------------------
----------------------------------
修正
-------------------------------
-------
2004-5-12
创建
**
**************************************************
***********************/
//#include
/* uC/OS interface */
//#include
“
//
”双斜杆后的内容为注释部份
//#include
//#include
//#include
#define U8 unsigned char
#include
#include
定义“
U8
”来代替数据类型
< br>unsigned char
引用
string.h<
/p>
库中的内容,引用的目的是为了
调用里面的一些对字符串进行操作
的函数
引用
stdio.h
库函数,
”
stdio
”
即标准输入输出
(
Standard
input and output
)
,
一旦引用,
可以
调用如
printh
函数。
#define TRUE
1
p>
定义
TRUE
来代替
1
,一旦程序运行,凡是
TRUE
的
地方都换成了
1
,这样做的目的主要
是
增加程序的可读性
定义
FALSE<
/p>
来代替
0
#define FALSE
0
#pragma
import(__use_no_semihosting_swi)
// ensure no functions that use
semihosting
调用外部函数
// own
define
这是针对本次实验内容本人定义的一些量
# define rGPHCON (*(volatile unsigned
*)0x56000070)
定义一个动态变量,该语句实
行的功能是把地址
0x56000070
的定义给
rGPHCON
,但
用
vo
latile
来修饰,使得程序每当读到
rGPHCON
时,都会重新查取
rGPHCON
中的内容,
而不会将上次读到内存中的内容重新调出,
这样做的目的是为了
使
rGPHCON
中的内容能得
到实时
更新。
(注意
unsigned
定义
的是数据类型,
可以想像语句
#define rGPHCON
(
unsigned
)
0x56000070,
有两个作用,一是实现用
0x
56000070
来代替程序中的
rGPHCON
,二是强制转
换成无符号整型,
(
< br>unsigned
*
)
0x56000070
,
将
0x56000070
定义成一个指针,
(
volatile
< br>unsigned*
)
0x56000070
,
语句中加了一个
volatile
功用上面已提到,
不在重复。
(
*
(
unsigned
*
)
0x56000070,
则语句的功能则变
成指向
0x56000070
这个指针里面的内容。
吉珠
陈信材
#
define rUCON0 (*(volatile unsigned *)0x50000004)
# define rULCON0 (*(volatile unsigned
*)0x50000000)
# define rUFCON0
(*(volatile unsigned *)0x50000008)
#
define rUMCON0 (*(volatile unsigned *)0x5000000C)
# define rUBRDIV0 (*(volatile unsigned
*)0x50000028)
同上
同上
同上
同上
同上
# define
rINTMSK (*(volatile unsigned *)0x4a000008)
同上
以上只是定义了指向相关寄存器地址的内容,
具体各个寄存器怎么用,
见书上相关章节
# define BIT_URXD0 (0x1 << 28)
定义一个位变量,主要是用来实现将一个
32
位的寄存器中的第
28
位(即
bit28
)置
1
#define
rUTRSTA
T0
#define
rUTRSTA
T1
(*(volatile
unsigned *)0x50000010)
(*(volatile
unsigned *)0x50004010)
同上
同上
#define WrUTXH0(ch)
(*(volatile unsigned char
*)0x50000020)=(unsigned char)(ch)
在上面的基础上,
进一步将写寄存器里面要进行写入的内容定义成
8
位的无符号字符型
数据
#define WrUTXH1(ch)
(*(volatile unsigned char
*)0x50004020)=(unsigned char)(ch)
同上
#define
RdURXH0()
(*(volatile unsigned char
*)0x50000024)
同
#definerGPHCON
(*(volatile unsigned
*)0x56000070)
的定义
#define RdURXH1()
(*(volatile unsigned char *)0x50004024)
同上
//void
Uart_SendByten(int Uartnum, U8 data);
void Uart_SendByten(int,U8);
定义一
个串中发送函数,
函数有两个参数,
一
个是
16
位的整型数据,一个是
8
p>
位的无符号数据
char
Uart_Getchn(char* Revdata, int Uartnum, int
timeout);
定义一个字符串接收函数
void
ARMTargetInit(void);
void
hudelay(int time);
extern unsigned int PCLK;
S3C2410
开发板的初始化函数
定义一个延时函数
定义一个外部变量
PCLK
,它是一个无符号的
16
p>
位整
型数据
串口初始化函数
void
rs232_Init(int com, int baud);
int main(void)
{
//int ndev;
char c1[1];
char err;
定义一个数组
定义一个字符型数据
ARMTargetInit();
// do target
(uHAL based ARM system) initialisation
//
调用函数,对开发板进行初始化,此步,必不可少
rs232_Init(0,9600);
对串口的功能进行初始化
while(1)
{
p>
Uart_SendByten(0,0xa);//
换行
吉珠
陈信材
-
-
-
-
-
-
-
-
-
上一篇:邯郸学步的寓意
下一篇:北航ARM嵌入式系统实验 实验一 ARM基础知识和开发环境