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灯闪烁,说明烧写成功。现在整个编译烧写的流程也就走通啦。