zhouyuejun33 发表于 2010-2-26 11:05:07

关于NEC在自编程中:不知道如何进行内部扩展的自动分配

关于NEC在自编程中:不知道如何进行内部扩展的自动分配
一般程序的做法是:
C语言中:
> #pragma section @@DATA DATA1
> unsigned char extbuf;
> unsigned char tmp;
> 在链接文件 lk.dr中定义:
> merge DATA1 := IXRAM
> 注:IXRAM为编译器定义的内部扩展RAM区,无需客户再定义。
>    其中DATA为无初值的数据段;DATA1为用户定义的段名,可以更改名称。
>
> 通过以上定义,便可以将变量定义到扩展RAM中。
>
> 扩展(1):
> 若要定义到扩展RAM的某一特定地址处
> merge DATA1 : AT (0E500H)= IXRAM
>
> 扩展(2):
> 如果不使用链接文件指定存储区域,也可在C程序中使用#pragma指令直接指定地址。
> #pragma section @@DATA DATA2 AT 0xE200
> unsigned char tmp3;                                     /*at 0xe200,no initial value */
>
> 但定义到扩展RAM处的数据,即使定义成@@INIT(带初值),启动文件执行后仍无初值,需要在初始化时重新赋值,如:
> #pragma section @@INIT DATA3 AT 0xE100
> unsigned char tmp1 = 8;                        /*at 0xe100,but no initial value*/

FREEXP 发表于 2010-3-24 21:26:51

先在C中申请一个空间的ROM,再绝对定位,就可以了
页: [1]
查看完整版本: 关于NEC在自编程中:不知道如何进行内部扩展的自动分配