Board logo

标题: MC9S08 flash的存取 [打印本页]

作者: soundsilly    时间: 2006-4-29 19:41     标题: 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,


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


作者: seuafu2005    时间: 2006-5-2 09:32

OSAL和底层的设置紧密相关,如此简单的移植并不容易的
你需要对flash操作的话可以看看AN2140应用笔记和其中的源代码
还可以用CWV 3.1中的PE生成对flash操作的C语言代码
作者: soundsilly    时间: 2006-5-5 08:24

谢谢!我去试试!
作者: soundsilly    时间: 2006-5-5 15:23

搞得晕头转向,而又没有成果.
其实我只是想将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编辑过]


作者: soundsilly    时间: 2006-5-5 15:48

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




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0