NEC Electronics (China) NEC ELECTRONICS (CHINA)
日电电子 NEC
主  页
应  用
产  品
技  术
支  持
购  买
最  新  消  息
关  于  我  们
header
产品名称搜寻
关键字搜寻
文档搜寻
参数搜寻
    网页指南  联系我们  

[CC78K0S] 通用

内容

    
FAQ-ID = CC_General-nnnn
0531: 用C描述程序时是否必须考虑2字节队列C?
0532:  如何将具有默认值变量设置为仅在ROM中参考?
0533: 如何获取C中描述的全局变量的地址?
0539: 如果执行 #pragma段命令,用PM+创建时失败
0542: 以下三个启动例程 “Normal”、 “For boot area”和 “For flash area”,应该使用哪一个?
0596: 可以创建32位的位域吗?
CC_General
-0531
用C描述程序时是否必须考虑2字节队列?
Q1
在78K0和78K0S中的汇编程序中,当使用MOVW等指令时要考虑2字节队列。
在用C描述程序时是否也有同样的要求?
A1
在用C描述程序时,不需要考虑队列,因为C编译器已对C描述的部分进行排列。

但是,必须注意,在C编译器执行队列时,下图中所示的结构之间会有差别。

(例)

	struct {
		unsigned char a;
		unsigned short b;
	}s;

-78K0- -78K0S-

这个信息对您有用吗 ?
back to top  
(2006/07)

CC_General
-0532
如何将具有默认值的变量设置为仅在ROM中参考?
Q1
如何将具有默认值的变量设置为仅在ROM中参考?
A1
定义一个常数

(例)

	const int a=0x12;  /* Placed in ROM */
	int b=0x12;        /* Placed in ROM/RAM */
变量a存于ROM中。变量b的默认值存于ROM,而变量b本身则存于RAM中。
(ROM区和RAM区都是需要的)
通过使用启动例程的ROMization处理过程,可将ROM中的默认值复制到RAM的变量中。
使用ROMization,ROM和RAM中都要有相关的存储区域。


-78K0- -78K0S- -78K4-

这个信息对您有用吗 ?
back to top  
(2006/07)

CC_General
-0533
如何获取C中描述的全局变量的地址?
Q1
如何获取C中描述的全局变量的地址?
可以列表输出吗?
A1
指定链接程序的 -KP选项
输出作为链接映射信息的全局符号列表。
该列表显示了符号的值 (变量的地址)

-78K0- -78K0S- -78K4-

这个信息对您有用吗  ?
back to top  
(2006/07)

CC_General
-0539
如果执行#pragma段命令,用PM+创建时失败
Q1
下面描述的源代码可以修改变量区域,但C编译器不会生成相应的目标代码。
因此用PM+创建时失败,应该如何操作?

        #pragma section @@DATA DATA1
        int b;
        #pragma section @@DATA @@DATA
A1
如果在用C描述主体代码之后,执行#pragma 段命令,则不会生成目标模块文件,但可以产生汇编程序源文件。 
因此,创建失败。
在设置编译器选项时,指定-SA或-A选项,用于输出汇编程序源代码文件。 
PM+在编译器执行之后启动汇编程序,这样可以生成目标文件。

-78K0- -78K0S- -78K4-

这个信息对您有用吗 ?
back to top  
(2006/07)

CC_General
-0542
以下三个启动例程 揘ormal? 揊or boot area?#21644; 揊or flash area?#65292;应该使用哪一个?
Q1
以下三个启动例程 揘ormal? 揊or boot area?#21644; 揊or flash area?#65292;
应该使用哪一个?
A1
 "Normal"用于那些没有闪存自重写功能的设备。

在引导区使用"For boot area",而在闪存区使用"For flash area" 

应按下列要求使用"For boot area"和"For flash area"。
  • For boot area
    闪存区自重写功能被使用后,要在没有被重写的引导区使用该例程。
    复位后,调用在引导区的启动例程_@cstart。
    另一个中断向量在闪存区定义了一个地址。
    在启动例程_@cstart中调用_boot_main功能,程序转向ITBLTOP,即闪存区的起始地址。

  • For flash area
    闪存区自重写功能被使用后,要在已被重写的闪存区使用该例程。
    调用闪存区的启动例程 _@cstarte,并转向ITBLTOP,即闪存区与复位向量相关的部分。
    之后,调用主程序段


复位时的操作如下所示。 RESET interrupt vector (boot area)
-> _@cstart (boot area)
-> _boot_main function (boot area)
-> ITBLTOP address (flash area)
-> _@cstarte (flash area)
-> _main function (flash area)

-78K0- -78K0S- -78K4-

这个信息对您有用吗?
back to top  
(2006/07)

CC_General
-0596
可以创建32位的位域吗?
Q1
可以创建32位的位域吗?
A1
不能。

位域是ANSI的int型的。

使用CC78Kx,位域可以扩展为char型。

-78K0- -78K0S- -78K4-

这个信息对您有用吗?
back to top  
(2006/07)

   LEGAL    最新之产品资料, 请参阅英文版
 请用Internet Explorer浏览本网站以达最佳效果。
  © 2005-2008  NEC Electronics China Limited