相比TI的CC254X、DIALOG的DA1458X,nordic推出的nrf51822和nrf52832在架构和开发商都有自己独特的地方。这几颗产品都是蓝牙低功耗芯片。DA1458X使用OTP硬件架构,功耗低,成本也低,但软件开发难度是个门槛,大团队才能做到量产,当然掌握了也是竞争力(想学习开发就参考博主之前的分享吧)。如果对三种架构都很熟悉,然后从开发的角度做个比较,相信对nrf52832的架构和开发会更新青睐。

1. nrf52832有64K的ram和512K的flash,开发人员应该很喜欢吧。

2. nrf52832是cortex M4,官方SDK使用KEIL 5 on ARM,也很熟悉。当然功耗也低,SDK也有低功耗的软件架构,容易掌握。

3. nordic SDK分成softdevice、bootloader和application三个部分。Softdevice以bin提供,主要是操作系统和BLE协议和RF操作相关的程序,这部分不对外公开,熟悉接口即可。TI的SDK对外公开操作系统OSAL,开发人员更能全局掌控,DA1458X隐藏固化了操作系统和BLE协议,但是却公开了一些RF硬件寄存器的操作细节,而这个寄存器的SPEC都找不到,对于开发人员来说,看到自己搞不透也不需要关心的细节并不好。

不过nordic 的softdevice有几个版本,目前最新3.0,每个版本支持不同的SDK,目前最新13.0。版本多了,然后分别发布会让新手迷惑。

4. 由于memory足够大,所以nordicSDK在DATA RAM和CODE上对softdevice、bootloader和application三者的memory layout安排也很清晰。

5. DFU设备固件升级、OTA固件空中升级是BLE架构必备的模块。TI和DIALOG都是在应用层集成DFU(百科:DFU的全称是Device Firmware Upgrade,即iPhone固件强制升降级模式。实际意思就是iPhone固件的强制升降级模式。)进行固件空中升级,在bootloader负责版本校验和加载,因此应用和bootloader是共同负责DFU,需要协调配合。但nordic只让bootloader负责DFU空中升级,并做好校验和加载,工具链也简单。应用只需要负责一件事,就是接收到DFU命令就reset到bootloader即可,其不需要关心DFU的过程。这也是本人喜欢nordic架构的原因,当然,这是要损失一部分代码空间的,从成本角度不划算,但是nordic提供的flash也足够大了。

6. 增加一个应用和profile的架构比较简单,跟ti CC254X差不多,dialog要难一些。

7. 友好支持集成模块,如GPIO、I2C,uart,flash等,接口容易掌握,但是实现细节要弄懂也没那么容易,哈哈。

8. SDK的应用分层做得比较好,硬件模块有对应的硬件驱动driver,SDK还会进行在驱动基础上进行再次封装,以库library的形式供应用使用,降低开发难度。如nrf_drv_gpiote是驱动,上层还会分别封装提供app_button按键接口、电平中断接口app_gpiote等。

9. SDK提供的GPIOTE模块是一个按键消息接口,比较有特色。其利用button集成消息模块,支持将消息安装到对应的某个按键上,也就是在广播状态时按这个键发出的消息和连接时发出的消息是不一样的,这样易于应用处理,架构也比较清晰。但是要花时间才能理解这个模块。

10. SDK的例程非常丰富。

11.SDK的开发文档支持也非常详尽,入门到深入都相对容易。http://infocenter.nordicsemi.com/。入门可以去看中文开发文档,深入就要多看看英文说明。

12. ….

接下来,会陆续深入分享nordic SDK架构和开发的细节。敬请期待。有关TI CC254X和DIALOG的DA1458X可以看之前分享的博文。

更多嵌入式Linux和物联网原创技术分享敬请关注微信公众号:嵌入式企鹅圈

---------------------
作者:吴跃前
来源:CSDN
原文:https://blog.csdn.net/yueqian_scut/article/details/59486451
版权声明:本文为博主原创文章,转载请附上博文链接!

