MTK平台上開闢自己的NVRAM段並初始化

2021-05-21 21:53:33 字數 1508 閱讀 4303

要配置資料項,新增或刪除乙個資料項,或者僅修改某個預設值,參看以下步驟:

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本身也有用到這個函式庫...