打印

请教关于PIC18F的RAM分组问题

[复制链接]
3174|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
soso|  楼主 | 2008-10-8 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的型号为PIC18F4620,出现如下现象:

 1. 当定义变量较少时,可以编译通过。

 2. 当定义变量较多时,编译通不过,提示如下:
     Error-section'.udata_main.o' can not fit the section. section'.udata_main.o' length=0x00000141

 3. 我把变量分为两部分分别定义,如下:
    #pragma idata gpr1
      定义第一部分变量
    #pragma idata 

   #pragma idata gpr2
      定义第二部分变量
    #pragma idata 

结果编译提示还是如2所示,请大虾指点一下。

沙发
soso|  楼主 | 2008-10-9 10:45 | 只看该作者

使用的是mcc18编译器

是不是pragma 用的不对

使用特权

评论回复
板凳
su_mj000| | 2008-10-9 12:15 | 只看该作者

PIC18Fxxxx系列的结构有较大改进,...

比较PIC16系列而言,PIC18系列的结构及指令系统有较大改进。我觉得
编译器也应该作相应的改进,让使用更方便、简洁。以内存分页问题而言,
PIC18编译器可以取消让用户对内存的bank的定位说明,而由编译/连接器自动定
位。而这样做的结果,编码效率基本不会受什么影响。反而可以避免一些不必要的
麻烦和问题(如数组长度超过一个页面的处理等)。

PIC16/PIC18真是让人又爱又恨。

使用特权

评论回复
地板
soso|  楼主 | 2008-10-10 13:12 | 只看该作者

把idata改成udata就可以编译通过

我把:  #pragma idata gpr1
      定义第一部分变量
      #pragma idata 

    #pragma idata gpr2
      定义第二部分变量
     #pragma idata
改成:
    #pragma idata gpr1
      定义第一部分变量
      #pragma idata 

    #pragma udata gpr2
      定义第二部分变量
     #pragma udata
就可以编译通过,不知RAM分组和变量类型有什么关系。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

0

帖子

1

粉丝