我正在瑞萨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/