如何从代码中写入stm32w108的flash存储器

时间:2014-02-26 19:12:20

标签: microcontroller stm32 contiki linker-scripts

我正在研究一个问题,我需要从stm32w108微控制器的flash中读取和写入一些数据。我正在使用dizic mb954板,并在其上运行contiki。我尝试通过在.text部分添加一个额外的部分.flash_store来修改链接器脚本,并将(rwx)属性添加到flash中,并使用

显式声明了一个数组

__attribute__((.flash_store))

问题是虽然我可以正确读取初始化数组,但在写入时,它会回退到默认处理程序并在那里循环。

在AVR微控制器中,这很容易使用PROGMEM属性完成,stm32w108是否有类似的解决方法?

1 个答案:

答案 0 :(得分:1)

我想您必须查看微控制器的用户指南并搜索闪存外设。闪存外设允许您在运行时写入闪存。您可能需要编写方法,例如:

bool flash_write(void *to, void *from, size_t size)
{
  // unlock flash access
  // erase flash
  // write the new data
  // lock flash access
}

查看http://www.st.com/st-web-ui/static/active/en/resource/technical/document/programming_manual/CD00280769.pdf处的“编程手册”,然后转到第2.2节。我认为这就是你要找的东西。

可能你会发现一些内置闪存程序的用户库。

祝你好运!