avr-gcc相关内容

如何可视化 AVR 程序的内存 (SRAM) 使用情况?

我在 AVR 微控制器 (ATMega328P) 上运行的 C 程序中遇到了问题.我相信这是由于堆栈/堆冲突,但我希望能够确认这一点. 有什么方法可以可视化堆栈和堆的 SRAM 使用情况? 注意:程序用avr-gcc编译,使用avr-libc. 更新: 我遇到的实际问题是 malloc 实现失败(返回 NULL).所有 mallocing 都发生在启动时,所有 freeing 都 ..
发布时间:2022-01-25 12:16:56 其他开发

将二进制文件与内存中特定位置的函数/数据链接起来

我目前正在为 ATMega 编写中间内存引导加载程序. 我想将一段常用函数和数据放在内存中的特定位置,这样: 无法克服引导加载程序部分的大小限制 应用程序部分不会复制库函数、驱动程序等,因此会浪费空间 为了便于说明,下面是所需内存布局的地图: 在 此线程 在 avrfreaks 上,我已经能够移动未标记为 __attribute__ ((section(".boot")) ..
发布时间:2022-01-11 15:42:18 其他开发

如何防止 GCC 优化繁忙的等待循环?

我想为 Atmel AVR 微控制器编写 C 代码固件.我将使用 GCC 编译它.另外,我想启用编译器优化(-Os 或 -O2),因为我认为没有理由不启用它们,它们可能会更快地生成更好的汇编方式而不是手动编写程序集. 但我想要一小段未优化的代码.我想将函数的执行延迟一段时间,因此我想编写一个什么都不做的循环来浪费一些时间.无需精确,只需等待一段时间. /* 如何不优化这个,同时优化其他代码 ..
发布时间:2021-12-18 22:35:57 其他开发

是否有可用于 8 位嵌入式系统的 flex/bison 替代方案?

我正在为一种简单的类似 BASIC 的语言编写一个小型解释器,作为使用 avr-gcc 工具链在 C 语言中的 AVR 微控制器上的练习.但是,我想知道是否有任何开源工具可以帮助我编写词法分析器和解析器. 如果我写这个在我的 Linux 机器上运行,我可以使用 flex/bison.现在我把自己限制在 8 位平台上,我必须手工完成,还是不? 解决方案 我已经实现了一个针对ATmega ..
发布时间:2021-12-12 23:04:39 其他开发

带有 Arduino 的 Avr-GCC

如何在 Ubuntu 上用 C 编写我的 Arduino.我听说过 avr-gcc,但所有在线教程似乎都非常乏味,而且没有带有 Arduino 引导加载程序的 AVR 芯片的选项.谁能用更简单的方法帮助我在 Ubuntu 上安装 avr-gcc 并开始用 C 语言为 Arduino 编程? 解决方案 我推荐以下编译命令行选项: avr-gcc -c-std=gnu99-Os-墙-ffun ..
发布时间:2021-11-17 04:12:20 其他开发

使用 avr-gcc 编译器/链接器对链接的 avrfix 库中函数的未定义引用

我正在尝试在项目中使用 avrfix 库 ,使用 Eclipse (v4.2.2) 作为IDE 和 avr-gcc 作为编译器.头文件(avrfix.h)和库文件(libavrfix.a)都包含在同一个目录中,该目录在项目的搜索路径以及链接器的库搜索路径中.编译时出现以下错误: D:\Documents\Arduino\IMU_Kalman\Release/../HMC5883/HMC5883. ..
发布时间:2021-11-17 03:56:02 Java开发

如何防止需要复制传递给 avr-gcc C++ 构造函数的字符串?

在 ArduinoUnit 单元测试库中,我提供了一种为 TestSuite 命名的机制.库的用户可以编写以下内容: TestSuite 套件(“我的测试套件");//...套件运行();//此处使用套件名称 这是预期的用法 - TestSuite 的名称是字符串文字.然而,为了防止难以发现的错误,我觉得有必要迎合不同的用法,例如: char* name = (char*) malloc(1 ..
发布时间:2021-11-17 03:55:38 C/C++开发

Arduino (Uno) 以太网客户端连接在多次客户端打印后失败

我使用的是带有以太网扩展板的 Arduino Uno. 发送很多HTTP请求后,client.println(...),客户​​端开始连接失败.失败的时间似乎是随机的,从循环中读出的序列可以在 ~1000 到 ~7000 之间变化. 该错误与以太网传输缓冲区溢出无关(遵循此建议) 这是失败的代码: #include #include //网络常量字节 mac[] = {0x00 ..
发布时间:2021-11-17 03:52:41 其他开发

如何使用 avr-gcc 在 C/C++ 中执行预主初始化?

为了确保一些初始化代码在 main(使用 Arduino/avr-gcc)之前运行,我有如下代码: class 初始化 {民众:初始化(){ 初始化();}};初始化初始化; 理想情况下,我希望能够简单地编写: initialize(); 但这不能编译... 有没有更简洁的方法来达到同样的效果? 注意:代码是Arduino草图的一部分,所以main函数是自动生成的,不能修改(例 ..
发布时间:2021-11-17 03:37:10 C/C++开发

AVR 链接器错误,“重定位被截断以适应"

我正在尝试为 ATmega328 micro 编译一些代码,我想使用 Arduino 的库和核心.我正在使用 CMake.我已经编译了核心库和我的代码的所有对象以及 Arduino 的库.但是当它链接时,他们向我展示了以下错误. ..."重新定位被截断以适合:R_AVR_13_PCREL 反对符号"..."avr5/libgcc.a"... 我有 通过谷歌发现这是一个常见的错误,但没有 ..
发布时间:2021-11-17 03:36:04 其他开发

如何对 Arduino 代码进行单元测试?

我希望能够对我的 Arduino 代码进行单元测试.理想情况下,我无需将代码上传到 Arduino 即可运行任何测试.哪些工具或库可以帮助我解决这个问题? 有一个 正在开发中的 Arduino 模拟器 可能很有用,但它没有似乎还没有准备好使用. Atmel AVR Studio 包含一个芯片模拟器,它可以很有用,但我不知道如何将它与 Arduino IDE 结合使用. 解决方案 ..
发布时间:2021-11-17 03:34:31 其他开发

带有 Arduino 的 Avr-GCC

如何在 Ubuntu 上用 C 编写我的 Arduino.我听说过 avr-gcc,但所有在线教程似乎都非常乏味,并且没有带有 Arduino 引导加载程序的 AVR 芯片的选项.谁能用更简单的方法帮助我在 Ubuntu 上安装 avr-gcc 并开始用 C 语言为 Arduino 编程? 解决方案 我建议使用以下命令行选项集进行编译: avr-gcc -c-std=gnu99-Os-墙 ..
发布时间:2021-09-12 19:00:13 其他开发

用C访问AVR寄存器?

最近我一直在尝试学习有关微控制器的所有知识.由于这是自学的,所以花了我一段时间才能了解事物在裸机上的工作方式.长话短说,我不想在我的C代码中使用AVR库.我想使用C中的指针通过它们的地址专门访问寄存器.我已经在线搜索了无处不在,在AVR头文件中查找了内容,并读了一本书.如果有人可以帮助我,那就太好了. 解决方案 您可以将整数转换为指针.这只是一个普通的强制转换表达式. volatile ..
发布时间:2021-04-12 20:51:33 其他开发

Atmel/Arduino:ISR(TIMER0_OVF_vect)无法编译(__vector_16中的“首次定义")

我目前正在研究PWM调制器,以“模拟"汽车发动机的点火换向.然后,我将用它来驱动另一个微控制器,该微控制器通过RPM计数器的检流计来处理从原始信号(发动机换向器)到干净输出电压的转换. 这个项目也是我学习如何更好地控制微控制器的借口. 好吧,我使用timer0(8位)编写了一个小程序,我需要触发两个中断服务程序(ISR): TIMER0_OVF_vect:溢出中断 TIMER0 ..
发布时间:2020-11-30 04:24:48 C/C++开发

-gc-sections丢弃使用的数据

使用avr-gcc,avr-ld 我试图通过使用fdata-sections -ffunction-sections和gc-sections来严重减小输出文件的大小.当不使用这些选项进行编译时,我的输出为〜63KB,而使用这些选项则为〜30KB,所以看起来很棒. 不幸的是,在加载并测试了输出之后,我注意到它无法正常工作.垃圾回收似乎已远远超出了我的预期,并且检查.map时发现有些关键数 ..
发布时间:2020-11-12 20:01:07 其他开发

我如何在新版本的gcc中将可用的体系结构添加到旧版本的gcc中?

我想将Atmega1281架构添加到我正在使用的vcc的当前版本的gcc中. v3.3不支持Atmega1281,v4.2.1中增加了对Atmega1281的支持. 我无法将gcc升级到4.2.1,因此需要将支持添加到现有的编译器中. 有什么办法吗? 解决方案 为了添加架构, 三件事需要更新, gcc- gcc \ config \ avr \ avr.c, gcc \ ..
发布时间:2020-09-15 05:08:52 其他开发