nRF SDK Step By Step

探讨单板嵌入式软件开发中,选择直接操作寄存器还是使用驱动库的问题。分析nRF SDK的文件结构,包括Application、Board Definition、nRF_Drivers和nRF_Libraries等部分,强调利用现有库的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

单板嵌入式软件到底是用驱动库还是直接操作寄存器,这是一个永恒的话题,就像豆花到底应该放盐还是放糖一样。

刚接触nRF SDK的我也一样在纠结这个问题:直接操作寄存器吧,简单,非常简单。但是一方面程序结构和移植性上肯定好不了,如果想做好一点,干嘛不用别人做好的?人家已经写了几百M的代码放在那里(这得是多少人的心血啊!尤其是嵌入式领域!),干嘛要重复造车轮子?用库吧,你得先把人家的库看明白了才好用啊,要把这么多代码看明白。。。。想想也是醉了。而且nRF不光有外设驱动,还有应用库,上面再叠加应用,三层结构。分这么多层,理解了就很好用,要入门就很头疼。

纠结!!!

想来想去,还是不要浪费人家写的几百M的代码为好,站在巨人的肩膀上不是更好!

所以,我们现在要做的,就是先爬上去!

文件结构

打开一个最简单的SDK里的外设驱动工程,即可以一般地归纳出从代码的框架结构:

Application

main.c:主程序,包含初始化和主循环。如果应用够简单,功能的实现代码也会被放在这里。

Board Definition

也只包含一个Boards.c文件,从内容上来看,基本上就只包含了按键和LED的初始化和使用代码

nRF_Drivers

外设驱动,应该是包含跟外设寄存器直接打交道的代码,其中有一个文件叫‘nrf_drv_common.c’, 应该是所有外设都会用到的公用代码。然后需要用啥外设就把相应的文件往里加

nRF_Libraries

个人理解这个文件夹下的代码是基于 nRF_Drivers,给Application提供服务的。

nRF_Log/nRF_Segger_RTT

用于打印调试信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值