日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CSR8670学习笔记:自定义ADK configuration tool配置项

發布時間:2023/12/29 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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文件:
ifneq (,$(findstring ENABLE_AOV,$(DEFS)))USED_MODULES+=sink_aov_module_def.xml endifUSED_MODULES+=source_a2dp_module_def.xml USED_MODULES+=source_avrcp_module_def.xml USED_MODULES+=source_private_data_module_def.xml
  • 上述三個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配置项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。