查看: 3663|回复: 9

[CodeWarrior] 软件CW10.5,芯片MC9S08PT16,BDM在线跑程序正常,直接供电出错

[复制链接]

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
31
最后登录
2015-9-1
发表于 2015-8-11 10:28:07 | 显示全部楼层 |阅读模式
在线BDM跑程序时,硬件输出完全正常,但是拔掉BDM直接供电,用IO口测试,用示波器观察发现程序一直处于不断复位中,本人外部复位引脚已禁止,绝对不是硬件原因,后觉得是不是下载方式不对,后使用工具栏上的下载图标直接下载,且file to flash 选的是工程文件夹flash文件夹下的.abs文件,结果erase and program时报错如下:Beginning Operation ...    -------------------------
Auto-detection is successful.   
  File is of type Elf Format.   

Performing target initialization ...   
Device MC9S08PT16_FLASH   
Detect frequence ...   
Frequence 8400.81 Khz   
Erasing .........
Error:  Erase Command Failed.  Operation timeout. Security area should not be programmed with a value that leads to irreversible secure
. Protect violation error. Error in command sequence.
Device MC9S08PT16_FLASH   
An invalid preference was passed to the GDI protocol plugin(HC/RS/S12Z GDI Protocol Adapter)
Error: Erase Command Failed.Operation timeout. Security area should not be programmed with a value that leads to irreversible secu
re
. Protect violation error. Error in command sequence.

望各位大神帮忙解决下啊,实在不知道哪错了,而且目前调试程序很简单,就是IO口输出1

我知道答案 目前已有9人回答

评分

参与人数 1NXP金币 +3 收起 理由
小七 + 3

查看全部评分

回复

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
31
最后登录
2015-9-1
 楼主| 发表于 2015-8-11 10:44:52 | 显示全部楼层
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include "mc9s08pt16.h"
#include "gpio.h"

unsigned int i;

void init_system(void)        /* 配置系统时钟 */
{       

        PMC_SPMSC1=0x5C;        //Force an MCU reset when an enabled low-voltage detect event occurs.
        PMC_SPMSC2=0x00;
       
        SYS_SRS=0x82;        //POR caused reset.Reset caused by LVD trip or POR.
        SYS_SOPT1=0x88;        //SCI0 RxD and TxD are mapped on PTA2 and PTA3.PTA4/ACMPO/BKGD/MS as BKGD function.PTA5/IRQ/TCLK0/RESET pin functions as PTA5, IRQ, or TCLK0.
        ICS_OSCSC=0x94; //使用外部振荡器时钟
        while (!ICS_OSCSC_OSCINIT) {} //等待外部参考时钟稳定
        ICS_C1=ICS_C1_CLKS1_MASK | ICS_C1_RDIV1_MASK |ICS_C1_RDIV0_MASK;        //选择外部时钟控制总线频率,晶振频率8M
        ICS_C2=0x20;        //2分频,总线频率4M

}

void initgpio(void);
void init_timer(void);

