Skip to content

Conversation

@alexmchp
Copy link
Contributor

Portable files for AVR Mega0 and AVR Dx families using GCC compiler

Description

Mainly implements the context switching and tick generation. Several tick sources are available.

Test Steps

Use the related Atmel Studio projects that will be added to the FreeRTOS repo by another PR. These projects include a blinky example and a "minimal" and "full" test scenarios

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link
Contributor

@yuhui-zheng yuhui-zheng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving a note for other reviewers.

We brought in a third party GCC port for ATmega device family earlier this year -- https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/master/portable/ThirdParty/GCC/ATmega. This is almost identical to what users can get from Arduino IDE library manager.

The two ports here are similar to both the third party port above and legacy ATmega323, in terms of context switch routine, interrupt setup, and many etc. The difference here though, each port in this PR provides generic tick timer init macro function for the target MCU. (Generic timer counter, RTC. No watchdog yet.) I think this is cleaner.

The only differences between AVR Dx port and ATmega0 port are:

  • RAMPZ register is used in task context,
  • MCU specific timer.
    diff should show above.

Approving since the ports are identical to the port we worked on in private repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants