我正在研究一个问题,我需要从stm32w108微控制器的flash中读取和写入一些数据。我正在使用dizic mb954板,并在其上运行contiki。我尝试通过在.text部分添加一个额外的部分.flash_store来修改链接器脚本,并将(rwx)属性添加到flash中,并使用
显式声明了一个数组 __attribute__((.flash_store))
问题是虽然我可以正确读取初始化数组,但在写入时,它会回退到默认处理程序并在那里循环。
在AVR微控制器中,这很容易使用PROGMEM属性完成,stm32w108是否有类似的解决方法?
答案 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节。我认为这就是你要找的东西。
可能你会发现一些内置闪存程序的用户库。
祝你好运!