簡體   English   中英

將FreeRTOS移植到Arduino MEGA 2560 Rev3(ATmega2560)

[英]Porting FreeRTOS to Arduino MEGA 2560 Rev3 (ATmega2560)

我目前正在Arduino平台上實現基於FreeRTOS的程序。

我想為該項目使用Arduino MEGA 2560 Rev3 (基於ATmega2560 ),但是找不到有效的port.c文件。

任何人都可以共享一個可工作的port.c嗎?

我正在使用Eclipse IDE, WinAVRAVR插件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庫 ,該可以包含在Arduino中,以獲取在任何AVR設備上使用freeRTOS的經驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM