571294_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

571294_zh-CN

571294_zh-CN

汇编程序在 CodeWarrior 中不合法<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

你好

 

在使用 mwasmeppc.exe 编译汇编文件时,我遇到了一个问题、这是错误信息:

 

* 编译 s -> o
*
### mwasmeppc.exe Assembler:
# File: .\output\obj\cstartup.s
# ---------------------------------
# 88: e_and2i.
# Error: ^^^^^^^^
# 当前目标处理器的指令不合法
### mwasmeppc.exe 汇编器:
# 99: sub r4,r3
# 错误: ^^^^^
# 简化助记符子的参数不足
### mwasmeppc.exe 汇编器:
# 114: e_or2i r31,0x4002
# Error: ^^^^^^
# 对于当前目标处理器,指令不合法

 

某些命令( e_and2i.sub e_or2i)无法识别,但该文件 cstartup.s 可与其他编译器(Greenhills、Windriver 等)配合使用。

 

CodeWarrior 版本: 适用于 MPC55xxMPC56xx v2.10。

MCU: XPC560XB

CPU 类型为 -proc Zen

 

我不知道是我错过了一些编译器选项,还是我需要包含一些编译器文件?

 

顺祝商祺!

思佳

概述Re: Assembler not legal in CodeWarrior

这是一个有趣的问题!这可能与 CodeWarrior 处理旧版汇编指令或项目设置的方式有关。您可以尝试查看编译器配置,检查是否正确设置了所有汇编路径。要更清楚地了解此类程序或法律文件细节,您可以访问迈阿密戴德在线案例,获取有关结构化流程和案件处理的参考式见解。有时,重温文档标准有助于有效确定缺失的配置。

Re: Assembler not legal in CodeWarrior

如果 CodeWarrior 不支持某些工具或功能(如汇编器),就会很麻烦。要获得有关相关规则和合规性的更多指导或验证,刑事法庭数据等资源有时可以提供有用的参考点。探索替代方法或支持模块可确保开发工作更加顺利。随时了解制约因素有助于防止意外错误并简化编码项目。

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,思佳、

我已将"答案" 贴到您的另一个主题上。请检查。

此致,

Martin

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,马丁、

非常感谢。

我还有一个关于汇编代码的问题https://community.nxp.com/thread/434043你能看看吗?

顺祝商祺!

思佳

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,思佳、

请查看附件,我向您发送的是使用 CW 2.10 生成的一些项目的默认链接器文件。您可以将其作为链接文件的指南。

关于调试信息,这里有部分文档介绍了如何在 .elf 中添加调试信息锉刀希望能对您有所帮助。如果没有,请告诉我,我会尝试不同的解决方案。

-------------------------------------------------------------------------------
调试控制选项
-------------------------------------------------------------------------------
-g[dwarf] # 全局;套用;生成 DWARF 1.x 调试
# 信息;与"-sym dwarf-1,full "相同
-gdwarf-2 # 全局;套用;生成 DWARF 2.x 调试
# 信息;与"-sym dwarf-2,full" 相同
-sym 关键字[,...] # 全局;指定调试选项
off # 不生成调试信息;
# 默认值
on|dwarf-1 # 打开 DWARF 1.x 调试信息
dwarf-2 # 打开 DWARF 2.x 调试信息
-----------------------------------------------------------------------------------------------------

此致,

马丁

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,马丁、

我修改了 lcf 文件,现在项目可以生成地图和精灵了。

现在 lcf 文件仍然有一些错误,当我使用 Trace32 调试代码时,它找不到启动代码,我怎样才能将启动代码(__entry)定义为 0x0 地址?

另一个问题是,我只能在 Trace32 中看到汇编程序,您知道如何才能在 Trace32 中看到 c 文件吗?

顺祝商祺!

思佳

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,思佳、

MAP 文件看起来不完整。在连接项目时是否有任何错误?您是否能获得 .elf文件?您只共享了一个对象文件,因此我无法尝试链接。

因此,能否请您给我回信,最后能否请您分享您想链接到一起的所有对象文件?

此致,

Martin

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,马丁、

这些是 .o文件和地图文件。

顺祝商祺!

思佳

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,思佳、

