📄 main.cpp
字号:
default:
BBCHIP_MT6218B->Checked = true;
break;
}
// MCU FREQUENCY
MCU_52MHz->Checked = false;
MCU_26MHz->Checked = false;
MCU_13MHz->Checked = false;
switch(g_EXT_CLOCK) {
case EXT_52M:
MCU_52MHz->Checked = true;
break;
case EXT_26M:
MCU_26MHz->Checked = true;
break;
case EXT_13M:
default:
MCU_13MHz->Checked = true;
break;
}
/* ShowMessage("g_AutoMemSetup="+IntToStr(g_AutoMemSetup)+
", g_BBCHIP_TYPE="+IntToStr(g_BBCHIP_TYPE)+
", g_EXT_CLOCK="+IntToStr(g_EXT_CLOCK)
);*/
uncheckAllBaudRate();
//
switch ( BAUD_RATE )
{
case UART_BAUD_921600:
mi_921600->Checked = true;
break;
case UART_BAUD_460800:
mi_460800->Checked = true;
break;
case UART_BAUD_230400:
mi_230400->Checked = true;
break;
case UART_BAUD_115200:
mi_115200->Checked = true;
break;
case UART_BAUD_57600:
mi_57600->Checked = true;
break;
case UART_BAUD_38400:
mi_38400->Checked = true;
break;
case UART_BAUD_19200:
mi_19200->Checked = true;
break;
case UART_BAUD_9600:
mi_9600->Checked = true;
break;
default :
if (DEBUG)
ShowMessage(" main.cpp : undefined Baud Rate " + IntToStr( COM_PORT));
break;
} // switch
switch(g_FormatAfterDownloadOption) {
case RESET_TO_FACTORY:
mi_FormatFDM->Checked = true;
mi_FormatFDM->Caption = "Format FAT (RESET FACTORY DEFAULT) ...";
break;
case AUTO_FORMAT:
mi_FormatFDM->Checked = true;
mi_FormatFDM->Caption = "Format FAT (AUTO) ...";
break;
case MANUAL_FORMAT:
mi_FormatFDM->Checked = true;
mi_FormatFDM->Caption = "Format FAT (MANUAL) ...";
break;
case DISABLE_FORMAT:
default:
mi_FormatFDM->Checked = false;
mi_FormatFDM->Caption = "Format FAT (DISABLED) ...";
break;
}
if(g_bCheckECOVer) {
m_CheckECOVersion->Checked = true;
}
else {
m_CheckECOVersion->Checked = false;
}
if(g_bAutoSelectBBChipType) {
m_AutoSelectBBChipType->Checked = true;
}
else {
m_AutoSelectBBChipType->Checked = false;
}
if(g_bCheckTgtResourceLayout) {
m_CheckTgtResourceLayout->Checked = true;
}
else {
m_CheckTgtResourceLayout->Checked = false;
}
if(g_bAutoLoadResByScat) {
m_AutoLoadResByScat->Checked = true;
}
else {
m_AutoLoadResByScat->Checked = false;
}
if(g_bPullDownGPIO17) {
m_PullDownGPIO17->Checked = true;
}
else {
m_PullDownGPIO17->Checked = false;
}
if(g_AutoDetectBBCHIP) {
m_AutoDetectBBChip->Checked = true;
}
else {
m_AutoDetectBBChip->Checked = false;
}
if(g_SpeedUpBootROMBaudrate) {
m_SpeedUpBootROMBaudrate->Checked = true;
}
else {
m_SpeedUpBootROMBaudrate->Checked = false;
}
if(g_CompareResProjectId) {
m_CompareProjectId->Checked = true;
}
else {
m_CompareProjectId->Checked = false;
}
if(g_bNFI_SelectCS1) {
m_EnableNFICS1->Checked = true;
}
else {
m_EnableNFICS1->Checked = false;
}
m_Menu_OPM_NOR->Checked = false;
m_Menu_OPM_NAND->Checked = false;
m_Menu_OPM_NFB->Checked = false;
switch(g_OperationMethod) {
case NOR_OPERATION:
m_Menu_OPM_NOR->Checked = true;
break;
case NAND_OPERATION:
m_Menu_OPM_NAND->Checked = true;
break;
case NFB_OPERATION:
m_Menu_OPM_NFB->Checked = true;
break;
default:
break;
}
}
void TMainForm::uncheckAllBaudRate()
{
mi_921600->Checked = false; // High Speed
mi_460800->Checked = false; // High Speed
mi_230400->Checked = false;
mi_115200->Checked = false;
mi_57600->Checked = false;
mi_38400->Checked = false;
mi_19200->Checked = false;
mi_9600->Checked = false;
}
void TMainForm::uncheckAllComPort()
{
}
void __fastcall TMainForm::br_115200Execute(TObject *Sender)
{
BAUD_RATE = UART_BAUD_115200;
uncheckAllBaudRate();
mi_115200->Checked = true;
updateStatusBar();
PL_2Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::br_57600Execute(TObject *Sender)
{
BAUD_RATE = UART_BAUD_57600 ;
uncheckAllBaudRate();
mi_57600->Checked = true;
updateStatusBar();
PL_1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::br_38400Execute(TObject *Sender)
{
BAUD_RATE = UART_BAUD_38400 ;
uncheckAllBaudRate();
mi_38400->Checked = true;
updateStatusBar();
PL_1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::br_19200Execute(TObject *Sender)
{
BAUD_RATE = UART_BAUD_19200 ;
uncheckAllBaudRate();
mi_19200->Checked = true;
updateStatusBar();
PL_1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::br_9600Execute(TObject *Sender)
{
BAUD_RATE = UART_BAUD_9600;
uncheckAllBaudRate();
mi_9600->Checked = true;
updateStatusBar();
PL_1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::mi_DEBUGClick(TObject *Sender)
{
if (DEBUG)
{
DEBUG = false;
ShowMessage(" disable DEBUG ");
}
else
{
DEBUG = true;
ShowMessage(" enable DEBUG ");
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ExitExecute(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
unsigned int i;
DownloadHistoryList::iterator iter;
TIniFile *ini;
try {
ini = new TIniFile(ChangeFileExt(Application->ExeName, ".INI" ));
}catch(...) {
goto end;
}
for(i=0; i<2; i++) {
ini->WriteBool( "EMI", "bank"+IntToStr(i)+"_auto", g_EMI_Config[i].m_bAuto);
ini->WriteString("EMI", "bank"+IntToStr(i)+"_cfg", "0x"+IntToHex((int)(g_EMI_Config[i].m_Config), 8));
}
ini->WriteInteger("FORM", "com", COM_PORT);
DA_INFO da_info;
DA_GetInfo(g_DA_HANDLE, &da_info);
switch ( BAUD_RATE )
{
case UART_BAUD_921600:
ini->WriteInteger("FORM", "baudrate", 921600);
break;
case UART_BAUD_460800: // 2002.3.28 High Speed.
ini->WriteInteger("FORM", "baudrate", 460800);
break;
case UART_BAUD_230400:
ini->WriteInteger("FORM", "baudrate", 230400);
break;
case UART_BAUD_115200:
ini->WriteInteger("FORM", "baudrate", 115200);
break;
case UART_BAUD_57600:
ini->WriteInteger("FORM", "baudrate", 57600);
break;
case UART_BAUD_38400:
ini->WriteInteger("FORM", "baudrate", 38400);
break;
case UART_BAUD_19200:
ini->WriteInteger("FORM", "baudrate", 19200);
break;
case UART_BAUD_9600:
ini->WriteInteger("FORM", "baudrate", 9600);
break;
default :
ini->WriteInteger("FORM", "baudrate", 19200);
if (DEBUG)
ShowMessage(" main.cpp : undefined Baud Rate " + IntToStr( COM_PORT));
break;
}
// erase existing section first
for(i=0; i<MAX_DOWNLOAD_HISTORY; i++) {
ini->EraseSection("DL_HISTORY_"+IntToStr(i));
}
// save download history
for(i=0, iter=g_DownloadHistory.begin(); i<MAX_DOWNLOAD_HISTORY && iter!=g_DownloadHistory.end(); i++, iter++) {
// write new section data
ini->WriteString("DL_HISTORY_"+IntToStr(i), "scatter_file", iter->m_Scatter);
ini->WriteString("DL_HISTORY_"+IntToStr(i), "bootloader", iter->m_BootLoader);
ini->WriteBool("DL_HISTORY_"+IntToStr(i), "bootloader_enable", iter->m_BootLoader_Enable);
ini->WriteInteger("DL_HISTORY_"+IntToStr(i), "file_count", iter->m_BinFiles.size());
for(int j=0; j<iter->m_BinFiles.size(); j++) {
ini->WriteString("DL_HISTORY_"+IntToStr(i), "file"+IntToStr(j), iter->m_BinFiles[j].m_Filepath);
ini->WriteBool("DL_HISTORY_"+IntToStr(i), "file"+IntToStr(j)+"_enable", iter->m_BinFiles[j].m_Enable);
}
}
ini->WriteString("FORM", "bin", g_asNormalModeDAPath);
// ini->WriteString("FORM", "testmode_da_path", g_asTestModeDAPath);
ini->WriteString("FORM", "map", asMap);
// ini->WriteString("FORM", "rom_history", OpenSingleRomFile->HistoryList->CommaText);
ini->WriteInteger("FORM", "bb_chip", g_BBCHIP_TYPE);
ini->WriteInteger("FORM", "ext_clock", g_EXT_CLOCK);
ini->WriteBool("FORM", "pull_down_gpio17", g_bPullDownGPIO17);
ini->WriteInteger("FORM", "brom_start_cmd_retry_count", g_MaxBromStartCmdRetryCount);
ini->WriteInteger("FORM", "OperationMethod", g_OperationMethod);
ini->WriteInteger("FORM", "erase_validation", g_FormatValidation);
BL_INFO bl_info;
if( FTHND_OK == BL_GetInfo(g_BL_HANDLE, &bl_info) ) {
ini->WriteString("NFB", "bloader", bl_info.m_filepath);
ini->WriteBool("NFB", "bloader_enable", _TRUE==bl_info.m_enable?true:false);
}
/////////////////////////// begin ROM file name
unsigned short count;
if( (FTHND_OK==DL_GetCount(g_DL_HANDLE, &count)) && (0<count) ) {
ROM_INFO rom[MAX_LOAD_SECTIONS];
if( FTHND_OK == DL_Rom_GetInfoAll(g_DL_HANDLE, rom, MAX_LOAD_SECTIONS) ) {
for(i=0; i<count; i++) {
ini->WriteString("DOWNLOAD", "file"+IntToStr(i), rom[i].filepath); // ROM file name
ini->WriteBool("DOWNLOAD", "file"+IntToStr(i)+"_enable", _TRUE==rom[i].enable?true:false); // ROM enable flag
}
}
}
ini->WriteBool("DOWNLOAD", "compare_resource_project_id", g_CompareResProjectId);
ini->WriteInteger("DOWNLOAD", "FormatAfterDownloadOption", g_FormatAfterDownloadOption);
// ini->WriteBool("DOWNLOAD", "chk_tgt_resource_layout", g_bCheckTgtResourceLayout);
// ini->WriteBool("DOWNLOAD", "check_bbchip_eco_ver", g_bCheckECOVer );
// ini->WriteBool("DOWNLOAD", "auto_sel_bbchip", g_bAutoSelectBBChipType);
// ini->WriteBool("DOWNLOAD", "auto_load_resource_by_scat", g_bAutoLoadResByScat);
/////////////////////////////// end ROM file name
/////////////////////////////// begin readback
if( (FTHND_OK==RB_GetCount(g_RB_HANDLE, &count)) && (0<count) ) {
RB_INFO *rb=new RB_INFO[count];
if( NULL != rb ) {
ini->WriteInteger("READBACK", "readback_count", count);
if( FTHND_OK == RB_GetInfoAll(g_RB_HANDLE, rb, count) ) {
for(i=0; i<count; i++) {
ini->WriteString("READBACK", "file"+IntToStr(i), rb[i].filepath); // read back file name
ini->WriteInteger("READBACK", "file"+IntToStr(i)+"_enable", rb[i].enable); // RB_FILE enable flag
ini->WriteInteger("READBACK", "file"+IntToStr(i)+"_read_flag", rb[i].m_read_flag);
ini->WriteString("READBACK", "startaddr"+IntToStr(i), "0x"+IntToHex((int)rb[i].readback_addr, 8)); // read back addr
ini->WriteString("READBACK", "length"+IntToStr(i), "0x"+IntToHex((int)rb[i].readback_len, 8)); // read back length
}
}
delete [] rb;
}
}
ini->WriteInteger( "FORM", "flashitemindex", iFlashItemIndex );
ini->WriteString("FORM", "FormatStartAddr", "0x" + IntToHex((int)g_ulFormatStartAddr, 8));
ini->WriteString("FORM", "FormatLength", "0x" + IntToHex((int)g_ulFormatLength, 8));
ini->WriteString("FORM", "NandFormatStartAddr", "0x" + IntToHex((int)g_ulNandFormatStartAddr, 8));
ini->WriteString("FORM", "NandFormatLength", "0x" + IntToHex((int)g_ulNandFormatLength, 8));
ini->WriteInteger("FORM", "FormatOption", g_FormatOption);
ini->WriteInteger( "TRANS_OPTION", "packet_length", g_PacketLength );
ini->WriteInteger( "TRANS_OPTION", "baudrate_full_sync_count", g_Baudrate_FullSync_Count );
ini->WriteBool( "TRANS_OPTION", "speedup_brom_baudrate", g_SpeedUpBootROMBaudrate);
//EMI Setting
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -