CSR蓝牙芯片开发
来源:互联网 发布:c java md5加密解密 编辑:程序博客网 时间:2024/05/17 01:49
入手一套CSR1010开发套件,研究一下CSR的ble芯片开发,CSR101x有三个型号,1010、1011和1012,前两个都是基于4.0协议栈,只是IO数目不同,1012基于4.1协议栈,计划是先搞懂1010的开发,然后再看看4.1的协议栈是什么样子。
感觉CSR应用最多的还是基于2.1+EDR和3.0+HS的音频传输,对于BLE ,芯片种类很少,而且资料也没有那么详尽。以下针对1010的开发:
笔者之前开发过TI的芯片和Nordic的芯片,CSR与两者不同的是CSR添加了ROM,把协议栈封装在ROM中,开发者通过调用底层API接口的方式完成上层应用的开发。ROM、RAM和外接的FLASH构成了CSR蓝牙芯片的存储系统。使用CSR开发蓝牙应用的过程和在android端开发应用的过程很类似,ROM中的固件API接口为应用提供了一个沙箱环境,保证了应用运行的安全稳定。
1010上电首先回调AppPowerOnReset(),可在此API中定义reset执行事件。之后调用AppInit(sleep_state last_sleep_state),可在此函数中添加初始化代码。这里需要提到两个很重要的消息处理函数,AppProcessSystemEvent(sys_event_id id, void *data)和AppProcessLmEvent(lm_event_code event_code, LM_EVENT_T *p_event_data),AppProcessSystemEvent处理系统事件,比如IO口中断或者电池欠电;AppProcessLmEvent处理连接管理相关的事件,如GAP和GATT层的消息,SM层的消息等。除此之外系统还维护着一个计时器,计时精度为1ms。
经AppInit初始化完成后即可触发GATT_ADD_DB_CFM事件,回调AppProcessLmEvent函数处理GATT_ADD_DB_CFM事件,即可进行广播参数设置并开启广播。当有外部设备请求连接时,固件完成L2CAP连接,并回调AppProcessLmEvent函数产生LM_EV_CONNECTION_COMPLETE事件提示L2CAP层的连接已经完成,应用可在此事件中,提取连接的参数;固件完成GATT层连接后,回调AppProcessLmEvent函数产生GATT_CONNECT_CFM事件,自此GATT连接建立完成。(未完待续)
- CSR蓝牙芯片开发
- 单芯片蓝牙 CSR BC5
- CSR蓝牙芯片配置备忘
- CSR蓝牙开发手记
- CSR蓝牙开发平台
- CSR蓝牙的开发
- CSR蓝牙开发资源
- CSR蓝牙芯片进测试模式方法
- CSR蓝牙芯片进测试模式方法
- 蓝牙音箱CSR芯片系列解密
- CSR蓝牙开发调试经验
- CSR蓝牙芯片修改RF传输功率的方法
- CSR蓝牙芯片修改RF传输功率的方法
- CSR 蓝牙芯片运行SPP服务是PS 设置
- 主流蓝牙BLE控制芯片详解(2):CSR BC6130
- csr 蓝牙
- csr 蓝牙
- csr 蓝牙
- 关于更改ip后dbconsole服务不能启动(em不能使用)问题的根本解决方法
- EditPlus添加到右键菜单
- checkText输入框可输入字符个数提示
- 00-自测2. 素数对猜想 (20)
- zTree+PHP
- CSR蓝牙芯片开发
- How to Reset USB Device in Linux
- 新年开工第一天
- 电子商务系统的设计与实现(十一):数据库设计
- 百度地图3.3带搜索功能
- JQUERY校验
- IOS Category不要重写原有类方法
- Android类库打包方法探究
- 从程序员到技术总监,分享10年开发经验