📄 frmbootload.frm
字号:
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
writeFail = True
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
writeFail = True
End Select
End If
'Send VerifyOk Command to indicate bootloading finised successfully
If writeFail = False Then
command(0) = 8 'command
RetStat = SendGetPacket(PicBootS.PortHandle, command(0), 1, 255, 5)
If RetStat < 0 Then
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFYOK_ERROR
End If
End If
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
Case "Erase"
frmBootload.MousePointer = 13
SetDisplayMode MODE_WORKING
If M_MemAccess(1).Checked = True Then
ProgMemAddrH = PicBootS.ProgMemAddrH
'Don't erase last page on PIC24FJ devices if box is checked
If cFlashConfig.Value = 1 Then
ProgMemAddrH = ProgMemAddrH - 1024
End If
Select Case EraseRangeDevMem(PicBootS.ProgMemAddrL, ProgMemAddrH)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
End Select
End If
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
Case "Run"
MyButtons = MsgBox("Disabling the bootloader will lock out boot mode. Be sure to have re-entry" & vbCrLf & "code within your firmware to use the bootloader in the future." & vbCrLf & vbCrLf & "Do you want to continue?", vbYesNo, "Disable Bootloader...")
If MyButtons = vbNo Then ' User chose Yes.
Exit Sub ' Perform some action.
End If
GotoRunMode
DisconnectDev
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_RUNMODE_SET
End Select
End Sub
Private Sub Toolbar1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then
MsConFlag = 2
PopupMenu M_Program, vbPopupMenuRightButton
End If
End Sub
'******************************************************************************
Private Sub DisconnectDev()
AbortFlag = 0
DoEvents
'close the port
If PicBootS.PortHandle > 0 Then
ClosePIC (PicBootS.PortHandle)
PicBootS.PortHandle = -1
End If
Toolbar1.Buttons(9).Value = tbrUnpressed
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_NOT_CON
StatusBar1.Panels(PANEL_FWVER).Text = " "
StatusBar1.Panels(PANEL_DEVICE).Text = " "
cFlashConfig.Enabled = False
SetDisplayMode (MODE_NOT_CONNECTED)
End Sub
Private Sub SetDisplayMode(DspMode As Integer)
Select Case DspMode
Case MODE_CONNECTED_IDLE
Toolbar1.Buttons(1).Enabled = True
Toolbar1.Buttons(2).Enabled = True
Toolbar1.Buttons(4).Enabled = True
Toolbar1.Buttons(5).Enabled = True
Toolbar1.Buttons(10).Enabled = True
Toolbar1.Buttons(11).Enabled = True
Toolbar1.Buttons(12).Enabled = True
Toolbar1.Buttons(14).Enabled = True
Toolbar1.Buttons(9).Value = tbrPressed
If PicBootS.DeviceType = 0 Then
'Unknown
M_MemAccess(1).Visible = True
M_MemAccess(2).Visible = False
M_MemAccess(3).Visible = False
M_MemAccess(1).Checked = False
M_MemAccess(2).Checked = False
M_MemAccess(3).Checked = False
Toolbar1.Buttons(12).Enabled = False
M_PSendCfg.Visible = False
space101.Visible = False
cDataEE.Enabled = False
cDataEE.Value = 0
cConfig.Enabled = False
cConfig.Value = 0
cFlashConfig.Enabled = False
cFlashConfig.Value = 0
ElseIf PicBootS.DeviceType = 1 Then
'PIC24F
M_MemAccess(1).Visible = True
M_MemAccess(2).Visible = True
M_MemAccess(3).Visible = True
M_MemAccess(1).Checked = True
M_MemAccess(2).Checked = True
M_MemAccess(3).Checked = False
M_PSendCfg.Visible = True
cProgMem.Enabled = True
cProgMem.Value = 1
cDataEE.Enabled = True
cDataEE.Value = 1
cConfig.Enabled = True
cConfig.Value = 0
cFlashConfig.Enabled = False
cFlashConfig.Value = 0
ElseIf PicBootS.DeviceType = 2 Then
'PIC24FJ
M_MemAccess(1).Visible = True
M_MemAccess(2).Visible = False
M_MemAccess(3).Visible = False
M_MemAccess(1).Checked = True
M_MemAccess(2).Checked = False
M_MemAccess(3).Checked = False
M_PSendCfg.Visible = False
cProgMem.Enabled = True
cProgMem.Value = 1
cDataEE.Enabled = False
cDataEE.Value = 0
cConfig.Enabled = False
cConfig.Value = 0
cFlashConfig.Enabled = True
cFlashConfig.Value = 1
End If
Case MODE_WORKING
Toolbar1.Buttons(7).Enabled = True
Toolbar1.Buttons(1).Enabled = False
Toolbar1.Buttons(2).Enabled = False
Toolbar1.Buttons(4).Enabled = False
Toolbar1.Buttons(5).Enabled = False
Toolbar1.Buttons(9).Value = tbrPressed
Toolbar1.Buttons(10).Enabled = False
Toolbar1.Buttons(11).Enabled = False
Toolbar1.Buttons(12).Enabled = False
Toolbar1.Buttons(14).Enabled = False
For i = 1 To M_FPPort.Count
M_FPPort(i).Enabled = False
Next i
For i = 1 To M_FPBaud.Count
M_FPBaud(i).Enabled = False
Next i
For i = 1 To M_MemAccess.Count
M_MemAccess(i).Enabled = False
Next i
cProgMem.Enabled = False
cDataEE.Enabled = False
cConfig.Enabled = False
cFlashConfig.Enabled = False
M_PSendCfg.Visible = False
Case MODE_DONE
Toolbar1.Buttons(7).Enabled = True
Toolbar1.Buttons(1).Enabled = True
Toolbar1.Buttons(2).Enabled = True
Toolbar1.Buttons(4).Enabled = True
Toolbar1.Buttons(5).Enabled = True
Toolbar1.Buttons(9).Value = tbrPressed
Toolbar1.Buttons(10).Enabled = True
Toolbar1.Buttons(11).Enabled = True
Toolbar1.Buttons(12).Enabled = True
Toolbar1.Buttons(14).Enabled = True
For i = 1 To M_FPPort.Count
M_FPPort(i).Enabled = True
Next i
For i = 1 To M_FPBaud.Count
M_FPBaud(i).Enabled = True
Next i
For i = 1 To M_MemAccess.Count
M_MemAccess(i).Enabled = True
Next i
If PicBootS.DeviceType = 0 Then
'Unknown
M_MemAccess(1).Visible = True
M_MemAccess(2).Visible = False
M_MemAccess(3).Visible = False
Toolbar1.Buttons(12).Enabled = False
M_PSendCfg.Visible = False
space101.Visible = False
cDataEE.Enabled = False
cConfig.Enabled = False
cFlashConfig.Enabled = False
ElseIf PicBootS.DeviceType = 1 Then
'PIC24F
M_MemAccess(1).Visible = True
M_MemAccess(2).Visible = True
M_MemAccess(3).Visible = True
M_PSendCfg.Visible = True
cProgMem.Enabled = True
cDataEE.Enabled = True
cConfig.Enabled = True
cFlashConfig.Enabled = False
ElseIf PicBootS.DeviceType = 2 Then
'PIC24FJ
M_MemAccess(1).Visible = True
M_MemAccess(2).Visible = False
M_MemAccess(3).Visible = False
M_PSendCfg.Visible = False
cProgMem.Enabled = True
cDataEE.Enabled = False
cConfig.Enabled = False
cFlashConfig.Enabled = True
End If
Case MODE_NOT_CONNECTED
Toolbar1.Buttons(1).Enabled = False
Toolbar1.Buttons(2).Enabled = False
Toolbar1.Buttons(10).Enabled = False
Toolbar1.Buttons(11).Enabled = False
Toolbar1.Buttons(12).Enabled = False
Toolbar1.Buttons(14).Enabled = False
Toolbar1.Buttons(9).Value = tbrUnpressed
M_PSendCfg.Visible = False
space101.Visible = False
M_Program.Enabled = False
For i = 1 To M_MemAccess.Count
M_MemAccess(i).Checked = False
Next i
cProgMem.Value = 0
cDataEE.Value = 0
cConfig.Value = 0
cFlashConfig.Value = False
cProgMem.Enabled = False
cDataEE.Enabled = False
cConfig.Enabled = False
cFlashConfig.Enabled = False
Case Else
Toolbar1.Buttons(1).Enabled = False
Toolbar1.Buttons(2).Enabled = False
Toolbar1.Buttons(4).Enabled = True
Toolbar1.Buttons(5).Enabled = True
Toolbar1.Buttons(7).Enabled = False
Toolbar1.Buttons(9).Enabled = True
Toolbar1.Buttons(9).Value = tbrUnpressed
Toolbar1.Buttons(10).Enabled = False
Toolbar1.Buttons(11).Enabled = False
Toolbar1.Buttons(12).Enabled = False
Toolbar1.Buttons(14).Enabled = False
For i = 0 To M_FPPort.Count
M_FPPort(i).Enabled = True
Next i
For i = 0 To M_FPBaud.Count
M_FPBaud(i).Enabled = True
Next i
For i = 0 To M_MemAccess.Count
M_MemAccess(i).Enabled = True
Next i
cProgMem.Enabled = True
cDataEE.Enabled = True
cConfig.Enabled = True
cFlashConfig.Enabled = True
M_PSendCfg.Visible = False
space101.Visible = False
End Select
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -