本程序为为做笔记之用,不是太规范。
因为需要将各种数组都定义到外部RAM中,所以需要做一些设置。设置外部RAM地址为0x60000000,长度为0X8000(32KByte).![](data:image/png;base64,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)
新建RAM.h,main.c,ram.c
![](data:image/png;base64,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)
源代码如下:
main.c
#include "ram.h"
typedef unsigned char datatype;
void SetNull(sequeue *sq)
{
sq->front=0;
sq->rear=0;
}
datatype Empty(sequeue *sq)
{
if(sq->rear==sq->front)return(1);
else return(0);
}
datatype GetFront(sequeue *sq)
{
if(Empty(sq))
{
//printf("queue is null");
return(NULL);
}
else
return(sq->buf[(sq->front+1)%maxsize]);
}
datatype InQueue(sequeue *sq,datatype x)
{
if((sq->rear+1)%maxsize==sq->front)
{
//printf("队列已满");
return(NULL);
}
else
{
sq->buf[sq->rear]=x;
sq->rear=(sq->rear+1)%maxsize;
return(1);
}
}
datatype DeQueue(sequeue *sq)
{
unsigned char byt;
if(Empty(sq))
{
//printf("队列为空");
return(NULL);
}
else
{
byt = sq->buf[sq->front] ;
sq->front=(sq->front+1)%maxsize;
return byt;
}
}
int main(void)
{
unsigned char *ptr;
unsigned long i,j;
unsigned char arry[200];
sequeue *sq;
sq=&esq; SetNull(sq);
for(i=0;i<maxsize;i++)
{
InQueue(sq,0xdd);
}
for(i=0;i<maxsize;i++)
{
if(!Empty(sq))
arry
=DeQueue(sq);
else
arry[199]=0xff;
}
for(i=0;i<maxsize;i++)
{
InQueue(sq,0xcc);
}
for(i=0;i<maxsize;i++)
{
if(!Empty(sq))
arry=DeQueue(sq);
else
arry[199]=0xff;
}
ptr=x_unskip;
for(j=0;j<0x4000;j++) //监视器恢复标志位(16384字节)
{
*ptr=0xff;
ptr++;
}
ptr=x_arm_flg;
for(i=0;i<128;i++)
{
*ptr=i;
ptr++;
}
ptr=x_alarm_link_flg;
for(i=0;i<128;i++)
{
*ptr=i;
ptr++;
}
x_video_loss_mon=32;
x_system_control=0;
ptr=x_group_mon;
for(i=0;i<64;i++)
{
*ptr=0;
ptr++;
}
ptr=x_group_cam;
for(j=0;j<3072;j++)
{
*ptr=0;
ptr++;
}
ptr=x_mon_dtime;
for(i=0;i<128;i++)
{
*ptr=0x03;
ptr++;
}
ptr=x_group_switch;
for(j=0;j<256;j++)
{
*ptr=0x00;
ptr++;
}
/*
ptr=(uchar xdata *)RAM_ON_DUTY_ACTION; //On/Off Duty Action(3584字节)
for(j=0;j<3584;j++)
{
*ptr=0x00;
ptr++;
} */
ptr=x_cam_now_num;
for(i=0;i<128;i++)
{
*ptr=0x00;
ptr++;
*ptr=i;
ptr++;
}
return 0;
}
ram.c:
#include "ram.h"
uchar x_unskip[16384];
uchar x_alarm[256];
uchar x_arm_flg[128];
uchar x_alarm_link_flg[128];
uchar x_video_loss_mon;
uchar x_system_control;
uchar x_group_mon[64];
uchar x_group_cam[3072];
uchar x_prog_track[128];
uchar x_video_loss_flg[128];
uchar x_mon_vtime[128];
uchar x_mon_dtime[128];
uchar x_group_switch[256];
uchar x_alarm_link[4096];
uchar x_virtual_numh[1024];
uchar x_virtual_numl[1024];
uchar x_cam_now_num[256];
uchar x_group_dtime[16];
uchar x_sys_info[6];
uchar x_clock_display_mode;
uchar x_char_display_mode;
uchar x_key_login[32];
uchar x_mon_run_mode[128];
uchar x_prog_switch[1024];
//特别注意结构体变量的定义与外部引用,很容易编译处错误。
sequeue esq;
ram.h:
#define uint8 unsigned char
#define NULL 0
#define maxsize 193
typedef struct seq
{
uint8 buf[maxsize];
uint8 front;
uint8 rear;
}sequeue;
typedef unsigned char uchar;
extern sequeue esq ;
extern unsigned char x_unskip[16384];
extern uchar x_alarm[256];
extern uchar x_arm_flg[128];
extern uchar x_alarm_link_flg[128];
extern uchar x_video_loss_mon;
extern uchar x_system_control;
extern uchar x_group_mon[64];
extern uchar x_group_cam[3072];
extern uchar x_prog_track[128];
extern uchar x_video_loss_flg[128];
extern uchar x_mon_vtime[128];
extern uchar x_mon_dtime[128];
extern uchar x_group_switch[256];
extern uchar x_alarm_link[4096];
extern uchar x_virtual_numh[1024];
extern uchar x_virtual_numl[1024];
extern uchar x_cam_now_num[256];
extern uchar x_group_dtime[16];
extern uchar x_sys_info[6];
extern uchar x_clock_display_mode;
extern uchar x_char_display_mode;
extern uchar x_key_login[32];
extern uchar x_mon_run_mode[128];
extern uchar x_prog_switch[1024];
还有需要注意的地方是结构体变量引用时:如果通过指针引用,那么需要现定义一个结构体指针,然后将结构体的首地址赋给指针。引用时采用P->结构体成员的方式。如果直接引用,采用结构体变量.结构体成员的方式。