完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
再次问好,我相信这是一个简单的,我只是无法解决它。它与之前的一篇文章有关,试图建立一个.HEX文件来匹配我们在生产中使用的相同的源文件,但不知道编译器的版本等等。我正在从文件和2005的MPLAB项目中创建一个“干净”的项目。我注意到,与原始项目.LST文件相比,我的.LST文件有些不同。我想我已经明白了。我碰巧在想为什么我的项目没有创建.LST文件,决定去命令行,运行MP2COD程序。突然,通过创建LST文件的一部分,一个盒子出现了,并且说它不能访问“E:”。起初,我是这样的,我没有E:驱动器,然后我意识到我的DVD驱动器是我的E:驱动器…但是那里没有磁盘,我没有理由把我的任何构建文件指向我的DVD驱动器。非常奇怪…所以我进入了我最喜欢的搜索程序,在整个项目目录中搜索了一个包含E:\的文件内容。我有一连串的打击。主要是在.map文件中。我发现这是一个来自MPLAB 8.92的设置问题,但是对于我的生活,我找不到任何文件中的任何设置或引用到E:。我查看了我的LKR文件,认为可能有一个条目,但没有。所有这些引用都在.map文件中。指向这个目录,或者类似的。有人知道这是什么设置吗?我在哪里改变它?我也检查了我的路径,这里没有ETO的条目:谢谢。
以上来自于百度翻译 以下为原文 Hello again, I'm sure that this one is an easy one, I just can't seem to figure it out. It is related to an earlier post here about trying to build a .hex file to match the one we're using in production using the same source files, but not knowing the version of the compiler, etc.. I am building a 'clean' project from files and a MPLAB project made in 2005. I had noticed that something was different about my .lst file compared to the original project .lst file. And, I think I've figured it out. I happened to be looking into why my project was not creating a .lst file and decided to go to the command line and run the mp2cod program there. Suddenly, part way through the creation of the .lst file, a box shows up and says that it can't access "E:". At first, I was like, I have no E: drive, then I realized that my DVD drive is my E: drive... but there's no disk in there, and I have no reason to have been pointing any of my build files to my DVD drive. Very strange... So I went into my favorite search program and searched the entire project directory for a file content containing E:. I had a whole bunch of hits. Mainly in the .map file. I figured that this was a setting problem from within MPLAB 8.92, but for the life of me, I can't find any setting or reference in any file to E:. I looked in my .lkr file thinking that maybe there was an entry there, but nothing. All of these references in the .map file seem to be pointing to this directory, or similar. D100_1 0x00c30c program static E:c18v3.46pic18-ltcxx-frameworksrctraditionaldelaysd100tcyx.asm Does anyone have any idea _how_ this got setup, and where I change it? I did, also, check my PATH and there's not entries there to E:. Thanks, |
|
相关推荐
3个回答
|
|
这看起来像是当Microchip为C18编译器构建库文件时使用的路径。这些路径嵌入库对象模块调试信息中,并出现在.map文件中,以显示当IDE在调试中通过代码时,在哪里找到库源代码的ICD工具。好消息是,如果你从构建中得到.map文件,你试图匹配这个路径,包含用于构建的C18编译器的版本。可以使十六进制文件匹配,但是它可能非常棘手。第一件事是让Objo文件以与原始项目相同的顺序链接。如果开发人员重新构建了PIC18库,而没有这些库,则可能永远无法使HEX文件精确匹配。只希望他们使用的是C18版本的图书馆。你可以在Cicrochip网站上的工具存档中找到几乎所有版本的C18微芯片版本。E有点棘手,取决于你的C18版本有多旧。C18的安装程序甚至会污染路径环境变量,即使告诉安装程序不要在路径中放置东西。
以上来自于百度翻译 以下为原文 This looks like the path used when Microchip built the library files for the C18 compiler. The paths are embedded in the library object modules debug information and appear in the .MAP file to show the ICD tool where to find the library source code when the IDE is stepping through your code in debug mode. The good news is that if you have the .MAP file from the build you are trying to match this path contains the version of the C18 compiler used for that build. It is possible to get the hex files to match but it can be very tricky. The first thing is to get the OBJ files to link in the same order as the original project. If the developer re-built the PIC18 libraries and you do not have them you may never be able to get the hex files to match exactly. Just hope they used the libraries distributed with that version of C18. You can find almost all of the versions of C18 Microchip ever released in tools archive on the Microchip web site. Getting the license version of C18 installed correctly on a version of Windows later than XP is possible but can be a bit tricky depending on how old your licensed version of C18 is. The installers for C18 tend to pollute the PATH environment variable even when to tell the installer not to put stuff in the PATH. |
|
|
|
如果我理解正确的话,你是说这些对E:与实际构建无关(文件的发现和利用不只是从E):这只是一个信息,如果我正在执行代码,即使我正在构建一个版本,调试器会去哪里?如果是这样的话,我就有点安慰了。我担心这些文件不会被发现,因此会导致构建的问题。是的,我试图匹配的.map文件是指c:MCC18\,它在2005中可以是编译器的任意版本。这将是一个“NoOB”问题,但是如何确保THOB?E对象以相同的顺序链接?顺便说一句,我注意到,在原始文件的.LST文件中,引用了C018IZ.C和其他来自C:MCC18SRCStutest\目录的引用。这些都没有出现在我的LST文件中。我们的C18许可证已经相当旧了。我想它是用V2.3装运的。谢谢你提供的信息。
以上来自于百度翻译 以下为原文 If I understand correctly, you're saying that these references to E:... having nothing to do with the actual build (the files _were_ found and utilized just not from E:) this is just information on where the debugger will go if I'm stepping through code even though I'm building a Release? If that's the case I'm somewhat comforted. I was concerned that these files wouldn't be found and therefore cause a problem with the build. Yes, the .map file I'm trying to match refers to C:mcc18, which, back in 2005, could have been any number of versions of compiler. This is going to be a 'noob' question, but how would one ensure that the objects were linked in the same order? As an aside, I noticed in the .lst file from the original build there are references to the c018iz.c and others from the C:mcc18srcstartup directory. These do not appear in my .lst files from my attempts. Our license for C18 is pretty old. I think it shipped with v2.3. Thank you for the information. |
|
|
|
不,它不能是任何版本,您知道C18版本使用的是3.46,因为这是在库源代码文件路径中的版本。Objo文件以与MCP文件中列出的相同顺序链接。注意,文件是按字母顺序在IDE中显示的,而MCP中的顺序是文件添加到MPLAB项目的顺序。如果没有原始的MCP文件,它会有点冗长乏味,使链接顺序正确。“C018I.C”是C运行时间(CRT)初始化代码。对于特定的PIC18F设备,您已选定为目标。有三个CRT文件可用,其中一个链接取决于MPLAB项目文件中选择的初始化选项。使用“C018I.C”文件意味着将初始化全局和本地静态变量的选项,在“主()”函数被命名之前,未初始化的数据将被设置为零。重新安装C18版本3.46仅从C18 V2.3许可媒体开始即可。由于安装程序可能无法在现代Windows操作系统上正确运行。我自己从来没有这样做过,但我似乎记得这是一个多步骤的过程。不是所有的C18安装程序都可以从Microchip存档中知道如何将C18 V2.x许可证转移到C18 V3.x安装。您可能需要安装C18 V2.3,然后安装C18 V3.0,然后安装C18 V3.46,所以希望您不需要重新安装C18。
以上来自于百度翻译 以下为原文 No it cannot be any version, you know that the C18 version used is 3.46 because that is the version in the path to the library source code file. The OBJ files are linked in the same order as listed in the MCP file. Note that the files are shown in the IDE in alphabetical order while the order in the MCP is the order the files were added to the MPLAB project. If you do not have the original MCP file it can get a bit tedious to get the link order correct. The "c018iz.c" is the C Run Time (CRT) initialization code for the specific PIC18F device you have selected as your target. There are three of these CRT files available, the one that is linked in depends on what initialization options are selected in the MPLAB project file. That the "c018iz.c" file is used means that the options to initialize global and local static variables will be performed and the uninitialized data will be set to zero on reset before the "main()" function is called. Re-installing C18 version 3.46 starting with only C18 v2.3 licensed media can be very tricky as the installer may not run correctly on a modern Windows OS. I have never done this myself but I seem to recall that it was a multiple step process. Not all of the C18 installers available from the Microchip archive know how to transfer a C18 v2.x license to a C18 v3.x installation. You may need to install C18 v2.3, then install C18 v3.0 then install C18 V3.46 so lets hope you do not need to re-install C18. |
|
|
|
只有小组成员才能发言,加入小组>>
5189 浏览 9 评论
2009 浏览 8 评论
1933 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3181 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2232 浏览 5 评论
746浏览 1评论
632浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
517浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
644浏览 0评论
544浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 05:42 , Processed in 1.275594 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号