void main(void)
{
        DisableInterrupts;        /*置位中断屏蔽标志位*/
        WDOG_CS1=0;
        initgpio();        //调试时用的gpio口
       
        init_system();
        led0=1;
        led2=1;
        for( i=0; i<100;i++) /* 延时一段时间 */
                  {
                    asm ("NOP");
                  }
        led1=1;

        EnableInterrupts;        /*清除中断屏蔽标志位*/
//        init_timer();
        while(1)
        {       
       
       
        }
       
       
  /* include your code here */
       
       

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

interrupt VectorNumber_Vmtim0 void TIMER_isr(void)
{
        if(MTIM0_SC_TOF==1)
                MTIM0_MOD=0xff;
//        i++;
//        if(i>=1000)
        //        led1=1;
        led1=~led1;
                for(i=0; i<1;i++) // 延时一段时间
                                  {
                                    asm ("NOP");
                                  }
}

* GPIO.c
*
*  Created on: Jul 28, 2015
*      Author: Administrator
*/
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include "mc9s08pt16.h"
//#include <tsi.h>
#include "gpio.h"


void initgpio(void)
{
        PORT_PTAOE|= PORT_PTAOE_PTAOE0_MASK | PORT_PTAOE_PTAOE1_MASK | PORT_PTAOE_PTAOE5_MASK;
        PORT_PTAPE|= PORT_PTAPE_PTAPE0_MASK | PORT_PTAPE_PTAPE1_MASK | PORT_PTAPE_PTAPE5_MASK;
        PORT_PTBOE|= PORT_PTBOE_PTBOE5_MASK;
        PORT_PTBPE|= PORT_PTBPE_PTBPE5_MASK;
//        led0=0;
        //led1=0;
}

以上是我的主程序
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
31
最后登录
2015-9-1
 楼主| 发表于 2015-8-11 11:04:32 | 显示全部楼层
* GPIO.h
*
*  Created on: Jul 28, 2015
*      Author: Administrator
*/

#ifndef GPIO_H_
#define GPIO_H_

#include "mc9s08pt16.h"
#include "derivative.h"
//#include "tsi.h"

#define led1        PORT_PTAD_PTAD0
#define led0        PORT_PTBD_PTBD5
#define led2        PORT_PTAD_PTAD5

#endif /* GPIO_H_ */
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
31
最后登录
2015-9-1
 楼主| 发表于 2015-8-20 16:19:09 | 显示全部楼层
问题已解决额,是因为我用的这个片子,若不用看门狗,软件上要禁止,
void main(void)
{
        DisableInterrupts;        /*置位中断屏蔽标志位*/
       
        WDOG_CNT = 0xC520; // write the 1st unlock word
        WDOG_CNT = 0xD928; // write the 2nd unlock word
        WDOG_CS1=0x20;        //Disable WDOG and allow updates
        WDOG_CS2=0;
        WDOG_TOVALH=0xff;


        WDOG_TOVALL=0xff;
        WDOG_WINH=0;
        WDOG_WINL=0;
               
        init_system();
        initgpio();        //调试时用的gpio口
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
31
最后登录
2015-9-1
 楼主| 发表于 2015-8-20 16:27:25 | 显示全部楼层
烧写程序时直接用debug就能烧写到片子了,但是之前我问别人,别人说那个闪电图标的program file to flash也能下载,但是我用那个下载还是下载失败,不知道为什么,但是主要应用问题已解决。若大家知道CW10.X闪电图标下载那个问题,欢迎帮我解答,谢谢啊
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

42

帖子

0

注册会员

Rank: 2

积分
100
最后登录
2018-4-11
发表于 2015-8-26 16:56:17 | 显示全部楼层
绑定了
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-8-27 09:53:02 | 显示全部楼层
jinguoguojin 发表于 2015-8-20 16:27
烧写程序时直接用debug就能烧写到片子了,但是之前我问别人,别人说那个闪电图标的program file to flash也 ...

点击闪电下拉,选择flash file to Target
然后connection选择为你的工程,edit里面选择下载器。
file里面点击browse 选择你生成好的srec文件。
最后,你就可以点击erase and program.
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
31
最后登录
2015-9-1
 楼主| 发表于 2015-9-1 09:11:27 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-27 09:53
点击闪电下拉,选择flash file to Target
然后connection选择为你的工程,edit里面选择下载器。
file里面 ...

用的是你讲的步骤,但是不行,我片子用的是MC9S08PT16,生成的文件是.abs
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
31
最后登录
2015-9-1
 楼主| 发表于 2015-9-1 09:15:29 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-27 09:53
点击闪电下拉,选择flash file to Target
然后connection选择为你的工程,edit里面选择下载器。
file里面 ...

用的是你讲的步骤,但是不行,我片子用的是MC9S08PT16,生成的文件是.abs,然后browse .abs,最后erase and program,失败。然后我又试试browse .abs.s19,结果还是失败
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-9-1 09:17:36 | 显示全部楼层
jinguoguojin 发表于 2015-9-1 09:11
用的是你讲的步骤,但是不行,我片子用的是MC9S08PT16,生成的文件是.abs

好的,待会帮你转给我们的8位CW工程师,他会帮你解答,还请耐心等待下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-26 09:35 , Processed in 0.162206 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表