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

📄 dosusr.c

📁 台湾凌阳方案300万数码相机源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
               //L2_DRAMWriteWord(0xff,0x00);
               //patch4.4@ada@DPOF end

               //For play back JPEG file speeding-up
               //version4.0@ada@0513 for DCF
               //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 3),K_SDRAM_NoPrefetch); //ada@0401

			//patch4.5@ada@Record DCF file name begin
               L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 10),K_SDRAM_NoPrefetch);
               //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 8),K_SDRAM_NoPrefetch);
			//patch4.5@ada@Record DCF file name end

               //Record file FDB logical address
               L2_DRAMWriteWord((UCHAR)(G_DOS_FdbAddress & 0x000000ff),(UCHAR)((G_DOS_FdbAddress & 0x0000ff00) >> 8));
               L2_DRAMWriteWord((UCHAR)((G_DOS_FdbAddress & 0x00ff0000) >> 16),(UCHAR)((G_DOS_FdbAddress & 0xff000000) >> 24));

               //Record file attribute and file type
               L2_DRAMWriteWord(fdb[11],K_USR_JPG_TYPE);

               //Record file starting cluster
               L2_DRAMWriteWord(fdb[26],fdb[27]);

               //Record file size in bytes
               L2_DRAMWriteWord(fdb[28],fdb[29]);
               L2_DRAMWriteWord(fdb[30],fdb[31]);

			//patch4.5@ada@Record DCF file name begin
			//Record DCF file name
			for (i = 0; i < 2; i++)
			{
               	L2_DRAMWriteWord(fdb[i * 2],fdb[i * 2 + 1]);
			}
			//patch4.5@ada@Record DCF file name end

               //patch4.3@ada@0618 for playback file index order
               if (G_USR_FileCount)
               {
                    if (G_USR_SearchNowFileIndex > G_USR_SearchPreFileIndex)
                    {
                         //Record previous file index(No matter JPG or AVI or WAV)
                         L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
                         L2_DRAMWriteWord(0x00,0x00);

					//patch4.5@ada@Record DCF file name begin
                         L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
                         //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
					//patch4.5@ada@Record DCF file name end

                         L2_DRAMWriteWord((UCHAR)(G_USR_SearchNowFileIndex & 0x00ff),(UCHAR)((G_USR_SearchNowFileIndex & 0xff00) >> 8));
                    }
                    else
                    {
                         NowIndex = G_USR_SearchNowFileIndex;
                         PreIndex = G_USR_SearchPreFileIndex;
                         G_USR_SearchNowFileIndex = PreIndex;
                         G_USR_LastFileIndex = PreIndex;

                         //patch4.4@ada@DPOF skip AVI & WAV begin

	   				//patch4.4.1@ada@Fix DPOF bug begin
                         //G_USR_LastJpgFileIndex = PreIndex;
		   			//patch4.4.1@ada@Fix DPOF bug end

                         //patch4.4@ada@DPOF skip AVI & WAV end

                         do
                         {
                              TempNowIndex = PreIndex;

						//patch4.5@ada@Record DCF file name begin
                              L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 8),K_SDRAM_Prefetch);
                              //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 6),K_SDRAM_Prefetch);
						//patch4.5@ada@Record DCF file name end

                              L2_DRAMReadWord(&tmp1,&tmp2);
                              PreIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
                              L2_DRAMReadWord(&tmp1,&tmp2);
                              NextIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
                         } while (NowIndex < PreIndex);

                         if (PreIndex > 0)
                         {
						//patch4.5@ada@Record DCF file name begin
                              L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
                              //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
						//patch4.5@ada@Record DCF file name end

                              L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));

						//patch4.5@ada@Record DCF file name begin
                              L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                              //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
						//patch4.5@ada@Record DCF file name end

                              L2_DRAMWriteWord((UCHAR)(PreIndex & 0x00ff),(UCHAR)((PreIndex & 0xff00) >> 8));
                              L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));

						//patch4.5@ada@Record DCF file name begin
                              L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                              //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
						//patch4.5@ada@Record DCF file name end

                              L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
                         }
                         else
                         {
						//patch4.5@ada@Record DCF file name begin
                              L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                              //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
						//patch4.5@ada@Record DCF file name end

                              L2_DRAMWriteWord(0x00,0x00);
                              L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));

						//patch4.5@ada@Record DCF file name begin
                              L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                              //L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
						//patch4.5@ada@Record DCF file name end

                              L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));

                              G_USR_FirstFileIndex = NowIndex;
                         }
                    }
               }
          }
          else
          {
               if (fileType == K_USR_AVI_TYPE)
               {
                    //For play back AVI file speeding-up
                    //version4.0@ada@0513 for DCF
                    //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 3),K_SDRAM_NoPrefetch); //ada@0401

  				//patch4.5@ada@Record DCF file name begin
                    L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 10),K_SDRAM_NoPrefetch);
                    //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 8),K_SDRAM_NoPrefetch);
  				//patch4.5@ada@Record DCF file name end

                    //Record file FDB logical address
                    L2_DRAMWriteWord((UCHAR)(G_DOS_FdbAddress & 0x000000ff),(UCHAR)((G_DOS_FdbAddress & 0x0000ff00) >> 8));
                    L2_DRAMWriteWord((UCHAR)((G_DOS_FdbAddress & 0x00ff0000) >> 16),(UCHAR)((G_DOS_FdbAddress & 0xff000000) >> 24));
                    //Record file attribute and file type
                    L2_DRAMWriteWord(fdb[11],K_USR_AVI_TYPE);
                    //Record file starting cluster
                    L2_DRAMWriteWord(fdb[26],fdb[27]);
                    //Record file size in bytes
                    L2_DRAMWriteWord(fdb[28],fdb[29]);
                    L2_DRAMWriteWord(fdb[30],fdb[31]);

				//patch4.5@ada@Record DCF file name begin
				//Record DCF file name
				for (i = 0; i < 2; i++)
				{
               		L2_DRAMWriteWord(fdb[i * 2],fdb[i * 2 + 1]);
				}
				//patch4.5@ada@Record DCF file name end

                    //Record previous file index(No matter JPG or AVI or WAV)

				//patch4.4.1@ada@Fix DCF bug begin
                    //L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
                    //L2_DRAMWriteWord(0x00,0x00);
				//patch4.4.1@ada@Fix DCF bug end

                    //patch4.3@ada@0618 for playback file index order
                    if (G_USR_FileCount)
                    {
                         if (G_USR_SearchNowFileIndex > G_USR_SearchPreFileIndex)
                         {
                              //Record previous file index(No matter JPG or AVI or WAV)
                              L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
                              L2_DRAMWriteWord(0x00,0x00);

		  				//patch4.5@ada@Record DCF file name begin
                              L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
                              //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
		  				//patch4.5@ada@Record DCF file name end

                              L2_DRAMWriteWord((UCHAR)(G_USR_SearchNowFileIndex & 0x00ff),(UCHAR)((G_USR_SearchNowFileIndex & 0xff00) >> 8));
                         }
                         else
                         {
                              NowIndex = G_USR_SearchNowFileIndex;
                              PreIndex = G_USR_SearchPreFileIndex;
                              G_USR_SearchNowFileIndex = PreIndex;
                              G_USR_LastFileIndex = PreIndex;

                              do
                              {
                                   TempNowIndex = PreIndex;

			  				//patch4.5@ada@Record DCF file name begin
                                   L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 8),K_SDRAM_Prefetch);
                                   //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 6),K_SDRAM_Prefetch);
			  				//patch4.5@ada@Record DCF file name end

                                   L2_DRAMReadWord(&tmp1,&tmp2);
                                   PreIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
                                   L2_DRAMReadWord(&tmp1,&tmp2);
                                   NextIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
                              } while (NowIndex < PreIndex);

                              if (PreIndex > 0)
                              {
			  				//patch4.5@ada@Record DCF file name begin
                                   L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
                                   //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
			  				//patch4.5@ada@Record DCF file name end

                                   L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));

			  				//patch4.5@ada@Record DCF file name begin
                                   L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                                   //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
			  				//patch4.5@ada@Record DCF file name end

                                   L2_DRAMWriteWord((UCHAR)(PreIndex & 0x00ff),(UCHAR)((PreIndex & 0xff00) >> 8));
                                   L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));

			  				//patch4.5@ada@Record DCF file name begin
                                   L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                                   //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
			  				//patch4.5@ada@Record DCF file name end

                                   L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
                              }
                              else
                              {
			  				//patch4.5@ada@Record DCF file name begin
                                   L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                                   //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
			  				//patch4.5@ada@Record DCF file name end

                                   L2_DRAMWriteWord(0x00,0x00);
                                   L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));

			  				//patch4.5@ada@Record DCF file name begin
                                   L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
                                   //L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
			  				//patch4.5@ada@Record DCF file name end

                                   L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));

                                   G_USR_FirstFileIndex = NowIndex;
                              }
                         }
                    }
               }
               else
               {
                    if (fileType == K_USR_WAV_TYPE)
                    {
                         //For play back AVI file speeding-up
                         //version4.0@ada@0513 for DCF
                         //L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 3),K_SDRAM_NoPrefetch); //ada@0401

					//patch4.5@ada@Record DCF file name begin
                         L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 10),K_SDRAM_NoPrefetch); //ada@0401
                         //L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 8),K_SDRAM_NoPrefetch); //ada@0401
					//patch4.5@ada@Record DCF file name end

                         //Record file FDB logical address
                         L2_DRAMWriteWord((UCHAR)(G_DOS_FdbAddress & 0x000000ff),(UCHAR)((G_DOS_FdbAddress & 0x0000ff00) >> 8));
                         L2_DRAMWriteWord((UCHAR)((G_DOS_FdbAddress & 0x00ff0000) >> 16),(UCHAR)((G_DOS_FdbAddress & 0xff000000) >> 24));

                         //Record file attribute and file type
                         L2_DRAMWriteWord(fdb[11],K_USR_WAV_TYPE);

                         //Record file starting cluster
                         L2_DRAMWriteWord(fdb[26],fdb[27]);

                         //Record file size in bytes
                         L2_DRAMWriteWord(fdb[28],fdb[29]);
                         L2_DRAMWriteWord(fdb[30],fdb[31]);

					//patch4.5@ada@Record DCF file name begin
					//Record DCF file name
					for (i = 0; i < 2; i++)
					{
	               		L2_DRAMWriteWord(fdb[i * 2],fdb[i * 2 + 1]);
					}
					//patch4.5@ada@Record DCF file name end

				   	//patch4.4.1@ada@Fix DCF bug begin
                         //Record previous file index(No matter JPG or AVI or WAV)
                         //L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
                         //L2_DRAMWriteWord(0x00,0x00);
				   	//patch4.4.1@ada@Fix DCF bug end

                         //patch4.3@ada@0618 for playback file index order
                         if (G_USR_FileCount)
                         {
                              if (G_USR_SearchNowFileIndex > G_USR_SearchPreFileIndex)
                              {
                                   //Record previous file index(No matter JPG or AVI or WAV)
                                   L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
                                   L2_DRAMWriteWord(0x00,0x00);

							//patch4.5@ada@Record DCF file name begin
                                   L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
                                   //L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
							//patch4.5@ada@Record DCF file name end

                                   L2_DRAMWriteWord((UCHAR)(G_USR_SearchNowFileIndex & 0x00ff),(UCHAR)((G_USR_SearchNowFileIndex & 0xff00) >> 8));
                              }
                              else
                              {
                                   NowIndex = G_USR_SearchNowFileIndex;
                                   PreIndex = G_USR_SearchPreFileIndex;
                                   G_USR_SearchNowFileIndex = PreIndex;
                                   G_USR_LastFileIndex = PreIndex;

                                   do
                                   {
                                        TempNowIndex = PreIndex;

								//patch4.5@ada@Record DCF file name begin
                                        L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 8),K_SDRAM_Prefetch);
                                        //L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 6),K_SDRAM_Prefetch);
								//patch4.5@ada@Record DCF file name end

                                        L2_DRAMReadWord(&tmp1,&tmp2);

⌨️ 快捷键说明

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