gpt4 book ai didi

c++ - 将 FreeRTOS 移植到 Arduino MEGA 2560 Rev3 (ATmega2560)

转载 作者:搜寻专家 更新时间:2023-10-31 01:45:58 34 4
gpt4 key购买 nike

我目前正在实现 FreeRTOS -基于 Arduino 平台的程序。

我想使用 Arduino MEGA 2560 Rev3 (基于 ATmega2560 )用于此项目,但我找不到可用的 port.c 文件。

谁能分享一个可用的 port.c 吗?

我正在使用 Eclipse IDE,WinAVR , AVR Plugin , Arduino Lib , FreeRTOS 7.6.0(我最终会切换到 v8.0.0)和 C++ 作为主要编程语言。

谢谢。

编辑:

我遇到了 avrfreertos它为 ATmega2560 生成一个 FreeRTOS 静态库,但是当我将我的项目链接到它时,出现以下错误:

c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: section .task [00003282 -> 0000328f] overlaps section .data [00003282 -> 0000339d]
make: *** [MY_PROJECT_NAME.elf] Error 1

编辑:

我找到了解决链接问题的方法

最佳答案

如您所见,您的问题已通过更改为 avr6.x 得到解决。 portmacro.h 文件中包含一个.task 属性,用于将您定义的freeRTOS 任务保留在flash 的下部。

好消息。最新的 avrbinutils 和 avrlibc 1.8.0 中有一些更新,其中包含一个 .lowtext 属性,它与我添加到 avr6.x 文件中的 .task 属性具有类似的功能。

在 freeRTOS800 的端口中,我将 portmacro.h 中定义的属性更改为指向 .lowtext。这意味着不再需要更改 avr6.x 文件。

或者,更改为使用 freeRTOS800 端口 AVRfreeRTOS或者自己在 portmacro.h 中进行更改。

为了进一步引用,我做了一个 Arduino Library可以包含在 Arduino 中,以获得在任何 AVR 设备上使用 freeRTOS 的体验。

关于c++ - 将 FreeRTOS 移植到 Arduino MEGA 2560 Rev3 (ATmega2560),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311376/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com