问题标签 [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.

0 投票
4 回答
3192 浏览

c - error#29 需要一个表达式

以下二维数组代码会引发错误 #29 预期表达式。

结构定义为

函数定义为

这个想法是根据收到的事件执行状态机。二维数组列出当前状态和该状态的所有可能事件,一旦接收到事件,将调用函数指针并且状态将转换到下一个状态。

我正在使用带有 GreenHills 编译器/工具的 MicroC/OS2。我会很感激你的回应。

我听从了基思的建议

编译器在行给出错误

0 投票
2 回答
596 浏览

c++ - GHS C++:额外的分号诊断消息 - 目的?

GHS编译器中,如果连续有多个分号而没有任何中间语句,则会生成诊断消息(警告)。例如:

这似乎不是一个很常见的情况,但是在预处理发生后也会发出此警告,这样,以下内容也会产生警告(在发布时编译时):

我意识到在这种情况下有一些简单的方法可以解决这个问题,这只是一个说明性的例子。预处理器还有许多其他情况,您最终可能会得到类似的构造。

显然,代码是合法的 c++,而且我从未在我使用过的任何其他编译器上遇到过这样的警告消息。是否有一些合理的解释为什么这个警告会有所帮助,例如,是否存在这个警告可能表明编程错误的特定情况?

0 投票
0 回答
200 浏览

assembly - 如何在 GreenHills 汇编程序中生成标签调试信息?

我想为 GreenHills 汇编器汇编的汇编文件中的标签生成调试信息,以便调试器可以看到它

在 GAS "GNU Assembler" 中是这样完成的:

但他在 GreenHills 汇编程序中产生错误

有等价物吗?

0 投票
2 回答
533 浏览

c - 编译器在读取结构时会考虑结构的填充字节

我的代码有一个结构类型定义如下:

其中 Structure_2 的定义如下:

代码中还有两个函数。第一个(名为 setter)声明了一个“Structure_1”类型的结构并用数据填充它:

编译器将 data_to_send 保存在内存中,如下所示:

在此处输入图像描述

第二个命名为 getter:

我希望 R_1 的值为“00”,而 R_2 的值为“00”。

但是发生的是编译器会像这样翻译以下两行:

编译器在将结构保存在堆栈中的同时添加了填充 b/yte,但是当它开始读取它时,它忘记了它做了什么(并在读取中包含了填充字节)。

我如何通知编译器在读取结构元素时应该跳过填充字节?

我不想解决这个问题,我很想知道为什么编译器会这样?

我的编译器是 GreenHills,我的目标是 32 位

0 投票
1 回答
1047 浏览

testing - 如何在 Greenhills 编译器中创建构建日志文件?

我正在使用 TESSY 工具对我的一个嵌入式项目进行单元测试。我正在使用 IDE CATCH,其中 Greenhills 是编译器。我需要来自 IDE 的构建日志文件,用于在 TESSY 中创建项目结构。尽管创建了日志文件,但它不包含具有绝对路径名和所有使用标志的编译器和链接器调用。请提出任何解决方案或是否有任何其他方法可以生成日志文件?

使用的软件:

苔丝 :: 3.1.9

IDE :: catch(大陆汽车工具链)与 CESSAR-CT

编译器:: Green Hills MPC Green Hills multi 2000(默认)。

0 投票
0 回答
5326 浏览

linker-errors - (错误)GHS 编译器中的只读小数据溢出

我正在使用 GHS 编译器。尝试构建我的项目时收到此错误消息。

点击查看:elxr链接器错误

更新: 添加 # 和 -v 后的 MULTI IDE 的输出

更新 2:

我在 GHS 手册中找到了这一点,但对于出现相同消息错误的 arm

自定义运行时环境程序部分 本部分描述为 Green Hills 运行时环境系统创建和维护的特殊程序部分(库 libsys.a 和 libstartup.a 以及模块 crt0.o)。这些部分出现在您的发行版提供的所有默认链接器指令文件中,并且它们的内容是自动生成的,因此您不应显式添加到它们: • .fixaddr、.fixtype — 这些部分由编译器创建。这两个部分包含使 Green Hills 启动代码能够重新定位数据变量的 PIC/PID 初始化程序的信息。如果需要,在使用 PIC 和/或 PID 时,编译器会自动在 .fixaddr 和 .fixtype 部分中生成数据。默认的 Green Hills 运行时库也可能已经在这些部分中包含信息,因为这些库中的许多总是使用 PIC 和 PID 构建的。这两个部分包含只读数据,可以放在 ROM 中。未能在链接器指令文件中包含这些节可能会导致它们被 Green Hills 链接器添加到节列表的末尾,然后会发出以下警告消息:[elxr] 警告:来自 libsys.a 的节 .fixaddr (ind_crt1.o) 不包含在剖面图中(如 .fixaddr);在最后一节之后追加 添加到节映射或使用 -append 追加而不发出警告 如果程序依赖于动态内存扩展超出节映射中最后指定节的末尾,则将节附加到节映射可能是致命的,因为它们可以被覆盖。

它与编译器本身有关吗?还是由于我使用过的一些选项?任何帮助将不胜感激。谢谢。

0 投票
2 回答
2582 浏览

arm - (错误)使用 Green Hills 工具链为 ARM 构建 C++ 应用程序时出现未解析的符号

我使用 ARM arch 使用 Green Hills 工具链交叉编译目标设备的应用程序(该设备将运行 INTEGRITY OS)但它失败并出现类似的错误

我不明白这意味着什么以及如何解决它。任何人都可以帮助我吗?

0 投票
1 回答
3855 浏览

c - greenhills 编译器关闭文件或部分的优化

我发现了几个代码片段用于禁用专用代码部分的 GCC 优化。

使用编译指示 GCC 优化(0)

但我无法为 Greenhils 编译器找到类似的东西。

没有这样的选择吗?

0 投票
3 回答
290 浏览

c - For LOOP 被编译器优化丢弃

我正在做一个实验来测量微控制器上“for循环”的执行时间。这个''for循环''包含一些整数和指针操作。

案例 1:当我将编译器优化标志设置为“无”(无优化)时,会生成汇编代码,我可以测量执行时间。

案例 2:当我将编译器优化设置为“速度”(针对速度进行优化)时,没有为此循环生成汇编代码。看起来,编译器抛出了这个''for循环''

当我将编译器标志设置为速度时,任何人都可以解释为什么编译器会抛出这个循环。

0 投票
0 回答
139 浏览

linker - 如何删除静态库中的调试符号

我有四个用 C 编写的库。现在我想libA.a与软件开发人员共享这些库(例如静态库),他们将使用它们来生成“最终”可执行文件。

我的问题是,我怎样才能删除调试符号,这样他就不会在我的库中找到有关工作进程的一些信息?

提前致谢。

开发环境:GreenHills

编译器:ccarm