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

📄 configdlg.cpp.svn-base

📁 vc环境下编译的一个对USB设备进行烧录的驱动程序
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:

		for(i = 0; i < config.set_register_count; i++)
		{
			configfile.Read(&config.set_registers[i].address, sizeof(int));

			configfile.Read(&config.set_registers[i].value, sizeof(int));
		}
	}


	configfile.Read(&config.download_file_count, sizeof(config.download_file_count));


	if(config.download_files != NULL)
		free(config.download_files);

	config.download_files = (download_file * )malloc(sizeof(download_file) * config.download_file_count);

	if(config.download_files != NULL)
	{
		memset(config.download_files, 0, sizeof(download_file) * config.download_file_count);
	
		for(i = 0; i < config.download_file_count; i++)
		{
			configfile.Read(&config.download_files[i].compare, sizeof(BOOL));

			configfile.Read(&config.download_files[i].download_type, sizeof(int));

			configfile.Read(config.download_files[i].file_pc_path, 255);

			configfile.Read(config.download_files[i].file_flash_path, 255);

			configfile.Read(&config.download_files[i].file_run_address, sizeof(int));

			configfile.Read(&config.download_files[i].start_destination_address, sizeof(int));

			configfile.Read(&config.download_files[i].end_destination_address, sizeof(int));

			configfile.Read(&config.download_files[i].backup_start_destination_address, sizeof(int));

			configfile.Read(&config.download_files[i].backup_end_destination_address, sizeof(int));

		}
	}
	

	configfile.Read(&config.erase_count, sizeof(config.erase_count));


	if(config.erases != NULL)
		free(config.erases);
	
	
	config.erases = (T_ERASE_DATA * )malloc(sizeof(T_ERASE_DATA) * config.erase_count);
	
	if(config.erases != NULL)
	{
		memset(config.erases, 0, sizeof(T_ERASE_DATA) * config.erase_count);


		for(i = 0; i < config.erase_count; i++)
		{
            configfile.Read(&config.erases[i].type, sizeof(int));
            
			configfile.Read(&config.erases[i].Start_Address, sizeof(int));

			configfile.Read(&config.erases[i].End_Address, sizeof(int));

		}
	}
	

	configfile.Read(&config.format_count, sizeof(config.format_count));

	
	if(config.formats != NULL)
		free(config.formats);
	
	config.formats = (T_FORMAT_DATA * )malloc(sizeof(T_FORMAT_DATA) * config.format_count);
	
	if(config.formats != NULL)
	{
		memset(config.formats, 0, sizeof(T_FORMAT_DATA) * config.format_count);

		for(i = 0; i < config.format_count; i++)
		{

			configfile.Read(&config.formats[i].Disk_Name, sizeof(char));
            configfile.Read(&config.formats[i].bOpenZone, sizeof(BOOL));
            configfile.Read(&config.formats[i].ProtectType, sizeof(int));
            configfile.Read(&config.formats[i].ZoneType, sizeof(int));
			configfile.Read(&config.formats[i].Start_Address, sizeof(int));
			configfile.Read(&config.formats[i].End_Address, sizeof(int));

		}
	}
	

	configfile.Read(&config.download_fat_image_count, sizeof(config.download_fat_image_count));

	
	if(config.images != NULL)
		free(config.images);
	
	config.images = (download_fat_image * )malloc(sizeof(download_fat_image) * config.download_fat_image_count);
	
	if(config.images != NULL)
	{
		memset(config.images, 0, sizeof(download_fat_image) * config.download_fat_image_count);

		for(i = 0; i < config.download_fat_image_count; i++)
		{

			configfile.Read(&config.images[i].Disk_Name, sizeof(char));
			configfile.Read(&config.images[i].file_pc_path, 255);
			configfile.Read(&config.images[i].File_Size, sizeof(int));

		}
	}

	configfile.Read(&config.system_clock, sizeof(config.system_clock));

	configfile.Read(&config.ram_size, sizeof(config.ram_size));

    configfile.Read(&config.ram_banks, sizeof(config.ram_banks));

    configfile.Read(&config.ram_row, sizeof(config.ram_row));

    configfile.Read(&config.ram_column, sizeof(config.ram_column));

	configfile.Read(&config.power_off_gpio, sizeof(config.power_off_gpio));

	configfile.Read(&config.init_usb, sizeof(config.init_usb));

	configfile.Read(&config.init_usb_gpio_number, sizeof(config.init_usb_gpio_number));

	configfile.Read(&config.init_usb_register, sizeof(config.init_usb_register));

	configfile.Read(&config.init_usb_register_bit, sizeof(config.init_usb_register_bit));

	configfile.Read(&config.nandflash_parameter_count, sizeof(config.nandflash_parameter_count));

	if(config.nandflash_parameter != NULL)
		free(config.nandflash_parameter);

	config.nandflash_parameter = (T_NAND_PHY_INFO *)malloc(sizeof(T_NAND_PHY_INFO) * 
		config.nandflash_parameter_count);

	if(config.nandflash_parameter != NULL)
	{
		memset(config.nandflash_parameter, 0, sizeof(T_NAND_PHY_INFO) * 
			config.nandflash_parameter_count);

		for(i = 0; i < config.nandflash_parameter_count; i++)
		{
			configfile.Read(&config.nandflash_parameter[i].chip_id, sizeof(config.nandflash_parameter[i].chip_id));
			configfile.Read(&config.nandflash_parameter[i].page_size, sizeof(config.nandflash_parameter[i].page_size));
			configfile.Read(&config.nandflash_parameter[i].page_per_blk, sizeof(config.nandflash_parameter[i].page_per_blk));
			configfile.Read(&config.nandflash_parameter[i].blk_num, sizeof(config.nandflash_parameter[i].blk_num));
			configfile.Read(&config.nandflash_parameter[i].group_blk_num, sizeof(config.nandflash_parameter[i].group_blk_num));
			configfile.Read(&config.nandflash_parameter[i].plane_blk_num, sizeof(config.nandflash_parameter[i].plane_blk_num));
			configfile.Read(&config.nandflash_parameter[i].spare_size, sizeof(config.nandflash_parameter[i].spare_size));
			configfile.Read(&config.nandflash_parameter[i].col_cycle, sizeof(config.nandflash_parameter[i].col_cycle));
			configfile.Read(&config.nandflash_parameter[i].lst_col_mask, sizeof(config.nandflash_parameter[i].lst_col_mask));
			configfile.Read(&config.nandflash_parameter[i].row_cycle, sizeof(config.nandflash_parameter[i].row_cycle));
			configfile.Read(&config.nandflash_parameter[i].last_row_mask, sizeof(config.nandflash_parameter[i].lst_col_mask));
			configfile.Read(&config.nandflash_parameter[i].custom_nd, sizeof(config.nandflash_parameter[i].custom_nd));
			configfile.Read(&config.nandflash_parameter[i].flag, sizeof(config.nandflash_parameter[i].flag));
			configfile.Read(&config.nandflash_parameter[i].cmd_len, sizeof(config.nandflash_parameter[i].cmd_len));
			configfile.Read(&config.nandflash_parameter[i].data_len, sizeof(config.nandflash_parameter[i].data_len));
			configfile.Read(&config.nandflash_parameter[i].des_str, 255);
		}
	}
	
	configfile.Close();

	for(i = 0; i < config.download_fat_image_count; i++)
	{
		config.total_download_file_len += (config.images[i].File_Size + FAT_IMAGE_SAFE_SIZE);
	}

	/* Aug.06,07 - Added to validate the FS Format-Table when openning the exe. */
	if(CheckFormatData(0xFFFFFFFF) != 0)
	{
		MessageBox(NULL, _T("文件系统分区表有问题"), NULL, MB_OK);
	}

    return count_downloadfile_size();
}

