⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l2_cpu.c

📁 台湾凌阳方案300万数码相机源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
                for(tmp1=0; tmp1<0x2000; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0; tmp1<0x2000; tmp1++)
                        if(XBYTE[tmp1]!=0x00)
                                error = 1;
                XBYTE[0x2C00] = tmp0;
        }

        // JPEG SRAM
        if((level==0) || (level==2))
        {
                XBYTE[0x20E0] = 0x00;
                //test read/write sequence data
                for(tmp1=0x2800; tmp1<0x2880; tmp1++)
                        XBYTE[tmp1] = (UCHAR)tmp1;
                for(tmp1=0x2800; tmp1<0x2880; tmp1++)
                        if(XBYTE[tmp1]!=(UCHAR)tmp1)
                                error = 1;
                //test 0x00->0xFF
                for(tmp1=0x2800; tmp1<0x2880; tmp1++)
                        XBYTE[tmp1] = 0xFF;
                for(tmp1=0x2800; tmp1<0x2880; tmp1++)
                        if(XBYTE[tmp1]!=0xFF)
                                error = 1;
                //test 0xFF->0x00
                for(tmp1=0x2800; tmp1<0x2880; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0x2800; tmp1<0x2880; tmp1++)
                        if(XBYTE[tmp1]!=0x00)
                                error = 1;

                XBYTE[0x20E0] = 0x00;
                XBYTE[0x28E0] = 0x01;
                XBYTE[0x20E0] = 0x02;
                //test read/write sequence data
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = (UCHAR)tmp1;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=(UCHAR)tmp1)
                                error = 1;
                //test 0x00->0xFF
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = 0xFF;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=0xFF)
                                error = 1;
                //test 0xFF->0x00
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=0x00)
                                error = 1;

                //test read/write sequence data
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = (UCHAR)(tmp1&0x00ff);
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=(UCHAR)(tmp1&0x001f))
                                error = 1;

                //test 0x00->0xFF
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = 0xFF;
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=0x1f)
                                error = 1;

                //test 0xFF->0x00
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=0x00&0x1f)
                                error = 1;

                XBYTE[0x20E0] = 0x00;
                XBYTE[0x28E0] = 0x02;
                XBYTE[0x20E0] = 0x02;

                //test read/write sequence data
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = (UCHAR)tmp1;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=(UCHAR)tmp1)
                                error = 1;
                //test 0x00->0xFF
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = 0xFF;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=0xFF)
                                error = 1;
                //test 0xFF->0x00
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=0x00)
                                error = 1;

                //test read/write sequence data
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = (UCHAR)(tmp1&0x00ff);
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=(UCHAR)(tmp1&0x0007))
                                error = 1;

                //test 0x00->0xFF
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = 0xFF;
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=0x07)
                                error = 1;

                //test 0xFF->0x00
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=0x00&0x07)
                                error = 1;

                XBYTE[0x20E0] = 0x00;
                XBYTE[0x28E0] = 0x03;
                XBYTE[0x20E0] = 0x02;

                //test read/write sequence data
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = (UCHAR)tmp1;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=(UCHAR)tmp1)
                                error = 1;

                //test 0x00->0xFF
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = 0xFF;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        if(XBYTE[tmp1]!=0xFF)
                                error = 1;
                //test 0xFF->0x00
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0x2800; tmp1<0x2840; tmp1++)
                if(XBYTE[tmp1]!=0x00)
                        error = 1;

                //test read/write sequence data
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = (UCHAR)(tmp1&0x00ff);
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=(UCHAR)(tmp1&0x0007))
                                error = 1;

                //test 0x00->0xFF
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = 0xFF;
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=0x07)
                                error = 1;

                //test 0xFF->0x00
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        XBYTE[tmp1] = 0x00;
                for(tmp1=0x2880; tmp1<0x28C0; tmp1++)
                        if(XBYTE[tmp1]!=0x00&0x07)
                                error = 1;
                XBYTE[0x20E0] = 0x00;
        }

        // CPU Register R/W
        if(level == 0 || level==2)
        {
                XBYTE[0x20E0] = 0x00;

                //0x2C01
                tmp0 = XBYTE[0x2C01];
                XBYTE[0x2C01] = 0xFF;
                if(XBYTE[0x2C01]!=0xFF) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C01] = 0x00;
                if(XBYTE[0x2C01]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2C01] = tmp0;

                //0x2C02
                tmp0 = XBYTE[0x2C02];
                XBYTE[0x2C02] = 0xFF;
                if(XBYTE[0x2C02]!=0xFF) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C02] = 0x00;
                if(XBYTE[0x2C02]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2C02] = tmp0;

                //0x2C03
                tmp0 = XBYTE[0x2C03];
                XBYTE[0x2C03] = 0xFF;
                if(XBYTE[0x2C03]!=0x3F) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C03] = 0x00;
                if(XBYTE[0x2C03]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2C03] = tmp0;

                //0x2C05
                tmp0 = XBYTE[0x2C05];
                XBYTE[0x2C05] = 0xFF;
                if(XBYTE[0x2C05]!=0x01) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C05] = 0x00;
                if(XBYTE[0x2C05]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2C05] = tmp0;

                //0x2C11
                tmp0 = XBYTE[0x2C11];
                XBYTE[0x2C11] = 0xFF;
                if(XBYTE[0x2C11]!=0x07) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C11] = 0x00;
                if(XBYTE[0x2C11]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2C11] = tmp0;

                //0x2C12 0x2CA0 0x2CA2
                tmp0 = XBYTE[0x2C12];
                XBYTE[0x2C12] = 0xFF;
                if(XBYTE[0x2C12]!=0xFF) error = 1;  //test 0 to 1 toggle
                if(XBYTE[0x2CA0]!=0xFF) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C12] = 0x00;
                if(XBYTE[0x2C12]!=0x00) error = 1;  //test 1 to 0 toggle
                if(XBYTE[0x2CA2]!=0x00) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C12] = tmp0;

                //0x2C13 0x2CA1 0x2CA3
                tmp0 = XBYTE[0x2C13];
                XBYTE[0x2C13] = 0xFF;
                if(XBYTE[0x2C13]!=0x0F) error = 1;  //test 0 to 1 toggle
                if(XBYTE[0x2CA1]!=0x0F) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C13] = 0x00;
                if(XBYTE[0x2C12]!=0x00) error = 1;  //test 1 to 0 toggle
                if(XBYTE[0x2CA3]!=0x00) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2C13] = tmp0;
        }


        //JPEG Register R/W
        if(level == 0 || level==2)
        {
                XBYTE[0x20E0] = 0x00;

                //0x2880
                tmp0 = XBYTE[0x2880];
                XBYTE[0x2880] = 0xFF;
                if(XBYTE[0x2880]!=0xFF) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2880] = 0x00;
                if(XBYTE[0x2880]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2880] = tmp0;

                //0x2881
                tmp0 = XBYTE[0x2881];
                XBYTE[0x2881] = 0xFF;
                if(XBYTE[0x2881]!=0x01) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2881] = 0x00;
                if(XBYTE[0x2881]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2881] = tmp0;

                //0x2882
                tmp0 = XBYTE[0x2882];
                XBYTE[0x2882] = 0xFF;
                if(XBYTE[0x2882]!=0xFF) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2882] = 0x00;
                if(XBYTE[0x2882]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2882] = tmp0;

                //0x2883
                tmp0 = XBYTE[0x2883];
                XBYTE[0x2883] = 0xFF;
                if(XBYTE[0x2883]!=0x03) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2883] = 0x00;
                if(XBYTE[0x2883]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2883] = tmp0;

                //0x2884
                tmp0 = XBYTE[0x2884];
                XBYTE[0x2884] = 0xFF;
                if(XBYTE[0x2884]!=0x01) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2884] = 0x00;
                if(XBYTE[0x2884]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2884] = tmp0;

                //0x2885
                tmp0 = XBYTE[0x2885];
                XBYTE[0x2885] = 0xFF;
                if(XBYTE[0x2885]!=0x01) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2885] = 0x00;
                if(XBYTE[0x2885]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2885] = tmp0;

                //0x2888
                tmp0 = XBYTE[0x2888];
                XBYTE[0x2888] = 0xFF;
                if(XBYTE[0x2888]!=0xFF) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2888] = 0x00;
                if(XBYTE[0x2888]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2888] = tmp0;

                //0x2889
                tmp0 = XBYTE[0x2889];
                XBYTE[0x2889] = 0xFF;
                if(XBYTE[0x2889]!=0xFF) error = 1;  //test 0 to 1 toggle
                XBYTE[0x2889] = 0x00;
                if(XBYTE[0x2889]!=0x00) error = 1;  //test 1 to 0 toggle
                XBYTE[0x2889] = tmp0;
	}

        return error;
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -