读写7188 flash Memory的问题 点击:905 | 回复:2



TopSpeed

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 24回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2003年8月29日
发表于:2004-10-09 20:54:00
楼主
我想用7188保存从7000系列中读到的数据,等到上位机需要时在发指令将其调出。但我看到7188例程中的对Flash Memory的操作要以个字节一个字节地写入,有没有更简便的方法读写7188的Flash Memory?因为我要保存读取数据的日期、时间和信号的值每条记录大约要用20个字节,是不是每个字节都要象读写单片机的内存一样逐个寻址?



MiniOS7_2.0

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2004年4月23日
发表于:2004-10-11 11:00:00
1楼
寫入 DATA 到 FLASH 是以 byte 為單位。 如果要一次寫入較多 bytes,那就是自行寫一個副程式,把你所需要寫入的資料定義成一個 struct,在這個副程式裡頭把整個 struct 的內容逐一寫入 flash 裡頭。這樣會比較方便使用。 struct A { ... }; void WriteData(unsigned segment,unsigned offset,struct A *data) { int i; unsigned char *wdata=(unsigned char *)data; for(i=0;i<sizeof(struct A);i++){ FlashWrite(segment,offset+i,*wdata++); } } 注意事項:寫入的 flash 位址,需要先 erase 才不會寫入錯誤。 FLASH 寫入有次數限制,需考慮系統寫入的頻率以及系統的使用壽命。

TopSpeed

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 24回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2003年8月29日
发表于:2004-10-11 12:19:00
2楼
谢谢,我明白了。

热门招聘
相关主题

官方公众号

智造工程师