Skip to main content

Fully pythonic flash programmer tool for Axera AX520

Project description

AX520Tool

Description

AX520Tool is a versatile command-line tool designed for programming firmware onto AX520 series devices via a serial port. It facilitates various operations such as flashing firmware, reading and verifying memory, erasing flash, and managing device execution. Whether you're a developer or an embedded systems enthusiast, AX520Tool streamlines the process of interacting with AX520-based hardware.

Features

  • Firmware Downloading: Upload firmware to AX520 devices with precise memory address targeting.
  • Memory Operations: Read, write, and erase device memory regions.
  • Firmware Verification: Ensure the integrity of flashed firmware by comparing device memory with source files.
  • Command-Line Interface: Intuitive and flexible CLI for executing various operations.
  • Progress Indicators: Real-time feedback during lengthy operations using progress bars.
  • Error Handling: Comprehensive exception handling to guide users through issues.

Installation

pip install ax520tool

Usage

AX520Tool is operated via the command line. Below are the instructions to perform various operations.

Basic Syntax

python ax520tool.py -p <serial_port> [options] <command> [command_options]
  • -p, --port: (Required) Specify the serial port connected to the AX520 device (e.g., COM3 on Windows or /dev/ttyUSB0 on Linux).
  • -b, --board: (Optional) Specify the board name. Defaults to M5_TimerCamera520.
  • -r, --reboot: (Optional) Reboot the device after flashing.
  • -c, --check: (Optional) Verify firmware after flashing.

Commands

1. Write Flash

Download firmware to the device.

Syntax:

python ax520tool.py -p <serial_port> write_flash <address1> <firmware1> [<address2> <firmware2> ...]
  • <address>: Starting memory address (hex 0x... or decimal).
  • <firmware>: Path to the firmware binary file.

Example:

python ax520tool.py -p COM3 write_flash 0x3000000 firmware.bin

2. Read Flash

Read firmware from the device.

Syntax:

python ax520tool.py -p <serial_port> read_flash <address> <size> <output_file>
  • <address>: Starting memory address.
  • <size>: Number of bytes to read.
  • <output_file>: Path to save the read firmware.

Example:

python ax520tool.py -p COM3 read_flash 0x3000000 1048576 read_firmware.bin

3. Erase Flash

Erase a region of the device's flash memory.

Syntax:

python ax520tool.py -p <serial_port> erase_flash <address> <size>
  • <address>: Starting memory address.
  • <size>: Number of bytes to erase.

Example:

python ax520tool.py -p COM3 erase_flash 0x3000000 65536

Examples

Flashing Firmware

Download firmware.bin to address 0x3000000 and reboot the device after flashing:

python ax520tool.py -p COM3 -r write_flash 0x3000000 firmware.bin

Reading Firmware

Read 1MB of firmware starting from address 0x3000000 and save it to read_firmware.bin:

python ax520tool.py -p COM3 read_flash 0x3000000 1048576 read_firmware.bin

Erasing Flash Memory

Erase 64KB of flash memory starting at address 0x3000000:

python ax520tool.py -p COM3 erase_flash 0x3000000 65536

Verifying Firmware

After flashing, verify the integrity of the firmware:

python ax520tool.py -p COM3 -c write_flash 0x3000000 firmware.bin

Note: The -c flag enables verification after flashing each file. It will never check overlapping.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ax520tool-0.1.1a0.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

ax520tool-0.1.1a0-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file ax520tool-0.1.1a0.tar.gz.

File metadata

  • Download URL: ax520tool-0.1.1a0.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.1

File hashes

Hashes for ax520tool-0.1.1a0.tar.gz
Algorithm Hash digest
SHA256 63e4e8d9c4e8fd462d5777297b5aa4a8cde49fbe8a2122b504058ef942b40aa3
MD5 9380154c425c9a5068c4a7b2f2ca5192
BLAKE2b-256 29c6f45ead74795899e7f5b65a07c0a6b85e720923654c6559852ec2a4e76254

See more details on using hashes here.

File details

Details for the file ax520tool-0.1.1a0-py3-none-any.whl.

File metadata

  • Download URL: ax520tool-0.1.1a0-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.1

File hashes

Hashes for ax520tool-0.1.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 4afbacea2302496b9375785eb933f6325d09b4abcf418bce01a614065c403285
MD5 067f26d55dfe0f853a16100381fea56c
BLAKE2b-256 e8d0c58745e83bc82142e395a8b3351e2a7c3614087f3bcfd022e5fd32f70898

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page