* feat: kboot package * feat: kboot package * fix: wait 1 sec after device is available * test: fix unit test * refactor: clean unused codes * doc: improve readme.md * doc: improve readme.md * test: fix unit test * chore: fix lint settings * style: fix linting issues
82 lines
2.5 KiB
TypeScript
82 lines
2.5 KiB
TypeScript
import { reenumerate, UhkReenumerationModes, readBootloaderFirmwareFromHexFile } from './uhk-helpers';
|
|
import { BootloaderVersion, UsbPeripheral } from '../src';
|
|
import { KBoot } from '../src/kboot';
|
|
import { DataOption } from '../index';
|
|
|
|
xdescribe('UHK Integration tests', () => {
|
|
describe('bootloader', () => {
|
|
let usb: UsbPeripheral;
|
|
let kboot: KBoot;
|
|
beforeEach(() => {
|
|
reenumerate(UhkReenumerationModes.Bootloader);
|
|
usb = new UsbPeripheral({ vendorId: 0x1d50, productId: 0x6120 });
|
|
kboot = new KBoot(usb);
|
|
});
|
|
|
|
afterEach(() => {
|
|
if (usb) {
|
|
usb.close();
|
|
}
|
|
|
|
if (kboot) {
|
|
kboot.close();
|
|
}
|
|
});
|
|
|
|
it('get bootloader version', async () => {
|
|
const expectedVersion: BootloaderVersion = {
|
|
protocolName: 'K',
|
|
major: 2,
|
|
minor: 0,
|
|
bugfix: 0
|
|
};
|
|
const version = await kboot.getBootloaderVersion();
|
|
|
|
expect(version).toEqual(expectedVersion);
|
|
});
|
|
|
|
it('disable flash security', () => {
|
|
const backdoorKey = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08];
|
|
|
|
return kboot
|
|
.flashSecurityDisable(backdoorKey)
|
|
.catch(err => {
|
|
expect(err).toBeFalsy();
|
|
});
|
|
});
|
|
|
|
it('flash erase region', () => {
|
|
return kboot
|
|
.flashEraseRegion(0xc000, 475136)
|
|
.catch(err => {
|
|
expect(err).toBeFalsy();
|
|
});
|
|
});
|
|
|
|
it('read memory', () => {
|
|
const dataLength = 128;
|
|
return kboot
|
|
.readMemory(0xc000, dataLength)
|
|
.then((data: number[]) => {
|
|
expect(data).toBeTruthy();
|
|
expect(data.length).toEqual(dataLength);
|
|
})
|
|
.catch(err => {
|
|
expect(err).toBeFalsy();
|
|
});
|
|
});
|
|
|
|
it('write memory', async () => {
|
|
const bootloaderMemoryMap = readBootloaderFirmwareFromHexFile();
|
|
for (const [startAddress, data] of bootloaderMemoryMap.entries()) {
|
|
const dataOption: DataOption = {
|
|
startAddress,
|
|
data
|
|
};
|
|
|
|
await kboot.writeMemory(dataOption);
|
|
}
|
|
});
|
|
});
|
|
});
|