2021-05-12 14:32:11
Ubuntu下Nodic開發環境搭建
2020-06-16 16:58:20
1.編譯環境
Ubuntu可直接裝gcc編譯環境
sudo apt install gcc-arm-none-eabi
也可以下載可執行檔案download
2. 檢查make工具是否安裝
make -v
一般來說開發Linux上的開發者都會安裝,若沒有安裝的話,執行以下命令安裝。
sudo apt-get install build-essential checkinstall
3. nRF5 SDK下載
Nordic官方對nRF51、nRF52系列提供了SDK,SDK中提供了大量的BLE和ANT範例。可以在這裡下載。我這邊下在的是12.3.0版本的SDK。
下載之後解壓到自己習慣的目錄中,然後修改Makefile.posix檔案。
vim <SDK_PATH>/components/toolchain/gcc/Makefile.posix
檔案內容修改如下:
GNU_INSTALL_ROOT := /usr/
GNU_VERSION := 5.4.1
GNU_PREFIX := arm-none-eabi
需要注意的是,GNU_INSTALL_ROOT選項的目錄指的是gcc-arm-none-eabi的安裝位置(bin資料夾所在的目錄),我直接用apt install安裝的,所以直接用了"/usr/"。
4. 編譯一個範例
在SDK的目錄下開啟一個範例資料夾
cd nRF5_SDK_12.3.0/examples/peripheral/led_softblink/pca10040/blank/armgcc
上面命令是開啟一個led閃爍的例子,pca10040是我板子的版本.
在該目錄下執行"make",就會編譯檔案並生成二進位制檔案。
$ make
mkdir _build
Compiling file: nrf_log_backend_serial.c
Compiling file: nrf_log_frontend.c
Compiling file: app_error.c
Compiling file: app_error_weak.c
Compiling file: app_timer.c
Compiling file: app_util_platform.c
Compiling file: led_softblink.c
Compiling file: low_power_pwm.c
Compiling file: nrf_assert.c
Compiling file: sdk_errors.c
Compiling file: boards.c
Compiling file: nrf_drv_clock.c
Compiling file: nrf_drv_common.c
Compiling file: nrf_drv_uart.c
Compiling file: nrf_nvic.c
Compiling file: nrf_soc.c
Compiling file: main.c
Compiling file: RTT_Syscalls_GCC.c
Compiling file: SEGGER_RTT.c
Compiling file: SEGGER_RTT_printf.c
Assembling file: gcc_startup_nrf52.S
Compiling file: system_nrf52.c
Linking target: _build/nrf52832_xxaa.out
text data bss dec hex filename
7944 116 480 8540 15c _build/nrf52832_xxaa.out
Preparing: _build/nrf52832_xxaa.hex
Preparing: _build/nrf52832_xxaa.bin
如果執行make後輸出跟上面一樣,說明交叉編譯gcc已經正確設定。下面就可以將檔案燒錄到板子中啦。
5. Jlink驅動工具
下載程式需要Jlink驅動工具,因此要先行安裝。可以去這裡下載J-link軟體,並安裝。對於ubuntu系統,可以直接下載deb安裝包進行安裝。
6. nrfjprog工具下載
這是Nordic提供的命令列韌體燒錄工具,既有windows版本也有linux版本。在這裡下載。
下載之後解壓的到自己習慣的目錄,然後將nrfjprog可執行檔案所在路徑新增到PATH路徑中。之後輸入"nrfjprog -v"檢視是否設定正確。
$ nrfjprog -v
nrfjprog version: 9.7.2
JLinkARM.dll version: 6.22d
7. 下載程式到板子
進入到這一步的話,需要的工具都已安裝好,可以燒寫程式進板子觀察現象啦。
$ nrfjprog --family nRF52 -e
Erasing code and UICR flash areas.
Applying system reset.
$ nrfjprog --family nRF52 --program _build/nrf52832_xxaa.hex
Parsing hex file.
Reading flash area to program to guarantee it is erased.
Checking that the area to write is not protected.
Programing device.
$ nrfjprog --family nRF52 -r
Applying system reset.
Run.
以上三個命令執行完畢,會看到板子上的四個led燈閃爍,說明燒寫成功。現在整個編譯燒寫的流程也就走通啦。
相關文章