首頁 > 軟體

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燈閃爍,說明燒寫成功。現在整個編譯燒寫的流程也就走通啦。


IT145.com E-mail:sddin#qq.com