给自制的nRF52840硬件秘钥编译CanoKey固件
硬件已开源
原用途为作为OpenSK兼容硬件使用
本文将使用Ubuntu编译CanoKey固件
触摸按钮在p1.11
bootloader按钮在ai0(p0.2)
灯在p1.13
都是拉低触发
环境准备
# 因为新的Ubuntu他是没有python命令的,所以我们得给他建个连接,你可以自己试试有没有,需要是python3.x
sudo ln -s /usr/bin/python3 /usr/bin/python
sudo apt install git cmake gcc-arm-none-eabi
git clone https://github.com/canokeys/canokey-nrf52.git
cd canokey-nrf52
将config/boards/nordic/pca10059.h
这个开发板配置内容直接替换成下面的内容以简单的适配咩咩的E73模块双头usbkey
#ifndef PCA10059_H
#define PCA10059_H
#ifdef __cplusplus
extern "C" {
#endif
// LED definitions for zyyme
#define LEDS_NUMBER 1
#define LED_1 NRF_GPIO_PIN_MAP(1,13)
#define LED_START LED_1
#define LED_STOP LED_1
#define LEDS_ACTIVE_STATE 0
#define LEDS_LIST { LED_1 }
#define LEDS_INV_MASK LEDS_MASK
#define BSP_LED_0 LED_1
// There is only one button for the application
// as the second button is used for a RESET.
#define BUTTONS_NUMBER 2
#define BUTTON_1 NRF_GPIO_PIN_MAP(1,11)
#define BUTTON_2 NRF_GPIO_PIN_MAP(0,2)
#define BUTTON_PULL NRF_GPIO_PIN_PULLUP
#define BUTTONS_ACTIVE_STATE 0
#define BUTTONS_LIST { BUTTON_1, BUTTON_2 }
#define BSP_BUTTON_0 BUTTON_1
#define BSP_SELF_PINRESET_PIN NRF_GPIO_PIN_MAP(0,19)
#define HWFC false
#ifdef __cplusplus
}
#endif
#endif // PCA10059_H
拉依赖库,请保持网络通畅
git submodule update --init --recursive
编译
mkdir build
cd build
cmake \
-DCROSS_COMPILE=/usr/bin/arm-none-eabi- \
-DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release ..
make canokey_flash.uf2
第一次运行的时候他会让你下sdk,去他提供的地址下载,因为时间的推移,需要的版本可能不一样,下面咩咩演示一下自己的
cd ~/make
wget https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/sdks/nrf5/binaries/nrf5_sdk_17.1.0_ddde560.zip
cd ~/make/canokey-nrf52/nrf_sdk
unzip ~/make/nrf5_sdk_17.1.0_ddde560.zip
cd ~/make/canokey-nrf52/build
然后再cmake
如果一切正常,会输出canokey_flash.uf2
,直接用bootloader刷进去就完事了
初始化可以按着官方的走,也可以走一些捷径,去咩咩的工程下载附件,里面有个exe,插上运行一次就可以了,编译好的固件也上传了
如果咩咩的文章对你有帮助,您可以 请我喝牛奶