chenminhua 发表于 2012-11-21 09:55:43

进入RAM运行时遇到问题,两天了没找到原因 【悬赏问答】

在自己写的程序中添加低功耗
/* To reduce consumption to minimal
  Swith off the Flash */
  FLASH->CR1 = 0x08;
  while(((CLK->REGCSR)&0x80)==0x80);
上面的寄存器始终无法被赋值。造成下面的检查不能通过,有知道是上面原因吗
从调试窗口看软件已经在RAM中运行了

chenminhua 发表于 2012-11-21 18:31:20

RE:进入RAM运行时遇到问题,两天了没找到原因

实验发现可能和eeprom有关,
void main(void)
{
u8 SaveScaler=0;
while(1)
{
         PWR->CSR2 = 0x2;
      sim();
      /* To configure GPIO for reduce current. */
//      GPIO_LowPower_Config();
      /* To prepare to start counter */
//      GPIO_HIGH(CTN_GPIO_PORT,CTN_CNTEN_GPIO_PIN);
      /* To configure Low Power */
      LPR_init();
   /* CLK configuration -------------------------------------------*/   
CLK_Config();
   /* GPIO configuration -------------------------------------------*/
GPIO_Config();
//Key_Inti();
   /* TIM1 configuration -------------------------------------------*/
//TIM1_Config();
/* Enable ADC clock */
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);

DAC_Config();
DAC_DualSoftwareTriggerCmd(ENABLE);
DAC_SetChannel1Data(DAC_Align_8b_R, 200);//0
DAC_SetChannel1Data(DAC_Align_8b_R, 140);//1
DAC_SetChannel1Data(DAC_Align_8b_R, 120);//2
DAC_SetChannel1Data(DAC_Align_8b_R, 100);//3
DAC_SetChannel1Data(DAC_Align_8b_R, 80);//4
DAC_SetChannel1Data(DAC_Align_8b_R, 60);//5
DAC_SetChannel1Data(DAC_Align_8b_R, 200);//0
/* Initializes ADC */
    MCU_mV=(u16)Vdd_appli();   
    if(MCU_mV>2600)
      VccLow=FALSE;
    if(Supply_mV

zykzyk-93033 发表于 2012-11-21 20:50:28

RE:进入RAM运行时遇到问题,两天了没找到原因

读写EEPROM是需要时间的,不能这么用吧。:D

chenminhua 发表于 2012-11-21 22:46:26

RE:进入RAM运行时遇到问题,两天了没找到原因

ReadData();这是个参照例程写的初始化校验是否是新的芯片,如果是新的芯片将预定义的数据保存到eeprom,1解锁,写内容,检测是否完成,再写,再检测,直到写完,上锁,读写eerom确实很慢,所以每次写数据的时候都是先查询写入数据和已保存的是否一致,不同才写上去

chenminhua 发表于 2012-11-21 22:59:59

RE:进入RAM运行时遇到问题,两天了没找到原因

只要包含ReadData();(一个读取校对改写eeprom的程序)就无法进入flash低功耗
    有人碰到过,或者知道原因吗

发表于 2012-11-22 10:03:43

RE:进入RAM运行时遇到问题,两天了没找到原因

你看一下是不是死到ReadData()里面,死到哪一句了。

chenminhua 发表于 2012-11-22 17:33:17

RE:进入RAM运行时遇到问题,两天了没找到原因 【悬赏问答】

/* To reduce consumption to minimal
Swith off the Flash */
FLASH->CR1 = 0x08;
while(((CLK->REGCSR)&0x80)==0x80);
程序没有死,只是在ram中执行FLASH->CR1 = 0x08;(让flash进入低功耗模式,寄存器不能被置位),致使下面的校验不成功
 

xieyuanfu 发表于 2012-11-23 00:28:27

RE:进入RAM运行时遇到问题,两天了没找到原因 【悬赏问答】

楼主是在RAM里面进行调试的?你放到FLASH 去试下

chenminhua 发表于 2012-11-23 08:34:32

回复:进入RAM运行时遇到问题,两天了没找到原因 【悬赏问答】

这样肯定b不可以的呀,为了要实现低功耗,把程序拷贝并跳转到RAM执行,如果还回flash要么flash低功耗被退出,要么死在那里,应为flash被关闭了啊

xieyuanfu 发表于 2012-11-25 09:22:15

RE:进入RAM运行时遇到问题,两天了没找到原因 【悬赏问答】

你读校对完 EPPROM以后再空干一个别的事情看看 能不能行?
页: [1] 2
查看完整版本: 进入RAM运行时遇到问题,两天了没找到原因 【悬赏问答】