Microchip
直播中

李明聪

7年用户 1143经验值
私信 关注
[问答]

如何阻止链接器生成IVT?

显然,从第1.26节开始,谁知道Microchip为什么不可能阻止链接器产生IVT:HTTP://www. MicroChIP.COM/FUMMS/M917841.ASPXA从那时起,情况有了根本的改善?我有足够的麻烦到达我现在对我的工具链的理解,并且周围的工作方式似乎很复杂。这非常令人沮丧。

以上来自于百度翻译


      以下为原文

    Apparently, starting in v. 1.26, for who knows what reason Microchip made it impossible to stop the linker from generating the IVT: http://www.microchip.com/forums/m917841.aspx

Has the situation improved at all since then? I had enough trouble to get to where I am now in my understanding of the tool chain, and the workaround presented seems convoluted.

This is very frustrating.

回帖(6)

陈龙

2019-5-16 10:10:37
看起来这是在V1.30中固定的——没有IVT链接器标志。它似乎只使用ELF格式。

以上来自于百度翻译


      以下为原文

    It looks like this was fixed in V1.30 with the --no-ivt linker flag.  It only seems to work with ELF format.
举报

李童

2019-5-16 10:28:57
谢谢!

以上来自于百度翻译


      以下为原文

    Thanks!
举报

李诗晴

2019-5-16 10:44:13
我这样做的目的是创建一个模块,其中每个中断向量都有空例程,或者陷阱和转储程序。这样,我就可以控制向量表的内容了。如果你错过了一个,编译器会把它指向一个重置例程,除非你在调试器中运行,否则它会被捕获到一个无用的例程。

以上来自于百度翻译


      以下为原文

    The way I got around this, was to create a module with EVERY SINGLE interrupt vector in it, with either null routines, or trap and dump routines.  This way, I have control of the contents of the vector table.  If you miss one, the compiler will point it to a reset routine, unless you are running in the debugger, when it will trap to a useless routine.
 
举报

李童

2019-5-16 10:51:38
是的,这是我试图避免的黑客攻击类型。幸运的是,他们已经解决了这个问题。没有IVT链接器标志正是我需要的。

以上来自于百度翻译


      以下为原文

   


Yes, this is the type of hack I was trying to avoid. Luckily, they've fixed the issue. The --no-ivt linker flag was exactly what I needed.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分