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

[CC78K0] 通用

内容

    
FAQ-ID = CC_General-nnnn
0531: 用C描述程序时是否必须考虑2字节队列?
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
以下三个启动例程 “Normal”, “For boot area”和 “For flash area”,应该使用哪一个?
Q1
以下三个启动例程 “Normal”, “For boot area”和 “For flash area”,
应该使用哪一个?
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