lusson 发表于 2009-3-2 18:11:28

IAR FOR NEC工程选项设置时是否需要些特别的设置

用的78F0513,用的Applilet生成向导生成一段初始化代码,时钟使用内部8M的。就想点亮板上的一个LED也点不起来。
程序如下:

#defineMEMORY_IMS_SET                0xC8
#defineMEMORY_IXS_SET                0x0C

void main( void )
{
// UCHAR i;
SystemInit();
POWER_LED_ON;
while( 1 )
{
   
}
}

void SystemInit( void )
{
        /* Clock generator initiate */
        Clock_Init();
      IMS = MEMORY_IMS_SET;
      IXS = MEMORY_IXS_SET;         
        /* Port initiate */   
        PORT_Init();
}

void Clock_Init( void )
{
ClrIORBit(MCM, 0x05);                        /* High-Ring-OSC operate for CPU */
                  
SetIORBit(MCM, 0x01);                        /* peripheral hardware clock:frh */
ClrIORBit(OSCCTL, 0x10);
SetIORBit(MOC, 0x80);                        /* stop X1 clock */
PCC = CG_CPU_CLOCKSEL;
}

LED接在P41上,初始化成输出(PM4=0XFC)
但灯都不亮,不知道什么原因
是否工程文件的选项有些设置需要更改的?我基本上用的默认设置。

yewuyi 发表于 2009-3-2 20:33:02

保护字等没有配置

lusson 发表于 2009-3-3 08:47:48

第一次使用NEC,其他人都是用的PM,不想用那玩意。因为接下来ARM什么的也想用IAR
      IMS = MEMORY_IMS_SET;
      IXS = MEMORY_IXS_SET;
这个不是保护字吗?保护字应该怎么写。

lusson 发表于 2009-3-3 09:06:53

#pragma constseg=OPTBYTE
__root unsigned char
ucOptionBytes={0x00,0x00,0x00,0x00,0x00};
#pragma constseg=default

增加了这些。还是不行。

korren 发表于 2009-3-3 09:45:57

这样试试
#pragma location = "OPTBYTE"
__root const unsigned char option_bytes[]={0x00,0x00,0x00,0x00,0x00};

lusson 发表于 2009-3-3 10:21:31

还是不行。

lusson 发表于 2009-3-3 10:49:33

谁有没有例程啊,发个来看一下。我的是
IAR Assembler for NEC 78K0 and 78K0S
V4.40A (4.40.1.3)

lusson 发表于 2009-3-3 11:26:27

已经可以了,按照上面这些就行了
问题出在我没有把MINI-CUBE2拔下来,拔下来程序就运行起来了。

lusson 发表于 2009-3-3 11:29:01

还有一个问题,QB-Programmer在烧写程序的时候,如果IAR有重新编绎,需要重新打开文件。

sophie0403 发表于 2009-3-3 13:08:58

QB-Programmer是这样的,最好编译好了后,重新打开hex文件
页: [1]
查看完整版本: IAR FOR NEC工程选项设置时是否需要些特别的设置