首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MC9S08 flash的存取

MC9S08 flash的存取

我新建了一个工程,对其start08.c及project.prm没有做什么改动,现将Z-STACK中的


OSAL_Memory.h&OSAL_Memory.c


OSAL_Nv.h&OSAL_NV.c


移植到我的工程中,


main.c中的程序如下


void main(void) {


  /* Uncomment this function call after using Device Initialization
     to use the generated code */
  /* MCU_init(); */


 // EnableInterrupts; /* enable interrupts */
  
  
     // Setup the FLASH Clock Divider Register (FCDIV)
  FCDIV = 0x4a;  // Setup for 16 MHz busclock
  osal_mem_init();
  data=0;
  osal_nv_item_init(2,sizeof(UINT16),&data);
  data=9;
  osal_nv_write(2,0,sizeof(UINT16),&data);


   for(;;) {
    __RESET_WATCHDOG(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave this function */
}


当我执行到osal_nv_write()中的 osal_ErasePage( *pPage ); 时,便出错,被告知ILLEGAL_BP,


我不晓得该怎么办也!!!

OSAL和底层的设置紧密相关,如此简单的移植并不容易的
你需要对flash操作的话可以看看AN2140应用笔记和其中的源代码
还可以用CWV 3.1中的PE生成对flash操作的C语言代码
谢谢!我去试试!

搞得晕头转向,而又没有成果.
其实我只是想将flash的部分存储空间当成EEPROM用,对flash操作有WRITE和ERASE两种操作,每次执行这两函数,需将其装载到RAM中执行。

感觉上OSAL_Memory.h&OSAL_Memory.c负责的是如何将WRITE和READ函数调入到RAM中,所以看上去似乎并不复杂也.我都能成功执行WRITE操作了,但为什么我执行到ERASE的时候,总是说ILLEGAL_BP.

我不会改写的是起动代码和配置文件,我也不知到有没有资料对其进行说明的。


不晓得哪位仁兄有针对于MC9S08GT60的FLASH操作(模拟成EEPROM),只需要能成功进行WRITE,ERASE即可.
另外,seuafu2005,您说的CWV 3.1中的PE是什么?
搞了好久了,都想哭了,555...

[此贴子已经被作者于2006-5-5 15:23:37编辑过]

呵呵,问题找到了,是我在新建的project中,初始化时没有关闭看门狗造成的。时间来不及了,所以每次都出现ILLEGAL_BP。
只是对起动代码和配置文件有没有比较清楚的说明?
返回列表