搜索
bottom↓
回复: 0

一个C8051f023的板子,自己编一个内存测试程序,遇到问题

[复制链接]

出0入0汤圆

发表于 2015-9-5 22:42:59 | 显示全部楼层 |阅读模式
本帖最后由 dengxm2009 于 2015-9-5 22:45 编辑

/************************************************************************************/
// ÒýÓÃÍⲿͷÎļþ

#include "c8051f020.h"                 // SFR declarations         
#include <stdio.h>
#include <string.h>
#include ".\init\init.h"
#include ".\io_ToUart\SimUart.h"
#include ".\general\general.h"



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

/************************************************************************************
// ³£Á¿¼°È«¾Ö±äÁ¿¶¨Òå
*************************************************************************************/




/************************************************************************************
// ×Óº¯ÊýÉùÃ÷
*************************************************************************************/

void EMI_Init()
{
    EMI0CF    = 0x0F;
}

void Port_IO_Init()
{
   

       
          P1MDOUT   = 0x14;
    XBR2      = 0xC2;
}

void Oscillator_Init()
{
    int i = 0;
    OSCXCN    = 0x67;
    for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
    while ((OSCXCN & 0x80) == 0);
    OSCICN    = 0x0C;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
   // EMI_Init();
    Port_IO_Init();
    Oscillator_Init();
}

/************************************************************************************
//  Ö÷Ñ­»·³ÌÐò
*************************************************************************************/

void main (void) {

        unsigned int data i;
        unsigned long j;
        unsigned int k;

        unsigned char xdata *x;
        unsigned char xdata temp;
    char data et;

    WDTCN = 0xde;                       // disable watchdog timer
    WDTCN = 0xad;
Init_Device();
Init_sim_uart1(18432000,9600);
        SimUart1_WriteString("SRAM_rw_test program running!\r\n",strlen("SRAM_rw_test program running!\r\n"));
   

        k=0;
        i=0;
        x=0x0000;

        for(j=0;j<32767;j++)
    {
                et=*x;
                i=j%256;
                *x=i;   //i=0~255
                temp=*x;
                if(temp!=i)
        {
                        k++;
                }
                x++;
        }

        if (k==0)
                        SimUart1_WriteString("External SRAM read&write test succeed!\r\n",strlen("External SRAM read&write test succeed!\r\n"));
        else
                        SimUart1_WriteString("External SRAM read&write test fail!\r\n",strlen("External SRAM read&write test fail!\r\n"));
        while(1);
}
加上EMI初始化
默认优化选项8 程序可以运行,但是不正常,
Init_sim_uart1(18432000,9600);这句的参数无法传到这个子程序里面。
编译选项选择0,程序运行到晶振初始化
for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
这句卡死。

外接573,62256集成块。数据地址复用。EMI初始化不知正确不正确?
EMI0CF    = 0x0F;






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-6 07:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表