本帖最后由 forgot 于 2023-2-10 10:53 编辑
#申请原创#
由于电脑win7升级到win10和C盘容量变小,加上很久没用PIC单片机开发项目了,将之前安装的MPLAB IDE v8.92与MPLAB 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
配置图我多截取几个防止下次还遇到类似的问题。也希望能帮助到其他朋友。 配置
配置
配置
配置
也希望能帮助到其他朋友。
|