完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在更新一个工作项目。我修改了一个源/头模块,现在我不能编译链接,我得到的错误是重复的所有其他中断我使用。在某个时候它停止,因为太多的错误和回报255.如何声明ISR:旧项目编译良好。中断中的代码不会使错误消失,所以我不知道如何进行。我改变了:四个函数被改变了(它们也被称为中断内。C文件)其中两个使用Re因数更名。另外两个在定义和实现中都有参数名称和类型的改变。但是,再次评论ISRS内部的一切并不会使错误消失。使用MPLABX 3.50,XC16 1.30 O0
以上来自于百度翻译 以下为原文 I am updating a working project. I modified one source/header module and now i can't compile during linking, the error i get is build/default/production/interrupts.o(.isr.text+0x0): In function `_T1Interrupt': C:LavoroHARDWARE350.950FIRMWARE350.950.V1.6/interrupts.c:24: multiple definition of `__T1Interrupt' build/default/production/main.o(.isr.text+0x0):C:LavoroHARDWARE350.950FIRMWARE350.950.V1.6/interrupts.c:24: first defined here repeat for all other interrupts i'm using. at some point it stops because too many errors and returns 255. how an ISR is declared: void __attribute__((interrupt, no_auto_psv,shadow)) _T1Interrupt() The old project compiles just fine.Commenting the code inside the interrupts doesn't make the errors go away so i'm not sure how to proceed. what i changed: four functions were changed (they are also called inside the interrupt.c file) two of them were renamed using refactor. the other two had the parameters names and types changed in the definition and in the implementation. but, again, commenting everything inside the ISRs doesn't make the errors go away. Using MPLABX 3.50, XC16 1.30 -O0 |
|
相关推荐
10个回答
|
|
检查每个文件的“包含”部分。您可能意外地键入[包含“中断.c”],实际上您想做的地方[包括“中断.h”]。
以上来自于百度翻译 以下为原文 Check the "include" part of every file. You may accidentally typed [include "interrupt.c"] where actually you want to do [include "interrupt.h"]. |
|
|
|
我没有中断。我有一个普通的包含文件,里面包含了& lt;xc.h & gt;还有其他文件的包含文件,它们有自己的函数或定义,它不包括中断。今天我将从旧项目重新开始,在TI上做一个小的改变。我来确定错误在哪里
以上来自于百度翻译 以下为原文 i don't have interrupt.h i have a general include file that inside of it it includes obviously, it doesn't include interrupt.c today i'll start again from the old project and make one small change at a time to determine where the error is |
|
|
|
@Jack_M:最好通过逐步更改来检查您的程序,因为这种错误出现在大多数错误的“.c”包含场景中。祝好运。
以上来自于百度翻译 以下为原文 @Jack_M : better check your program by changing step by step because such error occurs in most of the scenario of wrongly '.c' inclusion. gud luck.... |
|
|
|
已经说过了,没有这样的事情。我发现了问题的原因。一旦我在一个特定的C文件中声明了一个特定的外部变量,繁荣。所有问题的原因是:懒惰,我使用自动完成(Ctrl +空间)和制表插入变量。也许它添加了一些流氓字符,因为手工打字或复制/粘贴没有显示任何问题,类似的事情发生在我的OSX机器上。如果因为某种原因,我点击了Ctrl +空间(而不是CMD+空间),添加了一个“不同”的空间字符,编译器变得疯狂起来。
以上来自于百度翻译 以下为原文 Already said it, no such thing. I found the cause of the problem. As soon as i declare a specific extern variable in a specific c file, BOOM. All the problems possible cause: being lazy i was using autocomplete (Ctrl + Space) and tabbing to insert the variable. maybe it added some rogue character because manually typing or copy/paste didn't show any problems A similar thing happens on my osx machine. if for some reason i hit ctrl+space (instead of cmd+space) a "different" space character is added and the compiler goes crazy |
|
|
|
一旦引用一个文件,该文件中的所有函数都会被编译,除非将每个函数放在一个单独的文件中。当包含繁荣时,该文件具有T1 IRQ代码。右击Project & Gt;源文件,然后搜索T1中断或γT1中断。已添加到库中。
以上来自于百度翻译 以下为原文 Once you reference a file, all functions in that file are compiled unless you put each function into a separate file. When you include BOOM, that file has T1 irq code. right click on project->source files then search for _T1Interrupt or __T1Interrupt. Or it may be a .o or .X object file that you have added to the libraries. |
|
|
|
为什么没有人读过整个话题?不是这样的。见我先前的答复
以上来自于百度翻译 以下为原文 why nobody ever read the whole topic? it was no such thing. see my previous reply |
|
|
|
|
|
|
|
|
|
|
|
通过引用一个外部变量或函数,你就可以包含它所属的整个文件。这是你得到副本的唯一方法,它可以是一个对象文件。如果你的文件是源文件,就像我之前说过的,在左边的一个项目中做一个全局搜索。项目-&你的项目-GT;源文件,然后右击和查找。我用了很多。T1RQ在哪里?在主要?列出你的代码,否则我们没有XTAL球。
以上来自于百度翻译 以下为原文 By referencing an external varible or function you are including the whole file that it belongs to. That is the only way you will get a duplicate and it could be an object file. If your files are source files, like I said before, do a global search for _T1Iinterrupt in projects on the left pane. click projects->your project->source files then right click and find. I use that a lot. Where is t1irq? in main? List your code, otherwise we don't have xtal balls. |
|
|
|
您可以尝试在“中断.c”文件中添加类似的内容:
以上来自于百度翻译 以下为原文 You might try adding something like this in your "interrupts.c" file: #ifndef INTERRUPTFILE #define INTERRUPTFILE ... code ... #endif |
|
|
|
只有小组成员才能发言,加入小组>>
5094 浏览 9 评论
1962 浏览 8 评论
1901 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3132 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2196 浏览 5 评论
660浏览 1评论
541浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
407浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
562浏览 0评论
465浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-14 16:27 , Processed in 1.491844 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号