mirror of
https://git.yoctoproject.org/meta-zephyr
synced 2026-09-12 09:49:32 +02:00
zephyr-flash-pyocd.bbclass: support for flashing via pyocd
Implement do_flash_usb for boards supported by pyocd:
MACHINE=xxx bitbake yyy -c flash_usb
Pyocd support abundance of boards, however for now this
meta-layer supports only one board that can be flashed
using pyocd, that is 96Boards Nitrogen.
Describe the feature in README.
Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
This commit is contained in:
committed by
Naveen Saini
parent
1247d07c6c
commit
b74dee01fc
23
README.txt
23
README.txt
@@ -43,6 +43,29 @@ The same sample, for Nios2 image:
|
||||
$ MACHINE=qemu-nios2 bitbake zephyr-philosophers
|
||||
$ runqemu qemu-nios2
|
||||
|
||||
Flashing
|
||||
=================================
|
||||
|
||||
You can flash Zephyr samples to boards. Currently, the following MACHINEs
|
||||
are supported:
|
||||
* DFU:
|
||||
- arduino-101-sss
|
||||
- arduino-101
|
||||
- arduino-101-ble
|
||||
* pyocd:
|
||||
- 96b-nitrogen
|
||||
|
||||
To flash the example you built with command e.g.
|
||||
|
||||
$ MACHINE=96b-nitrogen bitbake zephyr-philosophers
|
||||
|
||||
call similar command with explicit flash_usb command:
|
||||
|
||||
$ MACHINE=96b-nitrogen bitbake zephyr-philosophers -c flash_usb
|
||||
|
||||
dfu-util and/or pyocd need to be installed in your system. If you observe
|
||||
permission errors or the flashing process seem to hang, follow those instructions:
|
||||
https://github.com/pyocd/pyOCD/tree/master/udev
|
||||
|
||||
Building and Running Zephyr Tests
|
||||
=================================
|
||||
|
||||
16
classes/zephyr-flash-pyocd.bbclass
Normal file
16
classes/zephyr-flash-pyocd.bbclass
Normal file
@@ -0,0 +1,16 @@
|
||||
python do_flash_usb() {
|
||||
from pyocd.core.helpers import ConnectHelper
|
||||
from pyocd.flash.file_programmer import FileProgrammer
|
||||
|
||||
image = f"{d.getVar('DEPLOY_DIR_IMAGE')}/{d.getVar('PN')}.elf"
|
||||
bb.plain(f"Attempting to flash {image} to board {d.getVar('BOARD')}")
|
||||
|
||||
with ConnectHelper.session_with_chosen_probe() as session:
|
||||
FileProgrammer(session).program(image)
|
||||
session.board.target.reset()
|
||||
}
|
||||
|
||||
addtask do_flash_usb
|
||||
|
||||
do_flash_usb[nostamp] = "1"
|
||||
do_flash_usb[vardepsexclude] = "BB_ORIGENV"
|
||||
@@ -4,4 +4,5 @@
|
||||
#@DESCRIPTION: Machine configuration for 96Boards Nitrogen Board.
|
||||
|
||||
require conf/machine/include/nrf52832.inc
|
||||
ZEPHYR_INHERIT_CLASSES += "zephyr-flash-pyocd"
|
||||
ARCH_96b-nitrogen = "arm"
|
||||
|
||||
Reference in New Issue
Block a user