问题标签 [greenhills]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arm - Greenhills 仅通过命令行编程目标
嗨,我想知道 greenhills 是否提供了任何实用程序来允许仅通过命令行通过 ghs 探针将 .elf 下载到目标。
c - 是否有像 GHS MULTI 那样的 IAR C-SPY 宏调试命令,例如“Step In”、“Step Out”和“Halt”
我想做 IAR C-SPY 宏调试,但我不能,因为他们作为用户手册的调试指南没有说明他们提供了什么。GHS MULTI 是非常好的手册,因为他们说他们能做什么,并且描述了他们的所有命令。我想像 GHS 那样使用 IAR C-SPY 命令,例如“halt”和“si”(Step In)。有谁知道他们怎么能做到这一点?
embedded - 使用命令行使用 GHS 探针闪烁目标
我们正在使用 Greenhills Multi IDE 和Greenhills Debug Probe来编程和调试我们的目标系统(基于 Coldfire 的裸机系统)。目前我使用 IDE 调试器 GUI 刷新目标,但我更喜欢使用命令行界面来完成它。
该文档相当粗略,仅提供了一个非常简单的示例。据我所知,我应该能够将 grun 与 gflash 一起使用来执行此操作,但我很难弄清楚哪些 GUI 字段映射到哪些 grun 选项。有这方面经验的人吗?
基本上我需要能够指定(见上图):
闪存设备(我想这是我想出来的)
- 基址
- 图像文件(我们使用原始图像)
- 闪存中的偏移量
- 备用 RAM 基座
- 备用闪存实用程序
- 可能还有备用 MBS 脚本
有任何提示、技巧或指向比标准 GHS 更好的文档吗?将不胜感激!
c - 使用 Green Hills 编译器将静态库与头文件链接起来
我有一个静态库 .a 提供了几个头文件。我想使用 Green hills 编译器将它与 .o 文件链接成二进制文件。我得到的错误是:
[elxr](错误 #412)未解析的符号。
我正在尝试指定提供-I filepath
给链接器的头文件的路径。
但是,这似乎不起作用。
用代码更新。
make 文件非常大,所以我不能把它全部放在这里。基本上库添加了:
GHSRH850_LIB = file\path\to\libname.a
在标志中将文件路径添加到标题中:
GHSRH850_LFLAGS += -I file\path\to\headers
其他说明如下:
GHSRH850_LFLAGS
- 链接器标志
GHSRH850_LSCRIPT
- 链接器脚本文件
__GHSRH850_OBJS
- 目标文件列表
编译器使用的是ccrh850.exe。
错误代码:
ada - 使用 GPS 作为 AdaMULTI 的外部编辑器
我正在尝试使用 GPS(19.1 版)作为 Greenhills AdaMULTI 的外部编辑器。
我输入-P<myproject.gpr> +%LINE %FILE0 %FILES
了“命令行参数”以及“AdaMULTI 其他编辑器配置”的 GPS 正确路径。
到目前为止,这按预期工作,即在 AdaMULTI 项目管理器中按 CTRL+E 时,GPS 会打开要编辑的文件。此外,当编译 GPS 时遇到错误时,会在正确的行和文件中打开。
但是……当以这种方式配置时,总是会打开一个新的 GPS 实例,这有点烦人,因为一段时间后您将运行多个实例,同时打开一个文件。有没有办法(选项、环境变量或其他)告诉 GPS 使用已经运行的实例?
我已阅读 AdaMULTI 文档和 GPS 用户指南以找到任何相关内容,但无济于事。
compilation - 如何使用 GNAT 编译 Ada 项目(已经在青山编译)
我有一个目录结构
gpj 文件包含用于 greenhills 编译的所有开关以及所有源文件的路径(通过整个项目中的相应 gpj)。我正在尝试将该结构转换为 gpr 文件,以便可以使用 gnat ( gprbuild
)编译源文件
到目前为止,我已经成功建立了正确的路径,并使用了 gpr 文件中的 Naming 包来相应gprbuild
地识别我的规范和正文文件。我的问题始于我的 ada 源文件中包含预处理器指令的事实(而不是一个单独的文件,我认为这是我gnatprep
想要的文档)。我试过使用-gantep
开关,但它似乎也需要一个文件。我已经检查了这里和我本地机器上的 gnat 文档,这就是让我走到这一步的原因。
我的 gpr 文件位于“多个包”目录之一(与主项目 gpj 相同的目录,通过使用相同的相对路径并让它们匹配来简化我的生活),到目前为止它看起来像这样
现在我意识到这远未完成,但我的第一个目标是编译这个东西。我目前的理解是编译失败是因为预处理器没有运行,这就是编译失败的原因(gnat 告诉我有非法字符,但 greenhills 编译源代码很好)。
有没有办法告诉 gnat 从源文件本身中提取指令?
greenhills - C 函数访问 R0 到 R12 寄存器
我需要编写将返回特定硬件寄存器值的 C 函数。例如 R0。
我从 GHS 文档中不清楚这是如何使用 GHS 编译器提供的宏来完成的。
GHS 编译器中用于将局部变量作为内联汇编指令的参数引用的语法是什么?
我在 GHS 文档中看到了这一点:
但这并不是我想要的,我想。上面文档中的示例描述了一个带参数的函数。返回值隐含在 R0 中。
就我而言,我想要的是使用一个普通的 C 函数,它带有嵌入式内联程序集来读取寄存器(R-anything)并将值存储在函数的局部变量中。
c++ - Integrity OS 上的 dladdr 类似物?
使用 ghs 编译器时,有没有办法从dlfcn.h获取所有非 POSIX 的东西在 Integrity OS 上工作?这是一个列表:dladdr函数,Dl_info结构。
c - typedef uint8_t T_BOOL; 还值得吗?
我正在审查 C 的编码指南,我们仍然有typedef uint8_t
布尔值的指南。我在一家汽车行业的公司工作,因此从事嵌入式软件工作,并且通常使用 Renesas 微处理器和 GreenHills 编译器。
我认为由于 C99 已经存在这么多年,类型定义是多余的,我希望现代平台的所有编译器都支持_Bool
. 那么,它还值得拥有typedef
吗?
额外的问题:我正在尝试为 C++ 整理一些指南。我使用 C++ 的背景相对有限,但我再次认为typedef
forbool
根本不应该是有益的。我们应该使用基本的 C++bool
类型还是有什么理由应该使用自定义的typedef
T_BOOL 来代替?
c - 有没有办法将 C 变量从一个部分移动到另一个部分到链接描述文件中?
我有一个常量数组,链接器将其放入 .rodata 部分。我需要它进入 .text 部分。可能吗?我已经尝试将它定义为 static const 但它没有改变任何东西。我正在使用 Green Hills 链接器和编译器。
谢谢!