CSR8670学习笔记:自定义ADK configuration tool配置项
為了方便大家學習,現與我愛藍牙網聯合推出【QCC300x/CSR867x/QCC30xx/QCC51xx開發板】。
技術交流QQ群號:743434463
開發板會員QQ群號:725398389(憑訂單號入群,贈獨家學習資料)
——————————正文分割線———————————–
1. 引言
ADK configuration tool是高通ADK自帶的應用程序配置工具,我總結其有如下幾個優點:
- 模板通用:可見的配置項會自動匹配到正確的應用程序模板和硬件平臺。
- 使用簡單:當開發者需要關聯物理按鍵動作與用戶按鍵事件時,只需修改user interface中的user event和buttons選項即可。整個過程沒有代碼改動,也沒有編譯下載等操作,非軟件專業的人員即能勝任,幾乎是零軟件門檻。
- 靈活加載:當應用程序打開或關閉預編譯選項(比如ENABLE_AVRCP等),配置項中的關聯部分會隨之出現或消失。
遺憾的是,ADK configuration tool并沒有明顯的用于添加自定義配置項的接口。這帶來兩個主要問題:
- 在開發和調試一些自定義配置功能時不得不反復修改編譯,效率很低。
- 在應用程序運行過程中,如需改動自定義的配置項,不知道該保存在什么位置。
最近接到一個項目,需要在sink例程引用source例程的很多代碼,逼得我非得搞懂自定義配置項的方法。經過一段時間的摸索,還真整出活兒來,最終效果圖如下:
可以看到基本上將source config tool的配置原樣不動地搬移到sink config tool的界面下。
欣喜之余,不忘把方法分享給讀者,希望能對各位的學習有所幫助。
2. 理解ADK configuration系統
首先我們來看一下整個配置系統的基本要素和相互關聯:
有兩個實體,主機PC端和目標設備。ADK配置工具調用AHI接口訪,問目標設備的Config Store庫,讀取非易失存儲器內的數據,在PC界面以格式化的形式顯示出來。經常有初學者遇到ADK config tool連接超時,根源就是這個AHI接口沒有正常工作,需要在項目的編譯選項里指定。
現在新的問題是,ADK configuration tool如何知道界面應該顯示哪些配置項,以及這些配置項的當前值呢?這就要從配置項的生成說起了:
- 在源代碼層,config_build.mak文件、global definitions.xml文件、module_configurations文件夾中的所有xml文件經過預處理后,自動生成了config set definition.h/c文件和各個module對應的config module.h文件,也自動生成了pskey_map.xml文件,這個文件用于分配USER_PSKEY給所有config set。換句話說,開發人員不需要關注config set具體的物理存放位置。
- 上述文件,一方面,與引用config set的源文件一起參與編譯,生成最終的應用的二進制文件;另一方面壓縮后生成config_definition.gz文件。兩個文件都保存在文件系統中。
- 在配置模式下,ADK config tool通過AHI接口從文件系統中讀取config_definition.gz文件,解壓出xml文件,加載并生成選項頁面。此時開發人員點擊read鍵,主機通過AHI接口從ps_dynamic_config_store中讀取所有的配置值并顯示。
- 應用程序在運行過程中,應用程序通過config_store接口訪問配置值。
3. 合入source例程的配置項
- 修改config_build.mak文件:
- 上述三個source例程的xml文件放入module_configurations文件夾
- 修改global_config.xml,添加一級配置選項卡
- 修改三個xml文件,將其中每一項配置的ConfigGroupPath屬性關聯到一級配置選項卡
- 工程路徑下添加上述3個xml文件對應的.c/.h源碼,如source_a2dp.c/.h等
- 重新編譯工程,打開ADK config tool,進入配置模式,查看新增配置項
4. 總結
在掌握了ADK configuration tool配置項的自定義方法后,可以在flash的用戶區存儲非易失的變量,給自定義功能創造了便利的條件。需要注意的是用戶區空間有限,僅能存儲簡單的變量,如需保存較大的文件,可在FileSystem中創建分區表單獨存放。
5. 參考文檔
- ADK configuration tool user guide
- ADK application configuration architecture
- ADK application configuration system
- ADK application configuration XML definitions
總結
以上是生活随笔為你收集整理的CSR8670学习笔记:自定义ADK configuration tool配置项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GBA模拟器 My Boy!的远程连接-
- 下一篇: 专色印刷的相关知识