2015-12-10 38 views
0

我正在研發瑞薩RL78系列。我正在開發應用程序來處理讀取和寫入數據閃存。嵌入式C編程 - 瑞薩

我需要寫一個數組,說int a[3] = {0,1,2};

現在我通過這個數組的地址,以便寫入實際數據閃存的功能。但是我發現當FAL_Init()函數被執行時,我的數組內容被修改了。

但是,如果不是這樣,如果我在運行時初始化我的數組,那麼它似乎沒有效果。

我不完全明白FAL_Init()函數裏面發生了什麼,因爲它是庫提供的函數,我無法訪問它。

請幫我找到可能導致此問題的原因。

我張貼我的代碼

`// ptrData包含我recived值

狀態= FAL_Init((__遠fal_descriptor_t *)& fal_descriptor_str)

// ptrData內容被修改

FAL_Open();

//有擦除這裏命令

緩衝器[0] = ptrData [0]; //我正在接收數據here.`

+0

什麼'FAL_Init'返回?它成功或返回一個錯誤?請發佈您的代碼。 – LPs

+0

你可以發佈你的函數調用:'FAL_Init()','FAL_Open()'和'FAL_Execute()'? – purplepsycho

+0

您正在將Flash文字的文字數據寫入Flash頁面嗎?我可以看到一個問題.. –

回答

1

固定的問題。這是分配RAM的問題。 FAL_init()代碼從RAM中執行。因此,當這部分代碼被執行時,如果我的數組變量存儲在相同的位置,則它們正在被寫入。用連接器改變了FAL函數的分配,並解決了這個問題。謝謝大家