TI的CC254x芯片
1. SoC
2. RF收发器+8051MCU 128/256KB Code空间.
3. Master或者Slave
4. 可编程flash
5. 8KB SRAM
6. 全软件协议栈, 无版权问题
7. 21个GPIO口, 2个UART或者SPI, 全速USB2.0, 2个16bit, 2个8bit计时器
8. 硬件AES加密
9. 8通道8-12bit ADC
10. 40pin 6x6x0.85mm QFN封装
IAR开发
值得注意是的上面的地方, 不知道Keil有没有类似的功能, 估计也有, 但是我没用过, 这个好用的地方在于, 你可以在代码中直接define一些东西, 然后将前提条件放在IAR的这个界面中赋值, 比如你不需要LCD, 那么你照写跟LCD有关的代码, 只是同时写上编译条件, 在你需要LCD的时候, 在IAR的compiler里面加一行HAL_LCD=TRUE, 记得是TRUE, 不是TURE, 别问我为啥反复说这个.
Build完你的项目后, IAR会生成一个映射文件来统计编译结果, 在output文件夹下.
如果你要写一个基于CC254x的应用程序, 有5个主要部分:
1. OSAL OS抽象层, 就是一个极简的操作系统模型, 帮助利用任务事件(task event)来实现多任务切换, 不是实时操作系统, 也不是可抢夺的, 任务是一个个被执行的.
2. HAL 硬件抽象层
3. Demo用的应用程序
4. BLE协议栈
5. 配置, GAP, GATT service, GAP security
应用程序启动过程:
首先执行simpleBLEPeripheral.c中的SimpleBLEPeripheral_Init() (用户自己的源码)
然后进行配置:
peripheral.c里面的GAP配置: 包括广告信息, 连接间隔, 扫描响应. (TI的源代码)
simpleGATTProfile.c里面的用户配置: 包括特征值1, 特征值2...(用户自己的源码)
gapgattserver.h里面的GAP GATT server配置, 包括设备名, service等等 (TI的库)
gapPeripheralBondMgr.c里面的Bond配置: 比如配对用的秘钥, IO相关等. (TI的源码)