XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX 作 者:ZHS(文化人)
XX 联系方式:文章末尾Chat快问
XX 版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了
XX 要说的话:作者水平有限,难免有不足之处,恳请指正!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
写在前面:最近新接触一款CSR的soc芯片,就是CSR8670/8675音频系列芯片;这是第一篇,以后会陆续更新;
本文重点讲解如何使用 Sink Configuration Tool 配置按键~
1、首先阅读
官方文档《
ADK Configuration Tool User Guide》,先对工具有个基本的了解;
2、打开工具,确保SPI连接正常后,找到标题“User Events”,如下图;
3、列标签:User Event,单击之后下拉会有很多事件Message,是不是很熟悉??没错,这些就是在handleUEMessage()中处理的,同时在sink_events.h中定义的UE Message~
4、列标签:State Mask[hex],单击之后下拉会看到很多状态,这些状态就是程序运行后,可能会处在的某种工作状态,比如可连接、可连接/可发现、拨出电话、测试模式这些都是,可以理解成一个大的状态机~
5、列标签:Logical Input ID,点开之后会看到0~15,加上VREG/ CHG一共18个逻辑id,所以可以配置18个物理按键~
那逻辑id跟物理按键是什么关系?它们是怎么转化的呢?看下图~Physical Input Signal可以配置对应的IO口;
6、列标签:Button Timing,点开之后可以看到如图,就是按下按键的时长~
最后总结一句话~使用Sink Configuration Tool配置按键后,程序的处理过程就是:
在State Mask状态下,当Logical Input ID/ VREG/ CHG对应的物理按键被按下Button Timing时长时,就会发送一个User Event,然后在main.c中会对UE Message进行处理;
至于为什么这样处理?牵涉到哪些代码?就放在下一篇分析吧~