找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17|回复: 0

mplab c18编译器

[复制链接]

32万

主题

0

回帖

96万

积分

超级版主

积分
964681
发表于 2025-3-14 11:21:04 | 显示全部楼层 |阅读模式
软件标签:  mplabc18   编译器
mplab c18是一款c语言编辑器,可以对microchip器件进行编辑,简单高效的编程工具,欢迎大家在绿色资源网免费下载!
mplab c18编辑器介绍
mplab c18编译器不仅保留已有编译器的所有功能,而且可以只使用一个系统对所有microchip器件进行编程。它还可以与mplab x ide和所有microchip其他开发工具配合使用——是microchip功能最齐全的编译器。
pic c18编译器 错误can not fit the section. 解决方法
解决方法一为:

1、打开18f452.lkr

其关于ram分配的为

accessbank name=accessram ?start=0x0 end=0x7f

databank ? name=gpr0 ? start=0x80 ? end=0xff

databank ? name=gpr1 ? start=0x100 ?end=0x1ff

databank ? name=gpr2 ? start=0x200 ?end=0x2ff

databank ? name=gpr3 ? start=0x300 ?end=0x3ff

databank ? name=gpr4 ? start=0x400 ?end=0x4ff

databank ? name=gpr5 ? start=0x500 ?end=0x5ff

accessbank name=accesssfr ?start=0xf80 ?end=0xfff ?protected

sectionname=config rom=config

stack size=0x100 ram=gpr5

2、将其中gpr0范围改为start=0x80 ?end=0x4ff

如下:

databank ? name=gpr0 ? start=0x80 ? end=0x4ff

其余屏蔽即可。gpr5为堆栈地址,不作休改。

3、重新编译,ok——





方法二: 自己创建一个数组区域存放大数组 (可以参考18f452.lkr文件里面的分页情况)

对于 mplab c18 编译器,数据可以放入数据存储器或者程序存储器。如果没有用户

提供的附加代码,片内程序存储器中的数据只能读不能写。如果没有用户提供的附加

代码,片外程序存储器中的数据一般是只能读或者只能写。

例如,下面的语句为静态分配的未初始化数据 (udata)声明了一个位于绝对地址

0x120的段:

#pragma udata my_new_data_section=0x120

rom 关键字告知编译器应该将变量放入程序存储器。编译器会把这个变量分配到当前

的 romdata ?型段。例如:

#pragma romdata const_table

const rom char my_const_array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

/* resume allocation of romdata into the default section */

#pragma romdata

链接器强制将 romdata段放入程序存储区,将 udata和 idata段放入数据存储区;

然而,数据段也可以位于指定的存储区。可以使用链接器描述文件中的 section 伪

指令把一个段分配到一个特定的存储区。

方法三:将数据定义到rom当中 (rom不分页)




aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ziyuan80.com

GMT+8, 2025-8-17 13:26 , Processed in 0.072760 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表