37 lines
2.2 KiB
Markdown
37 lines
2.2 KiB
Markdown
# Repository Guidelines
|
|
|
|
## Project Structure & Module Organization
|
|
- Root Python app: `pro3_uart.py` (Tkinter UI for dual UART + J-Link debugger).
|
|
- Firmware flashing logic: `flash.py`, `fw/` assets, and `devices/Profiles/`.
|
|
- Build artifacts/specs: `dist/`, `build/`, `*.spec`, `package_pro3_exe.py`.
|
|
- Configs: `Settings.json`, `Reburn.cfg`, `Reset.cfg`.
|
|
- J-Link support: `pylink/JLinkARM.dll`; requirements in `requirements.txt`.
|
|
|
|
## Build, Test, and Development Commands
|
|
- Run UI: `python3 pro3_uart.py` (requires Tkinter, pyserial, pylink DLL, connected devices).
|
|
- Smoke syntax check: `python3 -m py_compile pro3_uart.py`.
|
|
- Flash utility (when needed): `python3 flash.py --help` to view options.
|
|
|
|
## Coding Style & Naming Conventions
|
|
- Python 3, 4-space indentation; prefer explicit names (`dev1`, `dev2`, `debugger`).
|
|
- Keep UI text short; avoid non-ASCII unless already present.
|
|
- Mirror existing Tkinter patterns (use `ttk`, queue logs via `DevicePanel.queue_message`); never sacrifice clarity for micro-reuse—duplicate a few lines if it keeps behavior explicit.
|
|
|
|
## Testing Guidelines
|
|
- No automated test suite present; rely on manual verification:
|
|
- Connect UART devices; verify console input/history and macros.
|
|
- Connect J-Link; confirm AP/core selection, scripts (J-Link/GDB), and command execution.
|
|
- Run `python3 -m py_compile pro3_uart.py` before sharing changes.
|
|
|
|
## Commit & Pull Request Guidelines
|
|
- Use concise, imperative commit messages (e.g., `Add pylink AP selection UI`).
|
|
- Describe device setup and manual steps taken (UART ports, J-Link serial/AP, scripts used).
|
|
- Include screenshots/GIFs of UI changes when applicable.
|
|
- Link related issues/tasks; call out any required firmware/config files.
|
|
|
|
## Agent-Specific Instructions
|
|
- Do not modify bundled binaries/DLLs unless requested; keep `pylink/JLinkARM.dll` in place.
|
|
- Preserve existing flashing and UART workflows; avoid regressions to `DevicePanel` and `PylinkDebuggerPanel`.
|
|
- When adding UI, mirror current Tkinter style and keep labels compact for the horizontal layout.
|
|
- Favor clear, independent modules over tightly coupled helpers; avoid “minimal coding” shortcuts that hide control flow (e.g., do not overuse shared globals—pass explicit parameters and keep per-panel state encapsulated).
|