Python implementation of blhost used to communicate with the NXP MCUBOOT/KBOOT bootloader
Project description
pyblhost
Developed by Kristian Sloth Lauszus, 2020-2022
The code is released under the GNU General Public License v3.0.
This is a Python implementation of blhost used to communicate with the NXP MCUBOOT/KBOOT bootloader.
For now it only implements a subset of the blhost commands.
Currently serial and CAN-Bus interfaces are supported.
Installation
pip install pyblhost
Usage
Python
See the examples directory for Python examples.
CLI
$ pyblhost -h
usage: pyblhost [-tx TX_ID] [-rx RX_ID] [-i INTERFACE] [-l CHANNEL] [-p PORT] [-h] [--version] [-B BINARY] [-s START_ADDRESS] [-c BYTE_COUNT] [-t TIMEOUT] [-r CMD_REPEAT] [-b BAUDRATE] {can,serial} {upload,read,ping,reset}
positional arguments:
{can,serial} Communicate with the target via either CAN or serial
{upload,read,ping,reset}
upload: write BINARY to START_ADDRESS. Before writing it will erase the memory from START_ADDRESS to START_ADDRESS + BYTE_COUNT
read: read memory from START_ADDRESS to START_ADDRESS + BYTE_COUNT. the read data will be stored in BINARY
ping: send a ping command to the target and check for a response
reset: send a reset command to the target and check for a response
required CAN arguments:
-tx TX_ID, --tx-id TX_ID
The TX ID (in hex) to use for CAN
-rx RX_ID, --rx-id RX_ID
The RX ID (in hex) to use for CAN
optional CAN arguments:
-i INTERFACE, --interface INTERFACE
The CAN-Bus interface to use (default "socketcan")
-l CHANNEL, --channel CHANNEL
The CAN-Bus channel to use (default "can0")
required serial arguments:
-p PORT, --port PORT The port to use for serial
optional arguments:
-h, --help Show this help message and exit
--version Show program's version number and exit
-B BINARY, --binary BINARY
The binary to upload or write memory into
-s START_ADDRESS, --start-address START_ADDRESS
The address (in hex) to upload the binary at or read memory from
-c BYTE_COUNT, --byte-count BYTE_COUNT
The number of bytes (in hex) to erase/read
-t TIMEOUT, --timeout TIMEOUT
The time to wait in seconds for a response (default 1.0)
-r CMD_REPEAT, --cmd-repeat CMD_REPEAT
The number of times to try to establish a connection (default 3)
-b BAUDRATE, --baudrate BAUDRATE, --bitrate BAUDRATE
The baudrate/bitrate to use for serial/can (default 500000)
Upload
pyblhost can upload -tx 0x123 -rx 0x321 -B blink.bin -s 0x4C000 -c 0x34000
pyblhost serial upload -p /dev/ttyUSB0 -b 500000 -B blink.bin -s 0x4C000 -c 0x34000
Read
pyblhost can read -tx 0x123 -rx 0x321 -B memory.bin -s 0xC000 -c 0x34000
pyblhost serial read -p /dev/ttyUSB0 -b 500000 -B memory.bin -s 0xC000 -c 0x34000
Ping
pyblhost can ping -tx 0x123 -rx 0x321
pyblhost serial ping -p /dev/ttyUSB0 -b 500000
Reset
pyblhost can reset -tx 0x123 -rx 0x321
pyblhost serial reset -p /dev/ttyUSB0 -b 500000
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
pyblhost-1.5.0.tar.gz
(26.7 kB
view details)
File details
Details for the file pyblhost-1.5.0.tar.gz
.
File metadata
- Download URL: pyblhost-1.5.0.tar.gz
- Upload date:
- Size: 26.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f926f67afe2c4166dc81c787bcfd8780d7fb2065613a312762c92c54f2ee56d |
|
MD5 | 9a15e1f5edd4774961fd146d6d161ed4 |
|
BLAKE2b-256 | 822f47f105e69d4e4dc2424e23f98ecdac206333b69b85fb56a8464f17dd0739 |