看了一下nRF51822 SDK里的应用程序开发,跟TI的区别比较大。
TI CC2540的开发框架比较完善,从zigbee芯片CC253x起就使用这一套软件框架。到了CC2540,除了射频部分,芯片的其它外设模块和软件框架都没有变,这说明了TI这套架构已经相当完善了。TI的软件层次比较清楚,OSAL、HAL、应用层等划分合理;OSAL、HAL提供了比较丰富的功能,写起应用来可以说是得心应手
nRF51822的应用层代码看起来比较“简单”,或者说简陋。看代码的第一感觉是:怎么这么像我大学时学单片机C语言时写的代码。。。当然,这样的代码不一定是坏事,可能很多人就是需要这样的代码。nordic提供了一些外设的“驱动”,整体感觉比TI的HAL差一些。比如UART驱动是阻塞式的,而TI的可以用DMA实现非阻塞UART数据收发。这是受nordic芯片硬件的限制,51822里是没有DMA的。nordic的文档比TI弱,TI至少有开发指南等文档;nordic只有doxygen生成的函数说明,开发基本靠例程里的注释。 |