蓝牙nrf52832的架构和开发(转载)的更多相关文章

  1. SQLServer内核架构剖析 (转载)

    SQL Server内核架构剖析 (转载) 这篇文章在我电脑里好长时间了,今天不小心给翻出来了,觉得写得很不错,因此贴出来共享. 不得不承认的是,一个优秀的软件是一步一步脚踏实地积累起来的,众多优秀的 ...

  2. was集群下基于接口分布式架构和开发经验谈

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luozhonghua2014/article/details/34084935    某b项目是我首 ...

  3. 建筑材料系统 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发

    框架介绍: 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性 ...

  4. 蓝牙4.0——Android BLE开发官方文档翻译

    ble4.0开发整理资料_百度文库 http://wenku.baidu.com/link?url=ZYix8_obOT37JUQyFv-t9Y0Sv7SPCIfmc5QwjW-aifxA8WJ4iW ...

  5. Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台

    Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台: https://gitee.com/leecho/cola-cloud

  6. PHP-学习大规模高并发Web系统架构及开发推荐书籍

    以下书籍内容涵盖大型网站开发中几个关键点:高可用.高性能.分布式.易扩展.如果想对大规模高并发Web系统架构及开发有很系统的学习,可以阅读以下书籍,欢迎补充! 一.<Linux企业集群—用商用硬 ...

  7. 浅谈MVP架构及开发模式

    Model-View-Presenter(MVP)概述    MVC模式已经出现了几十年了,在GUI领域已经得到了广泛的应用,由于微软ASP.NET MVC Framework的出现,致使MVC一度成 ...

  8. 低功耗蓝牙4.0BLE编程-nrf51822开发(3)

    蓝牙协议栈 nrf51822开发中,蓝牙协议栈和应用开发是分开的. (1)兼容蓝牙4.0低功耗协议栈基带层,L2CAP\AAT\SM\GAP\GATT协议,设备和广播,GATT客户端和服务器,SMP支 ...

  9. Android之路-------浅淡Android历史、系统架构与开发特色

    前言 离上一篇发表的博客差不多有两个星期了吧,相信有些博友差点就对LP失望了,因为上一篇博文中说了,这次不管怎样,LP都会坚持写博客的. 由于工作关系LP才隔了这么久才再次发表博文,这篇博文主要是总结 ...

随机推荐

  1. 【OGG】OGG的单向DML复制配置(一)

    [OGG]OGG的单向DML复制配置(一) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  2. c++11 thread的学习

    http://www.cnblogs.com/wxquare/p/6736202.html 还没开始 留个链接 使用c++11 thread支持实现  一个生产者消费者模型 下面是一个生产者消费者问题 ...

  3. webpack分开打包和合并打包的瘦身

    webpack.config.js 记录一下优化webpack的几个点: 1.     devtool: false,   //产品阶段不应该有devtool entry: { bundle : pa ...

  4. C#知识点-StopWatch-计时

    目录 简单介绍 基本用法 结尾 简单介绍 Stopwatch 可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使 ...

  5. swift 基础-4

    函数:完成特定任务的代码块,通过名字来表示函数做什么 func 函数名(形参:形参类型)->返回类型 command +option+0 隐藏右边的框 //定义函数 func sayHello( ...

  6. codevs 4888 零件分组

    4888 零件分组  时间限制: 1 s  空间限制: 16000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 现有一些棍状零件,每个零件都有 ...

  7. javascript简单计算器实践

    参考部分资料,编写一个简单的计算器案例,虽然完成了正常需求,但是也有不满之处,待后续实力提升后再来补充,先把不足之处列出: 1:本来打算只要打开页面,计算器的输入框会显示一个默认为0的状态,但是在输入 ...

  8. 查询日志logcat使用总结

    cmd命令行中使用adb logcat命令查看Android系统和应用的log,dos窗口按ctrl+c中断输出log记录.logcat日志中的优先级/tag标记: android输出的每一条日志都有 ...

  9. jmeter参考网址

    http://blog.csdn.net/dongdong9223/article/details/49248979 http://blog.csdn.net/hjh00/article/detail ...

  10. 手工恢复OSSIM数据库密码

    1,现象 今天需要远程连接ossim的mysql数据库读取些东西,于是登录ossim的终端,发现这个mysql客户端无法直接登录,使用自己安装时候那些口令都不行 alienvault:~# mysql ...