debugger: crank the debug port up to 1.3Mbps

With this, full memory read-out takes ~1s.
This commit is contained in:
David Anderson 2024-09-19 21:25:04 -07:00
parent 5e66d8b205
commit 9ad69d3e3c
3 changed files with 9 additions and 8 deletions

View File

@ -13,7 +13,7 @@ import (
const (
portDev = "/dev/ttyUSB0"
portSpeed = 115_200
portSpeed = 1_382_400 // 1.3Mbps
maxAddr = 1 << 17
pingResponse = 0xEA
readTimeout = 2 * time.Second
@ -26,7 +26,7 @@ type Serial struct {
func Open() (*Serial, error) {
mode := &serial.Mode{
BaudRate: 115_200,
BaudRate: portSpeed,
}
port, err := serial.Open(portDev, mode)
if err != nil {
@ -38,6 +38,7 @@ func Open() (*Serial, error) {
port.Close()
return nil, err
}
port.SetReadTimeout(readTimeout)
if _, err := io.ReadFull(port, packet[:1]); err != nil {
port.Close()
@ -80,7 +81,7 @@ func encode(cmd int, addr int, data byte) [4]byte {
func (d *Serial) readSlow(bs []byte, off int64) (int, error) {
d.portMu.Lock()
defer d.portMu.Unlock()
if off+int64(len(bs)) >= maxAddr {
if off+int64(len(bs)) > maxAddr {
return 0, errors.New("OOB read")
}
for i := range bs {
@ -100,7 +101,7 @@ func (d *Serial) readSlow(bs []byte, off int64) (int, error) {
func (d *Serial) readBurst(bs []byte, off int64) (int, error) {
d.portMu.Lock()
defer d.portMu.Unlock()
if off+int64(len(bs)) >= maxAddr {
if off+int64(len(bs)) > maxAddr {
return 0, errors.New("OOB read")
}
for i := 0; i < len(bs); i += 255 {
@ -125,7 +126,7 @@ func (d *Serial) ReadAt(bs []byte, off int64) (int, error) {
func (d *Serial) WriteAt(bs []byte, off int64) (int, error) {
d.portMu.Lock()
defer d.portMu.Unlock()
if off+int64(len(bs)) >= maxAddr {
if off+int64(len(bs)) > maxAddr {
return 0, errors.New("OOB write")
}
for i, v := range bs {

View File

@ -82,8 +82,8 @@ func (m debugger) readFullMemory() tea.Cmd {
func (m debugger) readFullMemoryCmds() []tea.Cmd {
var ret []tea.Cmd
for i := 0; i < m.mem.Len(); i += 128 {
ret = append(ret, m.readMemory(i, 128))
for i := 0; i < m.mem.Len(); i += 32 * 1024 {
ret = append(ret, m.readMemory(i, 32*1024))
}
return ret
}

View File

@ -46,7 +46,7 @@ module mkTop(Top);
////////////
// Debugging
let debugger <- mkUARTDebugger(25_000_000, 115_200, mem.debugger);
let debugger <- mkUARTDebugger(25_000_000, 1_382_400, mem.debugger);
let blinky <- mkBlinky(25_000_000);
////////////