我正在瑞萨RL78系列上工作。我正在开发应用程序来处理对数据闪存的读写。

我需要写一个数组,说int a[3] = {0,1,2};

现在,我将此数组的地址传递给写入实际数据闪存的函数。但是我看到执行FAL_Init()函数时,我的数组内容被修改了。

但是如果不是这样,如果我在运行时初始化数组,那么它似乎没有任何作用。

我不完全了解FAL_Init()函数内部发生的情况,因为它是库提供的函数,我无法访问它。

请帮助我查找可能导致此问题的原因。

我正在发布我的代码

`// ptrData包含我获取的值

状态= FAL_Init((__ far fal_descriptor_t *)&fal_descriptor_str)

//修改ptrData内容

FAL_Open();

//这里有擦除命令

buffer [0] = ptrData [0]; //我在这里接收数据。

最佳答案

解决了该问题。这是分配RAM的问题。 FAL_init()代码从RAM中执行。因此,在执行这部分代码时,如果我的数组变量存储在同一位置,则它们将被覆盖。使用链接程序更改了FAL函数的分配,从而解决了该问题。感谢大家

关于c - 嵌入式C编程-瑞萨(Renesas),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34202664/

10-11 21:14