79 lines
3.2 KiB
Markdown
79 lines
3.2 KiB
Markdown
# LLGo Embedded Development Command Line Options
|
|
|
|
## Flags
|
|
|
|
- `-o <file>` - Specify output file name
|
|
- `-target <platform>` - Specify target platform for cross-compilation
|
|
- `-obin` - Generate binary format output (requires `-target`)
|
|
- `-ohex` - Generate Intel HEX format output (requires `-target`)
|
|
- `-oimg` - Generate firmware image format output (requires `-target`)
|
|
- `-ouf2` - Generate UF2 format output (requires `-target`)
|
|
- `-ozip` - Generate ZIP/DFU format output (requires `-target`)
|
|
- `-emulator` - Run using emulator (auto-detects required format)
|
|
- `-port <port>` - Target port for flashing, testing, or monitoring
|
|
- `-baudrate <rate>` - Baudrate for serial communication (default: 115200)
|
|
|
|
## Commands
|
|
|
|
### llgo build
|
|
Compile program to output file.
|
|
- No `-target`: Native executable
|
|
- With `-target`: ELF executable (and additional formats if specified with `-obin`, `-ohex`, etc.)
|
|
|
|
### llgo run
|
|
Compile and run program.
|
|
- No `-target`: Run locally
|
|
- With `-target`: Run on device or emulator (equivalent to `install` + `monitor`)
|
|
|
|
### llgo test
|
|
Compile and run tests.
|
|
- No `-target`: Run tests locally
|
|
- With `-target`: Run tests on device or emulator
|
|
- Supports `-emulator` and `-port` flags
|
|
|
|
### llgo install
|
|
Install program or flash to device.
|
|
- No `-target`: Install to `$GOPATH/bin`
|
|
- With `-target`: Flash to device (use `-port` to specify port)
|
|
|
|
### llgo monitor
|
|
Monitor serial output from embedded device.
|
|
- `-port <device>`: Serial port device (e.g., `/dev/ttyUSB0`, `COM3`)
|
|
- `-target <platform>`: Auto-detect port from target configuration
|
|
- `-baudrate <rate>`: Communication speed (default: 115200)
|
|
- `[executable]`: Optional ELF file for debug info (panic address resolution)
|
|
|
|
Features:
|
|
- Real-time bidirectional serial communication
|
|
- Automatic port detection from target configuration
|
|
- Debug info integration for panic address resolution
|
|
- Cross-platform support (Linux, macOS, Windows)
|
|
- Graceful exit with Ctrl-C
|
|
|
|
## Examples
|
|
|
|
```bash
|
|
# Native development
|
|
llgo build hello.go # -> hello
|
|
llgo build -o myapp hello.go # -> myapp
|
|
llgo run hello.go # run locally
|
|
llgo install hello.go # install to bin
|
|
|
|
# Cross-compilation
|
|
llgo build -target esp32 . # -> hello.elf
|
|
llgo build -target esp32 -obin . # -> hello.elf + hello.bin
|
|
llgo build -target esp32 -ohex . # -> hello.elf + hello.bin + hello.hex
|
|
llgo build -target esp32 -obin -ohex -oimg . # -> hello.elf + hello.bin + hello.hex + hello.img
|
|
llgo run -target esp32 . # run on ESP32 (guess a port)
|
|
llgo run -target esp32 -emulator . # run in emulator
|
|
llgo test -target esp32 -port /dev/ttyUSB0 . # run tests on device
|
|
llgo test -target esp32 -emulator . # run tests in emulator
|
|
llgo install -target esp32 -port /dev/ttyUSB0 . # flash to specific port
|
|
|
|
# Monitor device output
|
|
llgo monitor -port /dev/ttyUSB0 # monitor with specific port
|
|
llgo monitor -target esp32 # monitor with auto-detected port
|
|
llgo monitor -target esp32 -baudrate 9600 # custom baudrate
|
|
llgo monitor -port /dev/ttyUSB0 ./firmware.elf # with debug info for panic resolution
|
|
```
|