发新帖本帖赏金 50.00元(功能说明)我要提问
返回列表
打印
[开发工具]

记录MPLAB新老双IDE与C18编译器配置

[复制链接]
857|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2023-2-10 10:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 forgot 于 2023-2-10 10:53 编辑

#申请原创#

  由于电脑win7升级到win10C盘容量变小,加上很久没用PIC单片机开发项目了,将之前安装的MPLAB IDE v8.92MPLAB X IDE v4.20全部都卸载掉了,并且之前安装的MCC18编译器也卸载了,才为今天的折腾埋下伏笔。

  我的大部分PIC项目开发主要是用的PIC18,都是些七八年前开发的项目为了那个内置以太网,芯片比较老的,现在又贵又难拿货,偶尔做一点点小改动和升级,原来一直用的是MPLAB IDE v8.92+MCC18 v3.46进行开发的,但是前几年由于新出的 X IDE,为了图个新鲜,有两三个项目用的是 X IDE开发的,当时也不知道是怎么就给编译器配置好了,并且把一两个老的项目导入到这个新的 X IDE,后来也编译通过后采用 X IDE进行维护。

  为了能够重新编译所有项目,这两天重新安装了一下软件:
MPLAB IDE v8.92
MPLABX-v4.20-windows-installer
正版MCC18_V3.00
mplabc18-v3.46-windows-upgrade-installer
xc8-v2.40-full-install-windows-x64-installer
  一个一个来说,首先是为了老项目,因为之前项目那个官方以太网模块.C中写了Complier: Microchip C18 v3.10 or higher  HI-TECH PICC-18 v9.50PL3 or higher,所以安装MCC18_V3.00之后需要用mplabc18-v3.46-windows-upgrade-installer升级到V3.46。这两个都安装在了C盘,MCC18直接在C盘下的MCC18目录中,V3.46升级后在C:\Program Files (x86)\Microchip下面。到此编译器算好了,然后安装好MPLAB IDE v8.92,打开工程项目,不用说,编译肯定不行,一大堆乱七八糟的报错,折腾了很久。

  总结了3个地方:
1、项目不能放在有中文的路径下(很多人都知道,但是时间久了我自己忘记了)
2、Project->Set language Tool Location->Microchip C18 Toolsuite->Executables中的都选择
C:\Program Files (x86)\Microchip下面的V3.46的版本,不要选择MCC18中的版本。但是Default Search Paths & Directories中我还是选的MCC18下面的。可能跟我下面一步设置有关。
3、Project->build options->Directories,include search patch除了添加自己写的.h路径,还要添加C:\MCC18\h和C:\Program Files (x86)\Microchip\mplabc18\v3.46\h,lib也一样,添加两个。

  到此,老工程可以编译了。(IDE V8.92+MCC18 V3.46)
失败:

成功:

  新工程咋办,安装了MPLAB X IDE v4.20之后,看了一下说是匹配XC8,所以安装了上面的xc8-v2.40,最新的版本,后面折腾了很久编译就是不行,乱七八糟的错。然后就想办法回想之前是用的什么编译器,通过了解知道在原来工程下面的nbproject\private中的configurations.xml是有写之前的编译器版本的,一看傻眼了,也是V3.46。里面是这样写的:
<languageToolchainDir>C:\Program Files (x86)\Microchip\mplabc18\v3.46\bin</languageToolchainDir>

  然后就卸载XC8,也总结了3个地方:
1、在project properties中选择c18(V3.46),Tool->Options中Build Tools中也选择这个。
2、project properties->C18(global options)->mcc18->include directories中添加.h目录,包括编译器的和自己的一些.h目录。
3、project properties->Building中勾选execute this line before build和execute this line after build,包括Normalize hex file。不然好像不生成hex。

  到此,新工程可以编译了。(XIDE V4.20+MCC18 V3.46)
成功:

  其他记录:新工程编译的时候期间遇到过什么兼容模式非兼容模式的问题,可能跟project properties->C18(global options)中我勾选过enable  extened  instruction set有关,也懒得去验证了,留个个错误显示说明:

MPLINK 4.48, Linker
Device Database Version 1.13
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - mixing extended and non-extended mode modules not allowed.
Errors    : 1

  配置图我多截取几个防止下次还遇到类似的问题。也希望能帮助到其他朋友。
配置

配置

配置

配置

  也希望能帮助到其他朋友。

使用特权

评论回复

打赏榜单

21ic小管家 打赏了 50.00 元 2023-03-13
理由:签约作者奖励

发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1762

主题

13158

帖子

55

粉丝