能否请您分享一下生成的地图文件?为什么您认为地图文件不正确?

能否共享您试图链接的对象文件?

此致,

Martin

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,马丁、

我使用的是 mwldeppc。

顺祝商祺!

思佳

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,思佳、

您是使用 CodeWarrior IDE 还是 mwldeppc 命令行工具进行链接?

参考资料

Martin

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

这些是我使用的链接选项:

LINK_OPT += -proc=Zen #mcu 类型;通用

LINK_OPT += -char=unsigned #设置 "char "的符号;必须与编译器匹配。

LINK_OPT += -srec #生成扩展名为 .mot 的 S 记录文件

LINK_OPT += -map #生成地图文件

LINK_OPT += -code_merging=all,aggressive #代码合并优化

LINK_OPT += -far_near_addressing #启用远近寻址优化

LINK_OPT += -vle_enhance_merging #启用 VLE 增强代码合并优化功能

LINK_OPT += -vle_bl_opt

LINK_OPT += -abi eabi

LINK_OPT += -gdwarf-2

LINK_OPT += -nostdlib

LINK_OPT += -m __entry

顺祝商祺!

思佳

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

好的,但现在我无法生成正确的 .Map 文件,是否需要添加一些链接选项?或 .o文件不好吗?

这是生成的地图文件的一部分:

__入口的链接地图

代码折叠在文件中:C:\HaoSijia\Projects\498_XPC560XD_XB\test_base\Conformance\IN\Platforms_ConTest_RamNoInit\output\obj\Platforms_ConTest_RamNoInit.o

代码折叠在文件中:C:\HaoSijia\Projects\498_XPC560XD_XB\test_base\Conformance\IN\Platforms_ConTest_RamNoInit\output\obj\main.o

代码折叠在文件中:C:\HaoSijia\Projects\498_XPC560XD_XB\test_base\Conformance\IN\Platforms_ConTest_RamNoInit\output\obj\板.o

…

顺祝商祺!

思佳

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,思佳、

是的,你完全可以使用自己的启动程序,而不是 CodeWarrior 启动文件。

此致,

Martin

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

感谢您的解决方案,现在我又遇到了一个关于启动代码的问题:

CodeWarrior 有自己的启动文件__start.c and __ppc_eabi_init.c、

我能用自己的启动代码代替这两个文件吗?

CodeWarrior 版本:适用于 MPC55xxMPC56xx v2.10。

MCU: XPC560XB

顺祝商祺!

思佳

Re: Assembler not legal in CodeWarrior<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,思佳、

我看到了一些不一致的地方,可能是你要编译的代码中存在的问题:

1) 指令e_and2i和e_or2i是 VLE,而sub是 BookE。在使用mwasmeppc.exe 时,不可能在一个文件中编译两种指令。

2) 指令子程序必须有三个参数。

有几种解决方案:

1) 最好的办法是用 se_sub 代替 sub 指令,se_sub 是 VLE 指令,需要 2 个参数。不要忘记使用 -vle 选项编译文件。

2) 可以用 BookE 指令替换 VLE 指令,并在子指令中添加第三个参数。

看看附件,我给你发了 bookE 和 VLE 参考手册,其中详细描述了所有说明。

如果您有任何其他问题,请随时给我回信。

此致,

Martin

Re: Assembler not legal in CodeWarrior

当 CodeWarrior 抛出汇编程序错误时,尤其是当语法中的所有内容似乎都正确时,会令人沮丧。有时,问题会归结为配置或指令丢失,因此仔细检查项目设置会有所帮助。最近,我在研究文档准确性时遇到了里士满法律服务公司,它提醒我,可靠的参考资料在故障排除中是多么重要。希望分享这样的经验能帮助其他人更快地摆脱困境。

Re: Assembler not legal in CodeWarrior

我在尝试使用 CodeWarrior 中的汇编程序时也遇到了同样的问题,这让我非常沮丧。对于任何需要可靠法院信息的人来说,威尔公共记录都是查询备案和案件详细信息的有用资源。它使某些法律问题的解决变得更加容易,而无需依赖零散的资料来源。如果您想快速查阅官方记录,绝对值得一试。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎12-03-2025 05:25 AM
更新者: