Questions tagged «avr-gcc»

20
如何对Arduino代码进行单元测试?
我希望能够对Arduino代码进行单元测试。理想情况下,我将能够运行任何测试,而无需将代码上传到Arduino。哪些工具或库可以帮助我解决此问题? 开发中有一个Arduino仿真器可能很有用,但似乎尚未准备就绪。 Atmel的AVR Studio包含一个可能有用的芯片模拟器,但是我看不到如何将其与Arduino IDE结合使用。

6
Flex / Bison是否可以在8位嵌入式系统上使用?
我正在使用avr-gcc工具链针对C语言的AVR微控制器上的练习,为一种简单的BASIC语言编写小型解释器。但是,我想知道是否有任何开源工具可以帮助我编写词法分析器和解析器。 如果我将其编写为在Linux机器上运行,则可以使用flex / bison。现在,我将自己限制在一个8位平台上,我是否必须手工完成所有工作?

9
如何防止GCC优化繁忙的等待循环?
我想为Atmel AVR微控制器编写C代码固件。我将使用GCC进行编译。另外,我想启用编译器优化(-Os或-O2),因为我没有理由不启用它们,并且它们可能比手动编写程序集更快地产生更好的组装方式。 但是我想要一小段未优化的代码。我想将函数的执行延迟一段时间,因此我想编写一个空循环,以浪费时间。无需精确,只需等待一段时间。 /* How to NOT optimize this, while optimizing other code? */ unsigned char i, j; j = 0; while(--j) { i = 0; while(--i); } 由于AVR内存访问是慢了很多,我想i和j被关在CPU寄存器。 更新:我刚刚从AVR Libc中找到util / delay.h和util / delay_basic.h。尽管大多数时候使用这些功能可能是一个更好的主意,但这个问题仍然有效且有趣。 相关问题: 如何防止gcc在C语言中优化某些语句? 有没有办法告诉GCC不要优化特定代码? 如何不优化-愚蠢功能的机制
72 c  optimization  gcc  avr-gcc 

1
GCC无法报告格式错误的constexpr lambda调用
以下是两个未定义行为的测试用例,表示为IIFE(即所谓的Lambda-Axpression): constexpr auto test3 = []{ int* p{}; { int x{}; p = &x; } return *p; // Undefined Behaviour }(); // IIFE constexpr auto test4 = []{ int x = std::numeric_limits<int>::min(); int y = -x; // Undefined Behaviour return y; }(); int main() {} 使用GCC主干编译时,test4由于它在中显示出Undefined Behavior ,因此被正确拒绝constexpr。另一方面test3被接受。 GCC有权接受test3吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.