要配置資料項,新增或刪除乙個資料項,或者僅修改某個預設值,參看以下步驟:
1、在nvram_user_defs.h 檔案裡,定義乙個新的邏輯資料項的lid至 nvram_lid_cust_enum 列舉。
2、在 nvram_user_defs.h 檔案裡,定義兩個常量:size 和 total。
linear-fixed: total > 1; size為每一條記錄的大小
(所謂的linear-fixed實際上就是存放乙個單個記錄大小為size,記錄總數為total的結構體陣列)
transparent: total = 1; size 為每整個區塊的大小
(transparent的意思就是乙個大的字串)
注意:由於flash裝置驅動的約束,size定義必須為偶數對齊。
3、模仿logical_data_item_table_cust中已有的記錄來增加自己的記錄
1〉 lid
2〉 size
3〉 total
4〉 default value:必須為nvram_ef_zero_default,或者nvram_ef_ff_default,建議用前乙個
其餘的都仿照原來的記錄來填寫,特別注意ver(nvram_ef_cache_byte_lid),
有乙個nvram_ef_cache_byte_lid_verno的字串巨集與之對應。據說每次改動預設值之後西歐需要改這個版本號。
4、預設值輸入
將預設值建成乙個全域性的陣列,將陣列名填寫到custpack_nvram_ptr中,注意順序不要搞亂了
5、操作
通常在**中,用readvalue和writevalue來讀寫
在task初始化**中,需要用nvram_external_read_data來讀取
修改完後最要new一下。據說還要同步修改編譯的版本號。改了肯定對,不改對不對就不知道了。
注意事項:
1.資料項的size 定義必須為偶數對齊,最大為 65535。
2.linear fixed 資料項的最大記錄數為 65535.
以上的最大值為理論值,可能會因為超出flash空間而不能正常工作,依賴於flash裝置驅動配置。此外,一部分空間是為協議棧使用,使用者可配置的資料項是受限制的。
當前,測試的安全值如下:
1. size 最大 480
2. total 最大300
3. 使用者可配置的資料項最大值 25
3.2 fields in primitives 原語中的域
1.當傳送 read/write 請求原語至 nvram 任務,如果資料項為 transparent, 』para』 域必須為 1;
2. 當傳送 write 請求原語至nvram任務, 被寫入的資料的大小 size 必須等於在nvram_user_config.c中定義的資料項的大小 size.
3. read/write 確認原語成功返回值 『result』 域為:nvram_errno_ok, nvram_errno_init.
MTK平台上讀取LCM error report
1 目的 如何讀取lcm吐出的error report 2 說明 有的lcd ic有相應的暫存器可以儲存error report型別,這種方式比較簡單,我們只需要讀取暫存器即可 請諮詢fae 我們這裡闡述的方法是針對在每個bta後,都會攜帶error report package的情況。3 方法 m...
在MTK平台上部署CDMA
在mtk平台上部署cdma 注 我們用的mtk版本是6225 cdma 模組是威盛via的。此專案沒有量產,放在那也是加密冷藏沒有價值,寫思路出來與大家討論關於程式設計。本人不是mtk專家,有分析不對之處,請指出,謝謝。硬體篇 加乙個cdma模組,具體操作本人不知道,就不講述了。軟體篇 讓我們來分析...
iPhone平台上的json framework
當我們在開發iphone應用程式時,必然會對cocoa touch的平台功能感到不足,在接下來的幾篇文章中,筆者將介紹一些在cocoa上熱門的第三方函式庫,還請多多指教!在所有的第三方函式庫中,最有名且被廣泛使用的不外乎便是json framework了,就連iphone os本身也有用到這個函式庫...