輕鬆取得並使用 nRF52 的 Micro ECC 庫


簡介

Micro ECC 庫是一款的輕量密碼庫,特別為 Nordic Semiconductor 的 nRF52 系列晶片設計,提供在資源受限的嵌入式系統中執行加密和金鑰交換操作的能力。 總之,nRF52的 Micro ECC 函式庫為開發者提供了在 nRF52 系列晶片上執行安全加密操作的強大工具,使他們能夠建立安全性強、資源有效的嵌入式系統。

準備工作

安裝 nRF5 SDK v17.1.0

複製 Micro ECC 庫

複製 micro-ecc GitHub 庫。
並在 .../nRF5_SDK_17.1.0_ddde560/external/micro-ecc 新增一個名為 micro-ecc 資料夾。
將從 GitHub 下載的 micro-ecc 的內容全部複製到 .../nRF5_SDK_17.1.0_ddde560/external/micro-ecc/micro-ecc。
Micro ECC

下載 GNU Arm Embedded Toolchain

依據您的作業系統適當的下載 GNU Arm Embedded Toolchain 軟體,以 macos 為例下載 gcc-arm-none-eabi-10.3-2021.10-mac.pkg 並安裝它。
Micro ECC

設定環境變量

根據作業系統將 GNU Arm Embedded Toolchain 的安裝路徑設定環境變量,如下以 macos 為例,在 .zshrc 文件中加人環境變量。
export PATH="/Applications/arm/bin:$PATH"
開啟終端機驗証變量是否設定完成,如下所示...
➜  ~ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

若出現 zsh: command not found: arm-none-eabi-gcc 等可以試著重新開機或重啟終端機再試試看。

修改 nRF5 SDK v17.1.0 中的 gcc 路徑

找到 nRF5 SDK v17.1.0 中的安裝目錄中的 gcc 目錄夾
.../nRF5_SDK_17.1.0_ddde560/components/toolchain/gcc。
Micro ECC
根據作業系統修改 Makefile.posix 或 Makefile.windows 文件中 GNU_INSTALL_ROOT 的路徑,以 macos 系統為例選擇 Makefile.posix 並修改 /usr/local/gcc-arm-none-eabi-9-2020-q2-update/bin/ 為如以下所示...
GNU_INSTALL_ROOT ?= /Applications/arm/bin/

編譯 Micro ECC 庫

再次回到 .../nRF5_SDK_17.1.0_ddde560/external/micro-ecc/ 中的目錄,再依使用的編譯工具和 nRF 晶片選擇適當的目錄。
Micro ECC
以 macos 為例可以選擇 .../nRF5_SDK_17.1.0_ddde560/external/micro-ecc/nrf52hf_armgcc/armgcc
Micro ECC
以終端機開啟 .../nRF5_SDK_17.1.0_ddde560/external/micro-ecc/nrf52hf_armgcc/armgcc 目錄並執行 make 指就可得到 micro_ecc_lib_nrf52.a 的庫。
➜  armgcc make
mkdir _build
cd _build && mkdir micro_ecc_lib
Compiling file: uECC.c
Creating library: ../../nrf52hf_armgcc/armgcc/micro_ecc_lib_nrf52.a
/Applications/arm/bin/arm-none-eabi-ar: creating ../../nrf52hf_armgcc/armgcc/micro_ecc_lib_nrf52.a
Done

結論

nRF5x 系列的 Micro ECC 库是一个有力的工具,用于在 nRF52 系列芯片上实现安全性要求较高的嵌入式应用程序。它的轻量级设计和强大的安全性功能使其成为在资源有限的环境中执行的理想选择。