Linux下NRF51822开发环境(非IDE)
来源:互联网 发布:电脑流量防火墙软件 编辑:程序博客网 时间:2024/05/20 05:31
之前写过Linux下烧写NRF51822的文章时说过分享我的Linux下开发NRF51822的环境, 一直很懒, 知道有人问了才回来写.
准备:
NRF51822的开发SDK( windows安装包)
arm-none-eabi-gcc (可到这里下载)
1.提取SDK
解压SDK的windows安装包(不是安装, 是解压, 如何解压网上教程很多, 这里就不多说了)
提取SDK源码:F:\Nordic_Semiconductor\nRF51_SDK_v4.4.1\nrf51822 目录 打包放到Linux里.(我用的是4.4.1, 用的事比较旧的SDK)
2.解压arm-none-eabi-gcc到Linux里
3.修改Makefile (这个是基于4.4.1SDK的Makefile, 使用5.x后的SDK, 由于SDK的一些目录改变, 需要进行一些源码路径和头文件路径的修改)
SDK_PATH := /opt/Nordic/nrf51822/ #SDK路径, 根据自己的实际情况修改SDK_SOURCE_PATH = $(SDK_PATH)/Source/#覆盖Makefile.windows(在nrf51822/Source/templates/gcc里)的几个变量override GNU_INSTALL_ROOT := /opt/armgcc #arm-none-eabi-gcc解压后的目录override GNU_VERSION := 4.7.3 #gcc版本override GNU_PREFIX := arm-none-eabi #gcc前缀BOARD := BOARD_PCA10001TARGET_CHIP := NRF51822USE_SOFTDEVICE := S110DEVICE_VARIANT := xxaaOUTPUT_FILENAME := BT#添加源文件C_SOURCE_FILES := main.cC_SOURCE_FILES += app_button.cC_SOURCE_FILES += app_gpiote.cC_SOURCE_FILES += app_scheduler.cC_SOURCE_FILES += app_timer.cC_SOURCE_FILES += crc16.cC_SOURCE_FILES += ble_conn_params.cC_SOURCE_FILES += ble_advdata.cC_SOURCE_FILES += ble_bondmngr.cC_SOURCE_FILES += ble_sensorsim.cC_SOURCE_FILES += ble_flash.cC_SOURCE_FILES += ble_stack_handler.cC_SOURCE_FILES += ble_radio_notification.cC_SOURCE_FILES += ble_srv_common.cC_SOURCE_FILES += ble_hids.cC_SOURCE_FILES += ble_bas.cC_SOURCE_FILES += ble_dis.c#添加头文件路径INCLUDEPATHS += -I"."INCLUDEPATHS += -I"$(SDK_PATH)Include/app_common"INCLUDEPATHS += -I"$(SDK_PATH)Include/sd_common"INCLUDEPATHS += -I"$(SDK_PATH)Include/ble"INCLUDEPATHS += -I"$(SDK_PATH)Include/ble/softdevice"INCLUDEPATHS += -I"$(SDK_PATH)Include/ble/ble_services"CFLAGS += -DBLE_STACK_SUPPORT_REQD -Wno-unused-local-typedefsLDFLAGS += --specs=nano.specs #使用这个可以省点ROMC_SOURCE_PATHS += ../src_test $(wildcard ../src_test/*/) $(wildcard ../src_test/*/*/) #添加自己的源码目录, 该目录的二级目录, 三级目录C_SOURCE_FILES += $(wildcard ../src_test/*.c) $(wildcard ../src_test/*/*.c) #添加自己源码目录的所有c文件include $(SDK_SOURCE_PATH)/templates/gcc/Makefile.common
这个Makefile是从nrf6310的例子该来的, SDK安装的没有, 要自己手动解压SDK的安装程序, 里面有个nrf6310的例子目录里有gcc的编译环境.
完成! (写得不清不楚, 好久之前搭的环境, 凭记忆写出来了, 希望有帮助到你)
调试:
调试直接使用arm-none-eabi-gdb调试就好了. 前提是JLinkgdbserver识别到了NRF51822. 我在windows下用JLinkgdbserver连上开发板, 在Linux下使用以下脚本进行调试, 同时也顺便下载到Flash了:
gdb_nrf51_init:
target remote 192.168.100.1:2331mon speed 4000mon endian littlemon flash download = 1mon flash device = NRF51822_XXAAfile _build/BT_s110_xxaa.outloadmonitor reset 0#b main#b app_error_handlerc
0 0
- Linux下NRF51822开发环境(非IDE)
- Linux下优秀的IDE开发环境
- 非IDE环境下开发安卓项目
- IDE开发环境下成功,而linux下,g++失败
- GTK+开发环境在win32&VC++6 IDE环境下的搭建(prebuild,非src)
- Linux系统下搭建C/C++开发的IDE环境
- Linux(centos)下用vim搭建php开发环境IDE
- linux下搭建J2EE开发环境以及IDE的安装
- linux下IDE环境:eclipse
- Linux下的IDE环境
- [IDE] 无图形Linux环境下的程序开发IDE: vicc 发布会 - 1
- [IDE] 无图形Linux环境下的程序开发IDE: vicc 发布会 - 2
- Appfuse1.9.4开发环境搭建 之 登陆界面乱码的解决以及非IDE环境下ANT的配置
- linux非集成开发环境下使用QT资源机制
- 构建linux下IDE环境--Eclipse篇
- 构建linux下IDE环境--Eclipse篇
- 构建linux下IDE环境--Eclipse篇
- 构建Linux下IDE环境--Eclipse篇
- 【141030】VC++贪吃蛇游戏源码(Win32+API)
- OpenERP源码结构分析及RPC相关代码分布
- seajs学习随笔
- linux文件合并、去重
- hdu 4276 树形dp + 最短路
- Linux下NRF51822开发环境(非IDE)
- jquery 复选框,如果选中就为不选中,如果不选中就为选中。
- 逆元模板总结
- AFnetworking2.0翻译
- 《新闻》之笔记六
- Java Collections与Collection
- SQL 操作结果集 -并集、差集、交集、结果集排序
- poj 2249 Binomial Showdown[C(n, m)组合数求解]
- tomcat上传中文图片,修改端口号