bool close_config()
{
	HANDLE hFile = NULL;
	DWORD write_len = 0;
	DWORD dwSize = 0;
	char DirectoryBuffer[MAX_PATH];

	config.total_download_file_len = 0;

	strcpy(DirectoryBuffer, Current_DirectoryBuffer);
	
	strcat(DirectoryBuffer, "\\");
	
	strcat(DirectoryBuffer, CONFIG_PATH);
	

	hFile = CreateFile(DirectoryBuffer , GENERIC_WRITE | GENERIC_READ , 
		FILE_SHARE_READ|FILE_SHARE_WRITE,
		NULL , 
		OPEN_ALWAYS , FILE_ATTRIBUTE_NORMAL , NULL);

	if (hFile == INVALID_HANDLE_VALUE) 
	{ 
		return false;
	}

	
	CFile configfile((int)hFile);

	configfile.Write(&config.chip_type, sizeof(config.chip_type));
	configfile.Write(&config.bUBoot, sizeof(config.bUBoot));
	configfile.Write(&config.bAutoDownload, sizeof(config.bAutoDownload));

	configfile.Write(&config.bPiece_Select_Loop, sizeof(config.bPiece_Select_Loop));

	configfile.Write(&config.bNandBoot, sizeof(config.bNandBoot));

    configfile.Write(&config.bHaveNandflash, sizeof(config.bHaveNandflash));

	configfile.Write(&config.res_blocks, sizeof(config.res_blocks));

	configfile.Write(&config.bHavePieceZero, sizeof(config.bHavePieceZero));
	configfile.Write(&config.bHavePieceOne, sizeof(config.bHavePieceOne));
	configfile.Write(&config.bHavePieceTwo, sizeof(config.bHavePieceTwo));
	configfile.Write(&config.bHavePieceThree, sizeof(config.bHavePieceThree));

	configfile.Write(config.nandboot_path, 255);

    configfile.Write(config.bios_path, 255);
	
	configfile.Write(&config.bios_main_version, sizeof(config.bios_main_version));
	configfile.Write(&config.bios_sub_version, sizeof(config.bios_sub_version));
	configfile.Write(&config.bios_start_address, sizeof(config.bios_start_address));
	configfile.Write(&config.bios_end_address, sizeof(config.bios_end_address));
    configfile.Write(&config.bios_backup_start_address, sizeof(config.bios_backup_start_address));
    configfile.Write(&config.bios_backup_end_address, sizeof(config.bios_backup_end_address));
	configfile.Write(&config.bios_run_address, sizeof(config.bios_run_address));

    if(config.equipment_count >= MAX_DEVICE_NUM)
    {
        config.equipment_count = MAX_DEVICE_NUM;
    }

    if(config.com_count >= MAX_DEVICE_NUM)
    {
        config.com_count = MAX_DEVICE_NUM;
    }

	configfile.Write(config.mobile_type, 255);

	configfile.Write( &config.equipment_count, sizeof(config.equipment_count));

	configfile.Write( &config.com_count, sizeof(config.com_count));
	
	configfile.Write(&config.bOpenCom, sizeof(config.bOpenCom));

	configfile.Write(&config.base_com, sizeof(config.base_com));

	configfile.Write(&config.BaudRate, sizeof(config.BaudRate));

	configfile.Write(&config.memory_type, sizeof(config.memory_type));

	configfile.Write(config.loadfile_path, 255);

	configfile.Write(&config.loadfile_destination_address, sizeof(config.loadfile_destination_address));

	configfile.Write(&config.set_register_count, sizeof(config.set_register_count));
	

	
	for(int i = 0; i < config.set_register_count; i++)
	{
		configfile.Write(&config.set_registers[i].address, sizeof(int));

		configfile.Write(&config.set_registers[i].value, sizeof(int));		
	}

	configfile.Write(&config.download_file_count, sizeof(config.download_file_count));		

	
	for(i = 0; i < config.download_file_count; i++)
	{

		configfile.Write( &config.download_files[i].compare, sizeof(BOOL));

		configfile.Write( &config.download_files[i].download_type, sizeof(int));

		configfile.Write( config.download_files[i].file_pc_path, 255);

		configfile.Write( config.download_files[i].file_flash_path, 255);

		configfile.Write( &config.download_files[i].file_run_address, sizeof(int));

		configfile.Write( &config.download_files[i].start_destination_address, sizeof(int));

		configfile.Write( &config.download_files[i].end_destination_address, sizeof(int));

		configfile.Write( &config.download_files[i].backup_start_destination_address, sizeof(int));

		configfile.Write( &config.download_files[i].backup_end_destination_address, sizeof(int));

	}

	configfile.Write( &config.erase_count, sizeof(config.erase_count));
	
	
	for(i = 0; i < config.erase_count; i++)
	{
        configfile.Write(&config.erases[i].type, sizeof(int));

		configfile.Write( &config.erases[i].Start_Address, sizeof(int));

		configfile.Write( &config.erases[i].End_Address, sizeof(int));
	}

	configfile.Write( &config.format_count, sizeof(config.format_count));
	
	
	for(i = 0; i < config.format_count; i++)
	{

		configfile.Write( &config.formats[i].Disk_Name, sizeof(char));

        configfile.Write( &config.formats[i].bOpenZone, sizeof(BOOL));
        
        configfile.Write( &config.formats[i].ProtectType, sizeof(int));

        configfile.Write( &config.formats[i].ZoneType, sizeof(int));

		configfile.Write( &config.formats[i].Start_Address, sizeof(int));

		configfile.Write( &config.formats[i].End_Address, sizeof(int));
		
	}
	configfile.Write( &config.download_fat_image_count, sizeof(config.download_fat_image_count));

	for(i = 0; i < config.download_fat_image_count; i++)
	{
		configfile.Write( &config.images[i].Disk_Name, sizeof(char));
		configfile.Write( config.images[i].file_pc_path, 255);
		configfile.Write( &config.images[i].File_Size, sizeof(int));
	}

	configfile.Write(&config.system_clock, sizeof(config.system_clock));


	configfile.Write(&config.ram_size, sizeof(config.ram_size));

    configfile.Write(&config.ram_banks, sizeof(config.ram_banks));

    configfile.Write(&config.ram_row, sizeof(config.ram_row));

    configfile.Write(&config.ram_column, sizeof(config.ram_column));

⌨️ 快捷键说明

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