请教关于PIC18F的RAM分组问题

[复制链接]
3694|3
 楼主| soso 发表于 2008-10-8 17:26 | 显示全部楼层 |阅读模式
我使用的型号为PIC18F4620,出现如下现象:<br /><br />&nbsp;1.&nbsp;当定义变量较少时,可以编译通过。<br /><br />&nbsp;2.&nbsp;当定义变量较多时,编译通不过,提示如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error-section'.udata_main.o'&nbsp;can&nbsp;not&nbsp;fit&nbsp;the&nbsp;section.&nbsp;section'.udata_main.o'&nbsp;length=0x00000141<br /><br />&nbsp;3.&nbsp;我把变量分为两部分分别定义,如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;gpr1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义第一部分变量<br />&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;gpr2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义第二部分变量<br />&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;<br /><br />结果编译提示还是如2所示,请大虾指点一下。<br /><br />
 楼主| soso 发表于 2008-10-9 10:45 | 显示全部楼层

使用的是mcc18编译器

是不是pragma&nbsp;用的不对
su_mj000 发表于 2008-10-9 12:15 | 显示全部楼层

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

比较PIC16系列而言,PIC18系列的结构及指令系统有较大改进。我觉得<br />编译器也应该作相应的改进,让使用更方便、简洁。以内存分页问题而言,<br />PIC18编译器可以取消让用户对内存的bank的定位说明,而由编译/连接器自动定<br />位。而这样做的结果,编码效率基本不会受什么影响。反而可以避免一些不必要的<br />麻烦和问题(如数组长度超过一个页面的处理等)。<br /><br />PIC16/PIC18真是让人又爱又恨。<br />
 楼主| soso 发表于 2008-10-10 13:12 | 显示全部楼层

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

我把:&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;gpr1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义第一部分变量<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;gpr2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义第二部分变量<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata<br />改成:<br />&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;gpr1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义第一部分变量<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;idata&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;udata&nbsp;gpr2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义第二部分变量<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;udata<br />就可以编译通过,不知RAM分组和变量类型有什么关系。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

0

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部