我对GCC和Greenhills C编译器之间在ARM平台上生成的代码的内存占用量方面的任何比较感兴趣.
这些编译器是否有任何基准或比较?有没有人在这里有任何经验,他们想分享?
通过MULTI的命令行命令读取,我无法通过命令行找到合适的命令来构建项目(gpj).
我尝试过多构建并收到以下错误:构建(从命令行启动)无法生成"''-noconsole -prefixed_progress".构建失败
提前感谢有关如何从命令行或mbs脚本调用构建的任何建议.
我需要您为大型(1-2MLOC)软件开发项目提供持续构建产品的建议.特点:
对您可能提供的任何最佳实践或外围指导感兴趣.构建自动化问题是程序中似乎缺少的几个重叠的最佳实践之一,但尝试将您的答案集中在构建基础架构和直接相关的观察上.
成本不是驱动因素.可扩展性和易于改装到现有基础架构是关键.
(编辑解决@ Dan的评论.;-)
我有一个常量数组,链接器将其放入 .rodata 部分。我需要它进入 .text 部分。是否可以?我已经尝试将它定义为静态常量,但它没有改变任何东西。我正在使用 Green Hills 链接器和编译器。
谢谢!
我希望有人可以快速回答这个问题,但基本上当我打开优化时,我会收到以下错误:
[elxr](错误)小数据区溢出:0xfff9f6fc(有符号)在位置__sti ___ 13_test_main_cpp_252229d3 + 0xc的文件test_main.o中执行重定位时不适合16位,以引用符号oe_init_intconn
当我输入此链接器指令时也会发生类似的错误:
-auto_sda
他们的手册没有提到这个链接器错误.我正在使用Integrity 5.10
Windows 10 PC中安装了Greenhills multi软件。启动软件后,我可以看到IDE的GUI,但是一旦最小化,除了任务管理器之外,我无法在工具栏或Alt + Tab中的任何位置找到软件图标。
我已经搜索了软件中提供的所有选项,但是找不到解决方案。
提供选项以启用功能以在工具栏上显示GHS多重图标。
以下二维数组代码抛出错误 #29 期望表达式。
typedef enum
{
BATTERY_POW = 0,
USB_POW = 1,
END_STATE = 2
} BMTState_e;
typedef enum //event enums
{
NO_EVENT = 0,
BOOT_EVENT =1,
//I/O events
POW_GOOD_LOW =2,
POW_GOOD_HIGH = 3,
VBUS_POW_LOW = 4,
VBUS_POW_HIGH =5
}BMTEvent_e;
Run Code Online (Sandbox Code Playgroud)
该结构定义为
typedef struct //state machine definition
{
void (*funcPtr)();
BMTState_e nextState;
}BMTAction_t;
BMTState_e BMTGlobal_State ; //global state
Run Code Online (Sandbox Code Playgroud)
该函数定义为
void BMTTest()
{
//do nothing for time being
}
BMTAction_t action[END_STATE][END_EVENT]={
[BATTERY_POW][NO_EVENT] = {BMTTest,BATTERY_POW}
[BATTERY_POW][BOOT_EVENT] = {BMTTest,BATTERY_POW},
[BATTERY_POW][POW_GOOD_LOW] = {BMTTest,USB_POW},
[BATTERY_POW][POW_GOOD_HIGH] = …
Run Code Online (Sandbox Code Playgroud) 我发现了几个用于禁用专用代码部分的 GCC 优化的代码片段。
使用编译指示 GCC 优化(0)
但我找不到 Greenhils 编译器的类似内容。
没有这样的选择吗?
greenhills ×8
c ×3
embedded ×3
c++ ×1
gcc ×1
integrity ×1
microc ×1
optimization ×1
real-time ×1