目前我使用的配置中生成的out文件带有代码相关的内容,例如官方的插件nm2000.exe调用此out文件可以得到变量地址。
我想生成out文件中不能体现代码相关的内容(例如只带地址和地址存储内容),该怎么配置呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
目前我使用的配置中生成的out文件带有代码相关的内容,例如官方的插件nm2000.exe调用此out文件可以得到变量地址。
我想生成out文件中不能体现代码相关的内容(例如只带地址和地址存储内容),该怎么配置呢?
您好,请参考下面链接中的 一、如何生成hex文件:
hex文件确实是地址加内容,但是我不要hex文件,我要的是out文件
您可以尝试使用“--symdebug:none”选项进行编译。这将创建没有符号表的 .out 文件。
它与hex文件不同,因为它仍然具有file header和section headers。每个section header将指向相应的机器码。
经验证,使用“--symdebug:none”进行编译时生成的out文件(以下称新out文件)变小了,由542KB变成了359KB,但是仍然未解决我所提出的问题。我用dis2000.exe调用新out文件仍然能得到汇编程序,nm2000调用新out文件也能显示out文件中的变量。
我觉得这不利于代码的保密,因为生产时要下发out文件进行烧录,所以请帮忙提供思路解决此问题。
【dis2000.exe调用新out文件得到的结果】

【nm2000.exe调用新out文件得到的结果】

您好,在C28x assembly tools manual的 Invoking the Strip Utility 中,有关于”strip utility“ strip2000的使用说明。正如这个工具的名字所描述的那样,它的作用是在生成输出文件时剥离一些信息。
虽然仍然可以反汇编剥离的可执行文件。 但它只显示指令流,没有任何符号名称。
总的来说,hex文件的保密性会更好一些。
经验证strip2000.exe确实可以剥离out文件中的变量信息